.page-hero{
    position:relative;
    overflow:hidden;
    padding:84px 28px 76px;
    border-bottom:1px solid var(--line);
    background:
        linear-gradient(115deg,rgba(255,250,244,.97) 0%,rgba(247,239,231,.96) 48%,rgba(220,234,221,.85) 100%);
}
.page-hero::before{
    content:"";
    position:absolute;
    right:-170px;
    top:-230px;
    width:520px;
    height:520px;
    background:radial-gradient(circle,rgba(140,175,149,.28) 0%,rgba(140,175,149,.12) 42%,transparent 70%);
}
.page-hero::after{
    content:"";
    position:absolute;
    left:-180px;
    bottom:-260px;
    width:560px;
    height:560px;
    background:radial-gradient(circle,rgba(230,166,161,.26) 0%,rgba(230,166,161,.12) 45%,transparent 72%);
}
.page-hero-pattern{
    position:absolute;
    pointer-events:none;
    opacity:.45;
}
.page-hero-pattern-a{
    width:360px;
    height:1px;
    right:80px;
    top:76px;
    background:var(--orange);
    transform:rotate(-18deg);
}
.page-hero-pattern-b{
    width:230px;
    height:1px;
    left:12%;
    bottom:70px;
    background:var(--green);
    transform:rotate(-18deg);
}
.page-hero-inner{
    position:relative;
    z-index:2;
    max-width:1120px;
    margin:0 auto;
}
.page-kicker{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--green);
    font-size:12px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.page-kicker::before{
    content:"";
    width:42px;
    height:1px;
    background:var(--green);
}
.page-hero h1{
    position:relative;
    display:inline-block;
    margin:14px 0 0;
    font-size:34px;
    line-height:1.45;
    letter-spacing:.05em;
    font-weight:700;
}
.page-hero h1::after{
    content:"";
    position:absolute;
    left:0;
    right:-18px;
    bottom:6px;
    height:10px;
    background:rgba(220,166,111,.28);
    z-index:-1;
}
.page-hero p{
    max-width:670px;
    margin:20px 0 0;
    color:var(--muted);
    font-size:15px;
    line-height:2;
}
.breadcrumb{
    background:#fff;
    border-bottom:1px solid var(--line);
}
.breadcrumb-inner{
    max-width:1120px;
    margin:0 auto;
    padding:12px 28px;
    font-size:12px;
    color:var(--muted);
}
.breadcrumb a{
    color:var(--green);
    font-weight:700;
}
.lower-section{
    position:relative;
    padding:82px 28px;
}
.lower-section.alt{
    background:var(--soft);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}
.lower-inner{
    max-width:1040px;
    margin:0 auto;
}
.lower-narrow{
    max-width:860px;
}
.content-lead{
    position:relative;
    padding:30px 34px;
    margin:0 0 54px;
    background:#fff;
    border:1px solid var(--line);
}
.content-lead::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:6px;
    background:linear-gradient(180deg,var(--pink),var(--green));
}
.content-lead p{
    margin:0;
    font-size:17px;
    line-height:2.15;
    color:#4f4741;
}
.text-block h2{
    position:relative;
    margin:0 0 28px;
    padding-left:24px;
    font-size:31px;
    line-height:1.55;
    letter-spacing:.04em;
}
.text-block h2:not(:first-child){
    margin-top:76px;
}
.text-block h2::before{
    content:"";
    position:absolute;
    left:0;
    top:.25em;
    width:5px;
    height:2.4em;
    background:linear-gradient(180deg,var(--green),var(--orange));
}
.text-block h3{
    position:relative;
    margin:42px 0 16px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
    font-size:21px;
    line-height:1.55;
}
.text-block h3::before{
    content:"";
    position:absolute;
    left:0;
    bottom:-1px;
    width:80px;
    height:1px;
    background:var(--green);
}
.text-block p{
    margin:0 0 22px;
    color:var(--muted);
    font-size:15.5px;
    line-height:2.15;
}
.lower-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:46px;
    align-items:start;
}
.lower-grid.center{
    align-items:center;
}
.photo-box{
    min-height:360px;
    border:1px solid var(--line);
    background:
        linear-gradient(135deg,rgba(230,166,161,.25),rgba(140,175,149,.2)),
        url("https://images.unsplash.com/photo-1606811971618-4486d14f3f99?auto=format&fit=crop&w=1200&q=80") center/cover;
}
.photo-box.doctor{
    background:
        linear-gradient(135deg,rgba(230,166,161,.18),rgba(140,175,149,.18)),
        url("https://images.unsplash.com/photo-1588776814546-1ffcf47267a5?auto=format&fit=crop&w=1200&q=80") center/cover;
}
.photo-box.clinic{
    background:
        linear-gradient(135deg,rgba(230,166,161,.15),rgba(140,175,149,.16)),
        url("https://images.unsplash.com/photo-1629909615184-74f495363b67?auto=format&fit=crop&w=1200&q=80") center/cover;
}
.feature-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-top:34px;
}
.feature-item{
    position:relative;
    background:#fff;
    border:1px solid var(--line);
    padding:26px 24px 24px;
    min-height:190px;
    overflow:hidden;
}
.feature-item::after{
    content:attr(data-num);
    position:absolute;
    right:14px;
    top:-18px;
    font-family:Georgia,serif;
    font-size:78px;
    line-height:1;
    font-weight:700;
    color:rgba(220,166,111,.22);
}
.feature-item h3{
    position:relative;
    z-index:1;
    margin:36px 0 10px;
    font-size:18px;
    line-height:1.55;
}
.feature-item p{
    position:relative;
    z-index:1;
    margin:0;
    color:var(--muted);
    font-size:14px;
    line-height:2;
}
.flow-list{
    display:grid;
    gap:12px;
    counter-reset:flow;
    margin-top:30px;
}
.flow-item{
    counter-increment:flow;
    display:grid;
    grid-template-columns:90px 1fr;
    gap:20px;
    align-items:start;
    background:#fff;
    border:1px solid var(--line);
    padding:22px;
}
.flow-item::before{
    content:"0" counter(flow);
    font-family:Georgia,serif;
    color:var(--orange);
    font-size:42px;
    line-height:1;
    font-weight:700;
}
.flow-item h3{
    margin:0 0 6px;
    padding:0;
    border:0;
}
.flow-item h3::before{
    display:none;
}
.flow-item p{
    margin:0;
}
.info-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    background:#fff;
    border:1px solid var(--line);
}
.info-table th,
.info-table td{
    border-bottom:1px solid var(--line);
    padding:17px 18px;
    text-align:left;
    vertical-align:top;
}
.info-table tr:last-child th,
.info-table tr:last-child td{
    border-bottom:0;
}
.info-table th{
    width:30%;
    color:var(--green);
    background:#fbf5ef;
    font-weight:700;
}
.cta-box{
    margin-top:70px;
    padding:38px;
    background:
        linear-gradient(110deg,rgba(255,255,255,.96),rgba(255,250,244,.92)),
        radial-gradient(circle at right top,rgba(140,175,149,.22),transparent 45%);
    border:1px solid var(--line);
    display:grid;
    grid-template-columns:1fr auto;
    gap:24px;
    align-items:center;
}
.cta-box h2{
    margin:0 0 8px;
    padding:0;
    font-size:24px;
}
.cta-box h2::before{
    display:none;
}
.cta-box p{
    margin:0;
}
.related-links{
    margin-top:70px;
}
.related-links h2{
    font-size:24px;
}
.related-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.related-card{
    background:#fff;
    border:1px solid var(--line);
    padding:22px;
    min-height:120px;
}
.related-card span{
    display:block;
    color:var(--green);
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
}
.related-card strong{
    display:block;
    margin-top:8px;
    font-size:17px;
}
.related-card p{
    margin:8px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.8;
}
.faq-list{
    display:grid;
    gap:12px;
}
.faq-item{
    background:#fff;
    border:1px solid var(--line);
}
.faq-item summary{
    cursor:pointer;
    padding:19px 22px;
    font-weight:700;
    list-style:none;
}
.faq-item summary::-webkit-details-marker{
    display:none;
}
.faq-item summary::before{
    content:"Q";
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    margin-right:10px;
    background:var(--green);
    color:#fff;
    font-family:Georgia,serif;
}
.faq-item p{
    margin:0;
    padding:0 22px 22px 60px;
    color:var(--muted);
}
.map-placeholder{
    min-height:380px;
    border:1px solid var(--line);
    background:
        linear-gradient(135deg,rgba(140,175,149,.22),rgba(220,166,111,.22)),
        repeating-linear-gradient(45deg,#fff,#fff 12px,#f5eee7 12px,#f5eee7 24px);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--muted);
    font-weight:700;
}
@media(max-width:900px){
    .feature-list,
    .related-grid{
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:768px){
    .page-hero{
        padding:54px 18px 48px;
    }
    .page-hero h1{
        font-size:27px;
    }
    .page-hero p{
        font-size:14px;
        line-height:1.9;
    }
    .breadcrumb-inner{
        padding:10px 18px;
    }
    .lower-section{
        padding:56px 18px;
    }
    .content-lead{
        padding:22px 22px 22px 26px;
        margin-bottom:40px;
    }
    .content-lead p{
        font-size:15px;
        line-height:2;
    }
    .text-block h2{
        font-size:24px;
        padding-left:18px;
        margin-bottom:22px;
    }
    .text-block h2:not(:first-child){
        margin-top:54px;
    }
    .text-block h3{
        font-size:18px;
        margin-top:34px;
    }
    .text-block p{
        font-size:14.5px;
        line-height:2;
    }
    .lower-grid,
    .feature-list,
    .related-grid{
        grid-template-columns:1fr;
    }
    .photo-box{
        min-height:250px;
    }
    .feature-item{
        min-height:150px;
        padding:20px;
    }
    .feature-item h3{
        margin-top:30px;
    }
    .flow-item{
        grid-template-columns:58px 1fr;
        gap:14px;
        padding:18px;
    }
    .flow-item::before{
        font-size:32px;
    }
    .info-table th,
    .info-table td{
        display:block;
        width:100%;
        padding:13px 15px;
    }
    .info-table th{
        border-bottom:0;
    }
    .cta-box{
        display:block;
        padding:26px;
        margin-top:48px;
    }
}

.doctor-position{
    margin:0 0 4px;
    color:var(--muted);
    font-size:13px;
    letter-spacing:.04em;
}
.doctor-name{
    margin:0 0 22px;
    font-size:28px;
    font-weight:700;
    letter-spacing:.08em;
}
@media(max-width:768px){
    .doctor-name{
        font-size:23px;
    }
}


.contact-form{
    display:grid;
    gap:34px;
}

.form-block{
    background:#fff;
    border:1px solid var(--line);
    padding:34px;
}

.form-block h2{
    margin-top:0;
}

.form-field{
    display:grid;
    gap:9px;
    margin-top:20px;
}

.form-field label,
.form-block > h2{
    font-weight:700;
}

.form-field label em{
    display:inline-block;
    margin-left:8px;
    padding:2px 7px;
    background:var(--pink);
    color:#fff;
    font-size:11px;
    font-style:normal;
}

.form-field input,
.form-field textarea,
.zip-row input,
.birth-row input,
.hope-row input{
    width:100%;
    border:1px solid var(--line);
    background:#fffaf4;
    padding:13px 14px;
    font-size:15px;
}

.form-field textarea{
    resize:vertical;
    min-height:180px;
}

.form-note{
    margin:8px 0 0;
    color:var(--muted);
    font-size:13px;
}

.zip-row,
.birth-row,
.hope-row{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.zip-row input{
    max-width:90px;
}

.birth-row input,
.hope-row input{
    max-width:90px;
}

.form-radio-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:18px;
}

.form-radio-row label,
.checkbox-grid label{
    display:flex;
    align-items:center;
    gap:8px;
    background:#fffaf4;
    border:1px solid var(--line);
    padding:12px 14px;
    cursor:pointer;
}

.checkbox-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin-top:18px;
}

.hope-table{
    display:grid;
    gap:14px;
    margin-top:18px;
}

.hope-row{
    background:#fffaf4;
    border:1px solid var(--line);
    padding:14px;
}

.hope-row label{
    width:90px;
    font-weight:700;
    color:var(--green);
}

.form-submit{
    text-align:center;
}

.form-submit button{
    min-width:240px;
    border:0;
    background:var(--green);
    color:#fff;
    padding:16px 32px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
}

.form-message{
    border:1px solid var(--line);
    padding:28px;
    background:#fff;
    margin-bottom:30px;
}

.form-message.success{
    border-color:var(--green);
}

.form-message.error{
    border-color:var(--pink);
    color:#9b3f3a;
}

@media(max-width:768px){
    .form-block{
        padding:24px 18px;
    }

    .checkbox-grid{
        grid-template-columns:1fr;
    }

    .hope-row{
        display:grid;
        grid-template-columns:70px 1fr auto 1fr auto 1fr auto;
        gap:6px;
        align-items:center;
    }

    .hope-row label{
        width:auto;
    }

    .birth-row input,
    .hope-row input{
        max-width:none;
    }
}