/* Layout: calm single column on Tampa Bay sea-mist; hero pairs the promise with a live "direct line" text thread; content bands alternate surface/ground. */
/* Colour: sunny and friendly — warm teal accent, coral details, butter and mint bands on a warm off-white ground. */
:root{
  --bg:#FFFDF7; --surface:#FFFFFF; --ink:#2A2A26; --muted:#66665E; --accent:#2F6F6A; --accent-ink:#FFFFFF;
  --sun:#B85A3A; --line:#EFE6D3; --bubble-me:#FCEFD6; --bubble-dr:#2F6F6A; --bubble-dr-ink:#FFFFFF;
  --sand:#FCEFD6; --mist:#E8F3F0; --sage:#FDEDE6;
  --display:"Fraunces", Georgia, "Times New Roman", serif;
  --body:"Quicksand", system-ui, -apple-system, "Segoe UI", sans-serif;
  --s-1:.875rem; --s0:1.0625rem; --s1:1.25rem; --s2:1.6rem; --s3:2.2rem; --s4:clamp(2.4rem,5.4vw,3.9rem);
  --wrap:1120px; --radius:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#171613; --surface:#211F1B; --ink:#F2EFE6; --muted:#B5B1A5; --accent:#7CC4BC; --accent-ink:#0F1A19;
  --sun:#F0A48C; --line:#36332C; --bubble-me:#2B2822; --bubble-dr:#2F6F6A; --bubble-dr-ink:#FFFFFF; --sand:#221F19; --mist:#18211F; --sage:#241D1A; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#171613; --surface:#211F1B; --ink:#F2EFE6; --muted:#B5B1A5; --accent:#7CC4BC; --accent-ink:#0F1A19;
  --sun:#F0A48C; --line:#36332C; --bubble-me:#2B2822; --bubble-dr:#2F6F6A; --bubble-dr-ink:#FFFFFF; --sand:#221F19; --mist:#18211F; --sage:#241D1A; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:var(--s0);line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.12;text-wrap:balance;margin:0}
h1{font-size:var(--s4);font-weight:300;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;color:var(--accent)}
h2{font-size:var(--s3);font-weight:300}
h3{font-size:var(--s1);font-weight:500}
p{margin:0}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--sun);outline-offset:3px;border-radius:6px}
.eyebrow{font-size:var(--s-1);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lede{font-size:var(--s1);color:var(--muted);max-width:34rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.3rem;border-radius:999px;font:600 var(--s-1)/1 var(--body);letter-spacing:.02em;text-decoration:none;border:1.5px solid var(--accent);cursor:pointer;transition:background .2s,color .2s}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:transparent;color:var(--accent)}
.btn-ghost{background:transparent;color:var(--accent)}
.btn-ghost:hover{background:var(--accent);color:var(--accent-ink)}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.85rem}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);line-height:1.1}
.brand b{font-family:var(--display);font-weight:500;font-size:1.3rem}
.brand span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav-links{display:flex;align-items:center;gap:1.4rem}
.nav-links a.l{color:var(--ink);text-decoration:none;font-size:var(--s-1);font-weight:500}
.nav-links a.l:hover{color:var(--accent)}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--surface)}
.lang button{border:0;background:transparent;color:var(--muted);font:600 .78rem/1 var(--body);padding:.45rem .7rem;border-radius:999px;cursor:pointer;letter-spacing:.06em}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}

/* hero */
.hero{padding-block:clamp(3rem,7vw,5.5rem) clamp(3rem,6vw,5rem)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}
.facts{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:.6rem;padding:0;list-style:none;color:var(--muted);font-size:var(--s-1)}
.facts li{display:flex;align-items:center;gap:.5rem}
.facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sun)}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}

/* phone thread */
.thread{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:1.2rem 1.1rem 1.4rem;box-shadow:0 30px 60px -35px color-mix(in srgb,var(--ink) 45%,transparent);max-width:400px;width:100%;justify-self:center;min-width:0}
.thread-head{display:flex;align-items:center;gap:.7rem;padding-bottom:.9rem;border-bottom:1px solid var(--line);margin-bottom:1rem}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--display);font-weight:500}
.thread-head b{display:block;font-size:.95rem}
.thread-head small{color:var(--muted);font-size:.78rem}
.msgs{display:flex;flex-direction:column;gap:.55rem}
.msg{max-width:85%;padding:.6rem .85rem;border-radius:18px;font-size:.92rem;line-height:1.45}
.msg.me{align-self:flex-end;background:var(--bubble-me);border-bottom-right-radius:6px}
.msg.dr{align-self:flex-start;background:var(--bubble-dr);color:var(--bubble-dr-ink);border-bottom-left-radius:6px}
.stamp{font-size:.72rem;color:var(--muted);text-align:center;margin-block:.3rem}
.msg{opacity:1;transform:none;animation:rise .5s ease both}
.msg:nth-child(3){animation-delay:.35s}.msg:nth-child(4){animation-delay:.7s}.msg:nth-child(5){animation-delay:1.05s}
@keyframes rise{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}
.thread-note{margin-top:1rem;font-size:.75rem;color:var(--muted);text-align:center}

/* sections */
section{padding-block:clamp(3.5rem,7vw,5.5rem)}
.band{background:var(--surface);border-block:1px solid var(--line)}
.sec-head{display:flex;flex-direction:column;gap:.8rem;max-width:44rem;margin-bottom:2.6rem}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.grid-3{grid-template-columns:1fr}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr}}
.pillar{display:flex;flex-direction:column;gap:.6rem;padding-top:1.2rem;border-top:2px solid var(--accent)}
.pillar p{color:var(--muted);font-size:.98rem}

/* compare */
.compare{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.compare table{width:100%;border-collapse:collapse;min-width:560px;font-size:.98rem}
.compare th,.compare td{padding:1rem 1.2rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.compare tr:last-child td{border-bottom:0}
.compare thead th{font-size:var(--s-1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.compare thead th:last-child{color:var(--accent)}
.compare td:first-child{color:var(--muted);width:30%}
.compare td:last-child{font-weight:600}

/* conditions */
.conditions{display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:0;list-style:none}
.conditions li{padding:.55rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.95rem}

/* about */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:820px){.about{grid-template-columns:1fr}}
.portrait{margin:0;max-width:100%}
.portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:0 30px 60px -40px color-mix(in srgb,var(--ink) 50%,transparent)}
.monogram{aspect-ratio:4/5;max-width:100%;border-radius:var(--radius);background:linear-gradient(160deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--ink)));display:flex;flex-direction:column;justify-content:flex-end;padding:1.6rem;color:var(--accent-ink)}
.monogram b{font-family:var(--display);font-weight:300;font-size:clamp(4rem,9vw,6.5rem);line-height:.9}
.monogram span{font-size:var(--s-1);letter-spacing:.1em;text-transform:uppercase;opacity:.85;margin-top:.6rem}
.about-copy{display:flex;flex-direction:column;gap:1.2rem;min-width:0}
.about-copy p{max-width:38rem}
.creds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem;margin:.8rem 0 0;padding:1.4rem 0 0;border-top:1px solid var(--line)}
.creds dt{font-size:var(--s-1);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.creds dd{margin:.2rem 0 0;font-weight:500}@media (max-width:480px){.creds{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;counter-reset:s;list-style:none;padding:0;margin:0}
@media (max-width:820px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:.6rem}
.steps li::before{content:"Step " counter(s);font-size:var(--s-1);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sun)}
html[lang="es"] .steps li::before{content:"Paso " counter(s)}
.steps p{color:var(--muted)}
.steps .dur{font-family:var(--display);font-style:italic;color:var(--ink);font-size:1.05rem}

/* plans */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:stretch}
@media (max-width:900px){.plans{grid-template-columns:1fr}}
.plan{display:flex;flex-direction:column;gap:1rem;padding:1.8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.plan.feature{border:2px solid var(--accent);background:var(--surface)}
.plan .tag{align-self:flex-start;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .65rem;border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.plan .price{font-family:var(--display);font-size:2.6rem;font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.plan .price small{font-family:var(--body);font-size:.95rem;color:var(--muted);font-weight:400}
.plan ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.55rem;flex:1}
.plan li{padding-left:1.4rem;position:relative;font-size:.97rem}
.plan li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:2px;background:var(--accent)}
.plan .btn{align-self:flex-start}
.fine{margin-top:1.6rem;color:var(--muted);font-size:var(--s-1);max-width:46rem}

/* faq */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:52rem}
.faq details{border-bottom:1px solid var(--line);padding-block:1.1rem}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;font-family:var(--display);font-size:var(--s1)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--body);color:var(--accent);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{margin-top:.8rem;color:var(--muted);max-width:44rem}

/* contact */
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:1.1rem;min-width:0}
.row{display:flex;flex-direction:column;gap:.25rem}
.row .label{font-size:var(--s-1);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.row .val{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;font-size:1.1rem;font-weight:500;user-select:all;word-break:break-word}
.copy{border:1px solid var(--line);background:transparent;color:var(--accent);font:600 .75rem/1 var(--body);padding:.45rem .7rem;border-radius:999px;cursor:pointer;user-select:none}
.crisis{border-left:3px solid var(--sun);padding:.9rem 1.1rem;background:color-mix(in srgb,var(--sun) 10%,var(--surface));border-radius:0 10px 10px 0;font-size:.95rem}
.crisis b{display:block;margin-bottom:.2rem}

footer{padding-block:2.4rem;border-top:1px solid var(--line);color:var(--muted);font-size:var(--s-1)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}

/* ---------- shared additions ---------- */
.more{font-weight:600;text-decoration:none}
.more:hover{text-decoration:underline}
.nav-links a.l[aria-current="page"]{color:var(--accent)}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}
.review{margin:0;display:flex;flex-direction:column;gap:1rem;padding:1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.review blockquote{margin:0;font-family:var(--display);font-size:1.15rem;line-height:1.5}
.review figcaption{color:var(--muted);font-size:var(--s-1)}
.reviews-empty{grid-column:1 / -1;padding:1.8rem;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);max-width:46rem}

/* article cards */
.articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
@media (max-width:900px){.articles{grid-template-columns:1fr}}
.article-card{display:flex;flex-direction:column;gap:.7rem;padding:1.6rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.article-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.article-card p{color:var(--muted);font-size:.98rem;flex:1}
.article-card .read{font-size:var(--s-1);color:var(--accent);font-weight:600}
.tag-sm{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sun)}

/* inner page header */
.page-hero{padding-block:clamp(2.8rem,6vw,4.5rem) clamp(1.5rem,4vw,2.5rem)}
.page-hero .wrap{display:flex;flex-direction:column;gap:1rem}
.crumb{font-size:var(--s-1);color:var(--muted)}
.crumb a{color:var(--muted)}

/* prose (about + articles) */
.prose{max-width:42rem;display:flex;flex-direction:column;gap:1.15rem;font-size:1.08rem;line-height:1.75}
.prose h2{font-size:1.75rem;margin-top:1.4rem}
.prose h3{margin-top:.6rem}
.prose ul,.prose ol{margin:0;padding-left:1.3rem;display:flex;flex-direction:column;gap:.45rem}
.prose .note{padding:1rem 1.2rem;border-left:3px solid var(--sun);background:color-mix(in srgb,var(--sun) 9%,var(--surface));border-radius:0 10px 10px 0;font-size:.98rem}
.byline{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:var(--s-1)}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover}

/* about page */
.about-page{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:860px){.about-page{grid-template-columns:1fr}}
.about-side{display:flex;flex-direction:column;gap:1.4rem;position:sticky;top:6rem}
@media (max-width:860px){.about-side{position:static}}
.facts-card{border-top:1px solid var(--line);padding-top:1.2rem;display:flex;flex-direction:column;gap:.9rem;margin:0}
.facts-card dt{font-size:var(--s-1);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.facts-card dd{margin:.15rem 0 0;font-weight:500}

/* join page */
.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.tabs a{padding:.65rem 1.1rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);font-weight:600;font-size:var(--s-1);background:var(--surface)}
.tabs a[aria-current="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.join-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
@media (max-width:900px){.join-grid{grid-template-columns:1fr}}
.plan-detail{display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.plan-detail .price{font-family:var(--display);font-size:3rem;font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.plan-detail .price small{font-family:var(--body);font-size:1rem;color:var(--muted)}
.detail-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem}
@media (max-width:600px){.detail-list{grid-template-columns:1fr}}
.detail-list h3{font-size:1.05rem;margin-bottom:.5rem;font-family:var(--body);font-weight:600}
.detail-list ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem;color:var(--ink);font-size:.97rem}
.detail-list .no ul{color:var(--muted)}
.policy{border-top:1px solid var(--line);padding-top:1.2rem;display:flex;flex-direction:column;gap:.6rem;color:var(--muted);font-size:.97rem}
.policy b{color:var(--ink)}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:1rem;position:sticky;top:6rem;min-width:0}
@media (max-width:900px){.form-card{position:static}}
.field{display:flex;flex-direction:column;gap:.35rem}
.field label{font-size:var(--s-1);font-weight:600}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
.field textarea{min-height:5rem;resize:vertical}
.field small{color:var(--muted);font-size:.8rem}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem}
.check input{margin-top:.25rem;accent-color:var(--accent)}
.err{color:#B3261E;font-size:.85rem}
:root[data-theme="dark"] .err{color:#F2B8B5}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .err{color:#F2B8B5}}
.summary{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:1rem;max-height:22rem;overflow:auto;user-select:all}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.review.placeholder{border-style:dashed;position:relative;color:var(--muted)}
.review.placeholder blockquote{color:var(--muted)}
.ph-badge{align-self:flex-start;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .55rem;border-radius:999px;background:var(--sun);color:#fff}


/* colour bands */
#approach.band{background:var(--mist)}
#about.band{background:var(--sand)}
#membership.band{background:var(--sage)}
#articles.band{background:var(--mist)}
#contact.band{background:var(--sand)}
.band .contact-card,.band .compare{background:var(--surface)}
.band .plan,.band .article-card{background:var(--surface)}
footer{background:var(--accent);color:var(--accent-ink);border-top:0}
footer a{color:var(--accent-ink)}
footer .areas a,.crumb a{color:inherit}

/* logos (masks take the theme colour, so they work in light and dark) */
.wordmark{display:block;font-family:var(--display);font-size:1.25rem;font-weight:500;letter-spacing:-.01em;line-height:1.1;color:var(--accent);white-space:nowrap}
.brand.logo-link{display:flex;align-items:center}
footer .wordmark{color:var(--accent-ink)}
.foot{align-items:center}
.mark{display:block;background:var(--accent);border-radius:50%}
.avatar.mark{width:40px;height:40px;border-radius:0}

/* primary care teaser */
.pc-card{aspect-ratio:4/5;max-width:100%;background:var(--sage);border-radius:var(--radius);display:flex;flex-direction:column;justify-content:flex-end;gap:.4rem;padding:1.8rem}
.pc-card h3{font-size:1.8rem}
.pc-card p:last-child{color:var(--muted)}
.plain-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.4rem}
.pc-portrait figcaption{display:flex;flex-direction:column;gap:.15rem;margin-top:.9rem}
.pc-portrait figcaption b{font-family:var(--display);font-weight:500;font-size:1.2rem}
.pc-portrait figcaption span{color:var(--muted);font-size:.95rem}

/* ---- Soft, rounded ("bubbly") layer: shapes and type only ---- */
:root{--radius:26px}
h1,h2,h3{font-variation-settings:"SOFT" 100,"opsz" 72;font-weight:400;letter-spacing:-.005em}
h1{font-weight:400}
h2{font-weight:400}
h1 em,h2 em{font-variation-settings:"SOFT" 100,"opsz" 72}
.eyebrow{display:inline-block;width:fit-content;max-width:100%;text-transform:none;letter-spacing:0;font-weight:700;font-size:.9rem;color:var(--accent);background:var(--mist);padding:.35rem .9rem;border-radius:999px}
.band .eyebrow,#approach .eyebrow,#articles .eyebrow{background:var(--surface)}
[class*="tag"],.tag-sm,small,th,.step-n,.plan .per{letter-spacing:.02em!important;text-transform:none!important}
.btn{font-weight:700;letter-spacing:0;padding:.95rem 1.6rem;font-size:1rem}
.btn-primary{box-shadow:0 6px 18px -8px var(--accent)}
.btn-primary:hover{transform:translateY(-1px)}
body>main>section.band, main section.band, section.band{border-block:0}
section.band{margin-inline:clamp(.5rem,2vw,1.5rem);border-radius:40px}
.compare,.plan,.article-card,.contact-card,.review,.thread,.facts-card,details,.chip,.cond li{border-radius:var(--radius)}
.plan,.article-card,.contact-card,.review,.compare{border-width:0!important;box-shadow:0 10px 30px -18px rgba(80,60,30,.30)}
.portrait,.portrait img{border-radius:36px!important}
details{background:var(--surface);padding-inline:1.25rem;margin-bottom:.6rem;border:0!important;box-shadow:0 6px 20px -16px rgba(80,60,30,.34)}
footer{border-radius:40px 40px 0 0}
input,select,textarea{border-radius:16px!important}
.pillar{border-top-width:3px;border-radius:0}

/* mobile menu */
.menu-btn{display:none;width:44px;height:44px;border:0;border-radius:999px;background:var(--mist);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.menu-btn span{display:block;width:20px;height:2px;border-radius:2px;background:var(--accent);transition:transform .2s,opacity .2s}
header.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.menu-open .menu-btn span:nth-child(2){opacity:0}
header.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:820px){
  .nav{flex-wrap:wrap}
  .menu-btn{display:inline-flex}
  .nav-links{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:.25rem;padding:.5rem 0 1rem}
  header.menu-open .nav-links{display:flex}
  .nav-links a.l{display:block!important;padding:.85rem 1rem;border-radius:16px;font-size:1.05rem}
  .nav-links a.l:hover,.nav-links a.l[aria-current="page"]{background:var(--mist)}
  .nav-links .btn{justify-content:center;margin-top:.5rem;align-self:stretch}
}

/* sunny layer */
body{font-weight:500}
.facts li::before{background:#E07A5F}
:root[data-theme="dark"] .facts li::before{background:#F0A48C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .facts li::before{background:#F0A48C}}

/* Warm concierge editorial direction */
:root,:root[data-theme="light"]{--bg:#f7f4ec;--surface:#fffdf8;--ink:#323d31;--muted:#62665a;--accent:#58664c;--accent-ink:#fffdf6;--sun:#a7553e;--line:#dedbce;--sand:#ece4d4;--mist:#e9ecdf;--sage:#f1e4da;--body:"Quicksand",sans-serif;--wrap:1250px;--s3:clamp(2.1rem,4vw,3.3rem);--s4:clamp(3.5rem,5.8vw,5.4rem)}
body{font-size:17px}h1,h2{letter-spacing:-.045em}h1 em,h2 em{color:var(--sun)}.welcome-note{background:#58664c;color:#fffdf6;text-align:center;padding:10px 20px;font-size:12px;letter-spacing:.08em}.nav{padding-block:12px}.wordmark{font-size:1.2rem}.nav-links a.l{font-size:13px}.nav-links a.l:last-child{border-bottom:1px solid var(--sun)}header{background:#f7f4ecf5;backdrop-filter:blur(12px)}.hero{padding:64px 0 80px;background:radial-gradient(ellipse at 95% 80%,#e6e8d8 0,transparent 55%)}.hero-grid{grid-template-columns:1.12fr .88fr;gap:7%}.hero-copy{gap:26px}.hero .eyebrow{font-size:10px;letter-spacing:.18em;color:#686e5e}.hero .lede{font-size:17px;line-height:1.85;max-width:440px}.hero h1{line-height:1.05;max-width:620px}.hero-portrait{margin:0;position:relative;max-width:440px;justify-self:end;padding:0 18px 26px 0}.hero-portrait:before{content:"";position:absolute;inset:28px -3px 8px 25px;border:1px solid #b8bda5;border-radius:220px 220px 12px 12px}.hero-portrait img{position:relative;display:block;width:100%;height:455px;object-fit:cover;object-position:center 36%;border-radius:220px 220px 12px 12px;filter:saturate(.77)}.hero-portrait figcaption{position:relative;background:#fffdf7;margin:-32px 20px 0 -30px;padding:22px 27px;box-shadow:0 8px 35px #3d402115;border-radius:3px;display:grid;gap:5px}.hero-portrait figcaption strong{font-size:14px;font-weight:600}.hero-portrait figcaption span:last-child{font-size:12px;color:var(--muted)}.handwritten{font:italic 23px var(--display);color:var(--sun);margin-bottom:6px}.btn{padding:17px 23px;font-size:12px;font-weight:600}.hero .btn-ghost{border:0;padding-inline:4px}.facts{font-size:11px;gap:14px;margin-top:4px}.sec-head{max-width:750px}.eyebrow{font-size:11px}.band{background:#eceee3;border:0}.grid-4{gap:28px}.pillar{background:transparent;border:0;border-top:1px solid #b7bdac;border-radius:0;padding:26px 0 0;box-shadow:none}.pillar h3{font-size:23px;margin-bottom:14px}.pillar p{font-size:14px;line-height:1.9}.conditions{gap:12px}.conditions li{background:transparent;border-color:#d3d5c8;border-radius:3px;font-size:14px}.portrait img{border-radius:150px 150px 8px 8px;filter:saturate(.8)}.about{gap:8%}.about-copy p{line-height:1.9}.creds{font-size:13px}.steps{gap:32px}.steps li{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding-top:25px}.steps li h3{font-size:25px}.steps li p{font-size:15px}.plan,.article-card,.contact-card,.form-card{border-radius:7px;box-shadow:none}.plan.feature{background:#58664c;color:#fffdf6;border-color:#58664c}.plan.feature .price,.plan.feature h3{color:#fffdf6}.plan.feature .btn{color:#fffdf6;border-color:#fffdf6}.plan.feature .tag{background:#e5e9d9;color:#34412d}.article-card{background:transparent;border:0;border-top:1px solid var(--line);padding:24px 0}.article-card h3{font-size:24px}.article-card p{font-size:14px}.contact-card{background:var(--surface)}footer{background:#364330;color:#f6f3e9}footer .wordmark{color:#f6f3e9}.faq details{background:transparent;border-radius:0}.price{letter-spacing:-.03em}
@media(max-width:860px){.hero{padding:40px 0 55px}.hero-grid{grid-template-columns:1fr;gap:45px}.hero-portrait{width:85%;max-width:420px;justify-self:center}.hero-portrait img{height:430px}.hero-copy{gap:22px}.hero h1{font-size:clamp(3.3rem,9vw,5rem)}.grid-4{grid-template-columns:1fr 1fr}.hero .eyebrow{max-width:270px}.welcome-note{font-size:10px}.hero-portrait figcaption{margin-left:-15px}}
@media(max-width:520px){.grid-4{grid-template-columns:1fr}.hero-portrait img{height:365px}.hero-cta{flex-direction:column;align-items:flex-start}.facts{gap:10px}.hero-copy .lede{font-size:16px}.hero-portrait{width:90%}.nav{padding-block:6px}}

/* this design is light only: keep the same palette when a device is in dark mode */
:root[data-theme="dark"]{--bg:#f7f4ec;--surface:#fffdf8;--ink:#323d31;--muted:#62665a;--accent:#58664c;--accent-ink:#fffdf6;--sun:#a7553e;--line:#dedbce;--sand:#ece4d4;--mist:#e9ecdf;--sage:#f1e4da;--bubble-me:#ece4d4;--bubble-dr:#58664c;--bubble-dr-ink:#fffdf6;color-scheme:light}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#f7f4ec;--surface:#fffdf8;--ink:#323d31;--muted:#62665a;--accent:#58664c;--accent-ink:#fffdf6;--sun:#a7553e;--line:#dedbce;--sand:#ece4d4;--mist:#e9ecdf;--sage:#f1e4da;--bubble-me:#ece4d4;--bubble-dr:#58664c;--bubble-dr-ink:#fffdf6;color-scheme:light}}

/* articles: no white boxes; text lines up with the section heading */
.articles{column-gap:clamp(1.5rem,3vw,2.5rem);row-gap:.5rem}
.band .article-card,.article-card{background:transparent;border-radius:0;box-shadow:none;padding:24px 0 28px}
.articles .article-card{border:0!important;border-top:1px solid #cfd2c3!important}
.article-card:hover{transform:none}
.article-card h3{transition:color .2s}
.article-card:hover h3{color:var(--accent)}

/* reviews: quotes without boxes, matching the articles */
.reviews{column-gap:clamp(1.5rem,3vw,2.5rem);row-gap:1.5rem}
.reviews .review{background:transparent;border:0!important;border-top:1px solid #cfd2c3!important;border-radius:0;box-shadow:none;padding:24px 0 0}
.reviews .review blockquote{font-size:1.2rem;line-height:1.5}

/* ===== dynamic flow layer (same colors) ===== */
/* page-load moment: hero text rises in order, portrait unveils */
@keyframes rise-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes arch-in{from{clip-path:inset(100% 0 0 0 round 220px 220px 12px 12px)}to{clip-path:inset(0 0 0 0 round 220px 220px 12px 12px)}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes card-in{from{opacity:0;transform:translate(-18px,14px)}to{opacity:1;transform:none}}
.js .hero-copy>*{animation:rise-in .9s cubic-bezier(.2,.7,.2,1) both}
.js .hero-copy>*:nth-child(2){animation-delay:.08s}.js .hero-copy>*:nth-child(3){animation-delay:.18s}.js .hero-copy>*:nth-child(4){animation-delay:.28s}.js .hero-copy>*:nth-child(5){animation-delay:.38s}
.js .hero-portrait img{animation:arch-in 1.3s .15s cubic-bezier(.65,0,.25,1) both}
.js .hero-portrait::before{animation:fade-in 1.2s .7s ease both}
.js .hero-portrait figcaption{animation:card-in .9s .95s cubic-bezier(.2,.7,.2,1) both}

/* scroll reveals */
.js [data-reveal]{opacity:0;translate:0 26px;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),translate .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js [data-reveal].in{opacity:1;translate:none}
.js .plan[data-reveal]{transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),translate .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.js .pillar[data-reveal]{transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),translate .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),border-color .3s}
.faq details p{overflow:hidden}

/* header settles with a soft shadow once you scroll */
header{transition:box-shadow .3s ease}
header.scrolled{box-shadow:0 12px 30px -26px rgba(54,67,48,.55)}
.nav-links a.l{background:linear-gradient(var(--sun),var(--sun)) left bottom/0 1px no-repeat;transition:background-size .3s ease,color .2s}
.nav-links a.l:hover{background-size:100% 1px}

/* buttons */
.btn{transition:background .25s,color .25s,transform .25s,box-shadow .25s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 26px -16px rgba(54,67,48,.7)}
.hero .btn-ghost{transition:letter-spacing .25s,color .2s}
.hero .btn-ghost:hover{background:transparent;color:var(--sun);letter-spacing:.02em}

/* approach pillars lift slightly */
.pillar{transition:border-color .3s}
.pillar:hover{border-top-color:var(--sun)}

/* what I treat: two slow rows moving in opposite directions */
.treat{padding-bottom:clamp(3rem,6vw,4.5rem)}
.marquee{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}
.marquee-row{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{flex:none;display:flex;align-items:center;margin:0;padding:0;list-style:none;animation:marquee 46s linear infinite}
.marquee-rev .marquee-track{animation-direction:reverse;animation-duration:52s}
.marquee-track li{display:flex;align-items:center;white-space:nowrap;font-family:var(--display);font-size:clamp(1.6rem,3.4vw,2.6rem);letter-spacing:-.02em;color:var(--ink);padding:.35rem 0}
.marquee-rev .marquee-track li{font-style:italic;color:var(--accent)}
.marquee-track li::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--sun);margin-inline:clamp(1.2rem,3vw,2.4rem);flex:none}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion: reduce){.marquee-row{flex-wrap:wrap;-webkit-mask-image:none;mask-image:none;padding-inline:clamp(16px,4vw,40px)}.marquee-track{flex-wrap:wrap}.marquee-track[aria-hidden="true"]{display:none}.marquee-track li{font-size:1.4rem}}

/* about: a pull quote in the same arch shape as the hero portrait */
.about-quote{align-items:center}
.pull-quote{margin:0;position:relative;display:flex;flex-direction:column;justify-content:center;gap:1.4rem;min-height:clamp(360px,42vw,520px);padding:clamp(2.4rem,5vw,4rem) clamp(1.6rem,4vw,3rem);border:1px solid #b8bda5;border-radius:220px 220px 12px 12px;text-align:center}
.pull-quote::before{content:"“";font-family:var(--display);font-size:5.5rem;line-height:.5;color:var(--accent);opacity:.35}
.pull-quote blockquote{margin:0;font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.2;letter-spacing:-.02em;color:var(--sun)}
.pull-quote figcaption{font-size:.95rem;color:var(--muted)}

/* how it works: the line draws in when it scrolls into view */
.timeline{position:relative;padding-top:0}
.timeline::before,.timeline::after{content:"";position:absolute;left:22px;right:0;top:22px;height:1px;background:#cfd2c3}
.timeline::after{height:2px;top:21.5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 1.6s .25s cubic-bezier(.65,0,.25,1)}
.timeline.in::after,html:not(.js) .timeline::after{transform:scaleX(1)}
.timeline li{border-top:0!important;padding-top:0!important;position:relative}
.timeline li::before{display:none!important}
.step-dot{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--accent);color:var(--accent);font-family:var(--display);font-size:1.15rem;margin-bottom:1.2rem;transition:background .4s,color .4s}
.timeline.in li .step-dot{background:var(--accent);color:var(--accent-ink);transition-delay:calc(.4s + var(--i,0) * .45s)}
.timeline li:nth-child(2){--i:1}.timeline li:nth-child(3){--i:2}
@media (max-width:820px){
  .timeline::before,.timeline::after{left:21.5px;right:auto;top:22px;bottom:22px;width:1px;height:auto}
  .timeline::after{width:2px;left:21px;transform:scaleY(0);transform-origin:top}
  .timeline.in::after{transform:scaleY(1)}
  .timeline li{padding-left:64px!important}
  .step-dot{position:absolute;left:0;top:0}
}

/* membership cards lift on hover */
.plan{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.plan:hover{transform:translateY(-6px);box-shadow:0 26px 40px -30px rgba(54,67,48,.55)}

/* reviews: a swipeable row */
.carousel{position:relative}
.carousel-nav{display:flex;justify-content:flex-end;gap:.6rem;margin:-4.2rem 0 1.6rem}
.car-btn{width:48px;height:48px;border-radius:50%;border:1px solid #b7bdac;background:transparent;color:var(--accent);display:grid;place-items:center;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.car-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.car-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.carousel-track.reviews{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:clamp(270px,29vw,370px);gap:28px;margin-right:calc(50% - 50vw);padding-right:max(16px,calc(50vw - 50%));scroll-padding-left:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:4px}
.carousel-track.reviews::-webkit-scrollbar{display:none}
.carousel-track.reviews>*{scroll-snap-align:start}
.carousel-track:focus-visible{outline:2px solid var(--sun);outline-offset:6px}
@media (max-width:900px){.carousel-track.reviews{grid-auto-columns:clamp(250px,44vw,340px)}}
@media (max-width:600px){.carousel-track.reviews{grid-auto-columns:80vw}.carousel-nav{margin:-.6rem 0 1.2rem;justify-content:flex-start}}

/* articles */
.article-card h3{transition:color .2s,transform .3s}
.article-card:hover h3{transform:translateX(4px)}

/* floating call button on phones */
.float-cta{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;transform:translate(-50%,140%);padding:15px 24px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:600 15px/1 var(--body);text-decoration:none;white-space:nowrap;box-shadow:0 16px 30px -14px rgba(36,45,30,.6);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.float-cta.show{transform:translate(-50%,0)}
@media (min-width:721px){.float-cta{display:none}}

/* what I treat: calm bubbles that grow when you point at them; each opens a related article */
.treat .wrap+.wrap{margin-top:.4rem}
.bubbles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px;max-width:1000px}
.bubbles li{display:flex}
.bubbles a{display:inline-flex;align-items:center;padding:15px 26px;border-radius:999px;background:var(--surface);border:1px solid #d3d5c8;font-family:var(--display);font-size:clamp(1.05rem,1.6vw,1.28rem);letter-spacing:-.01em;color:var(--ink);text-decoration:none;transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .3s,color .3s,border-color .3s,box-shadow .3s}
.bubbles a:hover,.bubbles a:focus-visible{transform:scale(1.12);background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 16px 30px -18px rgba(54,67,48,.65);position:relative;z-index:1}
.bubbles a:focus-visible{outline:2px solid var(--sun);outline-offset:4px}
.bubbles a:active{transform:scale(1.05)}
@media (max-width:600px){.bubbles{gap:10px}.bubbles a{padding:12px 20px}}

/* ===== mobile polish ===== */
.about{row-gap:2.2rem}
.nav-cta-m{display:none}
.nav-links a.l[href="#faq"]{border-bottom:1px solid var(--sun)}
@media (max-width:820px){
  header.menu-open{background:var(--bg)}
  .nav-links{padding:.25rem 0 1.25rem}
  .nav-links a.l,.nav-links a.l[href="#faq"]{font-family:var(--display);font-size:1.3rem!important;letter-spacing:-.01em;padding:.85rem .25rem!important;border-radius:0!important;background:none!important;border-bottom:1px solid var(--line)!important}
  .nav-links a.l:hover,.nav-links a.l[aria-current="page"]{color:var(--sun)}
  .nav-cta-m{display:flex;margin-top:1.1rem!important}
  .nav-links .btn{padding:16px 22px!important;font-size:15px!important}
}
@media (max-width:600px){
  .welcome-note{display:none}
  #preview-banner{font-size:.78rem!important;padding:.55rem 14px!important}
  .hero-cta .btn-primary{align-self:stretch;justify-content:center;font-size:15px}
  .pillar p,.article-card p,.steps li p{font-size:15px}
  .creds{font-size:14px}
  section{padding-block:3.25rem}
  .hero{padding:28px 0 48px}
}

/* ===== patient portal ===== */
.nav-login{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid #b7bdac;border-radius:999px;color:var(--ink);text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.nav-login svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-login:hover,.nav-login[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
@media (max-width:820px){
  .nav-links .nav-login{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.85rem .25rem;font-family:var(--display);font-size:1.3rem;font-weight:400;letter-spacing:-.01em;color:var(--ink);background:none;gap:10px}
  .nav-links .nav-login svg{width:19px;height:19px}
  .nav-links .nav-login:hover,.nav-links .nav-login[aria-current="page"]{background:none;color:var(--sun)}
}
.portal-hero{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);background:radial-gradient(ellipse at 88% 35%,#e6e8d8 0,transparent 55%)}
.portal-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.portal-copy{display:flex;flex-direction:column;gap:1.2rem;min-width:0}
.portal-copy h1{font-size:var(--s4);line-height:1.04}
.portal-facts{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.portal-facts li{display:flex;gap:.75rem;align-items:center;color:var(--muted)}
.portal-facts li::before{content:"";width:24px;height:24px;flex:none;border-radius:50%;background:var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-4.9' fill='none' stroke='%2358664c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.login-card{position:relative;min-width:0;background:var(--surface);border:1px solid rgba(88,102,76,.16);border-radius:30px;padding:clamp(2rem,4vw,2.8rem);box-shadow:0 40px 90px -55px rgba(54,67,48,.6);text-align:center}
.login-mark{display:none!important;position:relative;display:block;width:58px;height:58px;margin:0 auto 1.2rem;border-radius:50%;background:var(--accent)}
.login-mark::after{content:"";position:absolute;inset:16px 13px 14px;background:var(--accent-ink);-webkit-mask:url("logo-mark.png") center/contain no-repeat;mask:url("logo-mark.png") center/contain no-repeat}
.login-card h2{font-size:clamp(1.7rem,2.6vw,2.15rem)}
.login-sub{color:var(--muted);margin:.5rem 0 1.6rem}
.login-btn{width:100%;justify-content:center;gap:10px;font-size:15px!important;padding:16px!important}
.login-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-note{margin:.9rem 0 0;font-size:13.5px;font-weight:600;color:var(--sun)}
.login-divider{display:flex;align-items:center;gap:12px;margin:1.8rem 0 1rem;color:var(--muted);font-size:13px}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.login-small{font-size:14px;color:var(--muted);margin-bottom:1.1rem}
.login-alt{width:100%;justify-content:center}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3vw,2.4rem)}
.feature{display:flex;flex-direction:column;gap:.6rem;padding-top:1.4rem;border-top:1px solid #b7bdac}
.f-ico{width:46px;height:46px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--accent);margin-bottom:.35rem}
.f-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.feature p{color:var(--muted);font-size:15px;line-height:1.75}
.help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.help-item{display:flex;flex-direction:column;gap:.5rem}
.help-item p{color:var(--muted)}
@media (max-width:900px){.portal-grid,.help-grid{grid-template-columns:minmax(0,1fr)}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.feature-grid{grid-template-columns:minmax(0,1fr)}}

/* highlighted plan card: keep the bullet dashes and "/ month" visible on the green background */
.plan.feature li::before{background:#dfe5cf}
.plan.feature .price small{color:rgba(255,253,246,.8)}

/* Alivio logo */
.site-logo{display:block;height:48px;width:auto;max-width:none}
footer .site-logo{height:56px}
@media (max-width:640px){.site-logo{height:40px}footer .site-logo{height:48px}}
