/**
 * Virtual Pages Styles (Building & Room)
 *
 * Styles specific to:
 * - Building Details Page (/物件情報/{建物名}/)
 * - Room Details Page (/物件情報/{建物名}/{部屋ID}/)
 */

/* Hide empty theme titles on virtual pages */
h1.wp-block-post-title:empty {
    display: none !important;
}

/* Remove unwanted top margin on virtual pages */
#wp--skip-link--target {
    margin-top: 0 !important;
}

#wp--skip-link--target > div {
    padding-top: 0 !important;
}

/* ==========================================================================
   Hero Section - Full Width
   ========================================================================== */
section.ep-room-hero,
section.ep-building-hero {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: 100vw;
    box-sizing: border-box;
}

/* ==========================================================================
   Hero Media & Overlay Structure
   ========================================================================== */

/* Hero media as positioning context */
.ep-hero-media {
    position: relative;
    overflow: hidden;
}

/* Overlay covers entire hero */
.ep-hero-overlay {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 1;
    isolation: isolate;
}

/* Text always above overlay */
.ep-hero-body {
    position: relative;
    z-index: 2;
    max-width: 1140px;
    margin: 0 auto !important;
    width: 100%;
    box-sizing: border-box;
    padding-left: 24px;
    padding-right: 24px;
}

/* Language switcher */
.ep-lang-switch {
    position: absolute;
    top: 8px;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end;
    z-index: 5;
}

.ep-lang-switch ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    gap: 6px;
}

.ep-lang-switch-item {
    display: inline-block;
    padding: 3px 8px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .88);
    background: rgba(20, 26, 32, .58);
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 4px;
    text-decoration: none;
}

.ep-lang-switch-item:hover {
    background: rgba(188, 149, 92, .28);
    border-color: rgba(188, 149, 92, .8);
    color: #fff;
}

.ep-lang-switch-item.is-current {
    background: rgba(188, 149, 92, .35);
    border-color: rgba(188, 149, 92, .95);
    color: #fff;
    font-weight: 600;
}

/* ==========================================================================
   Hero Particles (JS-generated)
   ========================================================================== */

@keyframes epParticleMove {
    0%   { transform: translateX(-30vw); }
    100% { transform: translateX(130vw); }
}

@keyframes epParticleOpacity {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .ep-hero-media.is-animated .ep-hero-overlay::before {
        animation: none;
        opacity: 0.3;
    }
}

@media (max-width: 640px) {
    .ep-lang-switch {
        top: 6px;
        padding: 0 12px;
    }
    .ep-lang-switch-item {
        padding: 3px 6px;
        font-size: 10px;
    }
}

/* ==========================================================================
   Hero Background Animation
   ========================================================================== */

/* Initial state for Background */
.ep-hero-media::before {
    transform: scale(1.3) !important;
    filter: blur(15px) brightness(0.4) saturate(0.1) !important;
    opacity: 0;
    transition: transform 2.0s cubic-bezier(0.16, 1, 0.3, 1),
                filter 1.5s ease-out,
                opacity 1.2s ease-in-out;
}

/* Animated state for Background */
.ep-hero-media.is-animated::before {
    transform: scale(1.1) !important;
    filter: blur(6px) brightness(0.6) saturate(0.3) !important;
    opacity: 1;
}

/* ==========================================================================
   Hero Title Animation
   ========================================================================== */

/* Initial state for H1 */
.ep-hero-media h1.ep-hero-title {
    opacity: 0 !important;
    transform: translateX(-35vw) scale(0.95) !important;
    filter: blur(10px) !important;
    transition:
        opacity 1.0s ease-out,
        transform 1.2s cubic-bezier(0.2, 1, 0.3, 1),
        filter 1.2s ease-out !important;
    transition-delay: 0.3s !important;
}

/* Animated state for H1 */
.ep-hero-media h1.ep-hero-title.is-animated {
    opacity: 1 !important;
    transform: translateX(0) scale(1) !important;
    filter: blur(0) !important;
}

/* English title under H1 slides from right */
.ep-hero-media .ep-hero-title-en {
    margin: 0 0 8px;
    font-family: "Cormorant Garamond", "Cinzel", "Times New Roman", serif;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: rgba(255, 255, 255, 0.8) !important;
    opacity: 0 !important;
    transform: translateX(35vw) !important;
    transition: opacity 0.9s ease-out, transform 1.1s cubic-bezier(0.2, 1, 0.3, 1) !important;
    transition-delay: 0.45s !important;
}

.ep-hero-media .ep-hero-title-en::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 1px;
    background: #BC955C;
    opacity: .7;
    margin-right: 10px;
    transform: translateY(-.25em);
}

.ep-hero-media .ep-hero-title-en.is-animated {
    opacity: 1 !important;
    transform: translateX(0) !important;
}

/* P tags appear after H1 */
.ep-hero-media .ep-hero-body p:not(.ep-hero-title-en) {
    opacity: 0 !important;
    transform: translateY(6px) !important;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out !important;
    transition-delay: 0.9s !important;
}

.ep-hero-media .ep-hero-body.p-animated p:not(.ep-hero-title-en) {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* ==========================================================================
   Building Page
   ========================================================================== */
/* Add building specific styles here */


/* ==========================================================================
   Room Page
   ========================================================================== */
.ep-room .ep-room-hero .ep-hero-body {
    position: relative;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.ep-room-hero-cta {
    display: none;
}

.ep-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.ep-contact-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 86px;
    padding: 16px 18px;
    border: 1px solid rgba(188, 149, 92, 0.28);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 244, 237, 0.98) 100%);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(34, 34, 34, 0.06);
}

.ep-contact-card strong {
    display: block;
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    color: #2d2417;
}

.ep-contact-card span {
    display: block;
    font-size: 13px;
    line-height: 1.5;
    color: #5d5446;
}

.ep-contact-card.is-primary {
    background: linear-gradient(135deg, rgba(232, 213, 170, 0.92) 0%, rgba(196, 173, 122, 0.95) 100%);
    border-color: rgba(160, 138, 96, 0.45);
}

.ep-contact-card.is-primary strong,
.ep-contact-card.is-primary span {
    color: #2b2010;
}

.ep-contact-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(34, 34, 34, 0.10);
}

@media (max-width: 640px) {
    .ep-contact-grid {
        gap: 10px;
    }

    .ep-contact-card {
        min-height: 76px;
        padding: 14px 12px;
    }

    .ep-contact-card strong {
        font-size: 14px;
    }

    .ep-contact-card span {
        font-size: 12px;
    }
}

@media (min-width: 961px) {
    .ep-room-hero-cta {
        position: absolute;
        right: 24px;
        bottom: 28px;
        z-index: 4;
        display: flex;
        gap: 6px;
        align-items: center;
    }

    .ep-room-hero-cta-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: auto;
        padding: 5px 10px;
        border-radius: 4px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: .02em;
        text-decoration: none;
        backdrop-filter: blur(4px);
        box-shadow: none;
        transition: background-color .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
    }

    .ep-room-hero-cta-btn:hover {
        opacity: 1;
    }

    .ep-room-hero-cta-btn.is-primary {
        color: rgba(255, 255, 255, .88) !important;
        background: rgba(20, 26, 32, .58);
        border: 1px solid rgba(255, 255, 255, .35);
    }

    .ep-room-hero-cta-btn.is-primary:hover {
        background: rgba(188, 149, 92, .28);
        border-color: rgba(188, 149, 92, .8);
        color: #fff !important;
    }
}

div.roomsummary {
    margin-top: var(--wp--preset--spacing--20) !important;
}

/* ==========================================================================
   Mobile — Building Detail Bottom Nav & Layout Fixes
   ========================================================================== */
/* 追従ボトムナビはモバイル専用。PC(>640px)では非表示。
   (以前は base 非表示ルールが無く、PCで本文末尾に通常フローで表示されていた) */
.ep-bottom-nav { display: none; }

@media (max-width: 640px) {
    body.ep-has-bottom-nav {
        padding-bottom: 74px;
    }

    .ep-detail-parking .columns2 {
        columns: 1 !important;
        -webkit-columns: 1 !important;
        -moz-columns: 1 !important;
    }

    .ep-detail-parking .dlline {
        display: block !important;
        overflow: visible !important;
    }
    .ep-detail-parking .dlline dt,
    .ep-detail-parking .dlline dd {
        float: none !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 .4em 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }
    .ep-detail-parking .dlline dt {
        letter-spacing: normal !important;
        text-align: left !important;
        text-align-last: left !important;
    }
    .ep-detail-parking .dlline dd {
        margin-bottom: 1em !important;
    }

    .ep-bottom-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1000;
        display: grid;
        /* 先頭へ | 売買一覧 | 賃貸一覧 | お問い合わせ */
        grid-template-columns: .72fr 1fr 1fr 1.3fr;
        background: rgba(12, 18, 24, .96);
        border-top: 2px solid var(--ep-gold, #BC955C);   /* ゴールドの視認アクセントで存在感UP */
        box-shadow: 0 -4px 18px rgba(0, 0, 0, .30);
        backdrop-filter: blur(8px);
    }
    .ep-bottom-nav a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: 60px;
        color: var(--ep-white, #fff);
        font-size: 13px;
        font-weight: 600;
        letter-spacing: .02em;
        line-height: 1.25;
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
        transition: background .15s ease;
    }
    .ep-bottom-nav a:active {
        background: rgba(255, 255, 255, .12);
    }
    .ep-bottom-nav a + a {
        border-left: 1px solid rgba(255, 255, 255, .12);
    }
    .ep-bottom-nav-count {
        font-size: 11px;
        font-weight: 700;
        color: var(--ep-gold, #BC955C);   /* 件数をゴールドで強調 */
    }
    .ep-bottom-nav-ico {
        font-size: 18px;
        line-height: 1;
        color: var(--ep-gold, #BC955C);
    }
    .ep-bottom-nav-top {
        font-size: 12px;
    }
    .ep-bottom-nav a.ep-bottom-nav-primary {
        /* §17.4 Primary準拠: ink地×ゴールド文字（旧: ゴールド地×白文字でコントラスト不足）。
           gold #BC955C on #111 ≈ 5.6:1 で判読良好 */
        background: var(--ep-ink, #111);
        color: var(--ep-gold, #BC955C) !important;
        font-weight: 700;
        font-size: 14px;
        letter-spacing: .06em;
    }
    .ep-bottom-nav-spacer {
        height: 74px;
    }

    .ep-chatbot-widget {
        bottom: calc(72px + env(safe-area-inset-bottom, 0px) + 28px) !important;
        right: 12px !important;
    }
.ep-chatbot-container-floating {
        bottom: calc(72px + env(safe-area-inset-bottom, 0px) + 96px) !important;
    }
}

.ep-room .ep-room-building-parking .ep-detail,
.ep-room .ep-room-building-description .ep-detail,
.ep-room .ep-room-building-points .ep-detail,
.ep-room .ep-building-faq .ep-detail,
.ep-room .ep-building-poi .ep-detail,
.ep-room .ep-building-school-district .ep-detail {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.ep-room .ep-room-building-parking,
.ep-room .ep-room-building-description,
.ep-room .ep-room-building-points,
.ep-room .ep-building-faq,
.ep-room .ep-building-poi,
.ep-room .ep-building-school-district {
    margin-top: 40px;
}

.ep-room .ep-room-building-parking .ep-summary-body,
.ep-room .ep-room-building-description .ep-summary-body,
.ep-room .ep-room-building-points .ep-summary-body,
.ep-room .ep-building-faq .ep-summary-body,
.ep-room .ep-building-poi .ep-summary-body,
.ep-room .ep-building-school-district .ep-summary-body {
    padding: 0;
}

.ep-room .ep-poi-items,
.ep-building .ep-poi-items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}

.ep-room .ep-poi-card,
.ep-building .ep-poi-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0;
    overflow: hidden;
    background: #fff;
    text-decoration: none;
    color: #2f3a43;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow .2s ease, transform .2s ease;
}

.ep-room .ep-poi-card:hover,
.ep-building .ep-poi-card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.ep-room .ep-poi-card-img-wrap,
.ep-building .ep-poi-card-img-wrap {
    width: 100%;
    height: 95px;
    background: #f3f5f7;
    overflow: hidden;
}

.ep-room .ep-poi-card-img,
.ep-building .ep-poi-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ep-room .ep-poi-card-body,
.ep-building .ep-poi-card-body {
    padding: 6px 8px 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ep-room .ep-poi-card-genre,
.ep-building .ep-poi-card-genre {
    font-size: 0.68rem;
    color: #6f6558;
}

.ep-room .ep-poi-card-name,
.ep-building .ep-poi-card-name {
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.45;
    color: #2f3a43;
}

.ep-room .ep-poi-card-dist,
.ep-building .ep-poi-card-dist {
    font-size: 0.7rem;
    color: #7d7263;
}

.ep-room .ep-poi-more,
.ep-building .ep-poi-more {
    margin-top: 14px;
}

.ep-room .ep-room-brand-related {
    margin-top: 40px;
}

.ep-room .ep-room-invest {
    margin-top: 40px;
}

.ep-room .ep-room-invest h3 {
    margin: 0 0 14px;
}

/* Investment glossary */
.ep-invest-glossary-wrap {
    display: block;
    clear: both;
    margin: 16px 0 0;
}
.ep-invest-glossary-btn {
    display: inline-block;
    background: transparent;
    border: 1px solid var(--ep-gold, #BC955C);
    color: var(--ep-gold-deep, #7b592f);
    font-size: 12.5px;
    font-weight: 700;
    padding: 7px 20px;
    border-radius: 4px;
    cursor: pointer;
    letter-spacing: .06em;
    transition: background .2s, color .2s;
}
.ep-invest-glossary-btn:hover {
    background: var(--ep-gold, #BC955C);
    color: var(--ep-ink, #111);
}
.ep-invest-glossary {
    display: none;
    margin-top: 12px;
    padding: 18px 20px;
    background: transparent;
    border: 1px solid var(--epi-rule, #e2ddd4);
    border-radius: 2px;
    width: 100%;
    box-sizing: border-box;
}
.ep-invest-glossary.is-open {
    display: block;
}
.ep-invest-glossary dl {
    margin: 0 !important;
    display: block !important;
    grid-template-columns: none !important;
}
.ep-invest-glossary dt {
    display: block !important;
    float: none !important;
    width: 100% !important;
    font-weight: 700;
    font-size: 13px;
    color: #2f2922;
    margin-top: 12px;
    padding: 0;
}
.ep-invest-glossary dt:first-child {
    margin-top: 0;
}
.ep-invest-glossary dd {
    display: block !important;
    float: none !important;
    width: 100% !important;
    margin: 4px 0 0 0 !important;
    padding: 0 0 10px 0;
    font-size: 12.5px;
    line-height: 1.75;
    color: #5a534b;
    border-bottom: 1px solid #ece8e0;
}
.ep-invest-glossary dd:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

/* ==========================================================================
   投資適正分析セクション（フォーマル・書類寄りの表現に統一）
   - 装飾（角丸カード・塗り・多色）を排し、罫線と余白で構造を出す
   - 色は charcoal / gold / muted の3系統のみ。良否は控えめな色差で示す
   ========================================================================== */
.ep-room-invest {
    --epi-rule: #e2ddd4;
    --epi-rule-strong: #cdc6ba;
    --epi-ink: var(--ep-charcoal, #2C383D);
    --epi-muted: #7d7568;
    --epi-up: #5c6b52;
    --epi-down: #8a5a5a;
}

.ep-invest-hero {
    display: block;
    margin-bottom: 18px;
}

/* 総合評価：1本の帯に横並び（上下に細罫のみ） */
.ep-invest-total {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 20px;
    padding: 12px 2px 13px;
    border-top: 1px solid var(--epi-rule-strong);
    border-bottom: 1px solid var(--epi-rule);
}
.ep-invest-total-label {
    font-family: "Noto Serif JP", serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--epi-ink);
}
/* スコアは平均50・最高60台の相対値。数字を大きく出すと「100点満点の60点」と
   誤読されるため、順位を主役にして数字は補助に落とす。 */
.ep-invest-total-pct {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--epi-ink);
    font-variant-numeric: tabular-nums;
}
.ep-invest-total.is-high .ep-invest-total-pct {
    color: var(--ep-gold-deep, #7b592f);
}
.ep-invest-total-value {
    font-size: 13px;
    font-weight: 700;
    color: var(--epi-muted);
    font-variant-numeric: tabular-nums;
}
.ep-invest-total-cap {
    font-weight: 400;
    margin-right: 5px;
}
.ep-invest-total-rank {
    font-size: 12px;
    color: var(--epi-muted);
    letter-spacing: .02em;
    font-variant-numeric: tabular-nums;
}
.ep-invest-total-level {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--epi-muted);
}
.ep-invest-total.is-high .ep-invest-total-level {
    color: var(--ep-gold-deep, #7b592f);
}

.ep-invest-scale-note {
    margin: 10px 0 0;
    font-size: 11px;
    line-height: 1.7;
    color: var(--epi-muted);
}

/* 4軸：表組み（見出し行＋罫線区切り） */
.ep-invest-axes {
    display: block;
    margin-top: 14px;
}
.ep-invest-axis-header,
.ep-invest-axis {
    display: grid;
    grid-template-columns: 7.5em 5.5em 4.5em 5.5em minmax(90px, 260px);
    align-items: center;
    gap: 0 12px;
    padding: 9px 2px;
    border-bottom: 1px solid var(--epi-rule);
}
.ep-invest-axis-header {
    padding: 0 2px 6px;
    border-bottom: 1px solid var(--epi-rule-strong);
    font-size: 10.5px;
    letter-spacing: .08em;
    color: var(--epi-muted);
}
.ep-invest-axis-header > span:nth-child(2),
.ep-invest-axis-header > span:nth-child(3),
.ep-invest-axis-header > span:nth-child(4) {
    text-align: right;
}
.ep-invest-axis-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--epi-ink);
    letter-spacing: .04em;
}
.ep-invest-axis-pct,
.ep-invest-axis-value,
.ep-invest-axis-diff {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.ep-invest-axis-pct {
    font-size: 13px;
    font-weight: 700;
    color: var(--epi-ink);
}
.ep-invest-axis.is-high .ep-invest-axis-pct {
    color: var(--ep-gold-deep, #7b592f);
}
.ep-invest-axis-value {
    font-size: 12px;
    color: var(--epi-muted);
}
.ep-invest-axis-diff {
    font-size: 12px;
    color: var(--epi-muted);
}
.ep-invest-axis-diff.is-up { color: var(--epi-up); }
.ep-invest-axis-diff.is-down { color: var(--epi-down); }
.ep-invest-bar-track {
    display: block;
    height: 4px;
    background: #ebe7df;
}
.ep-invest-bar-fill {
    display: block;
    height: 100%;
    background: var(--epi-ink);
    transition: width .5s ease;
}
.ep-invest-axis.is-high .ep-invest-bar-fill {
    background: var(--ep-gold, #BC955C);
}
.ep-invest-axis.is-low .ep-invest-bar-fill {
    background: #b8b1a5;
}

/* 主要指標：罫線区切りの定義リスト風 */
.ep-invest-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 28px;
    margin: 20px 0 4px;
    border-top: 1px solid var(--epi-rule-strong);
}
.ep-invest-metric {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 2px;
    border-bottom: 1px solid var(--epi-rule);
}
.ep-invest-metric-label {
    font-size: 11.5px;
    color: var(--epi-muted);
    letter-spacing: .04em;
}
.ep-invest-metric-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--epi-ink);
    font-variant-numeric: tabular-nums;
}
.ep-invest-metric-value.is-up { color: var(--epi-up); }
.ep-invest-metric-value.is-down { color: var(--epi-down); }
.ep-invest-metric-note {
    flex: 0 0 100%;
    margin-top: 3px;
    font-size: 10.5px;
    line-height: 1.6;
    color: var(--epi-muted);
}
/* オーナーチェンジの実績値（AI想定値と取り違えないよう罫線で区別） */
.ep-invest-metric.is-actual {
    border-left: 2px solid var(--ep-owner-change, #2B6F8E);
    padding-left: 8px;
}
.ep-invest-metric.is-actual .ep-invest-metric-value {
    color: var(--ep-owner-change, #2B6F8E);
}

/* ── 非会員向け 詳細分析ゲート（会員登録CTA） ── */
.ep-invest-member-gate {
    margin-top: 22px;
    padding: 26px 20px 28px;
    text-align: center;
    background: #fbfaf7;
    border: 1px solid var(--epi-rule, #e2ddd4);
    border-top: 2px solid var(--ep-gold, #BC955C);
    border-radius: 2px;
}
.ep-invest-member-gate-eyebrow {
    margin: 0 0 10px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .18em;
    color: var(--ep-gold-deep, #7b592f);
}
.ep-invest-member-gate-lead {
    margin: 0 0 8px;
    font-family: "Noto Serif JP", serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--ep-charcoal, #2C383D);
    letter-spacing: .05em;
}
.ep-invest-member-gate-note {
    margin: 0 auto 18px;
    max-width: 34em;
    font-size: 12.5px;
    line-height: 1.75;
    color: #6b655c;
}
.ep-invest-member-gate-btn {
    display: inline-block;
    padding: 11px 30px;
    background: var(--ep-ink, #111);
    color: var(--ep-gold, #BC955C) !important;
    border: 1px solid var(--ep-gold, #BC955C);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.ep-invest-member-gate-btn:hover {
    background: var(--ep-gold, #BC955C);
    color: var(--ep-ink, #111) !important;
}

/* ── 分析を読み終えた会員向け 投資LP誘導CTA ── */
.ep-invest-lp-cta {
    margin-top: 26px;
    padding: 22px 22px 24px;
    text-align: center;
    background: transparent;
    border: 1px solid var(--epi-rule, #e2ddd4);
    border-radius: 2px;
}
.ep-invest-lp-cta-lead {
    margin: 0 0 8px;
    font-family: "Noto Serif JP", serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--ep-charcoal, #2C383D);
    letter-spacing: .05em;
}
.ep-invest-lp-cta-note {
    margin: 0 auto 16px;
    max-width: 36em;
    font-size: 12.5px;
    line-height: 1.75;
    color: #6b655c;
}
.ep-invest-lp-cta-btn {
    display: inline-block;
    padding: 11px 30px;
    background: var(--ep-ink, #111);
    color: var(--ep-gold, #BC955C) !important;
    border: 1px solid var(--ep-gold, #BC955C);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.ep-invest-lp-cta-btn:hover {
    background: var(--ep-gold, #BC955C);
    color: var(--ep-ink, #111) !important;
}

/* ---- Investment commentary (structured blocks) ----
   1セクション=1カード。見出し(項目名+スコア+順位チップ)／総評／根拠の箇条書き、の3層に分けて
   読み飛ばしを防ぐ。詳細ページは1140px幅で1行が長くなりすぎるため、PCでは2カラムに割る。 */
.ep-room-invest-commentary {
    margin-top: 22px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 36px;
    align-items: start;
}

.ep-icmt {
    background: transparent;
    border: none;
    border-top: 1px solid var(--epi-rule);
    padding: 15px 0 4px;
}
.ep-icmt--full { grid-column: 1 / -1; }
.ep-icmt--summary { border-top-color: var(--epi-rule-strong); }

.ep-icmt-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin: 0 0 9px;
}
.ep-icmt-title {
    font-family: "Noto Serif JP", serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--epi-ink);
    letter-spacing: .05em;
    border-left: 3px solid var(--ep-gold, #BC955C);
    padding-left: 10px;
}
/* 順位が主役・スコアは補助（相対スコアの誤読対策）。チップ状の塗りは使わない。 */
.ep-icmt-rank {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
    color: var(--epi-ink);
    font-variant-numeric: tabular-nums;
}
.ep-icmt--good .ep-icmt-rank { color: var(--ep-gold-deep, #7b592f); }
.ep-icmt-score {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--epi-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    margin-left: auto;
}
.ep-icmt-score-cap {
    font-weight: 400;
    margin-right: 4px;
}

.ep-icmt-lead {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.85;
    color: #3b3630;
}
.ep-icmt--summary .ep-icmt-lead { font-size: 14.5px; }

.ep-icmt-points {
    margin: 9px 0 0;
    padding: 0;
    list-style: none;
}
.ep-icmt-lead:empty + .ep-icmt-points { margin-top: 0; }
.ep-icmt-points > li {
    position: relative;
    margin: 0 0 6px;
    padding-left: 15px;
    font-size: 13.5px;
    line-height: 1.85;
    color: #4a453e;
}
.ep-icmt-points > li:last-child { margin-bottom: 0; }
.ep-icmt-points > li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .92em;
    width: 7px;
    height: 1px;
    background: var(--ep-gold, #BC955C);
    opacity: .75;
}

.ep-icmt-note {
    margin: 11px 0 0;
    padding-top: 8px;
    border-top: 1px solid var(--epi-rule);
    font-size: 11.5px;
    line-height: 1.6;
    color: var(--epi-muted);
}

/* 良否の強調は文字色ではなくマーカー（文字の下半分に線を引く）。
   良い点=緑／悪い点=赤。折り返しても各行に引かれるよう box-decoration-break: clone。 */
.ep-room-invest-commentary .ep-comment-pos,
.ep-room-invest-commentary .ep-comment-neg {
    color: inherit;
    font-weight: 700;
    padding: 0 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 100% 46%;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.ep-room-invest-commentary .ep-comment-pos {
    background-image: linear-gradient(rgba(106, 168, 110, .45), rgba(106, 168, 110, .45));
}
.ep-room-invest-commentary .ep-comment-neg {
    background-image: linear-gradient(rgba(216, 108, 108, .42), rgba(216, 108, 108, .42));
}

.ep-invest-disclaimer {
    grid-column: 1 / -1;
    margin: 16px 0 0;
    padding-top: 10px;
    border-top: 1px solid var(--epi-rule);
    font-size: 11px;
    color: #a49d93;
    line-height: 1.7;
}

@media (max-width: 1000px) {
    .ep-room-invest-commentary {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

@media (max-width: 600px) {
    /* 総合評価の帯：見出しと順位を独立行にして折り返す */
    .ep-invest-total {
        gap: 3px 14px;
        padding: 11px 0 12px;
    }
    .ep-invest-total-label,
    .ep-invest-total-rank {
        width: 100%;
    }
    .ep-invest-total-pct { font-size: 18px; }
    .ep-invest-total-level { order: 1; }
    .ep-invest-total-rank { order: 2; }

    /* 4軸の表：棟内平均比の列はモバイルでは落とし、バーを2行目に回す */
    .ep-invest-axis-header,
    .ep-invest-axis {
        grid-template-columns: 1fr 5em 4em;
        gap: 4px 10px;
    }
    .ep-invest-axis-header > span:nth-child(4),
    .ep-invest-axis-header > span:nth-child(5),
    .ep-invest-axis-diff {
        display: none;
    }
    .ep-invest-bar-track {
        grid-column: 1 / -1;
        margin-top: 2px;
    }
    .ep-invest-axis-label { font-size: 12.5px; }

    .ep-invest-metrics {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ep-icmt-title { font-size: 14px; }
    .ep-icmt-rank { font-size: 12.5px; }
    .ep-icmt-lead,
    .ep-icmt--summary .ep-icmt-lead { font-size: 13.5px; }
    .ep-icmt-points > li { font-size: 13px; }
}

/* ---- Loan repayment simulator ---- */
.ep-room .ep-room-loan {
    margin-top: 40px;
}
.ep-room .ep-room-loan h2 {
    margin: 0 0 16px;
}
.ep-loan-result {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px 16px;
    padding: 18px 22px;
    background: var(--ep-ink, #111);
    color: #fff;
    border-radius: 6px;
    border: 1px solid var(--ep-ink, #111);
}
.ep-loan-result-label {
    font-size: 13px;
    letter-spacing: .04em;
    color: #d9d4cb;
}
.ep-loan-result-value {
    font-size: 15px;
    color: var(--ep-gold-light, #d4b896);
    white-space: nowrap;
}
.ep-loan-result-value strong {
    font-size: 30px;
    font-weight: 700;
    color: var(--ep-gold-light, #d4b896);
    margin-right: 2px;
    font-variant-numeric: tabular-nums;
}
.ep-loan-controls {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 16px;
}
.ep-loan-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ep-loan-field label {
    font-size: 12px;
    color: #6a635b;
    letter-spacing: .03em;
}
.ep-loan-input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid var(--ep-line, rgba(17,17,17,.14));
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
    transition: border-color .15s ease;
}
.ep-loan-input-wrap:focus-within {
    border-color: var(--ep-gold, #BC955C);
}
.ep-loan-input-wrap input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 9px 4px 9px 12px;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    text-align: right;
    color: var(--ep-ink, #111);
    -moz-appearance: textfield;
    appearance: textfield;
}
.ep-loan-input-wrap input:focus {
    outline: none;
}
.ep-loan-input-wrap input::-webkit-outer-spin-button,
.ep-loan-input-wrap input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.ep-loan-unit {
    flex: none;
    padding: 0 12px 0 6px;
    font-size: 12px;
    color: #8a8279;
    white-space: nowrap;
}
.ep-loan-field--static .ep-loan-static-val {
    padding: 9px 12px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: #f4f2ee;
    font-size: 15px;
    text-align: right;
    color: var(--ep-ink, #111);
    font-variant-numeric: tabular-nums;
}
.ep-loan-field--static .ep-loan-static-val strong {
    font-size: 18px;
    margin-right: 2px;
}
.ep-loan-subrows {
    margin-top: 16px;
    border-top: 1px solid var(--ep-line, rgba(17,17,17,.14));
}
.ep-loan-subrow {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 10px 2px;
    border-bottom: 1px solid var(--ep-line, rgba(17,17,17,.14));
    font-size: 13px;
    color: #6a635b;
}
.ep-loan-subrow strong {
    font-size: 16px;
    color: var(--ep-ink, #111);
    margin-right: 2px;
    font-variant-numeric: tabular-nums;
}
.ep-loan-reset-wrap {
    margin: 14px 0 0;
    text-align: right;
}
.ep-loan-reset {
    background: none;
    border: 1px solid #d4cfc6;
    color: #8b7355;
    font-size: 12px;
    padding: 5px 16px;
    border-radius: 4px;
    cursor: pointer;
    letter-spacing: .03em;
}
.ep-loan-reset:hover {
    background: #f8f6f1;
}
.ep-loan-note {
    margin: 12px 0 0;
    color: #aaa49c;
    line-height: 1.7;
}
@media (max-width: 600px) {
    .ep-loan-controls {
        grid-template-columns: 1fr 1fr;
    }
    .ep-loan-result-value strong {
        font-size: 26px;
    }
}

.ep-room .ep-room-brand-description {
    color: #4b5560;
}

.ep-room .ep-room-brand-building-list {
    margin: 10px 0 0;
    padding-left: 18px;
}

.ep-room .ep-room-brand-building-list li + li {
    margin-top: 6px;
}

.ep-room .ep-room-brand-building-list a {
    color: #2f3a43;
    text-decoration: none;
    border-bottom: 1px solid rgba(47, 58, 67, 0.25);
}

.ep-room .ep-room-brand-building-list a:hover {
    color: #8b7355;
    border-bottom-color: rgba(139, 115, 85, 0.45);
}

.ep-room .ep-poi-items-more,
.ep-building .ep-poi-items-more {
    margin-top: 10px;
}

@media (max-width: 600px) {
    .ep-room .ep-room-invest-grid {
        grid-template-columns: 1fr 1fr;
    }

    .ep-room .ep-poi-items,
    .ep-building .ep-poi-items {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
}

/* ==========================================================================
   Hero Refinement 2026-08 — 可読性・上質感・要点の主役化（建物/部屋 共通）
   目的: ①発光シマー廃止 ②写真の明暗によらずテキストを常に判読可能に(下方スクリム)
         ③部屋ページの価格/スペックを一目で ④モバイルの過大な高さを是正
   末尾追記の絞り込みレイヤー（既存のJS入場アニメ構造は温存）
   ========================================================================== */

/* ① 発光シマー（無限text-shadowパルス）を廃止し、落ち着いた影に */
.ep-building .ep-hero-title,
.ep-room .ep-hero-title,
h1.ep-hero-title {
    animation: none !important;
    -webkit-animation: none !important;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .5) !important;
}

/* ② 下方アンカーのスクリム — 横グラデ(右が薄い)を置き換え、
      写真下部を確実に沈めて白文字を担保。上部は写真を活かす */
.ep-building-hero .ep-hero-overlay,
.ep-room-hero .ep-hero-overlay {
    background: linear-gradient(180deg,
        rgba(16, 20, 24, .16) 0%,
        rgba(16, 20, 24, .04) 30%,
        rgba(16, 20, 24, .52) 70%,
        rgba(11, 14, 17, .88) 100%) !important;
    display: flex;
    align-items: flex-end;
}

/* 写真をやや暖色・明るめにして「くすみグレー」を回避（スクリムで可読性は担保） */
.ep-hero-media.is-animated::before {
    filter: blur(6px) brightness(0.7) saturate(0.62) !important;
}

/* ヒーロー本文の余白（下寄せ） */
.ep-building-hero .ep-hero-body,
.ep-room-hero .ep-hero-body {
    padding-top: 44px;
    padding-bottom: 30px;
}

/* オーナーチェンジ等の種別バッジ（ヒーロー） — .ep-badge の色トークンを流用しヒーロー用に拡大 */
.ep-room .ep-hero-badges {
    margin: 10px 0 0 !important;
}
.ep-room .ep-hero-badges .ep-badge {
    font-size: 12px;
    letter-spacing: .08em;
    padding: 5px 12px;
    border-radius: var(--ep-radius, 4px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

/* ③ 価格を主役に（部屋ページ・売買/賃貸とも） */
.ep-room .ep-hero-price,
.ep-building .ep-hero-price {
    margin: 12px 0 8px !important;
    font-family: var(--ep-font-serif, Georgia, "Noto Serif JP", serif) !important;
    font-size: clamp(1.55rem, 1.05rem + 1.9vw, 2.05rem) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    color: #fff !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .6) !important;
}

/* スペック（間取り/専有/階）を1つの上品なチップ帯に */
.ep-room .ep-hero-subtitle,
.ep-building .ep-hero-subtitle {
    display: inline-block;
    margin: 4px 0 2px !important;
    padding: 6px 14px;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: .02em;
    color: #fff !important;
    background: rgba(255, 255, 255, .13);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--ep-radius, 4px);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    text-shadow: none !important;
}

/* 交通・築年など補足メタ */
.ep-room .ep-hero-meta,
.ep-building .ep-hero-meta {
    margin: 8px 0 0 !important;
    font-size: 13px;
    color: rgba(255, 255, 255, .92) !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .5) !important;
}

/* キャッチコピー */
.ep-building .ep-hero-catch,
.ep-room .ep-hero-catch {
    text-shadow: 0 1px 6px rgba(0, 0, 0, .5) !important;
}

/* ④ PCのヒーローCTAを §17.4 Primary に準拠（ink地×ゴールド文字×金枠×角丸4px） */
@media (min-width: 961px) {
    .ep-room-hero-cta-btn.is-primary {
        padding: 11px 26px !important;
        font-size: 14px !important;
        letter-spacing: .04em;
        color: var(--ep-gold, #BC955C) !important;
        background: var(--ep-ink, #111) !important;
        border: 1px solid var(--ep-gold, #BC955C) !important;
        border-radius: var(--ep-radius, 4px) !important;
        box-shadow: 0 8px 20px rgba(0, 0, 0, .28) !important;
    }
    .ep-room-hero-cta-btn.is-primary:hover {
        color: var(--ep-gold-light, #d4b896) !important;
        background: var(--ep-charcoal, #2C383D) !important;
        border-color: var(--ep-gold-light, #d4b896) !important;
        transform: translateY(-1px);
    }
}

/* ④ モバイル: ヒーロー高さを是正（現状 body min-height:420px は過大） */
@media (max-width: 640px) {
    .ep-room .ep-room-hero .ep-hero-body {
        min-height: 300px;
    }
    .ep-building-hero .ep-hero-body,
    .ep-room-hero .ep-hero-body {
        padding-top: 34px;
        padding-bottom: 22px;
    }
    .ep-room .ep-hero-price,
    .ep-building .ep-hero-price {
        margin-top: 8px !important;
    }
}

/* ==========================================================================
   Room Page — 部屋優先のセクション順（2026-08 UI改善 / task#4）
   CSS order による視覚的並べ替えのみ。DOM順・SEO・目次アンカーは不変・完全可逆。
   意図: ①部屋固有情報(写真→お部屋情報→設備→投資/ローン)を前面に
         ②建物コンテキスト(建物説明/駐車場/メリデメ/ブランド/相場/近隣/学区)を後段へ集約
         ③相場を問い合わせ後→建物コンテキスト内へ繰り上げ ④FAQ/CTA/問合せ/一覧を末尾に
   絶対配置の ::before/::after は flex item にならず背景として維持される
   ========================================================================== */
/* ── オーナーチェンジ物件の補足表示（お部屋情報セクション内） ── */
.ep-room-summary .roomsummary-oc-note {
    margin-left: 6px;
    font-size: 11px;
    color: var(--epi-muted, #6b6b6b);
}
.ep-room .ep-room-oc-notice {
    margin: 18px 0 0;
    padding: 14px 16px;
    background: rgba(43, 111, 142, .05);
    border: 1px solid rgba(43, 111, 142, .28);
    border-radius: var(--ep-radius, 4px);
}
.ep-room .ep-room-oc-notice-title {
    margin: 0 0 8px !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--ep-owner-change, #2B6F8E);
}
.ep-room .ep-room-oc-notice ul {
    margin: 0 !important;
    padding-left: 1.2em;
    list-style: disc;
}
.ep-room .ep-room-oc-notice li {
    margin: 0 0 5px;
    font-size: 13px;
    line-height: 1.8;
    color: #333;
}
.ep-room .ep-room-oc-notice li:last-child {
    margin-bottom: 0;
}

main.ep-room {
    display: flex;
    flex-direction: column;
}
/* 部屋グループ（前面） */
main.ep-room > .ep-room-hero                { order: 0; }
main.ep-room > .ep-breadcrumb               { order: 1; }
main.ep-room > .ep-fav-count,
main.ep-room > .ep-fav-count-wrap           { order: 1; } /* パンくず直下（お気に入り登録人数） */
main.ep-room > .roomsummary                 { order: 2; }
/* 会員限定物件（未ログイン）のゲート。styleN 非依存にするため
   wp-estatepress/templates/partials/room-member-gate.php 側にも同じ order を持たせている */
main.ep-room > .ep-room-gate                { order: 2; }
main.ep-room > .ep-building-toc             { order: 3; }
main.ep-room > .ep-room-photos              { order: 4; }
main.ep-room > .ep-room-summary             { order: 5; }
main.ep-room > .ep-room-features            { order: 6; }
main.ep-room > .ep-room-invest              { order: 7; }
main.ep-room > .ep-room-loan                { order: 8; }
main.ep-room > .ep-room-video               { order: 9; }
main.ep-room > .ep-room-3dview-section      { order: 10; }
/* 建物コンテキスト（後段） */
main.ep-room > .ep-room-building-description { order: 20; }
main.ep-room > .ep-room-building-parking     { order: 21; }
main.ep-room > .ep-room-building-points      { order: 22; }
main.ep-room > .ep-room-brand-related        { order: 23; }
main.ep-room > .ep-room-market               { order: 24; }
main.ep-room > .ep-building-poi              { order: 25; }
main.ep-room > .ep-building-school-district  { order: 26; }
/* 締め（FAQ→CTA→問合せ→物件一覧） */
main.ep-room > .ep-building-faq             { order: 30; }
main.ep-room > .ep-room-building-cta        { order: 31; }
main.ep-room > .ep-room-inquiry             { order: 32; }
main.ep-room > .ep-building-room-lists      { order: 33; }
/* 追従ナビのスペーサ等は最後に */
main.ep-room > .ep-bottom-nav-spacer        { order: 90; }
main.ep-room > .ep-bottom-nav               { order: 91; }
main.ep-room > .ep-lightbox                 { order: 92; }

/* ==========================================================================
   Room Page — 白カード/背景テクスチャの幅是正（2026-08）
   mainが二重構造: 外側 main#wp--skip-link--target が golden_noise テクスチャ＋白カード
   (=content-size+32 の 1172px) を描画し、その内側に自前カードを持つ main.ep-room が入る。
   内側カードは外側の golden_noise より狭く、白の外側に golden_noise がはみ出して見えていた。
   → 内側 .ep-room の自前カード/テクスチャを撤去し、外側の単一カード（golden_noiseと完全同幅の白）に
     一本化する（id を併せ持つ建物ページ main.ep-building と同じ挙動になる）。
   ========================================================================== */
main.ep-room::before,
main.ep-room::after {
    display: none !important;
}

/* ==========================================================================
   お問い合わせ CTA パネル 2026-08 — 電話/LINE/フォーム/メールを集約
   建物/部屋共通(.ep-inquiry)。ボタンは §17.4（Primary=ink×gold×金枠×4px）準拠、
   明地の文字は §17.1 の --ep-gold-deep で可読性確保
   ========================================================================== */
.ep-inquiry .ep-inquiry-box {
    margin-top: 14px;
    padding: 24px 22px 22px;
    background: linear-gradient(180deg, #ffffff 0%, #faf7f1 100%);
    border: 1px solid rgba(188, 149, 92, .28);
    border-top: 2px solid var(--ep-gold, #BC955C);
    border-radius: var(--ep-radius, 4px);
    box-shadow: var(--ep-shadow-md, 0 4px 12px rgba(0,0,0,.08));
    text-align: center;
}
.ep-inquiry .ep-inquiry-lead {
    margin: 0 auto 18px !important;
    max-width: 640px;
    font-size: 14px !important;
    line-height: 1.8;
    color: #5f5a52 !important;
    text-align: center !important;
}

/* 電話ハイライト */
.ep-inquiry .ep-inquiry-phone {
    margin: 0 0 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(188, 149, 92, .18);
}
.ep-inquiry .ep-inquiry-phone-cap {
    display: block;
    margin-bottom: 4px;
    font-size: 11.5px;
    letter-spacing: .1em;
    color: #8a806f;
}
.ep-inquiry .ep-inquiry-phone-num {
    display: inline-block;
    font-family: var(--ep-font-serif, Georgia, "Noto Serif JP", serif);
    font-size: clamp(1.7rem, 1.2rem + 2vw, 2.15rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .02em;
    color: var(--ep-gold-deep, #7b592f) !important;
    text-decoration: none !important;
}
.ep-inquiry .ep-inquiry-phone-num:hover {
    color: var(--ep-charcoal, #2C383D) !important;
}

/* アクション（ボタン行） */
.ep-inquiry .ep-inquiry-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    max-width: 100%;
}
.ep-inquiry .ep-inquiry-btn {
    box-sizing: border-box; /* width:100%＋padding で右にはみ出すのを防ぐ */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    padding: 12px 22px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.3;
    white-space: nowrap;
    text-decoration: none !important;
    border-radius: var(--ep-radius, 4px);
    /* Secondary（§17.4）: 明地のため文字は gold-deep で可読性確保 */
    color: var(--ep-gold-deep, #7b592f) !important;
    background: transparent;
    border: 1px solid var(--ep-gold, #BC955C);
    transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.ep-inquiry .ep-inquiry-btn:hover {
    background: rgba(188, 149, 92, .1);
    border-color: var(--ep-gold, #BC955C);
    color: var(--ep-charcoal, #2C383D) !important;
    transform: translateY(-1px);
}
/* Primary（§17.4）: ink地×ゴールド文字×金枠 */
.ep-inquiry .ep-inquiry-btn.is-primary {
    color: var(--ep-gold, #BC955C) !important;
    background: var(--ep-ink, #111);
    border-color: var(--ep-gold, #BC955C);
}
.ep-inquiry .ep-inquiry-btn.is-primary:hover {
    color: var(--ep-gold-light, #d4b896) !important;
    background: var(--ep-charcoal, #2C383D);
    border-color: var(--ep-gold-light, #d4b896);
}

@media (max-width: 640px) {
    .ep-inquiry .ep-inquiry-box {
        padding: 20px 14px 18px;
    }
    .ep-inquiry .ep-inquiry-actions {
        flex-direction: column;
        gap: 8px;
    }
    .ep-inquiry .ep-inquiry-btn {
        width: 100%;
        min-width: 0;
        padding: 13px 18px;
    }
}

/* ==========================================================================
   Hero 上端切れ修正 2026-08 — 長い建物名＋メタ多数で本文が media より高いと
   絶対配置 overlay（下寄せ）が上へあふれ overflow:hidden で h1 上端が切れていた。
   media を flex 列、overlay を in-flow(flex:1) にして高さをコンテンツ追従に。
   短い場合は min-height 内で下寄せ維持。ぼかし背景 ::before は inset:0 で全面継続。
   ========================================================================== */
.ep-building-hero .ep-hero-media,
.ep-room-hero .ep-hero-media {
    display: flex;
    flex-direction: column;
}
.ep-building-hero .ep-hero-overlay,
.ep-room-hero .ep-hero-overlay {
    position: relative !important;
    inset: auto !important;
    flex: 1 1 auto;
}

/* ==========================================================================
   内見予約CTA改善（2026-08-09）
   Primary=「内見を予約する」/ Secondary=汎用問い合わせ / AI相談ボタン
   ========================================================================== */

/* ヒーローCTA: Secondary（半透明・旧Primaryの見た目を流用。PCのみ表示） */
@media (min-width: 961px) {
    .ep-room-hero-cta-btn.is-secondary {
        padding: 11px 18px;
        font-size: 13px;
        color: rgba(255, 255, 255, .88) !important;
        background: rgba(20, 26, 32, .58);
        border: 1px solid rgba(255, 255, 255, .35);
        border-radius: var(--ep-radius, 4px);
    }

    .ep-room-hero-cta-btn.is-secondary:hover {
        background: rgba(188, 149, 92, .28);
        border-color: rgba(188, 149, 92, .8);
        color: #fff !important;
    }
}

/* CTAパネル: 主導線（内見予約＋AI相談）を副次導線より強く */
.ep-inquiry .ep-inquiry-actions-main {
    margin-bottom: 16px;
}

.ep-inquiry .ep-inquiry-btn.is-viewing {
    flex-direction: column;
    gap: 3px;
    padding: 14px 34px;
    font-size: 16px;
    white-space: normal;
    text-align: center;
}

.ep-inquiry .ep-inquiry-btn-sub {
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: .03em;
    color: var(--ep-gold-light, #d4b896);
    opacity: .92;
}

/* 追従バーv2: 電話 | AIに相談 | 内見を予約する（Primary最大幅） */
@media (max-width: 640px) {
    .ep-bottom-nav.ep-bottom-nav-v2 {
        grid-template-columns: .7fr .85fr 1.75fr;
    }

    .ep-bottom-nav-v2 a.ep-bottom-nav-primary {
        display: flex;
        flex-direction: column;
        gap: 1px;
    }

    .ep-bottom-nav-v2 .ep-bottom-nav-sub {
        font-size: 10.5px;
        font-weight: 500;
        letter-spacing: .04em;
        color: var(--ep-gold-light, #d4b896);
        opacity: .85;
    }

    .ep-bottom-nav-v2 .ep-bottom-nav-ico {
        font-size: 16px;
    }

    .ep-bottom-nav-v2 .ep-bottom-nav-tel .ep-bottom-nav-label,
    .ep-bottom-nav-v2 .ep-bottom-nav-chat .ep-bottom-nav-label {
        font-size: 12px;
    }
}

/* 建物ページ 売却CTA（2026-08 売却導線改善）: サブラベル付きPrimaryは内見ボタンと同じ縦積みレイアウト */
.ep-building-sell-cta .ep-inquiry-btn.is-primary {
    flex-direction: column;
    gap: 3px;
    padding: 14px 34px;
    font-size: 16px;
    white-space: normal;
    text-align: center;
}

/* 追従バー建物ページ変種: 売買一覧 | 賃貸一覧 | 内見を予約する（一覧ナビ復活・2026-08-10） */
@media (max-width: 640px) {
    .ep-bottom-nav.ep-bottom-nav-v2.ep-bottom-nav-lists {
        grid-template-columns: .95fr .95fr 1.55fr;
    }

    .ep-bottom-nav-lists a .ep-bottom-nav-label {
        font-size: 12px;
    }
}

/* 追従バーに「↑先頭へ」ミニ列を追加（部屋/建物共通・2026-08-10） */
@media (max-width: 640px) {
    .ep-bottom-nav.ep-bottom-nav-v2 {
        grid-template-columns: 44px .7fr .85fr 1.75fr;
    }

    .ep-bottom-nav.ep-bottom-nav-v2.ep-bottom-nav-lists {
        grid-template-columns: 44px .95fr .95fr 1.55fr;
    }

    .ep-bottom-nav-v2 .ep-bottom-nav-top .ep-bottom-nav-ico {
        font-size: 18px;
    }
}
