 /* ==========================================================================
  Signature Towers
   ========================================================================== */
 .signature-towers {
     width: 100%;
     max-width: 900px;
     margin: 24px auto 36px;
     padding: 48px 24px 36px;
     box-sizing: border-box;
     border: 1px solid rgba(188, 149, 92, 0.1);
     box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.5);
     position: relative;
     overflow: hidden;
 }

 .signature-towers::before {
     content: "";
     position: absolute;
     inset: 0;
     background: url('/img/bg/bg-luxury-dark-navy-texture.png') center center / cover no-repeat;
     background: -webkit-image-set(url('/img/avc/bg/bg-luxury-dark-navy-texture.avif') type('image/avif'),
             url('/img/avc/bg/bg-luxury-dark-navy-texture.webp') type('image/webp')) center center / cover no-repeat;
     background: image-set(url('/img/avc/bg/bg-luxury-dark-navy-texture.avif') type('image/avif'),
             url('/img/avc/bg/bg-luxury-dark-navy-texture.webp') type('image/webp')) center center / cover no-repeat;
     opacity: 1;
     z-index: 0;
 }

 .signature-towers>* {
     position: relative;
     z-index: 1;
 }

 .signature-inner {
     max-width: 100%;
 }

 .signature-head {
     text-align: center;
     margin-top: 0;
     margin-bottom: 24px;
     background: none !important;
     box-shadow: none !important;
     border: 0 !important;
     padding: 0 !important;
 }

 .signature-towers .signature-title {
     all: unset;
     display: inline-block;
     margin: 0 0 8px !important;
     text-align: center !important;
     font-family: "Cormorant Garamond", "Times New Roman", serif !important;
     font-size: 34px !important;
     line-height: 1.08 !important;
     letter-spacing: .08em !important;
     font-weight: 400 !important;
     color: #8f6a33 !important;
     background: none !important;
     border: 0 !important;
     box-shadow: none !important;
     text-shadow: none !important;
 }

 @supports ((-webkit-background-clip: text) or (background-clip: text)) {
     .signature-towers .signature-title {
         background: linear-gradient(180deg,
                 #ead39a 0%,
                 #bb9550 45%,
                 #7a5825 100%) !important;
         -webkit-background-clip: text !important;
         background-clip: text !important;
         -webkit-text-fill-color: transparent !important;
         color: transparent !important;
         text-shadow:
             0 1px 0 rgba(255, 255, 255, 0.2),
             0 2px 4px rgba(0, 0, 0, 0.16) !important;
     }
 }

 .signature-towers .signature-title::before,
 .signature-towers .signature-title::after {
     content: none !important;
 }

 .signature-towers .signature-title .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 .signature-towers .signature-sub {
     margin: 2px 0 0;
     font-size: 13px;
     letter-spacing: .1em;
     color: #2f2f2f !important;
     -webkit-text-fill-color: #2f2f2f !important;
     font-weight: 500 !important;
     opacity: 1 !important;
     text-shadow: none !important;
     mix-blend-mode: normal !important;
 }

 .signature-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr));
     gap: 12px;
 }

 .sig-card {
     border: 1px solid rgba(184, 154, 90, .35);
     background: rgba(15, 13, 12, .28);
 }

 .sig-link {
     display: block;
     color: inherit;
     text-decoration: none;
     position: relative;
 }

 .sig-media {
     margin: 0;
     max-height: 376px;
     overflow: hidden;
 }

 .sig-media img {
     width: 100%;
     aspect-ratio: 3 / 4;
     object-fit: cover;
     display: block;
     filter: brightness(.8) saturate(.72);
     transition: transform .35s ease;
 }

 .sig-media-empty {
     width: 100%;
     height: 100%;
     background: rgba(255, 255, 255, .2);
 }

 .sig-body {
     position: absolute;
     left: 0;
     right: 0;
     bottom: 0;
     z-index: 2;
     padding: 50px 12px 14px;
     text-align: center;
     background: linear-gradient(to top,
             rgba(0, 0, 0, .82) 0%,
             rgba(0, 0, 0, .58) 44%,
             rgba(0, 0, 0, .18) 78%,
             rgba(0, 0, 0, 0) 100%);
 }

 .signature-towers .sig-name {
     margin: 0 0 14px !important;
     padding: 0 !important;
     width: auto !important;
     max-width: none !important;
     border: 0 !important;
     background: none !important;
     box-shadow: none !important;
     font-size: 14px !important;
     line-height: 1.4 !important;
     color: #BC955C !important;
     letter-spacing: .03em !important;
     text-shadow: 0 2px 8px rgba(0, 0, 0, .45);
     text-align: center !important;
     font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
 }

 .sig-price {
     margin: 0 0 10px;
     font-size: 54px;
     line-height: 1;
     letter-spacing: .02em;
     color: var(--ep-gold);
     font-family: "Cormorant Garamond", "Times New Roman", serif;
 }

 .sig-price span {
     font-size: 22px;
     margin-left: 4px;
     color: inherit;
 }

 @supports ((-webkit-background-clip: text) or (background-clip: text)) {
     .sig-price {
         background: linear-gradient(180deg,
                 #f1ddb0 0%,
                 #BC955C 42%,
                 #845f2b 100%) !important;
         -webkit-background-clip: text !important;
         background-clip: text !important;
         -webkit-text-fill-color: transparent !important;
         color: transparent !important;
         text-shadow:
             0 1px 0 rgba(255, 255, 255, 0.18),
             0 2px 4px rgba(0, 0, 0, 0.16) !important;
     }
 }

 .sig-cta {
     display: inline-block;
     padding: 8px 24px;
     font-size: 11px;
     letter-spacing: .12em;
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     background: url('/img/bg/bg-parchment-gray.png') center / cover no-repeat;
     font-weight: 600;
     text-shadow: none;
     position: relative;
     isolation: isolate;
     box-shadow: 0 0 2px rgba(0,0,0,.25);
 }
 .sig-cta::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .sig-cta::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-parchment-gray.png') center / cover no-repeat;
     z-index: -1;
 }

 .sig-link:hover .sig-media img {
     transform: scale(1.03);
 }

 .sig-link:hover .sig-cta {
     box-shadow: 0 2px 6px rgba(0,0,0,.3);
 }

 .signature-foot {
     margin-top: 22px;
     text-align: center;
 }
 .signature-more {
     display: inline-block;
     min-width: 280px;
     padding: 12px 28px;
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     font-size: 14px;
     letter-spacing: .08em;
     text-decoration: none !important;
     background: url('/img/bg/bg-parchment-gray.png') center / cover no-repeat;
     box-shadow: 0 0 2px rgba(0,0,0,.25);
     position: relative;
     isolation: isolate;
     transition: transform .2s ease, box-shadow .2s ease;
 }
 .signature-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .signature-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-parchment-gray.png') center / cover no-repeat;
     z-index: -1;
 }
 .signature-more:hover {
     transform: translateY(-2px);
     box-shadow: 0 4px 12px rgba(0, 0, 0, .2);
     color: #2a2218 !important;
     -webkit-text-fill-color: #2a2218 !important;
 }

 .signature-towers .ep-opc-sub {
     color: var(--ep-gold-champagne-mist) !important;
     font-size: 14px !important;
 }

 @media (max-width: 900px) {
     .signature-towers {
         padding: 24px 14px;
     }

     .signature-towers .signature-title {
         font-size: 24px !important;
     }

     .signature-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         gap: 8px;
     }

     .signature-grid .sig-card:nth-child(2) {
         grid-column: 1 / -1;
         order: -1;
     }

     .sig-media {
         max-height: 376px;
     }

     .sig-body {
         padding: 34px 8px 10px;
     }

     .signature-towers .sig-name {
         font-size: 12px !important;
         margin-bottom: 8px !important;
     }

     .sig-cta {
         padding: 4px 10px;
         font-size: 10px;
     }

     .sig-price {
         font-size: 30px;
     }
 }

 @media (max-width: 420px) {
     .signature-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         gap: 6px;
     }

     .sig-media {
         max-height: 376px;
     }

     .sig-body {
         padding: 30px 6px 10px;
         background: linear-gradient(to top,
                 rgba(0, 0, 0, .9) 0%,
                 rgba(0, 0, 0, .72) 52%,
                 rgba(0, 0, 0, .2) 84%,
                 rgba(0, 0, 0, 0) 100%);
     }

     .sig-cta {
         position: relative;
         transform: none;
         margin-top: 4px;
         padding: 3px 8px;
         font-size: 9px;
     }
 }

 /* ==========================================================================
  Osaka Prime Collection
   ========================================================================== */
 .ep-osaka-prime-collection {
     width: 100%;
     max-width: 900px;
     margin: 24px auto 36px;
     padding: 42px 24px 36px;
     box-sizing: border-box;
     border: 1px solid rgba(188, 149, 92, 0.1);
     box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.5);
     position: relative;
     overflow: hidden;
 }

 .ep-osaka-prime-collection::before {
     content: "";
     position: absolute;
     inset: 0;
     background: url('/img/bg/bg-luxury-dark-navy-texture.png') center center / cover no-repeat;
     background: -webkit-image-set(url('/img/avc/bg/bg-luxury-dark-navy-texture.avif') type('image/avif'),
             url('/img/avc/bg/bg-luxury-dark-navy-texture.webp') type('image/webp')) center center / cover no-repeat;
     background: image-set(url('/img/avc/bg/bg-luxury-dark-navy-texture.avif') type('image/avif'),
             url('/img/avc/bg/bg-luxury-dark-navy-texture.webp') type('image/webp')) center center / cover no-repeat;
     opacity: .9;
     z-index: 0;
 }

 .ep-osaka-prime-collection>* {
     position: relative;
     z-index: 1;
 }

 .ep-opc-head {
     text-align: center !important;
     margin-bottom: 32px !important;
     background: transparent !important;
     border: 0 !important;
     box-shadow: none !important;
     padding: 0 !important;
     position: relative;
 }

 .ep-opc-title {
     all: unset !important;
     display: inline-block !important;
     margin: 0 0 6px !important;
     text-align: center !important;
     font-family: var(--epsc-h2-font) !important;
     font-size: 34px !important;
     line-height: 1.08 !important;
     letter-spacing: .18em !important;
     font-weight: 400 !important;
     color: #BC955C !important;
     text-transform: uppercase !important;
     text-shadow: 0 1px 0 rgba(255, 255, 255, .15) !important;
 }

 .ep-opc-title::before,
 .ep-opc-title::after {
     content: none !important;
 }

 .ep-opc-title .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 .ep-opc-head::before,
 .ep-opc-head::after {
     content: none !important;
 }

 .ep-opc-sub {
     margin: 4px 0 0 !important;
     font-size: 14px !important;
     letter-spacing: .08em !important;
     color: var(--ep-gold-champagne-mist) !important;
     font-weight: 300 !important;
     text-align: center !important;
     font-family: var(--epsc-h2-font), serif !important;
 }

 .ep-opc-lead {
     margin: 10px auto 0 !important;
     max-width: 46ch;
     font-size: 13px !important;
     line-height: 1.7 !important;
     letter-spacing: .04em !important;
     color: rgba(233, 225, 210, .82) !important;
     font-weight: 300 !important;
     text-align: center !important;
 }

 .ep-opc-divider {
     display: flex;
     align-items: center;
     justify-content: center;
     margin: 18px auto 14px;
     width: 60%;
     max-width: 360px;
 }
 .ep-opc-divider::before,
 .ep-opc-divider::after {
     content: "";
     flex: 1;
     height: 1px;
     background: linear-gradient(90deg, transparent, rgba(184, 154, 90, .5), transparent);
 }
 .ep-opc-divider span {
     display: inline-block;
     width: 6px;
     height: 6px;
     margin: 0 12px;
     background: #BC955C;
     transform: rotate(45deg);
     flex-shrink: 0;
 }

 .ep-opc-sub2 {
     margin: 0 !important;
     font-size: 11px !important;
     letter-spacing: .22em !important;
     color: #a89b88 !important;
     font-weight: 400 !important;
     text-align: center !important;
     text-transform: uppercase !important;
     font-style: italic !important;
     font-family: var(--epsc-h2-font), serif !important;
 }

 .ep-opc-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr));
     gap: 16px;
 }

 .ep-opc-card {
     border: 1px solid rgba(184, 154, 90, .25);
     background: url('/img/bg/bg-chalkboard-dark.png') center / cover no-repeat;
     overflow: hidden;
     transition: transform .25s ease, box-shadow .25s ease;
 }
 .ep-opc-card:hover {
     transform: translateY(-3px);
     box-shadow: 0 8px 24px rgba(0, 0, 0, .4);
 }

 .ep-opc-link {
     display: flex;
     flex-direction: column;
     height: 100%;
     color: inherit;
     text-decoration: none;
 }

 .ep-opc-media {
     margin: 0;
     aspect-ratio: 16 / 10;
     overflow: hidden;
 }

 .ep-opc-media img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
     transition: transform .4s ease;
 }
 .ep-opc-card:hover .ep-opc-media img {
     transform: scale(1.04);
 }

 .ep-opc-media-empty {
     width: 100%;
     height: 100%;
     background: rgba(255, 255, 255, .08);
 }

 .ep-opc-body {
     padding: 16px 14px 18px;
     text-align: center;
     flex: 1;
     display: flex;
     flex-direction: column;
     align-items: center;
 }

 .ep-opc-name {
     all: unset;
     display: block;
     margin: 0 0 8px;
     font-size: 14px;
     line-height: 1.4;
     color: var(--ep-gold-champagne-mist) !important;
     -webkit-text-fill-color: var(--ep-gold-champagne-mist) !important;
     letter-spacing: .04em;
     text-align: center !important;
     font-weight: 400 !important;
     font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
 }

 .ep-opc-spec {
     font-size: 13px;
     letter-spacing: .05em;
     color: #a89b88;
     margin-bottom: 6px;
     font-style: italic;
 }
 .ep-opc-spec sup {
     font-size: 9px;
     vertical-align: super;
     line-height: 0;
 }

 .ep-opc-price {
     font-size: 15px;
     line-height: 1;
     letter-spacing: .03em;
     color: var(--ep-gold-champagne-mist);
     margin-bottom: 14px;
     font-family: var(--epsc-h2-font), serif;
     font-style: italic;
 }

 .ep-opc-cta {
     display: inline-block;
     margin-top: auto;
     padding: 7px 22px;
     font-size: 12px;
     letter-spacing: .10em;
     color: var(--ep-gold-champagne-mist) !important;
     -webkit-text-fill-color: var(--ep-gold-champagne-mist) !important;
     background: url('/img/bg/bg-chalkboard-charcoal.png') center / cover no-repeat;
     font-weight: 400;
     position: relative;
     isolation: isolate;
     box-shadow: 0 0 2px rgba(0,0,0,.25);
     transition: box-shadow .2s ease;
 }
 .ep-opc-cta::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .ep-opc-cta::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-chalkboard-charcoal.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-opc-card:hover .ep-opc-cta {
     box-shadow: 0 2px 6px rgba(0,0,0,.3);
 }

 .ep-opc-foot {
     margin-top: 28px;
     text-align: center;
 }

 .ep-opc-more {
     display: inline-block;
     min-width: 280px;
     padding: 12px 28px;
     color: var(--ep-gold-champagne-mist) !important;
     -webkit-text-fill-color: var(--ep-gold-champagne-mist) !important;
     font-size: 14px;
     letter-spacing: .10em;
     text-decoration: none !important;
     background: url('/img/bg/bg-chalkboard-charcoal.png') center / cover no-repeat;
     box-shadow: 0 0 2px rgba(0,0,0,.25);
     position: relative;
     isolation: isolate;
     transition: transform .2s ease, box-shadow .2s ease;
 }
 .ep-opc-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .ep-opc-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-chalkboard-charcoal.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-opc-more:hover {
     transform: translateY(-2px);
     box-shadow: 0 4px 12px rgba(0, 0, 0, .3);
 }

 @supports ((-webkit-background-clip: text) or (background-clip: text)) {
     .ep-opc-title {
         background: linear-gradient(180deg,
                 #ead39a 0%,
                 #BC955C 50%,
                 #a07d3f 100%) !important;
         -webkit-background-clip: text !important;
         background-clip: text !important;
         -webkit-text-fill-color: transparent !important;
         color: transparent !important;
         text-shadow: none !important;
     }
 }

 @media (max-width: 900px) {
     .ep-osaka-prime-collection {
         padding: 28px 14px;
     }

     .ep-opc-grid {
         grid-template-columns: 1fr;
         gap: 14px;
     }

     .ep-opc-title {
         font-size: 26px !important;
         letter-spacing: .12em !important;
     }

     .ep-opc-sub {
         font-size: 13px !important;
     }

     .ep-opc-divider {
         width: 80%;
     }
 }

 /* ==========================================================================
  Premium Residences
   ========================================================================== */
 .ep-premium-residences {
     width: 100%;
     max-width: 900px;
     margin: 24px auto 36px;
     padding: 40px 28px 36px;
     box-sizing: border-box;
     box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.5);
     position: relative;
     overflow: hidden;
 }

 .ep-premium-residences::before {
     content: "";
     position: absolute;
     inset: 0;
     background: url('/img/bg/bg-lux-marble-vertical.png') center center / cover no-repeat;
     background: -webkit-image-set(url('/img/avc/bg/bg-lux-marble-vertical.avif') type('image/avif'),
             url('/img/avc/bg/bg-lux-marble-vertical.webp') type('image/webp')) center center / cover no-repeat;
     background: image-set(url('/img/avc/bg/bg-lux-marble-vertical.avif') type('image/avif'),
             url('/img/avc/bg/bg-lux-marble-vertical.webp') type('image/webp')) center center / cover no-repeat;
     opacity: .45;
     z-index: 0;
 }

 .ep-premium-residences>* {
     position: relative;
     z-index: 1;
 }

 .ep-pr-head {
     text-align: center !important;
     margin-bottom: 28px !important;
     background: transparent !important;
     border: 0 !important;
     box-shadow: none !important;
     padding: 0 !important;
     position: relative;
 }

 .ep-premium-residences .ep-pr-title,
 .ep-premium-residences h2.ep-pr-title {
     all: unset !important;
     display: inline-block !important;
     margin: 0 0 6px !important;
     font-family: var(--epsc-h2-font) !important;
     font-size: 34px !important;
     line-height: 1.06 !important;
     letter-spacing: .18em !important;
     font-weight: 400 !important;
     text-transform: uppercase !important;
     color: #8f6a33 !important;
     text-shadow: none !important;
     position: relative;
     z-index: 5;
 }

 .ep-premium-residences .ep-pr-title::before,
 .ep-premium-residences .ep-pr-title::after {
     content: none !important;
 }

 .ep-premium-residences .ep-pr-title .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 @supports ((-webkit-background-clip: text) or (background-clip: text)) {

     .ep-premium-residences .ep-pr-title,
     .ep-premium-residences h2.ep-pr-title {
         background: linear-gradient(180deg,
                 #BC955C 0%,
                 #8f6a33 60%,
                 #6a4e22 100%) !important;
         -webkit-background-clip: text !important;
         background-clip: text !important;
         -webkit-text-fill-color: transparent !important;
         color: transparent !important;
         text-shadow: none !important;
     }
 }

 .ep-pr-sub {
     margin: 4px 0 0 !important;
     font-size: 16px !important;
     letter-spacing: .08em !important;
     color: #4a4035 !important;
     font-weight: 400 !important;
     font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
 }

 .ep-pr-lead {
     margin: 8px auto 0 !important;
     max-width: 48ch;
     font-size: 13.5px !important;
     line-height: 1.7 !important;
     letter-spacing: .03em !important;
     color: #5b5142 !important;
     font-weight: 400 !important;
     text-align: center !important;
 }

 .ep-pr-divider {
     width: 50px;
     height: 1px;
     background: linear-gradient(90deg, transparent, #b89a5a, transparent);
     margin: 16px auto 0;
 }

 /* POPULAR RANKINGS — 見出しを標準ショーケースタイトル(明地=英字セリフ・ゴールド)へ統一。
    グローバル h2 のダーク帯(::before/白文字)を打ち消し、.ep-pr-title と同一様式に揃える。 */
 .ep-rankhub .ep-rankhub-title,
 .ep-rankhub h2.ep-rankhub-title {
     all: unset !important;
     display: block !important;
     margin: 0 0 6px !important;
     text-align: center !important;
     font-family: var(--epsc-h2-font) !important;
     font-size: 34px !important;
     line-height: 1.06 !important;
     letter-spacing: .18em !important;
     font-weight: 400 !important;
     text-transform: uppercase !important;
     color: #8f6a33 !important;
 }

 .ep-rankhub .ep-rankhub-title::before,
 .ep-rankhub .ep-rankhub-title::after {
     content: none !important;
 }

 .ep-rankhub .ep-rankhub-title .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 @supports ((-webkit-background-clip: text) or (background-clip: text)) {
     .ep-rankhub .ep-rankhub-title,
     .ep-rankhub h2.ep-rankhub-title {
         background: linear-gradient(180deg, #BC955C 0%, #8f6a33 60%, #6a4e22 100%) !important;
         -webkit-background-clip: text !important;
         background-clip: text !important;
         -webkit-text-fill-color: transparent !important;
         color: transparent !important;
     }
 }

 .ep-rankhub .ep-rankhub-sub {
     font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
     letter-spacing: .08em !important;
 }

 @media (max-width: 640px) {
     .ep-rankhub .ep-rankhub-title,
     .ep-rankhub h2.ep-rankhub-title { font-size: 26px !important; }
 }

 .ep-pr-empty {
     margin: 12px 0 4px;
     text-align: center;
     color: #4d463d;
     font-size: 13px;
 }

 .ep-pr-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr));
     gap: 14px;
 }

 .ep-pr-card {
     border: none;
     background: rgba(255, 255, 255, 0.7);
     overflow: hidden;
     box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
     transition: transform .25s ease, box-shadow .25s ease;
 }
 .ep-pr-card:hover {
     transform: translateY(-3px);
     box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
 }

 .ep-pr-link {
     display: flex;
     flex-direction: column;
     height: 100%;
     color: inherit;
     text-decoration: none;
 }

 .ep-pr-media {
     margin: 8px 8px 0;
     aspect-ratio: 4 / 3;
     overflow: hidden;
     border-radius: 3px;
 }

 .ep-pr-media img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
     transition: transform .4s ease;
 }
 .ep-pr-card:hover .ep-pr-media img {
     transform: scale(1.04);
 }

 .ep-pr-media-empty {
     width: 100%;
     height: 100%;
     background: rgba(200, 190, 170, .2);
 }

 .ep-pr-body {
     margin: 0 8px 8px;
     padding: 12px 8px 14px;
     text-align: center;
     flex: 1;
     display: flex;
     flex-direction: column;
     align-items: center;
     border: 1px solid rgba(184, 154, 90, .35);
 }

 .ep-pr-name {
     margin: 0 0 6px !important;
     padding: 0 !important;
     border: none !important;
     font-size: 14px !important;
     line-height: 1.4 !important;
     color: #3a3530 !important;
     font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
     font-weight: 500 !important;
 }

 .ep-pr-member-only-mask {
     padding: 12px 8px;
     background: rgba(0, 0, 0, 0.03);
     border-radius: 4px;
     margin-top: 10px;
 }

 .ep-pr-member-note {
     font-size: 13px;
     color: #8f6a33;
     font-weight: 600;
     margin-bottom: 8px !important;
 }

 .ep-pr-member-link {
     display: inline-block;
     font-size: 11px;
     color: #fff;
     background: #8f6a33;
     padding: 4px 12px;
     text-decoration: none !important;
     border-radius: 2px;
     transition: opacity 0.2s;
 }

 .ep-pr-member-link:hover {
     opacity: 0.8;
 }

 .ep-pr-spec {
     font-size: 13px;
     line-height: 1.3;
     letter-spacing: .03em;
     color: #7a7168;
     margin-bottom: 4px;
 }
 .ep-pr-spec sup {
     font-size: 9px;
     vertical-align: super;
     line-height: 0;
 }

 .ep-pr-station {
     font-size: 12px;
     line-height: 1.3;
     letter-spacing: .02em;
     color: var(--ep-gold, #BC955C);
     margin-bottom: 6px;
 }

 .ep-pr-price {
     font-size: 18px;
     line-height: 1;
     letter-spacing: .01em;
     color: #7b592f !important;
     -webkit-text-fill-color: #7b592f !important;
     font-family: var(--epsc-h2-font), serif;
     font-weight: 700;
     margin-bottom: 10px;
 }

 .ep-pr-cta {
     display: inline-block;
     margin-top: auto;
     padding: 7px 36px;
     font-size: 12px;
     letter-spacing: .06em;
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     background: url('/img/bg/bg-suede-pearl.png') center / cover no-repeat;
     font-weight: 400;
     text-align: center;
     position: relative;
     isolation: isolate;
     box-shadow: 0 0 2px rgba(0,0,0,.25);
     transition: box-shadow .2s ease;
 }
 .ep-pr-cta::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(210,210,210,.8) 0%, rgba(180,180,180,.8) 50%, rgba(150,150,150,.8) 100%);
     z-index: -2;
 }
 .ep-pr-cta::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-suede-pearl.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-pr-card:hover .ep-pr-cta {
     box-shadow: 0 2px 6px rgba(0,0,0,.3);
 }

 .ep-pr-foot {
     margin-top: 24px;
     text-align: center;
 }

 .ep-pr-more {
     display: inline-block;
     min-width: 280px;
     padding: 12px 28px;
     color: #4a3d2d !important;
     -webkit-text-fill-color: #4a3d2d !important;
     font-size: 14px;
     letter-spacing: .08em;
     text-decoration: none !important;
     background: url('/img/bg/bg-suede-pearl.png') center / cover no-repeat;
     box-shadow: 0 0 2px rgba(0,0,0,.15);
     position: relative;
     isolation: isolate;
     transition: transform .2s ease, box-shadow .2s ease;
 }
 .ep-pr-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(210,210,210,.8) 0%, rgba(180,180,180,.8) 50%, rgba(150,150,150,.8) 100%);
     z-index: -2;
 }
 .ep-pr-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-suede-pearl.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-pr-more:hover {
     transform: translateY(-2px);
     box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
     color: #2a2218 !important;
     -webkit-text-fill-color: #2a2218 !important;
 }

 /* Legacy investment score (kept for other pages) */
 .ep-investment-score-ranking .ep-investment-score-rank {
     margin-bottom: 4px; font-size: 12px; letter-spacing: .12em; color: #8f6a33; font-weight: 600;
 }
 .ep-investment-score-ranking .ep-investment-score-total {
     margin-bottom: 4px; font-size: 13px; color: #5a4930; letter-spacing: .04em; font-weight: 600;
 }
 .ep-investment-score-ranking .ep-investment-score-breakdown {
     display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 8px; margin-bottom: 4px; font-size: 11px; color: #6a645c;
 }
 .ep-investment-score-ranking .ep-investment-score-breakdown span { white-space: nowrap; }
 .ep-investment-score-ranking .ep-investment-score-value {
     margin-bottom: 6px; font-size: 12px; color: #5b564f;
 }

 @media (max-width: 900px) {
     .ep-pr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }
 @media (max-width: 520px) {
     .ep-premium-residences { padding-left: 8px; padding-right: 8px; }
     .ep-pr-title { font-size: 28px !important; }
     .ep-pr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
     .ep-pr-name { font-size: 12px !important; }
     .ep-pr-price { font-size: 14px; }
     .ep-pr-spec { font-size: 11px; }
     .ep-pr-cta { padding: 5px 12px; font-size: 10px; }
     .signature-more,
     .ep-opc-more,
     .ep-pr-more {
         min-width: 0;
         max-width: 100%;
         padding: 10px 16px;
         font-size: 12px;
         box-sizing: border-box;
     }
 }

 /* ==========================================================================
  NEW ARRIVALS (ep-new-arrivals)
   ========================================================================== */
 .ep-new-arrivals.ep-premium-residences::before {
     background: url('/img/bg/bg-geometric-white-layers.png') center center / cover no-repeat !important;
     opacity: 1;
 }
 .ep-new-arrivals .ep-pr-cta {
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     border: none;
     isolation: isolate;
 }
 .ep-new-arrivals .ep-pr-cta::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .ep-new-arrivals .ep-pr-cta::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-new-arrivals .ep-pr-more {
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     border: none;
     isolation: isolate;
 }
 .ep-new-arrivals .ep-pr-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .ep-new-arrivals .ep-pr-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     z-index: -1;
 }

 .ep-na-card {
     position: relative;
 }
 .ep-na-badge {
     position: absolute;
     top: 12px;
     left: 12px;
     z-index: 5;
     padding: 3px 10px;
     font-size: 10px;
     font-weight: 700;
     letter-spacing: .06em;
     color: #fff;
     border-radius: 2px;
     line-height: 1.4;
 }
 .ep-na-badge.is-rent {
     background: var(--ep-rent, #632C2F);
 }
 .ep-na-badge.is-sale {
     background: var(--ep-sale, #1A4963);
 }
 .ep-na-badge.is-oc {
     background: var(--ep-owner-change, #2B6F8E);
 }

 /* ==========================================================================
  OSAKA INVESTMENT INDEX (ep-oti) — PREMIUM RESIDENCES ベースレイアウト
   ========================================================================== */

 /* OTI背景 */
 .ep-oti.ep-premium-residences::before {
     background: url('/img/bg/bg-lux-wave-light.png') center center / cover no-repeat !important;
     opacity: .6;
 }

 /* OTI見出し — stormy-blue に合うグラデーション */
 .ep-oti .ep-pr-title,
 .ep-oti h2.ep-pr-title {
     background: linear-gradient(180deg,
             #4e6a7a 0%,
             #35505f 50%,
             #243a48 100%) !important;
     -webkit-background-clip: text !important;
     background-clip: text !important;
     -webkit-text-fill-color: transparent !important;
     color: transparent !important;
     text-shadow: none !important;
 }
 .ep-oti .ep-pr-sub {
     color: #35505f !important;
 }
 .ep-oti .ep-pr-divider {
     background: linear-gradient(90deg, transparent, #4e6a7a, transparent);
 }

/* OTI cards — top-page card base with quieter investment meta */
.ep-oti-card {
    position: relative;
}
.ep-oti .ep-pr-card {
    margin-top: 0;
    background: url('/img/bg/bg-plaster-cool-white.png') center / cover no-repeat, rgba(255,255,255,.5);
    background-blend-mode: lighten;
}
.ep-oti .ep-pr-body {
    border-color: rgba(78, 106, 122, .3) !important;
}
.ep-oti .ep-oti-kicker {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #4e6a7a;
}
.ep-oti .ep-oti-kicker strong {
    font-size: 16px;
    letter-spacing: 0;
    color: #243a48;
    font-family: var(--epsc-h2-font), serif;
}
.ep-oti .ep-pr-price {
    color: #35505f !important;
    -webkit-text-fill-color: #35505f !important;
}
 .ep-oti .ep-pr-name {
     color: #243a48 !important;
     -webkit-text-fill-color: #243a48 !important;
 }
 .ep-oti .ep-pr-spec {
     color: #4e6a7a;
 }
 .ep-oti .ep-pr-station {
     color: #6b8a9c;
 }
 .ep-oti .ep-oti-scores {
     color: #4e6a7a;
 }
 .ep-oti .ep-oti-score-total {
     color: #35505f;
 }
 .ep-oti .ep-oti-score-total strong {
     color: #243a48;
 }
 .ep-oti .ep-oti-yield {
     color: #35505f;
 }
 .ep-oti .ep-oti-yield strong {
     color: #243a48;
 }

 /* OTI ボタン — bg-slate-dark-blue + inner silver border */
 .ep-oti .ep-pr-cta {
     color: #fff !important;
     -webkit-text-fill-color: #fff !important;
     background: url('/img/bg/bg-slate-dark-blue.png') center / cover no-repeat;
     border: none;
     isolation: isolate;
 }
 .ep-oti .ep-pr-cta::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(210,210,210,.8) 0%, rgba(180,180,180,.8) 50%, rgba(150,150,150,.8) 100%);
     z-index: -2;
 }
 .ep-oti .ep-pr-cta::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-slate-dark-blue.png') center / cover no-repeat;
     z-index: -1;
 }

 .ep-oti .ep-pr-more {
     color: #fff !important;
     -webkit-text-fill-color: #fff !important;
     background: url('/img/bg/bg-slate-dark-blue.png') center / cover no-repeat;
     border: none;
     isolation: isolate;
 }
 .ep-oti .ep-pr-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(210,210,210,.8) 0%, rgba(180,180,180,.8) 50%, rgba(150,150,150,.8) 100%);
     z-index: -2;
 }
 .ep-oti .ep-pr-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-slate-dark-blue.png') center / cover no-repeat;
     z-index: -1;
 }

 /* スコア内訳 */
 .ep-oti-scores {
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     gap: 2px 8px;
     margin-bottom: 4px;
     font-size: 11px;
     color: #6a645c;
     letter-spacing: .03em;
 }
 .ep-oti-scores span {
     white-space: nowrap;
 }
 .ep-oti-score-total {
     color: #5a4930;
     font-weight: 600;
 }
 .ep-oti-score-total strong {
     font-size: 13px;
     color: #3a2e1a;
 }

 /* 利回り表示 */
 .ep-oti-yield {
     font-size: 13px;
     color: #5a4930;
     margin-bottom: 6px;
 }
 .ep-oti-yield strong {
     font-weight: 700;
     color: #2a2520;
 }

 /* Listing count bar */
 /* Trust section — single inline listing count line */
 .trust-listing-count {
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     align-items: baseline;
     gap: 2px 14px;
     margin: 4px 0 0;
 }
 .trust-lc-title {
     margin: 0 !important;
     font-size: 11px;
     letter-spacing: .08em;
     color: #a09080;
     font-family: var(--ep-font-serif);
 }
 .trust-lc-item {
     color: #8a7a60;
     font-size: 11px;
     padding: 0;
     border: none;
     white-space: nowrap;
 }
 .trust-lc-label {
     display: inline;
     font-size: 11px;
     letter-spacing: .04em;
     color: #a09080;
     margin: 0 3px 0 0;
 }
 .trust-lc-num {
     font-family: var(--epsc-h2-font), serif;
     font-size: 15px;
     font-weight: 700;
     color: #7b592f;
     line-height: 1;
     margin: 0 1px;
 }
 .trust-lc-item.is-total .trust-lc-label {
     color: var(--ep-gold);
 }
 .trust-lc-item.is-total .trust-lc-num {
     color: var(--ep-gold);
     font-size: 16px;
 }
 .trust-lc-item.is-total {
     color: var(--ep-gold);
 }
 @media (max-width: 520px) {
     .trust-listing-count { gap: 2px 10px; }
     .trust-lc-num { font-size: 14px; }
     .trust-lc-item.is-total .trust-lc-num { font-size: 15px; }
 }

 /* Old standalone listing count — hidden */
 .ep-listing-count {
     display: none;
 }
 .ep-listing-count-inner {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 0;
     flex-wrap: wrap;
 }
 .ep-listing-count-title {
     margin: 0;
     font-size: 12px;
     letter-spacing: .08em;
     color: #8a7a60;
     font-weight: 500;
     font-family: var(--ep-font-serif);
     width: 100%;
     margin-bottom: 12px;
 }
 .ep-listing-count-nums {
     display: flex;
     gap: 0;
     align-items: stretch;
 }
 .ep-listing-count-item {
     color: #6a645c;
     font-size: 11px;
     text-align: center;
     padding: 0 20px;
     border-right: 1px solid rgba(184, 154, 90, .25);
 }
 .ep-listing-count-item:last-child {
     border-right: none;
 }
 .ep-listing-count-label {
     display: block;
     font-size: 10px;
     letter-spacing: .08em;
     color: #8a7a60;
     margin-bottom: 4px;
 }
 .ep-listing-count-num {
     font-family: var(--epsc-h2-font), serif;
     font-size: 24px;
     font-weight: 700;
     color: #7b592f;
     line-height: 1;
     display: block;
     margin-bottom: 2px;
 }
 .ep-listing-count-unit {
     font-size: 10px;
     color: #8a7a60;
 }
 .ep-listing-count-item.is-total {
     font-weight: 600;
 }
 .ep-listing-count-item.is-total .ep-listing-count-label {
     color: var(--ep-gold);
 }
 .ep-listing-count-item.is-total .ep-listing-count-num {
     color: var(--ep-gold);
     font-size: 28px;
 }
 @media (max-width: 520px) {
     .ep-listing-count-item { padding: 0 12px; }
     .ep-listing-count-num { font-size: 20px; }
     .ep-listing-count-item.is-total .ep-listing-count-num { font-size: 24px; }
 }

 /* Badge — 丸型、bg-slate-stormy-blue + inner silver border */
 .ep-oti-card {
     position: relative;
 }
 .ep-oti-badge {
     position: absolute;
     top: 4px;
     left: 4px;
     z-index: 10;
     width: 56px;
     height: 56px;
     border-radius: 50%;
     background: url('/img/bg/bg-slate-stormy-blue.png') center / cover no-repeat;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     box-shadow: 0 2px 6px rgba(0,0,0,.15);
     isolation: isolate;
 }
 .ep-oti-badge::before {
     content: "";
     position: absolute;
     inset: 2px;
     border-radius: 50%;
     background: linear-gradient(135deg, rgba(210,210,210,.8) 0%, rgba(180,180,180,.8) 50%, rgba(150,150,150,.8) 100%);
     z-index: -2;
 }
 .ep-oti-badge::after {
     content: "";
     position: absolute;
     inset: 3px;
     border-radius: 50%;
     background: url('/img/bg/bg-slate-stormy-blue.png') center / cover no-repeat;
     z-index: -1;
 }
 .ep-oti-badge-score {
     font-size: 20px;
     font-weight: 700;
     line-height: 1;
     color: #fff;
     font-family: var(--epsc-h2-font), serif;
 }
 .ep-oti-badge-decimal {
     font-size: 12px;
     font-weight: 600;
 }
 .ep-oti-badge-label {
     font-size: 7px;
     letter-spacing: .04em;
     color: rgba(255,255,255,.7);
     margin-top: 1px;
 }

 /* OTI overview and metric bars */
 .ep-oti-overview {
     display: flex;
     align-items: flex-end;
     justify-content: space-between;
     gap: 24px;
     margin: 0 auto 18px;
     padding: 18px 20px;
     border: 1px solid rgba(184,154,90,.24);
     background: rgba(255,255,255,.78);
 }
 .ep-oti-overview-main { min-width: 0; }
 .ep-oti-overview-kicker {
     display: block;
     margin-bottom: 6px;
     color: var(--epsc-gold, #b89a5a);
     font-size: 10px;
     font-weight: 700;
     letter-spacing: .12em;
 }
 .ep-oti-overview h3 {
     margin: 0 0 7px;
     color: #283746;
     font-size: 20px;
     line-height: 1.45;
 }
 .ep-oti-overview p {
     max-width: 760px;
     margin: 0;
     color: #5e6870;
     font-size: 13px;
     line-height: 1.8;
 }
 .ep-oti-overview-meta {
     flex: 0 0 auto;
     min-width: 92px;
     padding-left: 18px;
     border-left: 1px solid rgba(39,55,70,.14);
     color: #59636c;
     font-size: 11px;
     text-align: right;
 }
 .ep-oti-overview-meta strong,
 .ep-oti-overview-meta span { display: block; }
 .ep-oti-overview-meta span { margin-top: 4px; color: #283746; font-size: 14px; font-weight: 700; }
 .ep-oti-method {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 8px;
     margin: 0 auto 22px;
 }
 .ep-oti-method-item {
     display: flex;
     flex-direction: column;
     gap: 3px;
     min-width: 0;
     padding: 10px 12px;
     border-left: 2px solid rgba(184,154,90,.6);
     background: rgba(255,255,255,.52);
 }
 .ep-oti-method-item strong { color: #344553; font-size: 12px; }
 .ep-oti-method-item span { color: #727b82; font-size: 10px; line-height: 1.45; }
 .ep-oti-metrics {
     display: grid;
     gap: 5px;
     margin: 13px 0 12px;
 }
 .ep-oti-metric {
     display: grid;
     grid-template-columns: minmax(0, 1fr) auto;
     gap: 4px 8px;
     color: #69747c;
     font-size: 10px;
 }
 .ep-oti-metric-value { color: #344553; font-variant-numeric: tabular-nums; }
 .ep-oti-meter {
     grid-column: 1 / -1;
     display: block;
     height: 4px;
     overflow: hidden;
     background: rgba(40,55,70,.12);
 }
 .ep-oti-meter i { display: block; height: 100%; background: linear-gradient(90deg, #b89a5a, #d8bd7c); }
 @media (max-width: 700px) {
     .ep-oti-overview { align-items: flex-start; flex-direction: column; gap: 12px; }
     .ep-oti-overview-meta { width: 100%; padding: 10px 0 0; border-top: 1px solid rgba(39,55,70,.14); border-left: 0; text-align: left; }
     .ep-oti-overview-meta span { display: inline; margin-left: 8px; }
     .ep-oti-method { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }

 /* ==========================================================================
  UPCOMING TOWERS
   ========================================================================== */
 .ep-upcoming-towers {
     max-width: 900px;
     margin: 24px auto 36px;
     padding: 40px 28px 36px;
     box-sizing: border-box;
     box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.5);
     position: relative;
     overflow: hidden;
 }
 .ep-upcoming-towers::before {
     content: "";
     position: absolute;
     inset: 0;
     background: url('/img/bg/bg-lux-wave-light.png') center center / cover no-repeat;
     opacity: .5;
     z-index: 0;
 }
 .ep-upcoming-towers > * {
     position: relative;
     z-index: 1;
 }

 .ep-upcoming-head {
     text-align: center;
     margin-bottom: 24px;
 }

 .ep-upcoming-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 14px;
 }

 .ep-upcoming-card {
     background: rgba(255,255,255,.7);
     border: 1px solid rgba(184, 154, 90, .2);
     overflow: hidden;
     box-shadow: 0 2px 6px rgba(0,0,0,.08);
     transition: transform .25s ease, box-shadow .25s ease;
 }
 .ep-upcoming-card:hover {
     transform: translateY(-3px);
     box-shadow: 0 6px 18px rgba(0,0,0,.14);
 }

 .ep-upcoming-link {
     display: flex;
     flex-direction: column;
     height: 100%;
     color: inherit !important;
     text-decoration: none !important;
 }

 .ep-upcoming-media {
     position: relative;
     aspect-ratio: 4 / 3;
     overflow: hidden;
 }
 .ep-upcoming-media img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
     transition: transform .4s ease;
 }
 .ep-upcoming-card:hover .ep-upcoming-media img {
     transform: scale(1.04);
 }
 .ep-upcoming-placeholder {
     width: 100%;
     height: 100%;
     background: rgba(200,190,170,.15);
 }

 .ep-upcoming-badge {
     position: absolute;
     top: 6px;
     left: 6px;
     padding: 3px 8px;
     font-size: 10px;
     font-weight: 600;
     letter-spacing: .03em;
     color: #fff;
     background: rgba(44, 56, 61, .85);
     border: 1px solid rgba(184, 154, 90, .4);
 }

 .ep-upcoming-body {
     padding: 10px 10px 12px;
     flex: 1;
     display: flex;
     flex-direction: column;
 }

 .ep-upcoming-name {
     all: unset !important;
     display: block !important;
     font-family: var(--ep-font-serif) !important;
     font-size: 13px !important;
     font-weight: 600 !important;
     color: #2a2520 !important;
     line-height: 1.35 !important;
     margin: 0 0 4px !important;
     border: none !important;
     padding: 0 !important;
 }

 .ep-upcoming-meta {
     margin: 0 !important;
     font-size: 11px;
     color: #7a7168;
     line-height: 1.4;
 }

 /* 特集ページへの導線ボタン（[ep_upcoming_towers more_url="..."]）。
    セクション背景が NEW ARRIVALS と同じ bg-lux-wave-light のため、
    ボタンの質感もそちらの金系バリアントに合わせる。 */
 .ep-upcoming-towers .ep-pr-more {
     color: #3b2f1b !important;
     -webkit-text-fill-color: #3b2f1b !important;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     border: none;
     isolation: isolate;
 }
 .ep-upcoming-towers .ep-pr-more::before {
     content: "";
     position: absolute;
     inset: 2px;
     background: linear-gradient(135deg, rgba(232,213,170,.8) 0%, rgba(196,173,122,.8) 50%, rgba(160,138,96,.8) 100%);
     z-index: -2;
 }
 .ep-upcoming-towers .ep-pr-more::after {
     content: "";
     position: absolute;
     inset: 3px;
     background: url('/img/bg/bg-lux-wave-light.png') center / cover no-repeat;
     z-index: -1;
 }

 @media (max-width: 900px) {
     .ep-upcoming-grid {
         grid-template-columns: repeat(3, minmax(0, 1fr));
     }
 }
 @media (max-width: 520px) {
     .ep-upcoming-towers {
         padding: 28px 8px;
     }
     .ep-upcoming-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         gap: 8px;
     }
     .ep-upcoming-name {
         font-size: 11px !important;
     }
     .ep-upcoming-meta {
         font-size: 10px;
     }
 }

/* =========================================================================
   スマホ(≤600px)での表示件数の絞り込み / セクション非表示
   - SIGNATURE TOWERS: 1件(中央のヒーロー=rank1のみ)
   - OSAKA PRIME COLLECTION: 1件
   - PREMIUM RESIDENCES: 2件
   - OSAKA TOWER INDEX(投資適正スコア): 2件
   - NEW ARRIVALS(新着): 4件
   - EXPLORE BY AREA 等 hide_sp 指定セクション: 非表示
   ========================================================================= */
@media (max-width: 600px) {
    /* SIGNATURE TOWERS — 中央(nth-child 2 = ランキング1位)の1枚だけ表示 */
    .signature-grid { grid-template-columns: 1fr !important; }
    .signature-grid .sig-card { display: none !important; }
    .signature-grid .sig-card:nth-child(2) {
        display: block !important;
        grid-column: auto !important;
        order: 0 !important;
    }

    /* OSAKA PRIME COLLECTION — 先頭1枚だけ表示 */
    .ep-osaka-prime-collection .ep-opc-grid { grid-template-columns: 1fr !important; }
    .ep-osaka-prime-collection .ep-opc-card:nth-child(n+2) { display: none !important; }

    /* PREMIUM RESIDENCES — 2枚まで */
    /* カードは article。グリッド内に <style>(ep-room-locked-css) が混ざることがあるため
       nth-child だと 1件ずれる。カード枚数で数える nth-of-type を使う。 */
    .ep-pr-showcase .ep-pr-card:nth-of-type(n+3) { display: none !important; }

    /* OSAKA TOWER INDEX(投資適正スコア) — 2枚まで */
    .ep-oti .ep-pr-card:nth-of-type(n+3) { display: none !important; }

    /* NEW ARRIVALS(新着) — 4枚まで */
    .ep-new-arrivals .ep-pr-card:nth-of-type(n+5) { display: none !important; }

    /* hide_sp 指定セクション(EXPLORE BY AREA 等)は非表示 */
    .ep-fc-hide-sp { display: none !important; }
}

/* ============================================================
   2026-08-07 UPCOMING TOWERS 見出し・背景の是正。
   ①黒帯の正体: テーマのグローバル `header{background-color:#000!important;color:#fff!important}`
     （サイトヘッダー用）が <header class="ep-upcoming-head"> に漏れて黒帯化していた。
     specificity(0,1,0)+!important で打ち消す。
   ②波テクスチャ(bg-lux-wave-light.png)＋重厚影も廃し、クリーンな明地セクションへ。
   ③見出し .ep-opc-title はダーク地用の明ゴールドだったため、明地では低コントラスト。
     明地用ディープゴールド(.ep-pr-title相当)へ差し替え。
   ============================================================ */
.ep-upcoming-head {
    background: transparent !important;
    color: inherit !important;
}
.ep-upcoming-towers {
    background: #F4F2EE !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .07) !important;
    border: 1px solid rgba(188, 149, 92, .18);
}
.ep-upcoming-towers::before {
    background: none !important;
}
.ep-upcoming-towers .ep-opc-title {
    color: #8f6a33 !important;
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .ep-upcoming-towers .ep-opc-title {
        background: linear-gradient(180deg, #BC955C 0%, #8f6a33 60%, #6a4e22 100%) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
    }
}
.ep-upcoming-towers .ep-opc-sub {
    color: #5b5142 !important;
}
