/* ==========================================================================
BUILD 3 — this number must match the ?v= in the HTML's stylesheet link.
If it is lower, you are looking at a cached copy, not the file you uploaded.
==========================================================================
Carolyn Messere, MD — Naples, FL
Structure ported verbatim from hormonetherapyaustintx.com (build 5).
Colour tokens replaced per the brand brief: coastal navy, warm ivory,
soft sage, dusty plum, soft sand.
========================================================================== */

:root{
/* Colour — coastal palette */
--c-ink:#1B2A38;           /* body text — deep navy-black, never pure #000 */
--c-white:#FFFFFF;
--c-paper:#FBF8F3;         /* warm ivory — page ground */
--c-brand:#1E3A5F;         /* coastal navy — buttons, eyebrows, links, borders */
--c-brand-hover:#2C5480;   /* navy, lifted */
--c-band:#F1EDE4;          /* soft sand — section band */
--c-veil:rgba(255,255,255,.17);
--c-muted:#6B7885;         /* descriptions, secondary body */
--c-sage:#7E9482;          /* soft sage — large feature icons, accents */
--c-plum:#7A5568;          /* dusty plum — sparing accent, emphasis rules */
--c-sand:#E4DACE;          /* soft sand, deeper — borders on band */
--c-border:#D9D2C6;        /* card border */

/* Type */
--font-head:"Cormorant Garamond","Playfair Display",Georgia,"Times New Roman",serif;
--font-body:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
--fs-h1:52px; --fs-h2:38px; --fs-h3:30px; --fs-h4:24px;
--fs-body:16px; --fs-eyebrow:13px; --fs-nav:13px; --fs-btn:12px;

/* Layout */
--max-w:1240px;
--section-y:96px;
--col-gap:60px;
--radius:0px;
--btn-pad:16px 32px;
--card-pad:28px;

/* Depth — lighter than the Austin kit; the brief asks for airy, not heavy */
--shadow-img:0 18px 44px -22px rgba(27,42,56,.45);
--shadow-card:0 2px 18px -12px rgba(27,42,56,.30);
--shadow-header:0 1px 0 0 rgba(27,42,56,.10);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
margin:0;
font-family:var(--font-body);
font-size:var(--fs-body);
font-weight:400;
line-height:1.75;
color:var(--c-ink);
background:var(--c-paper);
}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-brand);text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{margin:0 0 1em;padding-left:1.25em}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
hr{border:0;border-top:1px solid var(--c-border);margin:2em 0}
table{border-collapse:collapse;width:100%}
figure{margin:0}

h1,h2,h3,h4,h5,h6{
font-family:var(--font-head);
font-weight:500;
color:var(--c-brand);
line-height:1.18;
margin:0 0 .5em;
letter-spacing:-.005em;
}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
h4{font-size:var(--fs-h4);font-weight:600}
h5{font-size:20px;font-weight:600}
h6{font-size:17px;font-weight:600}

/* ---------- Utilities ---------- */
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 24px;width:100%}
.section{padding:var(--section-y) 0}
.section--band{background:var(--c-band)}
.section--white{background:var(--c-white)}
.section--tight{padding:60px 0}
.center{text-align:center}
.measure{max-width:820px;margin-left:auto;margin-right:auto}
.mt0{margin-top:0}.mb0{margin-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.eyebrow{
font-family:var(--font-body);
font-size:var(--fs-eyebrow);
font-weight:600;
text-transform:uppercase;
letter-spacing:.16em;
color:var(--c-sage);
margin:0 0 16px;
}
.eyebrow--plum{color:var(--c-plum)}
.lede{font-size:19px;line-height:1.65;color:var(--c-ink)}
.muted{color:var(--c-muted)}
.small{font-size:14px}
.fineprint{font-size:13px;color:var(--c-muted);line-height:1.65}
.rule{width:56px;height:2px;background:var(--c-plum);border:0;margin:0 0 28px}
.rule--center{margin-left:auto;margin-right:auto}

/* ---------- Buttons ---------- */
.btn{
display:inline-block;
font-family:var(--font-body);
font-size:var(--fs-btn);
font-weight:700;
text-transform:uppercase;
letter-spacing:.1em;
line-height:1.2;
padding:var(--btn-pad);
border-radius:var(--radius);
border:1px solid var(--c-brand);
cursor:pointer;
transition:background-color .18s ease,color .18s ease,border-color .18s ease;
text-align:center;
text-decoration:none;
}
.btn:hover,.btn:focus-visible{text-decoration:none}
.btn--primary{background:var(--c-brand);color:var(--c-white)}
.btn--primary:hover,.btn--primary:focus-visible{background:var(--c-brand-hover);border-color:var(--c-brand-hover);color:var(--c-white)}
.btn--outline{background:transparent;color:var(--c-brand)}
.btn--outline:hover,.btn--outline:focus-visible{background:var(--c-brand);color:var(--c-white)}
.btn--onDark{background:transparent;color:var(--c-white);border-color:rgba(255,255,255,.7)}
.btn--onDark:hover,.btn--onDark:focus-visible{background:var(--c-white);color:var(--c-brand);border-color:var(--c-white)}
.btn--block{display:block;width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;padding-top:24px}
.btn-row--center{justify-content:center}

:focus-visible{outline:2px solid var(--c-brand);outline-offset:3px}

/* ---------- Header ---------- */
.topbar{background:var(--c-brand);color:var(--c-white);min-height:42px;font-size:13px}
.topbar .wrap{display:flex;justify-content:flex-end;align-items:center;gap:26px;min-height:42px;flex-wrap:wrap}
.topbar a{color:var(--c-white)}
.topbar .tb-item{display:inline-flex;align-items:center;gap:8px}
.topbar svg{width:15px;height:15px;flex:none;fill:rgba(255,255,255,.85)}

.site-header{
background:var(--c-paper);
box-shadow:var(--shadow-header);
position:sticky;top:0;z-index:60;
}
.site-header .wrap{display:flex;align-items:center;gap:16px;min-height:88px}
.brand{display:flex;flex-direction:column;line-height:1.15;text-decoration:none;flex:none;max-width:36%}
.brand:hover{text-decoration:none}
.brand-name{font-family:var(--font-head);font-size:27px;font-weight:500;color:var(--c-brand);letter-spacing:.005em;white-space:nowrap}
.brand-name em{font-style:normal;color:var(--c-plum)}
.brand-tag{font-family:var(--font-body);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.17em;color:var(--c-muted);margin-top:5px;white-space:nowrap}

.nav-toggle{display:none;margin-left:auto;background:transparent;border:0;padding:10px;cursor:pointer;color:var(--c-brand)}
.nav-toggle svg{width:26px;height:26px;fill:currentColor;display:block}

.site-nav{margin-left:auto}
.site-nav ul{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}
.site-nav a{
display:inline-block;
font-size:var(--fs-nav);font-weight:600;text-transform:uppercase;letter-spacing:.07em;
color:var(--c-ink);text-decoration:none;
white-space:nowrap;                       /* never let a label break across two lines */
padding:4px 0;
border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--c-brand);text-decoration:none}
.site-nav li:not(.nav-cta) a[aria-current="page"]{color:var(--c-brand);border-bottom-color:var(--c-plum)}

/* CTA button. display:inline-block is load-bearing — as a plain inline element
   the background and padding break into staggered boxes the moment the label
   wraps. nowrap keeps it on one line regardless. */
.site-nav .nav-cta a{
display:inline-block;
background:var(--c-brand);
color:var(--c-white);
padding:14px 22px;
font-size:var(--fs-btn);
font-weight:700;
letter-spacing:.1em;
line-height:1;
white-space:nowrap;
border:0;
border-radius:var(--radius);
}
.site-nav .nav-cta a:hover,.site-nav .nav-cta a:focus-visible{background:var(--c-brand-hover);color:var(--c-white)}
.site-nav .nav-cta a[aria-current="page"]{background:var(--c-brand-hover)}

/* ---------- Hero ---------- */
.hero{padding:var(--section-y) 0 110px;background:var(--c-paper)}
.hero .wrap{display:flex;gap:var(--col-gap);align-items:center;flex-direction:row-reverse}
.hero-copy{flex:1 1 0;min-width:0}
.hero-media{flex:1 1 0;min-width:0}
.hero h1{margin-bottom:.35em}
.hero .lede{color:var(--c-ink);max-width:54ch}
/* Images render at their OWN aspect ratio — never cropped. Whatever is uploaded
   is what visitors see, in full. Author them at a consistent ratio (1200x1400)
   and the section heights stay even down the page. */
.hero-media img{width:100%;height:auto;box-shadow:var(--shadow-img)}
.trustlist{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px}
.trustlist li{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--c-muted)}
.trustlist svg{width:14px;height:14px;fill:var(--c-sage);flex:none}

.pagehead{background:var(--c-band);padding:76px 0}
.pagehead h1{margin-bottom:.3em}
.pagehead .lede{color:var(--c-ink);max-width:74ch}

/* ---------- Grids ---------- */
.grid{display:grid;gap:28px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--5{grid-template-columns:repeat(5,1fr)}

.split{display:flex;gap:var(--col-gap);align-items:center}
.split--rev{flex-direction:row-reverse}
.split > *{flex:1 1 0;min-width:0}
.split img{width:100%;height:auto;box-shadow:var(--shadow-img)}

/* ---------- Cards ---------- */
.card{
background:var(--c-white);
border:1px solid var(--c-border);
border-radius:var(--radius);
padding:var(--card-pad);
}
.card--emphasis{border-color:var(--c-brand);box-shadow:var(--shadow-card)}
.card--plain{background:transparent;border:0;border-top:2px solid var(--c-sand);padding:26px 0 0}
.card h3,.card h4{margin-top:0}
.card p:last-child{margin-bottom:0}
.card .icon{color:var(--c-sage)}
.icon-lg{width:56px;height:56px;fill:var(--c-sage);margin-bottom:16px}
.icon-sm{width:26px;height:26px;fill:var(--c-sage);flex:none}

.iconrow{display:flex;gap:16px;align-items:flex-start}
.iconrow h4{font-size:19px;margin-bottom:.35em}

.numbered{counter-reset:step}
.step{display:flex;gap:28px;align-items:flex-start;padding:34px 0;border-bottom:1px solid var(--c-border)}
.step:last-child{border-bottom:0}
.step-num{
font-family:var(--font-head);font-size:40px;font-weight:500;color:var(--c-plum);
flex:none;width:78px;line-height:1;padding-top:2px;
}
.step-body h3{margin-bottom:.35em}
.step-body h4{margin-bottom:.4em}

.divider-dashed{border:0;border-top:1px dashed var(--c-sand);width:80%;margin:15px auto}

/* ---------- Symptom chips ---------- */
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none;margin:0;padding:0}
.chips li{
background:var(--c-white);border:1px solid var(--c-border);
padding:17px 19px;font-size:14.5px;font-weight:500;
}

/* ---------- Hormone / service detail blocks ---------- */
.hblock{background:var(--c-white);border:1px solid var(--c-border);padding:34px;margin-bottom:28px}
.hblock-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--c-sand)}
.hblock-head h3{margin:0}
.hblock-tag{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--c-plum)}
.hcols{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:24px}
.hcols h4{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--c-brand);font-family:var(--font-body);margin-bottom:12px}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding-left:24px;margin-bottom:9px;font-size:14.5px;line-height:1.6}
.ticks li::before{content:"";position:absolute;left:0;top:.65em;width:10px;height:2px;background:var(--c-sage)}
.ticks--plum li::before{background:var(--c-plum)}

/* ---------- Pull quote ---------- */
.pullquote{background:var(--c-brand);color:var(--c-white);padding:60px 0}
.pullquote blockquote{margin:0;max-width:900px}
.pullquote p{font-family:var(--font-head);font-size:26px;line-height:1.5;color:var(--c-white);font-style:italic}
.pullquote .eyebrow{color:rgba(255,255,255,.72)}
.pullquote cite{display:block;margin-top:20px;font-family:var(--font-body);font-size:12px;font-style:normal;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.8)}

/* ---------- Comparison table ---------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.cmp{min-width:720px;font-size:14.5px;background:var(--c-white)}
table.cmp th,table.cmp td{border:1px solid var(--c-border);padding:14px 16px;text-align:left;vertical-align:top}
table.cmp thead th{background:var(--c-brand);color:var(--c-white);font-family:var(--font-head);font-weight:500;font-size:20px}
table.cmp tbody th{font-weight:600;font-family:var(--font-body);font-size:13.5px;background:var(--c-band)}
table.cmp .yes{color:var(--c-brand);font-weight:700}

/* ---------- Timeline ---------- */
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:170px 1fr;gap:32px;padding:30px 0;border-bottom:1px solid var(--c-border)}
.timeline li:last-child{border-bottom:0}
.timeline .tl-when{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-plum);padding-top:6px}
.timeline h4{margin-bottom:.4em}
.timeline p{margin:0}

/* ---------- Accordion ---------- */
.faq-block{max-width:900px;margin:0 auto}
.acc{border:1px solid var(--c-border);border-bottom:0;background:var(--c-white)}
.acc:last-of-type{border-bottom:1px solid var(--c-border)}
.acc summary{
padding:18px 22px;cursor:pointer;list-style:none;
font-weight:600;font-size:15.5px;display:flex;gap:16px;align-items:flex-start;
}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";margin-left:auto;flex:none;color:var(--c-plum);font-size:20px;line-height:1;font-weight:400}
.acc[open] summary::after{content:"\2013"}
.acc summary:hover{background:var(--c-band)}
.acc .acc-body{padding:0 22px 20px;font-size:15px;color:var(--c-ink)}
.acc .acc-body p:first-child{margin-top:0}

/* ---------- CTA band ---------- */
.cta-band{background:var(--c-brand);color:var(--c-white);padding:var(--section-y) 0}
.cta-band h2,.cta-band h3,.cta-band p{color:var(--c-white)}
.cta-band .eyebrow{color:rgba(255,255,255,.72)}
.cta-band .rule{background:rgba(255,255,255,.5)}
.cta-band a:not(.btn){color:var(--c-white);text-decoration:underline}
.cta-band .btn--primary{background:var(--c-white);color:var(--c-brand);border-color:var(--c-white)}
.cta-band .btn--primary:hover{background:rgba(255,255,255,.86);color:var(--c-brand);border-color:rgba(255,255,255,.86)}

/* ---------- Forms ---------- */
.formcard{background:var(--c-white);border:1px solid var(--c-border);padding:38px}
.field{margin-bottom:20px}
.field label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;margin-bottom:8px;color:var(--c-brand)}
.field .req{color:var(--c-plum)}
.field input,.field select,.field textarea{
width:100%;font-family:var(--font-body);font-size:15px;color:var(--c-ink);
padding:13px 15px;border:1px solid var(--c-border);border-radius:0;background:var(--c-white);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--c-brand);box-shadow:0 0 0 1px var(--c-brand)}
.field textarea{min-height:130px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{font-size:13px;color:var(--c-muted);line-height:1.65;margin-top:18px}
.alert{padding:16px 18px;border-left:3px solid var(--c-brand);background:var(--c-band);margin-bottom:26px;font-size:15px}
.alert--err{border-left-color:var(--c-plum);background:rgba(122,85,104,.08)}

.infocard{background:var(--c-band);padding:32px}
.infocard h3{font-size:22px;margin-bottom:.5em}
.infocard + .infocard{margin-top:24px}
.bigphone{font-family:var(--font-head);font-size:30px;font-weight:500;color:var(--c-brand);display:inline-block;margin-bottom:6px}

/* ---------- Footer ---------- */
.site-footer{background:var(--c-brand);color:var(--c-white);padding:72px 0 0;font-size:14.5px}
.site-footer a{color:rgba(255,255,255,.88);text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#fff}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:44px}
.site-footer h4{color:var(--c-white);font-family:var(--font-body);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;margin:0 0 18px}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:10px}
.footer-brand .brand-name{color:var(--c-white);font-size:25px;display:block;white-space:normal}
.footer-brand .brand-name em{color:#B9A2AF}
.footer-brand p{color:rgba(255,255,255,.78);margin-top:16px;max-width:40ch}
.footer-contact{margin-top:20px;display:flex;flex-direction:column;gap:9px}
.footer-contact span{display:inline-flex;align-items:flex-start;gap:10px}
.footer-contact svg{width:15px;height:15px;fill:#fff;flex:none;margin-top:5px}
.footer-legal{
border-top:1px solid rgba(255,255,255,.2);margin-top:60px;padding:28px 0 36px;
font-size:12.5px;color:rgba(255,255,255,.7);line-height:1.75;
}
.footer-legal a{color:rgba(255,255,255,.88)}

/* ---------- Responsive ---------- */
@media (max-width:1400px){
.site-nav ul{gap:18px}
.site-nav a{font-size:12px}
}
@media (max-width:1024px){
:root{--fs-h1:40px;--fs-h2:31px;--fs-h3:26px;--fs-h4:21px;--col-gap:36px;--section-y:70px}
.grid--4{grid-template-columns:repeat(2,1fr)}
.grid--5{grid-template-columns:repeat(3,1fr)}
.chips{grid-template-columns:repeat(3,1fr)}
.hcols{grid-template-columns:1fr;gap:24px}
.footer-grid{grid-template-columns:1fr 1fr;gap:34px}
.timeline li{grid-template-columns:1fr;gap:8px}
}

/* Seven nav items plus a button need real room. Below this the row wraps
   labels onto two lines, so collapse to the hamburger earlier. */
@media (max-width:1280px){
.nav-toggle{display:block}
.site-nav{
display:none;position:absolute;top:100%;left:0;right:0;
background:var(--c-paper);box-shadow:0 8px 18px -10px rgba(27,42,56,.4);padding:8px 0 18px;
border-top:1px solid var(--c-border);
}
.site-nav.is-open{display:block}
.site-header .wrap{position:relative}
.site-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:0 24px}
.site-nav li{border-bottom:1px solid var(--c-border)}
.site-nav li:last-child{border-bottom:0}
.site-nav a{display:block;padding:15px 0;font-size:13px;border-bottom:0;white-space:normal}
.site-nav li:not(.nav-cta) a[aria-current="page"]{border-bottom:0;color:var(--c-brand)}
.site-nav .nav-cta{margin-top:14px;border:0}
.site-nav .nav-cta a{display:block;text-align:center;padding:17px 18px;line-height:1.2}
}

/* Long single tokens (an email address, a URL) must never widen the page. */
.footer-contact span,.footer-contact a,.infocard a,.acc summary,.card p{overflow-wrap:anywhere}
.table-wrap{max-width:100%}

@media (max-width:767px){
:root{--fs-h1:33px;--fs-h2:27px;--fs-h3:22px;--fs-h4:19px;--section-y:56px;--card-pad:22px}
body{font-size:15.5px}
.hero{padding:48px 0 60px}
.hero .wrap,.split{flex-direction:column-reverse;gap:30px}
.split--rev{flex-direction:column-reverse}
.grid--2,.grid--3,.grid--4,.grid--5{grid-template-columns:1fr}
.chips{grid-template-columns:1fr 1fr;gap:10px}
.chips li{padding:13px 14px;font-size:13.5px}
.field-row{grid-template-columns:1fr;gap:0}
.footer-grid{grid-template-columns:1fr;gap:32px}
.formcard{padding:24px 20px}
.hblock{padding:24px 20px}
.step{flex-direction:column;gap:10px}
.step-num{width:auto}
.btn-row .btn{flex:1 1 100%}
.topbar .wrap{justify-content:center;gap:16px;padding-top:9px;padding-bottom:9px}
.brand{max-width:none}
.brand-name{font-size:21px}
.pullquote p{font-size:21px}
}

@media print{
.site-header,.topbar,.site-nav,.btn-row,.cta-band{display:none}
body{color:#000;background:#fff}
}

/* ---------- Note on image sizing --------------------------------------------
There is deliberately NO fixed height or object-fit on content images.
An earlier build cropped them into a fixed band, which silently trimmed ~19%
off every 1200x1400 portrait. Do not reintroduce a fixed height here unless
you also change the authored image ratio to match it. */

/* Very small phones: 360px is a real device width (Galaxy S-series). Tighten the
   gutter and let the nav/step numerals shrink so nothing pushes past the edge. */
@media (max-width:400px){
.wrap{padding:0 16px}
:root{--fs-h1:29px;--fs-h2:24px;--card-pad:18px}
.chips{grid-template-columns:1fr}
.bigphone{font-size:25px}
.brand-name{font-size:19px}
.brand-tag{font-size:8.5px;letter-spacing:.12em}
.topbar{font-size:12px}
.topbar .wrap{gap:12px}
}
