/* ===================================================== */
/* ALCA Corporate Site — Unified Stylesheet              */
/* Auto-generated 2026-04-28                              */
/* ===================================================== */

/* === Base & Components === */
:root {
    --cream: #FAF6F0;
    --cream-dark: #F0E9DF;
    --charcoal: #1E1C1A;
    --charcoal-soft: #3D3A36;
    --terracotta: #C4603A;
    --terracotta-light: #E8855F;
    --sage: #6B8F6E;
    --warm-white: #FFFDF9;
    --border: #DDD5C8;
    --charcoal-mid: #6F6A62;
    --terracotta-pale: #F2D4C0
    }
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box
    }
html {
    scroll-behavior: smooth;
    scrollbar-gutter: stable
    }
body {
    font-family: "Noto Sans JP", sans-serif;
    background: var(--cream);
    color: var(--charcoal);
    font-weight: 300;
    line-height: 1.8;
    overflow-x: hidden
    }
body > nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 20px 48px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--cream);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 2px 16px rgba(30, 28, 26, 0.04)
    }
.nav-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none
    }
.nav-logo:hover {
    text-decoration: none
    }
.nav-logo .ja {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--charcoal);
    transition: color 0.2s
    }
.nav-logo:hover .ja {
    color: var(--terracotta)
    }





.hero {
    min-height: 100vh;
    padding: 120px 48px 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    position: relative;
    overflow: hidden
    }
.hero::before {
    content: "";
    position: absolute;
    top: -100px;
    right: -100px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(196, 96, 58, 0.08) 0%, transparent 70%);
    pointer-events: none
    }
.hero-text {
    animation: fadeInUp 1s ease forwards
    }
.hero-eyebrow {
    font-family: "Cormorant Garamond", serif;
    font-size: 13px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 28px;
    display: flex;
    align-items: center;
    gap: 12px
    }
.hero-eyebrow::before {
    content: "";
    display: block;
    width: 32px;
    height: 1px;
    background: var(--terracotta)
    }
.hero-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(38px, 5vw, 58px);
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin-bottom: 32px
    }
.hero-heading span {
    color: var(--terracotta)
    }
.hero-sub {
    font-size: 15px;
    line-height: 2.1;
    color: var(--charcoal-soft);
    max-width: 420px;
    margin-bottom: 48px
    }
.hero-actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap
    }
.btn-primary {
    background: var(--terracotta);
    color: white;
    padding: 16px 36px;
    border-radius: 2px;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 0.08em;
    transition: all 0.25s;
    display: inline-block
    }
.btn-primary:hover {
    background: var(--charcoal);
    transform: translatey(-2px)
    }
.btn-secondary {
    border: 1px solid var(--border);
    color: var(--charcoal-soft);
    padding: 16px 36px;
    border-radius: 2px;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 0.08em;
    transition: all 0.25s;
    display: inline-block
    }
.btn-secondary:hover {
    border-color: var(--charcoal);
    color: var(--charcoal);
    transform: translatey(-2px)
    }
.hero-visual {
    position: relative;
    animation: fadeIn 1.4s ease forwards
    }
.hero-visual-box {
    background: var(--cream-dark);
    border-radius: 4px;
    height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden
    }
.hero-visual-box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(196, 96, 58, 0.06) 0%, rgba(107, 143, 110, 0.06) 100%)
    }
.placeholder-text {
    text-align: center;
    color: var(--charcoal-soft);
    opacity: 0.4;
    font-size: 12px;
    letter-spacing: 0.12em
    }
.placeholder-text span {
    display: block;
    font-size: 40px;
    margin-bottom: 10px
    }
.hero-badge {
    position: absolute;
    bottom: -20px;
    left: -20px;
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 20px 24px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08)
    }
.hero-badge .num {
    font-family: "Cormorant Garamond", serif;
    font-size: 36px;
    font-weight: 300;
    color: var(--terracotta);
    line-height: 1
    }
.hero-badge .lbl {
    font-size: 11px;
    color: var(--charcoal-soft);
    letter-spacing: 0.08em;
    margin-top: 4px
    }
.section-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    margin-bottom: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--terracotta)
    }
.section-label::before, .section-label::after {
    content: "";
    display: block;
    width: 40px;
    height: 1px;
    background: currentColor
    }
.section-label.left {
    justify-content: flex-start
    }
.section-label.left::before {
    display: none
    }
.mission {
    padding: 120px 48px;
    background: var(--charcoal);
    color: var(--cream);
    text-align: center;
    position: relative;
    overflow: hidden
    }
.mission-inner {
    max-width: 800px;
    margin: 0 auto
    }
.mission .section-label {
    color: var(--terracotta-light)
    }
.mission-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    margin-bottom: 36px
    }
.mission-body {
    font-size: 15px;
    line-height: 2.3;
    color: rgba(250, 246, 240, 0.65)
    }
.vision {
    padding: 120px 48px
    }
.vision-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center
    }
.vision-visual {
    background: var(--cream-dark);
    border-radius: 4px;
    height: 440px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative
    }
.vision-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(107, 143, 110, 0.08) 0%, rgba(196, 96, 58, 0.06) 100%)
    }
.vision-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(26px, 3.5vw, 40px);
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.04em;
    margin-bottom: 28px
    }
.vision-heading .accent {
    color: var(--sage);
    font-style: italic
    }
.vision-body {
    font-size: 14px;
    line-height: 2.3;
    color: var(--charcoal-soft)
    }
.vision-text .section-label {
    color: var(--sage)
    }
.services {
    padding: 120px 48px;
    background: var(--warm-white)
    }
.services-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.services-header {
    text-align: center;
    margin-bottom: 64px
    }
.services-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px;
    line-height: 1.6
    }
.services-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    letter-spacing: 0.06em
    }
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: var(--border);
    border: 1px solid var(--border)
    }
.service-card {
    background: var(--warm-white);
    padding: 48px 36px;
    transition: all 0.3s;
    text-decoration: none;
    color: inherit;
    display: block;
    position: relative
    }
.service-card:hover {
    background: var(--cream-dark);
    transform: translatey(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
    z-index: 1
    }
.service-num {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 24px
    }
.service-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px
    }
.s1 {
    background: rgba(196, 96, 58, 0.1)
    }
.s2 {
    background: rgba(107, 143, 110, 0.1)
    }
.s3 {
    background: rgba(30, 28, 26, 0.07)
    }
.service-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
    line-height: 1.5
    }
.service-catch {
    font-size: 13px;
    color: var(--terracotta);
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.service-desc {
    font-size: 13px;
    line-height: 2;
    color: var(--charcoal-soft);
    margin-bottom: 28px
    }
.service-link {
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--charcoal);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.2s
    }
.service-card:hover .service-link {
    gap: 14px;
    color: var(--terracotta)
    }
.trust {
    padding: 120px 48px
    }
.trust-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.trust-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 20px
    }
.trust-lead {
    font-size: 15px;
    line-height: 2.2;
    color: var(--charcoal-soft);
    max-width: 520px
    }
.trust-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
    margin-top: 64px
    }
.stat-item {
    background: var(--cream);
    padding: 48px 36px;
    text-align: center
    }
.stat-num {
    font-family: "Cormorant Garamond", serif;
    font-size: 56px;
    font-weight: 300;
    color: var(--terracotta);
    line-height: 1;
    margin-bottom: 8px
    }
.stat-unit {
    font-size: 20px
    }
.stat-label {
    font-size: 12px;
    letter-spacing: 0.1em;
    color: var(--charcoal-soft)
    }
.cta-section {
    padding: 120px 48px;
    background: var(--cream-dark);
    text-align: center;
    position: relative;
    overflow: hidden
    }
.cta-section::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(196, 96, 58, 0.07) 0%, transparent 70%);
    pointer-events: none
    }
.cta-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(26px, 4vw, 42px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    margin-bottom: 24px
    }
.cta-body {
    font-size: 15px;
    line-height: 2;
    color: var(--charcoal-soft);
    margin-bottom: 48px;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto
    }
footer {
    background: var(--charcoal);
    color: var(--cream);
    padding: 60px 48px 40px
    }
.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 60px;
    align-items: start;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08)
    }
.footer-logo .en {
    font-family: "Cormorant Garamond", serif;
    font-size: 26px;
    font-weight: 300;
    letter-spacing: 0.2em;
    display: block;
    margin-bottom: 6px
    }
.footer-logo .ja {
    font-size: 12px;
    letter-spacing: 0.12em;
    color: rgba(250, 246, 240, 0.45)
    }
.footer-tagline {
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: rgba(250, 246, 240, 0.4);
    margin-top: 20px;
    line-height: 2
    }
.footer-nav {
    display: flex;
    gap: 48px
    }
.footer-nav-group h4 {
    font-size: 10px;
    letter-spacing: 0.25em;
    color: var(--terracotta-light);
    margin-bottom: 16px
    }
.footer-nav-group ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px
    }
.footer-nav-group a {
    font-size: 13px;
    color: rgba(250, 246, 240, 0.55);
    text-decoration: none;
    letter-spacing: 0.06em;
    transition: color 0.2s
    }
.footer-nav-group a:hover {
    color: var(--cream)
    }
.footer-bottom {
    max-width: 1100px;
    margin: 32px auto 0;
    display: flex;
    justify-content: space-between
    }
.footer-bottom p {
    font-size: 11px;
    letter-spacing: 0.08em;
    color: rgba(250, 246, 240, 0.3)
    }
.company-info {
    padding: 120px 48px;
    background: var(--warm-white)
    }
.company-inner {
    max-width: 800px;
    margin: 0 auto
    }
.company-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 48px
    }
.company-table tr {
    border-bottom: 1px solid var(--border)
    }
.company-table th {
    width: 200px;
    padding: 24px 0;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.1em;
    color: var(--charcoal-soft);
    vertical-align: top;
    text-align: left
    }
.company-table td {
    padding: 24px 0 24px 24px;
    font-size: 14px;
    line-height: 2;
    color: var(--charcoal)
    }
.fade-in {
    opacity: 0;
    transform: translatey(20px);
    transition: opacity 0.7s ease, transform 0.7s ease
    }
.fade-in.visible {
    opacity: 1;
    transform: translatey(0)
    }

.page-hero {
    padding: 160px 48px 100px;
    background: var(--charcoal);
    color: var(--cream);
    position: relative;
    overflow: hidden
    }
.page-hero-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.breadcrumb {
    font-size: 11px;
    letter-spacing: 0.15em;
    color: rgba(250, 246, 240, 0.4);
    margin-bottom: 32px;
    display: flex;
    gap: 8px;
    align-items: center
    }
.breadcrumb a {
    color: inherit;
    text-decoration: none
    }
.breadcrumb a:hover {
    color: var(--terracotta-light)
    }
.page-hero-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    color: var(--terracotta-light);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 12px
    }
.page-hero-label::before {
    content: "";
    display: block;
    width: 32px;
    height: 1px;
    background: currentColor
    }
.page-hero-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(32px, 5vw, 56px);
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin-bottom: 24px
    }
.page-hero-sub {
    font-size: 15px;
    line-height: 2;
    color: rgba(250, 246, 240, 0.65);
    max-width: 520px
    }
.btn-outline {
    border: 1px solid var(--border);
    color: var(--charcoal-soft);
    padding: 14px 32px;
    border-radius: 2px;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.08em;
    transition: all 0.25s;
    display: inline-block
    }
.btn-outline:hover {
    border-color: var(--charcoal);
    color: var(--charcoal);
    transform: translatey(-2px)
    }
.services-intro {
    padding: 100px 48px 80px;
    text-align: center
    }
.services-intro-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    margin-bottom: 20px
    }
.services-intro-body {
    font-size: 15px;
    line-height: 2.2;
    color: var(--charcoal-soft);
    max-width: 560px;
    margin: 0 auto 48px
    }
.comparison {
    padding: 0 48px 80px
    }
.comparison-inner {
    max-width: 900px;
    margin: 0 auto
    }
.comparison-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--border)
    }
.comparison-table th {
    background: var(--charcoal);
    color: var(--cream);
    padding: 20px 24px;
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.1)
    }
.comparison-table th:first-child {
    text-align: left;
    background: var(--charcoal)
    }
.comparison-table td {
    padding: 18px 24px;
    font-size: 13px;
    letter-spacing: 0.04em;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    text-align: center;
    color: var(--charcoal-soft)
    }
.comparison-table td:first-child {
    text-align: left;
    color: var(--charcoal);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.1em
    }
.comparison-table tr:nth-child(even) td {
    background: var(--cream)
    }
.comparison-hint {
    display: none
    }
.check {
    color: var(--sage);
    font-size: 18px
    }
.dash {
    color: var(--border)
    }
.highlight {
    color: var(--terracotta);
    font-weight: 500
    }
.service-detail {
    padding: 100px 48px
    }
.service-detail:nth-child(odd) {
    background: var(--warm-white)
    }
.service-detail:nth-child(even) {
    background: var(--cream)
    }
.service-detail-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center
    }
.service-detail-inner.reverse {
    direction: rtl
    }
.service-detail-inner.reverse > * {
    direction: ltr
    }
.service-visual {
    background: var(--cream-dark);
    border-radius: 4px;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden
    }
.service-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    position: absolute;
    inset: 0
    }
.service-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(196, 96, 58, 0.06) 0%, rgba(107, 143, 110, 0.06) 100%)
    }
.service-visual.v2::after {
    background: linear-gradient(135deg, rgba(107, 143, 110, 0.08) 0%, rgba(196, 96, 58, 0.04) 100%)
    }
.service-visual.v3::after {
    background: linear-gradient(135deg, rgba(30, 28, 26, 0.06) 0%, rgba(196, 96, 58, 0.06) 100%)
    }
.service-tag {
    display: inline-block;
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 16px;
    padding: 6px 16px;
    border: 1px solid rgba(196, 96, 58, 0.3);
    border-radius: 20px
    }
.service-detail-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin-bottom: 12px
    }
.service-detail-catch {
    font-size: 15px;
    color: var(--terracotta);
    letter-spacing: 0.06em;
    margin-bottom: 24px;
    font-family: "Shippori Mincho B1", serif
    }
.service-detail-desc {
    font-size: 14px;
    line-height: 2.3;
    color: var(--charcoal-soft);
    margin-bottom: 32px
    }
.service-features {
    list-style: none;
    margin-bottom: 36px;
    display: flex;
    flex-direction: column;
    gap: 10px
    }
.service-features li {
    font-size: 13px;
    color: var(--charcoal);
    display: flex;
    align-items: flex-start;
    gap: 10px
    }
.service-features li::before {
    content: "✓";
    color: var(--sage);
    font-size: 14px;
    margin-top: 2px;
    flex-shrink: 0
    }
.service-disclaimers {
    margin: 24px 0;
    padding: 0;
    font-size: 12px;
    line-height: 1.9;
    color: var(--charcoal-mid)
    }
.service-disclaimers p {
    margin: 0 0 6px;
    text-indent: -1em;
    padding-left: 1em
    }
.service-disclaimers p:last-child {
    margin-bottom: 0
    }
.service-fee-note {
    background: var(--cream-dark);
    border-left: 3px solid var(--terracotta);
    padding: 18px 22px;
    margin-bottom: 32px;
    font-size: 13px;
    line-height: 2;
    color: var(--charcoal-soft);
    border-radius: 2px
    }
.service-fee-note strong {
    color: var(--charcoal);
    font-weight: 600;
    letter-spacing: 0.04em
    }
.service-detail-desc + .service-detail-desc {
    margin-top: -16px
    }
.service-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
    }
.mv-section {
    padding: 120px 48px
    }
.mv-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    background: var(--border);
    border: 1px solid var(--border)
    }
.mv-card {
    background: var(--cream);
    padding: 64px 56px
    }
.mv-card.dark {
    background: var(--charcoal);
    color: var(--cream)
    }
.mv-card-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    margin-bottom: 24px;
    color: var(--terracotta-light)
    }
.mv-card-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.04em;
    margin-bottom: 24px
    }
.mv-card.dark .mv-card-heading {
    color: var(--cream)
    }
.mv-card-heading .accent {
    color: var(--sage);
    font-style: italic
    }
.mv-card-body {
    font-size: 14px;
    line-height: 2.3;
    color: var(--charcoal-soft)
    }
.mv-card.dark .mv-card-body {
    color: rgba(250, 246, 240, 0.65)
    }
.story-section {
    padding: 120px 48px;
    background: var(--warm-white)
    }
.story-inner {
    max-width: 800px;
    margin: 0 auto
    }
.story-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    margin-bottom: 40px
    }
.story-body {
    font-size: 15px;
    line-height: 2.6;
    color: var(--charcoal-soft)
    }
.story-body p {
    margin-bottom: 28px
    }
.story-body p:last-child {
    margin-bottom: 0
    }
.team-section {
    padding: 120px 48px
    }
.team-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.team-header {
    margin-bottom: 48px
    }
.team-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.team-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    max-width: 480px;
    line-height: 2
    }
.team-group-photo {
    width: 100%;
    border-radius: 4px;
    max-height: 480px;
    object-fit: cover;
    object-position: center top;
    display: block;
    margin-bottom: 64px
    }
.team-featured {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 48px;
    align-items: start;
    background: var(--warm-white);
    border: 1px solid var(--border);
    padding: 48px;
    margin-bottom: 2px
    }
.team-featured-photo {
    width: 260px;
    height: 347px;
    max-width: 100%;
    min-width: 0;
    object-fit: cover;
    object-position: top center;
    border-radius: 2px;
    display: block
    }
.team-featured-body {
    padding-top: 8px
    }
.team-featured-role {
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--terracotta);
    margin-bottom: 12px
    }
.team-featured-role-en {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.18em;
    color: var(--terracotta);
    margin-left: 4px;
    opacity: 0.8
    }
.team-featured-credentials {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 0.08em;
    color: var(--charcoal-soft);
    border: 1px solid var(--border);
    background: var(--cream);
    padding: 5px 14px;
    border-radius: 2px;
    margin-top: -10px;
    margin-bottom: 24px
    }
.team-featured-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 6px
    }
.team-featured-name-en {
    font-family: "Cormorant Garamond", serif;
    font-size: 14px;
    letter-spacing: 0.2em;
    color: var(--charcoal-soft);
    margin-bottom: 24px;
    display: block
    }
.team-featured-bio {
    font-size: 14px;
    line-height: 2.3;
    color: var(--charcoal-soft)
    }
.team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    background: var(--border);
    border: 1px solid var(--border)
    }
.team-card {
    background: var(--cream);
    padding: 28px 20px
    }
.team-photo {
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 2px;
    margin-bottom: 16px;
    overflow: hidden;
    background: var(--cream-dark)
    }
.team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block
    }
.team-name-block {
    margin-bottom: 12px
    }
.team-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.04em
    }
.team-name-en {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.08em;
    color: var(--charcoal-mid, #6F6A62);
    display: block;
    margin-top: 2px
    }
.team-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 14px
    }
.team-badge {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 4px 10px;
    border-radius: 12px;
    background: var(--terracotta);
    color: var(--cream);
    white-space: nowrap
    }
.team-badge.role {
    background: var(--terracotta);
    color: var(--cream)
    }
.team-badge.qual {
    background: var(--sage);
    color: var(--cream)
    }
.team-badge.staff {
    background: var(--charcoal-soft);
    color: var(--cream)
    }
.team-bio {
    font-size: 12px;
    line-height: 2;
    color: var(--charcoal-soft)
    }
.access-section {
    padding: 120px 48px;
    background: var(--cream)
    }
.access-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.access-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 12px;
    text-align: center
    }
.access-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    text-align: center;
    margin-bottom: 56px;
    line-height: 2
    }
.access-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 32px
    }
.access-card {
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.25s
    }
.access-card:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06)
    }
.access-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    padding: 24px 28px 0;
    text-transform: uppercase
    }
.access-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.06em;
    padding: 6px 28px 20px;
    color: var(--charcoal)
    }
.access-map {
    width: 100%;
    height: 280px;
    background: var(--cream-dark);
    position: relative
    }
.access-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block
    }
.access-map-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--charcoal-mid);
    font-size: 12px;
    letter-spacing: 0.18em;
    background: linear-gradient(135deg, var(--cream-dark) 0%, rgba(196,96,58,0.05) 100%)
    }
.access-body {
    padding: 24px 28px 28px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex: 1
    }
.access-info {
    margin: 0;
    font-size: 13px;
    line-height: 2
    }
.access-info dt {
    font-size: 10px;
    letter-spacing: 0.18em;
    color: var(--charcoal-mid);
    text-transform: uppercase;
    margin-top: 14px;
    font-family: "Cormorant Garamond", serif
    }
.access-info dt:first-child {
    margin-top: 0
    }
.access-info dd {
    color: var(--charcoal);
    margin: 4px 0 0;
    padding-left: 0;
    font-size: 13px
    }
.access-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--terracotta);
    text-decoration: none;
    transition: gap 0.2s;
    align-self: flex-start
    }
.access-link:hover {
    gap: 14px
    }
.access-link-disabled {
    color: var(--charcoal-mid);
    cursor: default;
    font-size: 12px;
    letter-spacing: 0.08em;
    align-self: flex-start
    }

.contact-visit {
    padding: 80px 48px;
    background: var(--cream-dark);
    text-align: center
    }

/* === Achievements Summary (TOP) === */
.achievements-section {
    padding: 100px 48px;
    background: var(--cream-dark)
    }
.achievements-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center
    }
.achievements-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.achievements-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 56px
    }
.achievements-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
    }
.achievements-summary-card {
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 36px 32px;
    text-align: left;
    transition: box-shadow 0.25s, transform 0.25s
    }
.achievements-summary-card:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
    transform: translateY(-2px)
    }
.achievements-summary-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 12px
    }
.achievements-summary-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.achievements-summary-body {
    font-size: 13px;
    line-height: 2;
    color: var(--charcoal-soft);
    margin-bottom: 20px
    }
.achievements-summary-link {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--terracotta);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.2s
    }
.achievements-summary-link:hover {
    gap: 14px
    }

/* === Achievements Detail (about) === */
.achievements-detail-section {
    padding: 120px 48px;
    background: var(--cream)
    }
.achievements-detail-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center
    }
.achievements-detail-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.achievements-detail-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 56px
    }
.achievements-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    text-align: left
    }
.achievements-block {
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 40px 36px
    }
.achievements-block-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 12px
    }
.achievements-block-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 20px
    }
.achievements-block-body {
    font-size: 13px;
    line-height: 2;
    color: var(--charcoal-soft);
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border)
    }
.achievements-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px
    }
.achievements-list > li {
    font-size: 13px;
    line-height: 1.8;
    color: var(--charcoal);
    padding-left: 16px;
    position: relative
    }
.achievements-list > li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: var(--terracotta)
    }
.achievements-list-pending {
    color: var(--charcoal-mid) !important;
    font-style: italic
    }
.achievements-list-pending::before {
    content: "" !important
    }

/* === Reviews (Google Maps クチコミ) === */
.reviews-section {
    padding: 120px 48px;
    background: var(--warm-white);
    text-align: center
    }
.reviews-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.reviews-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.reviews-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 48px
    }
.reviews-widget {
    margin-bottom: 40px;
    min-height: 200px
    }
.reviews-placeholder {
    background: var(--cream-dark);
    border: 1px dashed var(--border);
    border-radius: 4px;
    padding: 48px 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: var(--charcoal-mid)
    }
.reviews-placeholder-icon {
    font-size: 18px;
    color: var(--terracotta);
    letter-spacing: 0.4em
    }
.reviews-placeholder-text {
    font-size: 12px;
    letter-spacing: 0.2em;
    color: var(--charcoal-soft);
    font-family: "Cormorant Garamond", serif;
    text-transform: uppercase
    }
.reviews-cta {
    text-align: center;
    margin-top: 24px
    }

/* === Q&A (Accordion) === */
.qa-block {
    max-width: 720px;
    margin: 0 auto 80px;
    padding-top: 60px;
    border-top: 1px solid var(--border)
    }
.qa-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 12px
    }
.qa-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 32px
    }
.qa-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--border)
    }
.qa-item {
    border-bottom: 1px solid var(--border)
    }
.qa-question {
    padding: 22px 4px 22px 0;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    transition: color 0.2s
    }
.qa-question::-webkit-details-marker {
    display: none
    }
.qa-question:hover {
    color: var(--terracotta)
    }
.qa-q {
    font-family: "Cormorant Garamond", serif;
    font-size: 22px;
    color: var(--terracotta);
    flex-shrink: 0;
    line-height: 1.2;
    font-weight: 400
    }
.qa-text {
    font-family: "Shippori Mincho B1", serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.04em;
    flex: 1;
    line-height: 1.7;
    color: var(--charcoal)
    }
.qa-arrow {
    width: 10px;
    height: 10px;
    border-right: 1.5px solid var(--charcoal-soft);
    border-bottom: 1.5px solid var(--charcoal-soft);
    transform: rotate(45deg);
    transition: transform 0.25s, border-color 0.2s;
    margin-top: 6px;
    flex-shrink: 0
    }
.qa-item[open] .qa-arrow {
    transform: rotate(-135deg);
    margin-top: 12px;
    border-color: var(--terracotta)
    }
.qa-question:hover .qa-arrow {
    border-color: var(--terracotta)
    }
.qa-answer {
    padding: 0 4px 24px 38px;
    font-size: 14px;
    line-height: 2.1;
    color: var(--charcoal-soft)
    }
.qa-answer a {
    color: var(--terracotta);
    text-decoration: none;
    border-bottom: 1px solid rgba(196, 96, 58, 0.3);
    transition: border-color 0.2s
    }
.qa-answer a:hover {
    border-bottom-color: var(--terracotta)
    }
.qa-answer em {
    font-style: normal
    }
.contact-visit-inner {
    max-width: 720px;
    margin: 0 auto
    }
.contact-visit-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(20px, 2.6vw, 28px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.contact-visit-body {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 28px
    }

.company-section {
    padding: 120px 48px;
    background: var(--warm-white)
    }
.company-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 48px
    }
.contact-options {
    padding: 100px 48px
    }
.contact-options-inner {
    max-width: 1100px;
    margin: 0 auto
    }
.contact-options-header {
    text-align: center;
    margin-bottom: 64px
    }
.contact-options-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.contact-options-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2
    }
.options-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: var(--border);
    border: 1px solid var(--border);
    margin-bottom: 80px
    }
.option-card {
    background: var(--warm-white);
    padding: 48px 36px;
    text-align: center;
    transition: all 0.3s;
    text-decoration: none;
    color: inherit;
    display: block
    }
.option-card:hover {
    background: var(--cream-dark);
    transform: translatey(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
    z-index: 1;
    position: relative
    }
.option-icon {
    font-size: 36px;
    margin-bottom: 20px;
    display: block
    }
.option-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: 12px
    }
.option-desc {
    font-size: 13px;
    line-height: 2;
    color: var(--charcoal-soft);
    margin-bottom: 24px
    }
.option-cta {
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--terracotta);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: gap 0.2s
    }
.option-card:hover .option-cta {
    gap: 14px
    }
.form-section {
    padding: 0 48px 100px
    }
.form-inner {
    max-width: 720px;
    margin: 0 auto
    }
.form-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 12px
    }
.form-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 48px
    }
.form-group {
    margin-bottom: 32px
    }
.form-label {
    display: block;
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--charcoal-soft);
    margin-bottom: 10px
    }
.form-label span {
    color: var(--terracotta);
    margin-left: 6px;
    font-size: 10px
    }
.form-input, .form-select, .form-textarea {
    width: 100%;
    padding: 14px 16px;
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 2px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 300;
    color: var(--charcoal);
    transition: border-color 0.2s, box-shadow 0.2s;
    appearance: none
    }
.form-input:focus, .form-select:focus, .form-textarea:focus {
    outline: none;
    border-color: var(--terracotta);
    box-shadow: 0 0 0 3px rgba(196, 96, 58, 0.08)
    }
.form-textarea {
    resize: vertical;
    min-height: 140px;
    line-height: 1.8
    }
.form-select-wrap {
    position: relative
    }
.form-select-wrap::after {
    content: "↓";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translatey(-50%);
    font-size: 12px;
    color: var(--charcoal-soft);
    pointer-events: none
    }
.form-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 12px
    }
.form-radio {
    display: none
    }
.form-radio-label {
    padding: 10px 20px;
    border: 1px solid var(--border);
    border-radius: 2px;
    font-size: 13px;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all 0.2s;
    color: var(--charcoal-soft)
    }
.form-radio:checked + .form-radio-label {
    border-color: var(--terracotta);
    color: var(--terracotta);
    background: rgba(196, 96, 58, 0.05)
    }
.form-radio-label:hover {
    border-color: var(--charcoal-soft);
    color: var(--charcoal)
    }
.form-note {
    font-size: 12px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-top: 8px
    }
.form-submit {
    width: 100%;
    padding: 18px;
    background: var(--terracotta);
    color: white;
    border: none;
    border-radius: 2px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 15px;
    letter-spacing: 0.12em;
    cursor: pointer;
    transition: all 0.25s;
    margin-top: 16px
    }
.form-submit:hover {
    background: var(--charcoal);
    transform: translatey(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12)
    }
.form-submit:disabled {
    background: var(--charcoal-mid);
    cursor: not-allowed;
    transform: none;
    box-shadow: none
    }
.form-status {
    margin-top: 16px;
    padding: 0 4px;
    font-size: 13px;
    line-height: 2;
    letter-spacing: 0.04em;
    min-height: 0;
    transition: all 0.3s
    }
.form-status.success {
    margin-top: 16px;
    padding: 14px 18px;
    background: rgba(107, 143, 110, 0.1);
    border-left: 3px solid var(--sage);
    color: var(--sage);
    border-radius: 2px
    }
.form-status.error {
    margin-top: 16px;
    padding: 14px 18px;
    background: rgba(196, 96, 58, 0.08);
    border-left: 3px solid var(--terracotta);
    color: var(--terracotta);
    border-radius: 2px
    }
.form-status.loading {
    margin-top: 16px;
    padding: 14px 18px;
    color: var(--charcoal-soft);
    font-style: italic
    }
.form-status.loading::after {
    content: " 送信中…"
    }
.privacy-note {
    font-size: 12px;
    color: var(--charcoal-soft);
    text-align: center;
    margin-top: 20px;
    line-height: 2
    }
.privacy-note a {
    color: var(--terracotta);
    text-decoration: none
    }

/* === Privacy Policy Page === */
.privacy-content {
    padding: 100px 48px 120px;
    background: var(--warm-white)
    }
.privacy-inner {
    max-width: 800px;
    margin: 0 auto
    }
.privacy-lead {
    font-size: 15px;
    line-height: 2.4;
    color: var(--charcoal-soft);
    margin-bottom: 72px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--border)
    }
.privacy-article {
    margin-bottom: 64px
    }
.privacy-article:last-of-type {
    margin-bottom: 32px
    }
.privacy-num {
    font-family: "Cormorant Garamond", serif;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 10px
    }
.privacy-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(20px, 2.4vw, 26px);
    font-weight: 600;
    letter-spacing: 0.06em;
    line-height: 1.6;
    margin-bottom: 24px;
    color: var(--charcoal);
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border)
    }
.privacy-subheading {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--charcoal);
    margin-top: 24px;
    margin-bottom: 12px
    }
.privacy-body {
    font-size: 14px;
    line-height: 2.3;
    color: var(--charcoal-soft)
    }
.privacy-body p {
    margin-bottom: 16px
    }
.privacy-body p:last-child {
    margin-bottom: 0
    }
.privacy-body strong {
    color: var(--charcoal);
    font-weight: 500
    }
.privacy-list {
    list-style: none;
    counter-reset: privacy-counter;
    padding-left: 0;
    margin: 16px 0 20px
    }
.privacy-list > li {
    counter-increment: privacy-counter;
    position: relative;
    padding-left: 32px;
    margin-bottom: 14px;
    line-height: 2.1
    }
.privacy-list > li:last-child {
    margin-bottom: 0
    }
.privacy-list > li::before {
    content: counter(privacy-counter, lower-alpha) ".";
    position: absolute;
    left: 0;
    top: 0;
    font-family: "Cormorant Garamond", serif;
    font-size: 13px;
    color: var(--terracotta);
    font-weight: 500;
    letter-spacing: 0.04em
    }
.privacy-list-bullet {
    list-style: none;
    padding-left: 0;
    margin: 12px 0 16px
    }
.privacy-list-bullet > li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 12px;
    line-height: 2.1
    }
.privacy-list-bullet > li::before {
    content: "—";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--terracotta)
    }
.privacy-contact-card {
    background: var(--cream-dark);
    border-left: 3px solid var(--terracotta);
    padding: 28px 32px;
    margin-top: 24px;
    border-radius: 2px
    }
.privacy-contact-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 14px;
    text-transform: uppercase
    }
.privacy-contact-body {
    font-size: 14px;
    line-height: 2.2;
    color: var(--charcoal);
    margin: 0
    }
.privacy-contact-body strong {
    font-family: "Shippori Mincho B1", serif;
    font-weight: 600;
    letter-spacing: 0.04em
    }
.privacy-contact-body a {
    color: var(--terracotta);
    text-decoration: none;
    border-bottom: 1px solid rgba(196, 96, 58, 0.3);
    transition: border-color 0.2s
    }
.privacy-contact-body a:hover {
    border-bottom-color: var(--terracotta)
    }
.privacy-revision {
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    letter-spacing: 0.2em;
    color: var(--charcoal-mid);
    text-align: right;
    margin-top: 60px;
    padding-top: 32px;
    border-top: 1px solid var(--border)
    }


/* === Hamburger Menu (Nav Toggle + Overlay) === */
/* When overlay open: lift nav above overlay so the X button is clickable */
body.menu-open > nav {
    z-index: 200;
    background: transparent;
    border-bottom: none;
    box-shadow: none;
    backdrop-filter: none
    }
body.menu-open .nav-logo {
    visibility: hidden;
    pointer-events: none
    }

.nav-toggle {
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 2px;
    cursor: pointer;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 0;
    transition: all 0.25s ease;
    z-index: 110
    }
.nav-toggle:hover {
    border-color: var(--charcoal);
    background: var(--warm-white)
    }
.nav-toggle-bar {
    display: block;
    width: 18px;
    height: 1.5px;
    background: var(--charcoal);
    transition: transform 0.3s ease, opacity 0.2s ease
    }
.nav-toggle.is-open {
    border-color: var(--cream);
    background: transparent
    }
.nav-toggle.is-open .nav-toggle-bar {
    background: var(--cream)
    }
.nav-toggle.is-open .nav-toggle-bar:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg)
    }
.nav-toggle.is-open .nav-toggle-bar:nth-child(2) {
    opacity: 0
    }
.nav-toggle.is-open .nav-toggle-bar:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg)
    }
.nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--charcoal);
    color: var(--cream);
    z-index: 105;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity 0.35s ease, transform 0.4s ease, visibility 0s linear 0.35s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 80px 32px;
    overflow-y: auto
    }
.nav-overlay.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.35s ease, transform 0.4s ease, visibility 0s linear 0s
    }
.nav-overlay::before {
    content: "MENU";
    position: absolute;
    top: 32px;
    left: 48px;
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    letter-spacing: 0.4em;
    color: var(--terracotta-light);
    opacity: 0.6
    }
.nav-overlay-list {
    list-style: none;
    text-align: center;
    margin: 0;
    padding: 0
    }
.nav-overlay-list li {
    margin-bottom: 32px
    }
.nav-overlay-link {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--cream);
    text-decoration: none;
    position: relative;
    display: inline-block;
    padding-bottom: 4px;
    transition: color 0.2s
    }
.nav-overlay-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 1px;
    background: var(--terracotta-light);
    transition: width 0.3s ease
    }
.nav-overlay-link:hover {
    color: var(--terracotta-light)
    }
.nav-overlay-link:hover::after,
.nav-overlay-link.active::after {
    width: 100%
    }
.nav-overlay-link.active {
    color: var(--terracotta-light)
    }
.nav-overlay-link.nav-overlay-cta {
    background: var(--terracotta);
    color: var(--cream);
    padding: 14px 40px;
    border-radius: 2px;
    font-size: clamp(18px, 2.4vw, 26px);
    margin-top: 12px;
    transition: background 0.2s, transform 0.2s
    }
.nav-overlay-link.nav-overlay-cta::after {
    display: none
    }
.nav-overlay-link.nav-overlay-cta:hover {
    background: var(--terracotta-light);
    color: var(--cream);
    transform: translateY(-2px)
    }
.nav-overlay-footer {
    position: absolute;
    bottom: 32px;
    left: 0;
    right: 0;
    text-align: center
    }
.nav-overlay-tagline {
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    color: rgba(250, 246, 240, 0.45)
    }

/* === Keyframes === */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(24px);
        } to {
        opacity: 1;
        transform: translateY(0);
        }
    }
@keyframes fadeIn {
    from {
        opacity: 0;
        } to {
        opacity: 1;
        }
    }

/* === Media Queries === */
@media (max-width: 900px) {
  .company-info {
      padding: 80px 24px
      }
  .company-table th {
      width: 120px;
      font-size: 11px
      }
  .company-table td {
      font-size: 13px;
      padding-left: 16px
      }
  body > nav {
      padding: 16px 24px
      }
  .hero {
      grid-template-columns: 1fr;
      padding: 100px 24px 60px
      }
  .hero-visual-box {
      height: 360px
      }
  .mission, .vision, .services, .trust, .cta-section {
      padding: 80px 24px
      }
  .vision-inner {
      grid-template-columns: 1fr
      }
  .vision-visual {
      display: none
      }
  .services-grid, .trust-stats {
      grid-template-columns: 1fr
      }
  footer {
      padding: 48px 24px 32px
      }
  .footer-inner {
      grid-template-columns: 1fr;
      gap: 40px
      }
  .footer-nav {
      flex-wrap: wrap;
      gap: 32px
      }
  .footer-bottom {
      flex-direction: column;
      gap: 8px
      }
  .page-hero {
      padding: 120px 24px 72px
      }
  .services-intro, .comparison {
      padding-left: 24px;
      padding-right: 24px
      }
  .service-detail {
      padding: 72px 24px
      }
  .service-detail-inner {
      grid-template-columns: 1fr;
      gap: 40px
      }
  .service-detail-inner.reverse {
      direction: ltr
      }
  .service-visual {
      height: 260px
      }
  .comparison-table th, .comparison-table td {
      padding: 14px 12px;
      font-size: 12px
      }
  .cta-section {
      padding: 80px 24px
      }
  .team-featured {
      grid-template-columns: 1fr
      }
  .team-featured-photo {
      width: 100%;
      height: auto;
      max-width: 360px;
      max-height: 480px;
      aspect-ratio: 3/4;
      margin: 0 auto
      }
  .team-grid {
      grid-template-columns: repeat(2, 1fr)
      }
  .mv-section, .story-section, .team-section, .company-section, .cta-section {
      padding: 80px 24px
      }
  .mv-inner {
      grid-template-columns: 1fr
      }
  .mv-card {
      padding: 48px 32px
      }
  .contact-options, .form-section {
      padding-left: 24px;
      padding-right: 24px
      }
  .options-grid {
      grid-template-columns: 1fr
      }
}

/* === Mobile (≤ 600px) — narrow phone optimization === */
@media (max-width: 600px) {
  body > nav {
    padding: 14px 20px;
  }
  .nav-logo .ja {
    font-size: 15px;
    letter-spacing: 0.06em;
  }
  .nav-toggle {
    width: 40px;
    height: 40px;
  }

  /* Hero (TOP) */
  .hero {
    padding: 96px 20px 48px;
    gap: 32px;
  }
  .hero-eyebrow {
    font-size: 12px;
    margin-bottom: 20px;
  }
  .hero-heading {
    font-size: 32px;
    line-height: 1.55;
    margin-bottom: 24px;
  }
  .hero-sub {
    font-size: 14px;
    margin-bottom: 32px;
  }
  .hero-actions {
    gap: 12px;
  }
  .btn-primary, .btn-secondary, .btn-outline {
    padding: 14px 24px;
    font-size: 13px;
  }
  .hero-visual-box {
    height: 280px;
  }
  .hero-badge {
    bottom: -12px;
    left: 12px;
    padding: 14px 18px;
  }
  .hero-badge .num {
    font-size: 28px;
  }

  /* Page hero (other pages) */
  .page-hero {
    padding: 100px 20px 56px;
  }
  .page-hero-heading {
    font-size: 30px;
    line-height: 1.5;
  }
  .page-hero-sub {
    font-size: 13px;
  }
  .breadcrumb {
    font-size: 10px;
    margin-bottom: 24px;
  }

  /* General sections */
  .mission, .vision, .services, .trust, .cta-section,
  .mv-section, .story-section, .team-section, .company-section,
  .privacy-content, .contact-options, .access-section, .contact-visit,
  .reviews-section, .achievements-section, .achievements-detail-section {
    padding: 64px 20px;
  }
  .achievements-summary-grid,
  .achievements-detail-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .achievements-summary-card {
    padding: 28px 24px;
  }
  .achievements-block {
    padding: 32px 24px;
  }
  .reviews-placeholder {
    padding: 36px 20px;
  }
  .access-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .access-name {
    font-size: 20px;
  }
  .access-map {
    height: 220px;
  }
  .access-body {
    padding: 20px 22px 24px;
  }
  /* Q&A mobile */
  .qa-block {
    margin-bottom: 60px;
    padding-top: 48px;
  }
  .qa-q {
    font-size: 20px;
  }
  .qa-text {
    font-size: 14px;
  }
  .qa-question {
    gap: 12px;
    padding: 18px 4px 18px 0;
  }
  .qa-answer {
    padding-left: 32px;
    font-size: 13px;
    padding-bottom: 20px;
  }
  .form-section {
    padding: 0 20px 72px;
  }
  .services-intro, .comparison {
    padding-left: 20px;
    padding-right: 20px;
  }
  .service-detail {
    padding: 56px 20px;
  }
  .service-detail-inner {
    gap: 28px;
  }
  .service-visual {
    height: 220px;
  }

  /* Cards / Lists */
  .stat-num {
    font-size: 44px;
  }
  .service-card {
    padding: 36px 24px;
  }
  .option-card {
    padding: 36px 24px;
  }

  /* Team — 1 column on narrow phones */
  .team-grid {
    grid-template-columns: 1fr;
  }
  .team-card {
    padding: 24px 20px;
  }
  .team-photo {
    aspect-ratio: 4/3;
  }
  .team-featured {
    padding: 32px 24px;
    gap: 24px;
  }
  .team-featured-name {
    font-size: 24px;
  }

  /* Comparison table — horizontal scroll with sticky first column */
  .comparison-inner {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -20px;
    padding: 0 20px;
  }
  .comparison-table {
    min-width: 540px;
  }
  .comparison-table th, .comparison-table td {
    padding: 12px 10px;
    font-size: 11px;
  }
  .comparison-table th:first-child,
  .comparison-table td:first-child {
    position: sticky;
    left: 0;
    background: var(--warm-white);
    z-index: 1;
    box-shadow: 1px 0 0 var(--border);
  }
  .comparison-table tr:nth-child(even) td:first-child {
    background: var(--cream);
  }
  .comparison-table thead th:first-child {
    background: var(--charcoal);
  }
  .comparison-hint {
    display: block;
    font-size: 11px;
    color: var(--charcoal-mid);
    text-align: center;
    margin-top: 8px;
    letter-spacing: 0.08em;
    font-style: italic;
  }

  /* Form */
  .form-input, .form-select, .form-textarea {
    font-size: 16px;  /* prevent iOS zoom on focus */
    padding: 12px 14px;
  }
  .form-radio-label {
    padding: 8px 14px;
    font-size: 12px;
  }
  .form-submit {
    font-size: 14px;
    padding: 16px;
  }

  /* Footer */
  .footer-inner {
    gap: 32px;
  }
  .footer-nav {
    gap: 24px;
  }
  .footer-tagline {
    font-size: 12px;
  }

  /* Privacy page */
  .privacy-lead {
    font-size: 14px;
    margin-bottom: 48px;
    padding-bottom: 28px;
  }
  .privacy-article {
    margin-bottom: 48px;
  }
  .privacy-heading {
    font-size: 20px;
    margin-bottom: 18px;
  }
  .privacy-body {
    font-size: 13px;
    line-height: 2.1;
  }
  .privacy-list > li {
    padding-left: 26px;
    margin-bottom: 12px;
  }
  .privacy-contact-card {
    padding: 22px 20px;
  }

  /* Service fee note + disclaimers */
  .service-fee-note {
    padding: 16px 18px;
    font-size: 12px;
  }
  .service-disclaimers {
    font-size: 11px;
    margin: 20px 0;
  }

  /* Nav overlay (hamburger) */
  .nav-overlay {
    padding: 60px 20px;
  }
  .nav-overlay-list li {
    margin-bottom: 24px;
  }
  .nav-overlay-link {
    font-size: 26px;
  }
  .nav-overlay-link.nav-overlay-cta {
    padding: 12px 32px;
    font-size: 18px;
  }
  .nav-overlay::before {
    top: 20px;
    left: 20px;
  }
  .nav-overlay-footer {
    bottom: 20px;
  }
  .nav-overlay-tagline {
    font-size: 12px;
  }
}

/* ===================================================== */
/* RESULTS PAGE (alca-results.html)                       */
/* ===================================================== */

/* Common section structure */
.results-section-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center
    }
.results-section-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 16px
    }
.results-section-lead {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 48px
    }

/* === Summary 3 cards === */
.results-summary {
    padding: 80px 48px;
    background: var(--cream-dark)
    }
.results-summary-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
    }
.results-summary-card {
    background: var(--warm-white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 48px 32px;
    text-align: center
    }
.results-summary-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    color: var(--terracotta);
    margin-bottom: 16px;
    text-transform: uppercase
    }
.results-summary-num {
    font-family: "Shippori Mincho B1", serif;
    font-size: 56px;
    font-weight: 600;
    line-height: 1;
    color: var(--charcoal);
    margin-bottom: 12px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px
    }
.results-summary-plus {
    font-family: "Shippori Mincho B1", serif;
    font-size: 40px;
    color: var(--charcoal);
    font-weight: 400;
    line-height: 1
    }
.results-summary-sub {
    font-size: 13px;
    color: var(--charcoal-soft);
    letter-spacing: 0.05em
    }

/* === Banks (4 tabs) === */
.results-banks {
    padding: 100px 48px;
    background: var(--cream)
    }
.bank-tab-nav {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-bottom: 36px;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap
    }
.bank-tab-btn {
    background: transparent;
    border: none;
    padding: 14px 22px;
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    color: var(--charcoal-mid);
    cursor: pointer;
    position: relative;
    font-weight: 400;
    transition: color 0.2s
    }
.bank-tab-btn:hover {
    color: var(--charcoal)
    }
.bank-tab-btn.active {
    color: var(--charcoal);
    font-weight: 600
    }
.bank-tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--terracotta)
    }
.bank-tab-btn.highlight {
    color: var(--terracotta)
    }
.bank-tab-btn.highlight.active {
    color: var(--charcoal)
    }
.bank-tab-count {
    display: inline-block;
    background: var(--cream-dark);
    color: var(--charcoal);
    font-size: 11px;
    padding: 2px 7px;
    margin-left: 6px;
    font-family: "Cormorant Garamond", serif;
    border-radius: 2px
    }
.bank-tab-content {
    display: none
    }
.bank-tab-content.active {
    display: block
    }
.bank-tab-intro {
    text-align: center;
    margin-bottom: 28px;
    font-size: 13px;
    color: var(--charcoal-soft);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.9
    }
.bank-tab-intro strong {
    color: var(--terracotta);
    font-weight: 500
    }
.bank-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border)
    }
.bank-cell {
    background: var(--warm-white);
    padding: 28px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100px;
    gap: 4px
    }
.bank-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--charcoal);
    text-align: center;
    letter-spacing: 0.04em
    }
.bank-type {
    font-size: 10px;
    color: var(--charcoal-mid);
    letter-spacing: 0.1em
    }
.bank-note {
    text-align: center;
    margin-top: 24px;
    font-size: 12px;
    color: var(--charcoal-mid);
    font-style: italic
    }

/* === Coverage Map === */
.results-coverage {
    padding: 100px 48px;
    background: var(--cream-dark)
    }
.coverage-map-wrap {
    max-width: 900px;
    margin: 0 auto
    }
.coverage-map-box {
    background: var(--warm-white);
    border: 1px solid var(--border);
    padding: 40px 32px;
    display: flex;
    align-items: center;
    justify-content: center
    }
.coverage-svg {
    width: 100%;
    max-width: 700px;
    height: auto
    }
.coverage-cell {
    stroke: var(--warm-white);
    stroke-width: 1.5
    }
.coverage-l0 { fill: var(--cream-dark); }
.coverage-l1 { fill: var(--terracotta-pale); }
.coverage-l2 { fill: var(--terracotta-light); }
.coverage-l3 { fill: var(--charcoal); }
.coverage-legend {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 32px;
    margin-top: 24px;
    flex-wrap: wrap
    }
.coverage-legend-row {
    display: flex;
    align-items: center;
    gap: 10px
    }
.coverage-legend-swatch {
    width: 28px;
    height: 16px
    }
.coverage-legend-swatch.l1 { background: var(--terracotta-pale); }
.coverage-legend-swatch.l2 { background: var(--terracotta-light); }
.coverage-legend-swatch.l3 { background: var(--charcoal); }
.coverage-legend-text {
    font-size: 12px;
    color: var(--charcoal-soft)
    }
.coverage-note {
    font-size: 11px;
    color: var(--charcoal-mid);
    margin-top: 18px;
    font-style: italic;
    line-height: 1.8;
    text-align: center
    }

/* === Counter (Charcoal block) === */
.results-counter {
    padding: 100px 48px;
    background: var(--charcoal);
    color: var(--cream)
    }
.results-counter-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center
    }
.section-label.dark {
    color: var(--terracotta-light)
    }
.results-counter-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--cream);
    margin-bottom: 16px
    }
.results-counter-lead {
    font-size: 14px;
    color: rgba(250, 246, 240, 0.75);
    line-height: 2;
    margin-bottom: 48px
    }
.results-counter-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border-top: 1px solid rgba(250, 246, 240, 0.18)
    }
.results-counter-card {
    padding: 40px 24px;
    border-right: 1px solid rgba(250, 246, 240, 0.18);
    text-align: center
    }
.results-counter-card:last-child {
    border-right: none
    }
.results-counter-tag {
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    color: var(--terracotta-light);
    margin-bottom: 16px;
    text-transform: uppercase
    }
.results-counter-num {
    font-family: "Shippori Mincho B1", serif;
    font-size: 48px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 8px;
    color: var(--cream);
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px
    }
.results-counter-num .plus {
    font-family: "Shippori Mincho B1", serif;
    font-size: 34px;
    color: var(--cream);
    font-weight: 400;
    line-height: 1
    }
.results-counter-num .ja-unit {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 400
    }
.results-counter-label {
    font-size: 13px;
    color: rgba(250, 246, 240, 0.78)
    }

.results-counter-shops {
    text-align: center;
    margin-top: 24px;
    font-size: 12px;
    color: rgba(250, 246, 240, 0.6);
    font-style: italic;
    letter-spacing: 0.02em
    }
.results-counter-period {
    text-align: center;
    padding: 24px 0 0;
    margin-top: 16px;
    font-family: "Cormorant Garamond", serif;
    font-size: 12px;
    color: rgba(250, 246, 240, 0.5);
    letter-spacing: 0.2em;
    border-top: 1px solid rgba(250, 246, 240, 0.18)
    }

/* === Featured brands === */
.results-brands {
    padding: 100px 48px;
    background: var(--cream)
    }
.brands-hero-block {
    background: var(--cream-dark);
    padding: 40px 36px;
    border-left: 4px solid var(--terracotta);
    margin-top: 12px
    }
.brands-hero-title {
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--charcoal);
    margin-bottom: 24px;
    letter-spacing: 0.06em
    }
.brands-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px 28px;
    text-align: left
    }
.brand-item {
    padding: 8px 0;
    border-bottom: 1px dashed var(--border)
    }
.brand-row {
    display: flex;
    align-items: baseline;
    gap: 8px
    }
.brand-mark {
    color: var(--terracotta);
    font-family: "Cormorant Garamond", serif;
    font-size: 14px;
    line-height: 1
    }
.brand-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    color: var(--charcoal);
    font-weight: 600
    }
.brand-developer {
    font-size: 10px;
    color: var(--charcoal-mid);
    margin-left: 4px;
    letter-spacing: 0.05em
    }
.brand-example {
    font-size: 11px;
    color: var(--charcoal-mid);
    margin-top: 4px;
    padding-left: 22px;
    line-height: 1.6
    }

/* === All Mansion list === */
.results-mansions {
    padding: 80px 48px 100px;
    background: var(--cream)
    }
.all-list-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 18px;
    flex-wrap: wrap;
    gap: 12px;
    text-align: left
    }
.all-list-title {
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--charcoal);
    letter-spacing: 0.06em
    }
.all-list-count {
    font-family: "Cormorant Garamond", serif;
    font-size: 13px;
    color: var(--charcoal-mid);
    letter-spacing: 0.15em
    }
.all-list-count span {
    color: var(--terracotta);
    font-size: 15px
    }

.area-tab-nav {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap
    }
.area-tab-btn {
    background: transparent;
    border: none;
    padding: 12px 18px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 12px;
    color: var(--charcoal-mid);
    cursor: pointer;
    position: relative;
    font-weight: 400;
    transition: color 0.2s
    }
.area-tab-btn:hover {
    color: var(--charcoal)
    }
.area-tab-btn.active {
    color: var(--charcoal);
    font-weight: 600
    }
.area-tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--terracotta)
    }
.area-tab-num {
    font-family: "Cormorant Garamond", serif;
    font-size: 11px;
    color: var(--charcoal-mid);
    margin-left: 4px
    }
.area-tab-content {
    display: none
    }
.area-tab-content.active {
    display: block
    }

.property-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 18px;
    text-align: left
    }
.property-item {
    padding: 10px 0;
    border-bottom: 1px dashed var(--border);
    display: flex;
    flex-direction: column;
    gap: 3px
    }
.property-name {
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    color: var(--charcoal);
    font-weight: 400;
    letter-spacing: 0.02em
    }
.property-area {
    font-size: 10px;
    color: var(--charcoal-mid);
    letter-spacing: 0.05em
    }
.property-list-note {
    font-size: 11px;
    color: var(--charcoal-mid);
    margin-top: 20px;
    font-style: italic;
    line-height: 1.8;
    text-align: left
    }

/* === Houses & Land === */
.results-houses {
    padding: 100px 48px;
    background: var(--cream-dark)
    }
.house-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px 18px;
    text-align: left
    }
.house-item {
    padding: 10px 0;
    border-bottom: 1px dashed var(--border);
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    color: var(--charcoal);
    letter-spacing: 0.02em
    }
.house-item .h-area {
    font-size: 10px;
    color: var(--charcoal-mid);
    margin-right: 8px;
    letter-spacing: 0.05em;
    font-family: "Noto Sans JP", sans-serif
    }

/* === Featured cases (provisional) === */
.results-cases {
    padding: 100px 48px;
    background: var(--cream);
    position: relative
    }
.provisional-badge {
    position: absolute;
    top: 32px;
    right: 48px;
    background: var(--terracotta);
    color: var(--cream);
    padding: 6px 14px;
    font-size: 11px;
    letter-spacing: 0.2em;
    font-weight: 500;
    border-radius: 2px;
    font-family: "Cormorant Garamond", serif
    }
.cases-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    text-align: left;
    max-width: 920px;
    margin: 0 auto
    }
.case-card {
    background: var(--cream-dark);
    padding: 32px 28px;
    border-left: 3px solid var(--terracotta);
    border-radius: 2px
    }
.case-meta {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 10px;
    letter-spacing: 0.1em;
    flex-wrap: wrap
    }
.case-pin {
    background: var(--charcoal);
    color: var(--cream);
    padding: 4px 9px
    }
.case-type {
    background: var(--warm-white);
    color: var(--charcoal);
    padding: 4px 9px;
    border: 1px solid var(--border)
    }
.case-title {
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--charcoal);
    margin-bottom: 14px;
    line-height: 1.6
    }
.case-detail {
    font-size: 12px;
    color: var(--charcoal-mid);
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px dashed var(--border)
    }
.case-result {
    font-size: 13px;
    color: var(--charcoal);
    font-weight: 500;
    line-height: 1.7;
    font-family: "Shippori Mincho B1", serif
    }
.case-result::before { content: '“ '; color: var(--terracotta); }
.case-result::after { content: ' ”'; color: var(--terracotta); }
.cases-note {
    text-align: center;
    margin-top: 24px;
    font-size: 11px;
    color: var(--charcoal-mid);
    font-style: italic
    }

/* === Responsive === */
@media (max-width: 900px) {
    .results-summary-inner { grid-template-columns: 1fr 1fr; }
    .bank-grid { grid-template-columns: repeat(2, 1fr); }
    .results-counter-grid { grid-template-columns: 1fr; }
    .results-counter-card { border-right: none; border-bottom: 1px solid rgba(250, 246, 240, 0.18); }
    .brands-list { grid-template-columns: 1fr 1fr; }
    .property-grid { grid-template-columns: 1fr 1fr; }
    .house-grid { grid-template-columns: 1fr 1fr; }
    .provisional-badge { position: static; display: inline-block; margin-bottom: 16px; }
    }
@media (max-width: 600px) {
    .results-summary, .results-banks, .results-coverage, .results-counter, .results-brands, .results-mansions, .results-houses, .results-cases { padding-left: 20px; padding-right: 20px; }
    .results-summary-inner { grid-template-columns: 1fr; }
    .results-summary-num { font-size: 44px; }
    .bank-tab-btn, .area-tab-btn { padding: 10px 12px; font-size: 12px; }
    .brands-list, .property-grid, .house-grid, .cases-grid { grid-template-columns: 1fr; }
    .coverage-legend { flex-direction: column; gap: 8px; }
    .results-counter-num { font-size: 40px; }
    .all-list-header { flex-direction: column; align-items: flex-start; }
    }

/* === Reviews Fallback (no JS / Elfsight load failure) === */
.reviews-fallback {
    text-align: center;
    padding: 48px 24px;
    background: var(--cream-dark);
    border-radius: 4px;
    margin-top: 12px;
    }
.reviews-fallback p {
    font-size: 14px;
    color: var(--charcoal-soft);
    line-height: 2;
    margin-bottom: 20px;
    }

/* === Focus ring (keyboard navigation) === */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid var(--terracotta-light);
    outline-offset: 3px;
    border-radius: 2px;
    }
.form-radio:focus-visible + .form-radio-label {
    outline: 2px solid var(--terracotta-light);
    outline-offset: 3px;
    }

/* === Turnstile (Cloudflare bot protection widget) === */
.form-turnstile {
    margin: 20px 0;
    display: flex;
    justify-content: center;
    }
