.landing-page {
    --lp-ink: #3d3d3d;
    --lp-muted: #6b6560;
    --lp-line: #ece3d3;
    --lp-brand: #b9552a;
    --lp-dark: #3a2a21;
    --lp-soft: #fffbec;
    --lp-radius: 14px;
    background: #fff;
    color: var(--lp-ink);
    overflow-x: hidden;
}

.landing-page .lp-sec {
    padding: 72px 0;
}

.lp-bg-white { background: #fff; }
.lp-bg-soft { background: var(--lp-soft); border-top: 1px solid var(--lp-line); border-bottom: 1px solid var(--lp-line); }
.lp-bg-dark { background: var(--lp-dark); color: #fff; }
.lp-bg-soft + .lp-bg-soft { border-top: 0; }

.lp-narrow { max-width: 820px; }

.lp-head {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 40px;
}

.lp-head h2,
.lp-split-body h2,
.lp-doctor-body h2,
.lp-sec--cta h2 {
    font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: inherit;
    margin: 0;
}

.lp-head p {
    margin: 12px 0 0;
    color: var(--lp-muted);
    font-size: 1.0625rem;
    line-height: 1.75;
}

.lp-bg-dark .lp-head p { color: rgba(255, 255, 255, .78); }

.lp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.lp-actions--center { justify-content: center; }

.lp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    padding: 0 24px;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: opacity .15s ease, background-color .15s ease;
}

.lp-btn:hover { opacity: .9; }

.lp-btn:focus-visible {
    outline: 3px solid rgba(185, 85, 42, .35);
    outline-offset: 2px;
}

.lp-btn--primary { background: var(--lp-brand); color: #fff; }
.lp-btn--primary:hover { color: #fff; }

.lp-btn--ghost {
    background: #fff;
    color: var(--lp-ink);
    border-color: #d9cdbb;
}

.lp-btn--ghost:hover { color: var(--lp-ink); background: #faf6ef; opacity: 1; }

.lp-bg-dark .lp-btn--ghost,
.lp-hero--cover .lp-btn--ghost {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
}

.lp-bg-dark .lp-btn--ghost:hover,
.lp-hero--cover .lp-btn--ghost:hover { background: rgba(255, 255, 255, .14); color: #fff; }

.lp-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 20px;
    color: var(--lp-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.lp-hero {
    position: relative;
}

.lp-hero--cover {
    display: flex;
    align-items: center;
    min-height: 520px;
    background-size: cover;
    background-position: center;
    color: #fff;
}

.lp-hero--cover.lp-hero--sm { min-height: 380px; }

.lp-hero--cover::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(38, 26, 19, .58);
}

.lp-hero--cover .lp-hero-inner {
    position: relative;
    z-index: 1;
    padding: 72px 16px;
    text-align: center;
}

.lp-hero--cover .lp-hero-text { max-width: 720px; margin: 0 auto; }
.lp-hero--cover .lp-actions { justify-content: center; }

.lp-hero h1 {
    font-size: clamp(2rem, 1.5rem + 2.4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: inherit;
    margin: 0;
}

.lp-hero-sub {
    margin: 16px 0 0;
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    line-height: 1.75;
}

.lp-hero--cover .lp-hero-sub { color: rgba(255, 255, 255, .92); }

.lp-hero--split {
    background: var(--lp-soft);
    border-bottom: 1px solid var(--lp-line);
}

.lp-hero--split .lp-hero-inner {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 48px;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}

.lp-hero--split.lp-hero--sm .lp-hero-inner { padding-top: 40px; padding-bottom: 40px; }
.lp-hero--split .lp-hero-sub { color: var(--lp-muted); }

.lp-hero-media {
    margin: 0;
    border-radius: var(--lp-radius);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.lp-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}

.lp-split--reverse .lp-split-media { order: 2; }

.lp-split-media {
    margin: 0;
    border-radius: var(--lp-radius);
    overflow: hidden;
}

.lp-split-media img { width: 100%; display: block; }

.lp-split-body p {
    margin: 16px 0 0;
    color: var(--lp-muted);
    font-size: 1.0625rem;
    line-height: 1.85;
}

.lp-bg-dark .lp-split-body p { color: rgba(255, 255, 255, .8); }
.lp-split-body .lp-btn { margin-top: 28px; }

.lp-checks {
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
}

.lp-checks li {
    position: relative;
    padding: 8px 0 8px 28px;
    line-height: 1.6;
}

.lp-checks li::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 13px;
    width: 6px;
    height: 11px;
    border-right: 2px solid var(--lp-brand);
    border-bottom: 2px solid var(--lp-brand);
    transform: rotate(45deg);
}

.lp-feat {
    list-style: none;
    padding: 0;
    margin: 0;
}

.lp-feat h3 {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.45;
    margin: 0;
    color: inherit;
}

.lp-feat p {
    margin: 6px 0 0;
    color: var(--lp-muted);
    font-size: .9875rem;
    line-height: 1.75;
}

.lp-bg-dark .lp-feat p { color: rgba(255, 255, 255, .75); }

.lp-feat-icon {
    color: var(--lp-brand);
    font-size: 1.375rem;
    line-height: 1;
}

.lp-feat--cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.lp-feat--cards .lp-feat-item {
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    padding: 24px;
    color: var(--lp-ink);
}

.lp-feat--cards .lp-feat-icon { display: block; margin-bottom: 14px; }
.lp-feat--cards .lp-feat-item p { color: var(--lp-muted); }

.lp-feat--list {
    max-width: 760px;
    margin: 0 auto;
    border-top: 1px solid var(--lp-line);
}

.lp-feat--list .lp-feat-item,
.lp-feat--columns .lp-feat-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px 4px;
    border-bottom: 1px solid var(--lp-line);
}

.lp-feat--list .lp-feat-icon,
.lp-feat--columns .lp-feat-icon { margin-top: 2px; flex: 0 0 auto; }

.lp-feat--columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 48px;
    border-top: 1px solid var(--lp-line);
}

.lp-bg-dark .lp-feat--list,
.lp-bg-dark .lp-feat--columns,
.lp-bg-dark .lp-feat--list .lp-feat-item,
.lp-bg-dark .lp-feat--columns .lp-feat-item { border-color: rgba(255, 255, 255, .14); }

.lp-steps {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 760px;
}

.lp-step {
    position: relative;
    padding: 0 0 28px 32px;
}

.lp-step::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--lp-brand);
}

.lp-step::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 22px;
    bottom: 2px;
    width: 2px;
    background: var(--lp-line);
}

.lp-step:last-child { padding-bottom: 0; }
.lp-step:last-child::after { display: none; }

.lp-step-no {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: var(--lp-brand);
    margin-bottom: 4px;
}

.lp-step h3 {
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0;
    color: inherit;
}

.lp-step p {
    margin: 6px 0 0;
    color: var(--lp-muted);
    line-height: 1.75;
}

.lp-bg-dark .lp-step p { color: rgba(255, 255, 255, .75); }
.lp-bg-dark .lp-step-no { color: #f0a07a; }

.lp-doctor {
    display: grid;
    grid-template-columns: minmax(220px, 340px) 1fr;
    gap: 56px;
    align-items: start;
}

.lp-doctor-photo {
    margin: 0;
    border-radius: var(--lp-radius);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: #f3ece2;
}

.lp-doctor-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-doctor-label {
    margin: 0 0 6px;
    color: var(--lp-brand);
    font-weight: 600;
    font-size: .9375rem;
}

.lp-doctor-exp {
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
    border-top: 1px solid var(--lp-line);
}

.lp-doctor-exp li {
    padding: 10px 0;
    border-bottom: 1px solid var(--lp-line);
    line-height: 1.6;
}

.lp-doctor-words {
    margin: 24px 0 0;
    color: var(--lp-muted);
    font-size: 1.0625rem;
    line-height: 1.85;
}

.lp-info {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
}

.lp-info--map { grid-template-columns: 1fr 1.2fr; }

.lp-info-list { margin: 0; border-top: 1px solid var(--lp-line); }

.lp-info-list > div {
    display: grid;
    grid-template-columns: 4.5em 1fr;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--lp-line);
}

.lp-info-list dt { font-weight: 600; color: var(--lp-muted); }
.lp-info-list dd { margin: 0; line-height: 1.7; }
.lp-info-list a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.lp-info-map {
    border-radius: var(--lp-radius);
    overflow: hidden;
    border: 1px solid var(--lp-line);
    min-height: 320px;
}

.lp-info-map iframe { display: block; width: 100%; height: 100%; min-height: 320px; border: 0; }
.lp-info-schedule { margin-top: 40px; }

.lp-faq { border-top: 1px solid var(--lp-line); }

.lp-faq .faq-item { border-bottom: 1px solid var(--lp-line); }

.lp-faq .faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 20px 2px;
    background: none;
    border: 0;
    text-align: left;
    font-size: 1.0625rem;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
}

.lp-faq .faq-question i {
    flex: 0 0 auto;
    font-size: 1.25rem;
    color: var(--lp-muted);
    transition: transform .2s ease;
}

.lp-faq .faq-item.open .faq-question { color: var(--lp-brand); }
.lp-faq .faq-item.open .faq-question i { transform: rotate(45deg); color: var(--lp-brand); }

.lp-faq .faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
}

.lp-faq .faq-item.open .faq-answer { max-height: 3000px; }

.lp-faq .faq-answer-inner {
    padding: 0 2px 22px;
    color: var(--lp-muted);
    line-height: 1.85;
}

.lp-bg-dark .lp-faq,
.lp-bg-dark .lp-faq .faq-item { border-color: rgba(255, 255, 255, .14); }
.lp-bg-dark .lp-faq .faq-answer-inner { color: rgba(255, 255, 255, .78); }

.lp-quotes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.lp-quote {
    margin: 0;
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    padding: 24px;
    color: var(--lp-ink);
}

.lp-quote blockquote { margin: 0; line-height: 1.85; color: var(--lp-muted); }

.lp-quote figcaption {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--lp-line);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lp-quote figcaption span { font-weight: 600; }
.lp-quote figcaption small { color: var(--lp-muted); }

.lp-sec--cta .lp-cta-desc {
    margin: 12px 0 0;
    font-size: 1.125rem;
    line-height: 1.7;
}

.lp-bg-dark .lp-cta-desc { color: rgba(255, 255, 255, .85); }
.lp-bg-dark .lp-btn--primary { background: #fff; color: var(--lp-dark); }
.lp-bg-dark .lp-btn--primary:hover { color: var(--lp-dark); }

.lp-figure { margin: 0; text-align: center; }
.lp-figure img { max-width: 100%; height: auto; border-radius: var(--lp-radius); }
.lp-figure figcaption { margin-top: 12px; color: var(--lp-muted); font-size: .9375rem; }

.lp-gallery { border-radius: var(--lp-radius); overflow: hidden; }
.lp-gallery img { width: 100%; display: block; }

.lp-video {
    aspect-ratio: 16 / 9;
    border-radius: var(--lp-radius);
    overflow: hidden;
    background: #000;
}

.lp-video--narrow { max-width: 420px; margin: 0 auto; }

.lp-video iframe { width: 100%; height: 100%; border: 0; display: block; }

.lp-divider { display: flex; align-items: center; }
.lp-divider--line::before,
.lp-divider--dashed::before {
    content: '';
    display: block;
    width: min(720px, 100% - 32px);
    margin: 0 auto;
    border-top: 1px solid var(--lp-line);
}
.lp-divider--dashed::before { border-top-style: dashed; }

.landing-page .prose { font-size: 1.0625rem; line-height: 1.85; }
.landing-page .prose h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-weight: 700; margin: 0 0 20px; color: inherit; }
.landing-page .prose h3 { font-size: 1.25rem; font-weight: 700; margin: 28px 0 12px; color: inherit; }
.landing-page .prose p { margin: 0 0 16px; }
.landing-page .prose ol,
.landing-page .prose ul { padding-left: 1.4em; margin: 0 0 16px; }
.landing-page .prose li { margin-bottom: 10px; }
.landing-page .prose a { color: var(--lp-brand); text-decoration: underline; text-underline-offset: 3px; }
.landing-page .prose img { max-width: 100%; height: auto; border-radius: var(--lp-radius); }
.lp-bg-dark .prose a { color: #f0a07a; }
.lp-bg-dark .prose,
.lp-bg-dark .prose p,
.lp-bg-dark .prose li,
.lp-bg-dark .prose strong,
.lp-bg-dark .prose h2,
.lp-bg-dark .prose h3 { color: #fff; }
.lp-bg-dark .prose p,
.lp-bg-dark .prose li { color: rgba(255, 255, 255, .85); }
.lp-bg-dark .lp-doctor-label,
.lp-bg-dark .lp-link { color: #f0a07a; }
.lp-bg-dark .lp-doctor-words,
.lp-bg-dark .lp-info-list dt { color: rgba(255, 255, 255, .75); }
.lp-bg-dark .lp-doctor-exp,
.lp-bg-dark .lp-doctor-exp li,
.lp-bg-dark .lp-info-list,
.lp-bg-dark .lp-info-list > div { border-color: rgba(255, 255, 255, .14); }
.lp-bg-dark .lp-info-map { border-color: rgba(255, 255, 255, .14); }
.lp-bg-dark .lp-checks li::before { border-color: #f0a07a; }
.lp-bg-dark .lp-step::after { background: rgba(255, 255, 255, .18); }
.lp-bg-dark .lp-step::before { background: #f0a07a; }
.lp-bg-dark .lp-faq .faq-question i { color: rgba(255, 255, 255, .7); }
.lp-bg-dark .lp-faq .faq-item.open .faq-question,
.lp-bg-dark .lp-faq .faq-item.open .faq-question i { color: #f0a07a; }

.lp-bottom-bar {
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
    height: auto;
    align-items: stretch;
}

.lp-bar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid #d9cdbb;
    background: #fff;
    color: #3d3d3d;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    white-space: nowrap;
}

.lp-bar-btn--primary {
    flex: 1;
    background: #b9552a;
    border-color: #b9552a;
    color: #fff;
}

.lp-bar-btn--primary:hover { color: #fff; }

@media (min-width: 992px) {
    .lp-steps--row {
        display: grid;
        grid-template-columns: repeat(var(--lp-steps), minmax(0, 1fr));
        gap: 32px;
        max-width: none;
    }

    .lp-steps--row .lp-step { padding: 28px 0 0; }
    .lp-steps--row .lp-step::before { top: 0; }

    .lp-steps--row .lp-step::after {
        left: 20px;
        right: -26px;
        top: 5px;
        bottom: auto;
        width: auto;
        height: 2px;
    }
}

@media (max-width: 991.98px) {
    .lp-hero--split .lp-hero-inner,
    .lp-split,
    .lp-doctor,
    .lp-info--map {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .lp-split--reverse .lp-split-media { order: 0; }
    .lp-doctor-photo { max-width: 360px; }
}

@media (max-width: 767.98px) {
    .landing-page .lp-sec { padding: 52px 0; }
    .lp-head { margin-bottom: 28px; }
    .lp-hero--cover { min-height: 460px; }
    .lp-hero--cover.lp-hero--sm { min-height: 340px; }
    .lp-hero--cover .lp-hero-inner { padding: 56px 16px; }
    .lp-hero--split .lp-hero-inner { padding-top: 40px; padding-bottom: 40px; }
    .lp-feat--columns { grid-template-columns: 1fr; }
    .lp-actions .lp-btn { flex: 1 1 auto; }
    .lp-info-map,
    .lp-info-map iframe { min-height: 260px; }
}

@media (prefers-reduced-motion: reduce) {
    .lp-btn,
    .lp-faq .faq-question i,
    .lp-faq .faq-answer { transition: none; }
}
