/*
Theme Name: Santa Monica Dental Studio
Theme URI: https://santamonicadentalstudio.com
Author: Digital Standout
Description: A warm, refined theme for Santa Monica Dental Studio. Champagne gold and charcoal on cream, built on a compact design-token system (Cormorant Garamond + Mulish) with reusable components and ACF-driven content.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: smds
*/

/* =====================================================================
   1. DESIGN TOKENS  —  the single source of truth for the whole site.
   Change a value here and it updates everywhere. Never hard-code these.
   ===================================================================== */
:root{
  /* Brand color */
  --gold:#C6A664;          /* Champagne Gold — primary accent      */
  --gold-deep:#A5843C;     /* Deep Gold — pressed / rich states     */
  --gold-ink:#7E6428;      /* Gold text on light (links, eyebrows)  */
  --charcoal:#33383B;      /* Charcoal — body text & dark UI        */
  --ink:#2C3033;           /* Ink — headings (a touch deeper)       */
  --cream:#FBF8F3;         /* Cream — page background               */
  --white:#FFFFFF;         /* Warm white — cards & surfaces         */
  --sand:#F4ECDB;          /* Sand — icon chips, soft fills         */
  --sage:#8FA294;          /* Sage — calm accent                    */
  --rose:#C89898;          /* Dusty Rose — human moments            */
  --stone:#8A857D;         /* Stone — quiet text                    */
  --mist:#ECE4D6;          /* Mist — hairlines on cream             */

  /* Text roles */
  --text:#33383B;
  --text-soft:#6E6A62;
  --text-mute:#726D64;
  --text-faint:#726D64;    /* AA: 5.1:1 on white (placeholders) */


  /* Lines & fields */
  --line:#EFE7D8;
  --line-2:#F0E9DC;
  --line-soft:#F1EADD;
  --field-line:#E4DAC7;
  --field-bg:#FDFBF7;

  /* Type */
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Mulish',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  /* Radius */
  --r-sm:10px;
  --r:14px;
  --r-md:16px;
  --r-lg:18px;
  --pill:32px;

  /* Elevation */
  --sh-card:0 16px 36px rgba(51,56,59,.12);
  --sh-lift:0 18px 40px rgba(51,56,59,.12);
  --sh-gold:0 8px 20px rgba(198,166,100,.30);
  --sh-drop:0 18px 46px rgba(51,56,59,.16);

  /* Layout rhythm */
  --wrap:1240px;
  --wrap-narrow:1080px;
  --wrap-tight:900px;
  --gutter:40px;
  --section:104px;         /* vertical section padding (desktop)     */
}

/* =====================================================================
   2. BASE  —  set once, inherited everywhere. No per-element repeats.
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Hide the native page scrollbar — the gold progress rail on the right is the
   scroll indicator. Scrolling itself stays fully functional. */
html{scrollbar-width:none;-ms-overflow-style:none;overflow-x:clip;}
html::-webkit-scrollbar{width:0;height:0;display:none;}
body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--gold-ink);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--gold-deep);}
::selection{background:#E7D3A6;color:var(--charcoal);}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0;line-height:1.12;}
p{margin:0;}
button{font-family:inherit;}
:focus-visible{outline:3px solid var(--gold-ink);outline-offset:2px;border-radius:4px;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}

/* =====================================================================
   3. LAYOUT PRIMITIVES
   ===================================================================== */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
.wrap--narrow{max-width:var(--wrap-narrow);}
.wrap--tight{max-width:var(--wrap-tight);}
.section{padding-block:var(--section);}
.center{text-align:center;}
.stack-head{max-width:640px;margin:0 auto var(--sp,52px);}   /* centered section intro */
.lead{font-size:18px;line-height:1.7;color:var(--text-soft);margin:0;}
.divider{width:64px;height:1px;background:var(--gold);margin:8px auto 32px;}

/* Surfaces */
.surface{background:var(--white);border-block:1px solid var(--line-2);}
.surface--dark{background:var(--charcoal);color:#fff;}
.surface--ink{background:var(--ink);color:#fff;}
.surface--sand{background:var(--sand);}

/* =====================================================================
   4. TYPOGRAPHY HELPERS  —  reusable, not redeclared per section.
   ===================================================================== */
.eyebrow{
  font-family:var(--sans);
  font-size:16px;font-weight:700;
  letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-ink);
  margin:0 0 18px;
  display:block;
}
.eyebrow--gold{color:var(--gold);}          /* on dark surfaces */
.h-display{font-size:60px;line-height:1.06;letter-spacing:.005em;}
.h1{font-size:48px;}
.h2{font-size:46px;}
.h3{font-size:26px;font-weight:600;color:var(--ink);}
.serif-quote{font-family:var(--serif);font-style:italic;font-weight:500;font-size:27px;line-height:1.45;color:#43483C;}
.dark .eyebrow{color:var(--gold);}
.dark h1,.dark h2,.dark h3{color:#fff;}
.dark .lead{color:#B9B5AC;}

/* =====================================================================
   5. BUTTONS  —  one base, variants by modifier.
   ===================================================================== */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--sans);font-size:17px;font-weight:700;
  padding:16px 32px;border-radius:var(--pill);
  border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn--gold{background:var(--gold);color:var(--ink);box-shadow:var(--sh-gold);}
.btn--gold:hover{background:var(--gold-ink);color:#fff;} /* AA: 5.6:1 */
.btn--outline{border-color:var(--charcoal);color:var(--charcoal);}
.btn--outline:hover{background:var(--charcoal);color:#fff;}
.btn--ghost{border-color:rgba(255,255,255,.55);color:#fff;}
.btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;}
.btn--sm{font-size:16px;padding:13px 26px;}
.btn--block{display:flex;justify-content:center;width:100%;}
.textlink{font-size:17px;font-weight:700;color:var(--gold-ink);white-space:nowrap;}

/* =====================================================================
   6. COMPONENTS
   ===================================================================== */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);}
.lift{transition:transform .3s ease,box-shadow .3s ease;}
.lift:hover{transform:translateY(-4px);box-shadow:var(--sh-lift);}

/* Google reviews embed (Digital Standout): whatever it injects stays inside
   its column and can never widen the page (all widths). */
[id^="bf-revz-widget"]{max-width:100%;min-width:0;overflow:hidden;}
[id^="bf-revz-widget"] iframe{max-width:100% !important;}

/* Round icon chip (why-choose, contact, tech) */
.icon-chip{
  width:54px;height:54px;flex-shrink:0;border-radius:50%;
  background:var(--sand);color:#7A6329;
  display:flex;align-items:center;justify-content:center;
}
.icon-chip--sq{border-radius:12px;width:46px;height:46px;}

/* Pills / chips / tags */
.chip{
  display:inline-block;background:var(--sand);color:#7A6329;
  font-size:16px;font-weight:700;padding:10px 20px;border-radius:22px;
}
.tag{background:#fff;border:1px solid #E4D3AC;color:#7A6329;font-weight:700;padding:11px 22px;border-radius:24px;}

/* Media feature (icon + title + body) */
.feature{display:flex;gap:20px;align-items:flex-start;}
.feature h3{margin:2px 0 7px;line-height:1.2;}
.feature p{font-size:16px;line-height:1.65;color:var(--text-mute);}

/* Stat */
.stat-num{font-family:var(--serif);font-weight:600;color:var(--gold-deep);line-height:1;font-size:40px;}
.stat-label{font-size:16px;color:var(--text-mute);font-weight:600;margin-top:6px;}

/* Grids — reusable column counts */
.grid{display:grid;gap:24px;}
.grid--2{grid-template-columns:1fr 1fr;}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--gap-lg{gap:48px 60px;}
.flex{display:flex;}
.flex-wrap{flex-wrap:wrap;}
.gap-sm{gap:12px;}
.gap{gap:14px;}

/* =====================================================================
   7. HEADER / NAV
   ===================================================================== */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 0 #EEE6D8,0 6px 20px rgba(51,56,59,.05);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;padding-block:16px;}
.brand img{height:76px;width:auto;}
.nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 26px;}
.nav-item{position:relative;}
.nav-link{font-size:16px;font-weight:600;color:#54504A;letter-spacing:.01em;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;padding:6px 0;cursor:pointer;}
.nav-link:hover{color:var(--gold-ink);}
.nav-link .caret{font-size:11px;color:var(--gold-ink);}
.nav-cta{display:flex;align-items:center;flex-shrink:0;gap:12px;}

.dropdown{position:absolute;top:100%;left:0;padding-top:14px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;z-index:70;}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown--wide{left:auto;right:0;}
.dropdown-inner{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-drop);padding:24px 26px;display:flex;gap:26px;}
.dropdown-col{min-width:154px;}
.dropdown-col+.dropdown-col{border-left:1px solid var(--line);padding-left:26px;}
.dropdown-head{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid #E9DEC7;white-space:nowrap;}
.dropdown-col a{display:block;font-size:15px;font-weight:600;color:#54504A;padding:7px 0;white-space:nowrap;border-bottom:1px solid var(--line-soft);}
.dropdown-col a:last-child{border-bottom:none;}
.dropdown-col a:hover{color:var(--gold-ink);}
.dd-grid{column-count:2;column-gap:32px;}
.dd-grid a{break-inside:avoid;border-bottom:none;}

/* The header's gold call buttons reuse .footer-btn (see section 8). */
.burger{flex-direction:column;justify-content:center;align-items:center;gap:5px;width:48px;height:48px;border:1.5px solid var(--field-line);background:#fff;border-radius:12px;cursor:pointer;padding:0;display:inline-flex;}
.burger span{display:block;width:20px;height:2px;background:var(--charcoal);border-radius:2px;}

/* Mobile drawer */
.m-only{display:none;}
.drawer{position:fixed;inset:0;z-index:90;background:rgba(44,48,51,.55);opacity:0;visibility:hidden;transition:opacity .22s ease;}
.drawer.open{opacity:1;visibility:visible;}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(86vw,380px);background:#fff;box-shadow:-10px 0 40px rgba(44,48,51,.24);transform:translateX(100%);transition:transform .26s ease;overflow-y:auto;}
.drawer.open .drawer-panel{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line-2);}
.drawer-head img{height:56px;width:auto;}
.drawer-close{width:44px;height:44px;border:none;background:var(--sand);border-radius:12px;font-size:22px;color:#54504A;cursor:pointer;line-height:1;}
.drawer-body{padding:20px 22px 34px;}
.drawer-group{border-bottom:1px solid var(--line-2);padding:16px 0;}
.drawer-group>span{display:block;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:12px;}
.drawer-group a{display:block;font-size:17px;font-weight:600;color:#54504A;padding:11px 0;}

/* Scroll progress: vertical rail (desktop) + horizontal bar under the
   sticky header (mobile — .m-only shows it, the rail hides). */
.progress-rail{position:fixed;top:0;right:0;width:4px;height:100vh;background:rgba(198,166,100,.14);z-index:60;pointer-events:none;}
.progress-rail>div{width:100%;height:0;background:var(--gold);transition:height .08s linear;}
.progress-h{height:3px;width:100%;background:rgba(198,166,100,.16);display:none;}
.progress-h>div{height:100%;width:0;background:var(--gold);transition:width .08s linear;}

/* =====================================================================
   8. SECTION-SPECIFIC (kept minimal; most reuse the components above)
   ===================================================================== */
/* Hero */
.hero{position:relative;background:#EDE7DE;}
.hero-wrap{position:relative;min-height:760px;display:flex;align-items:center;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right 22%;}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,248,243,.97) 0%,rgba(251,248,243,.92) 34%,rgba(251,248,243,.55) 52%,rgba(251,248,243,0) 70%);}
.hero-copy{position:relative;width:100%;padding-block:72px;}
.hero-copy .inner{max-width:560px;}
.hero-copy h1{margin:0 0 24px;}
.hero-copy p{font-size:19px;line-height:1.7;color:#5C584F;margin:0 0 36px;max-width:500px;}

/* Trust bar */
.trustbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-block:34px;}
.trust-item{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:140px;}
.trust-num{font-family:var(--serif);font-size:32px;font-weight:600;color:var(--gold);line-height:1;}
.trust-label{font-size:15px;color:#C4C0B7;font-weight:600;margin-top:8px;letter-spacing:.02em;}

/* Portrait frame (Dr. Sadat) */
.framed{position:relative;}
.framed::before{content:"";position:absolute;top:-18px;left:-18px;right:26px;bottom:26px;border:1px solid #E4D3AC;border-radius:var(--r-lg);}
.framed img{position:relative;width:100%;border-radius:var(--r-md);box-shadow:var(--sh-card);}

/* Credentials marquee */
.marquee{position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);overflow:hidden;}
.marquee-track{display:flex;gap:22px;width:max-content;animation:marq 34s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track .cell{flex:0 0 auto;width:150px;height:96px;display:flex;align-items:center;justify-content:center;}
.marquee-track .cell img{max-width:100%;max-height:88px;object-fit:contain;}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Service tiles (image + hover reveal) */
.svc{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;min-height:360px;}
.svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.svc-grad{position:absolute;inset:0;background:linear-gradient(175deg,rgba(44,48,51,0) 30%,rgba(44,48,51,.35) 70%,rgba(44,48,51,.85) 100%);transition:background .4s ease;}
.svc:hover .svc-grad{background:linear-gradient(175deg,rgba(44,48,51,.2) 0%,rgba(44,48,51,.6) 55%,rgba(44,48,51,.96) 100%);}
.svc-body{position:absolute;left:0;right:0;bottom:0;padding:34px 34px 32px;color:#fff;}
.svc-body h3{color:#fff;font-size:30px;font-weight:600;line-height:1.15;}
.svc-reveal{max-height:0;opacity:0;transform:translateY(10px);overflow:hidden;transition:max-height .45s ease,opacity .35s ease,transform .4s ease;}
.svc:hover .svc-reveal{max-height:200px;opacity:1;transform:translateY(0);}
.svc-reveal p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.9);margin:10px 0 14px;max-width:340px;}
.svc-reveal .more{font-size:16px;color:#E7D3A6;font-weight:700;}

/* Steps (new patient) */
.steps{position:relative;display:flex;justify-content:space-between;gap:20px;}
.steps::before{content:"";position:absolute;top:27px;left:9%;right:9%;height:1px;background:rgba(198,166,100,.3);}
.step{position:relative;flex:1;text-align:center;}
.step-num{width:56px;height:56px;border-radius:50%;background:var(--charcoal);border:1px solid rgba(198,166,100,.5);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:var(--serif);font-size:24px;font-weight:600;color:var(--gold);}
.step h3{font-family:var(--sans);font-size:17px;font-weight:800;color:#F1EEE7;margin:0 0 8px;line-height:1.3;}
.step p{font-size:16px;line-height:1.55;color:#B9B5AC;margin:0 auto;max-width:190px;} /* AA: 5.8:1 on the charcoal section */

/* Gallery */
.ba{position:relative;}
.ba .badge{position:absolute;top:14px;left:14px;background:rgba(51,56,59,.85);color:#fff;font-size:15px;font-weight:700;padding:6px 14px;border-radius:20px;}
.ba img{width:100%;aspect-ratio:1/1.1;object-fit:cover;}
.ba-cap{padding:20px 24px;}
.ba-cap h3{font-size:23px;font-weight:600;margin:0 0 4px;}
.ba-cap p{font-size:16px;color:var(--text-mute);}

/* Offers */
.offer{background:var(--charcoal);border-radius:var(--r-lg);padding:40px 34px;text-align:center;color:#fff;}
.offer .tag-line{font-family:var(--serif);font-size:22px;color:var(--gold);font-weight:600;margin-bottom:16px;}
.offer h3{color:#fff;font-size:30px;font-weight:600;margin:0 0 12px;line-height:1.15;}
.offer p{font-size:16px;line-height:1.6;color:#B9B5AC;margin:0 0 22px;}

/* Accordion (FAQ) */
.accordion{border-top:1px solid var(--line);}
.acc-item{border-bottom:1px solid var(--line);padding:26px 4px;}
.acc-h{margin:0;}
.acc-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;background:none;border:0;padding:0;text-align:left;cursor:pointer;font-family:var(--sans);font-size:19px;font-weight:700;color:var(--charcoal);line-height:1.4;}
.acc-sign{font-family:var(--serif);font-size:30px;color:var(--gold-deep);line-height:1;flex-shrink:0;font-weight:500;}
.acc-a{overflow:hidden;max-height:0;transition:max-height .35s ease;}
.acc-item.open .acc-a{max-height:280px;}
.acc-a p{font-size:17px;line-height:1.7;color:var(--text-soft);margin:16px 0 0;}

/* Article rows */
.rowlist{border-top:1px solid var(--line);}
.rowlink{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 4px;border-bottom:1px solid var(--line);}
.rowlink .meta{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;}
.rowlink .kicker{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;min-width:120px;} /* AA: 5.3:1 on cream */
.rowlink h3{font-size:26px;font-weight:600;line-height:1.25;}
.rowlink:hover h3{color:var(--gold-ink);}

/* Decorative tooth watermark */
.deco{background-repeat:no-repeat;background-size:420px auto;}
.deco--r{background-position:right -80px center;}
.deco--l{background-position:left -80px center;}

/* Forms */
.field,.select,.textarea{border:1px solid var(--field-line);border-radius:var(--r-sm);padding:15px 16px;font-size:16px;font-family:var(--sans);color:var(--charcoal);background:var(--field-bg);outline:none;width:100%;}
.field::placeholder,.textarea::placeholder{color:var(--text-faint);}
.field:focus,.select:focus,.textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,166,100,.14);}
.textarea{resize:vertical;}
.form-label{font-size:16px;font-weight:700;color:#54504A;margin-bottom:8px;}
.radio-row,.wpcf7-radio{display:flex;gap:10px;}
.wpcf7-radio .wpcf7-list-item{margin:0;flex:1;}
.radio-opt,.wpcf7-radio label{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--field-line);border-radius:var(--r-sm);padding:14px;font-size:16px;font-weight:600;color:#54504A;background:var(--field-bg);cursor:pointer;}
.radio-opt input,.wpcf7-radio input{accent-color:var(--gold);width:17px;height:17px;}
.form-note{font-size:15px;line-height:1.55;color:var(--text-soft);margin:0;}
.contact-item{display:flex;gap:16px;align-items:flex-start;}
.contact-item .label{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:4px;} /* AA: 4.8:1 even on the sand section */
.contact-item .value{font-size:17px;color:#43483C;font-weight:600;line-height:1.5;white-space:pre-line;}
.map-frame{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-card);}
.map-frame iframe{width:100%;height:420px;border:0;display:block;}

/* =====================================================================
   9. FOOTER
   ===================================================================== */
.site-footer{background:var(--ink);color:#fff;}
.footer-quick{border-bottom:1px solid rgba(255,255,255,.1);}
.footer-quick .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 40px;padding-block:22px;}
.footer-quick a{font-size:16px;font-weight:700;letter-spacing:.02em;color:#E7E3DA;}
.footer-main{display:grid;grid-template-columns:1fr auto 1fr;gap:40px;align-items:center;padding-block:56px 48px;}
/* stretch + max-content: both buttons match the widest one's width. */
.footer-main .contact-col{display:flex;flex-direction:column;gap:14px;align-items:stretch;width:max-content;}
.footer-main .logo-col{text-align:center;}
.footer-main .logo-col img{height:110px;width:auto;opacity:.96;}
.footer-main .addr-col{text-align:right;display:flex;flex-direction:column;gap:8px;}
.footer-main .addr-col .a{font-size:16px;color:#BEBAB1;line-height:1.6;}
.footer-main .addr-col .h{font-size:16px;color:#9F9B92;line-height:1.6;}
.footer-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:var(--ink);font-size:16px;font-weight:700;padding:13px 24px;border-radius:var(--pill);white-space:nowrap;}
.footer-btn svg{flex:none;}
.call-btn{height:48px;padding-inline:20px;} /* mobile header call pill (label hides on small phones) */
.footer-btn--ghost{background:transparent;border:1.5px solid rgba(255,255,255,.5);color:#fff;}
.footer-legal{border-top:1px solid rgba(255,255,255,.1);}
/* Row 1: copyright | legal menu. Row 2: the credit line, spanning both. */
.footer-legal .wrap{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px 28px;padding-block:22px;}
.footer-legal .legal-links{flex-wrap:wrap;justify-content:flex-end;}
.footer-legal .credit{grid-column:1/-1;}
.footer-legal span,.footer-legal a{font-size:15px;color:#A19B90;}
.footer-legal a{color:var(--gold);font-weight:700;}
.footer-disc{border-top:1px solid rgba(255,255,255,.07);}
.footer-disc .wrap{padding-block:16px;}
.footer-disc p{font-size:15px;line-height:1.6;color:#9F9B92;}
.footer-disc strong{color:#BEBAB1;}
.footer-disc a{color:var(--gold);font-weight:700;}

/* Generic page (page.php) */
.page-hero{background:linear-gradient(180deg,#fff 0%,var(--cream) 100%);text-align:center;padding-block:88px 64px;border-bottom:1px solid var(--line-2);}
.page-hero h1{font-size:52px;}
.page-body{max-width:var(--wrap-tight);}
.page-body :is(p,ul,ol){font-size:18px;line-height:1.8;color:var(--text-soft);margin:0 0 22px;}
.page-body h2{font-size:38px;margin:44px 0 18px;}
.page-body h3{margin:32px 0 14px;}
.page-body img{border-radius:var(--r-md);margin:28px 0;}

/* =====================================================================
   9b. INNER PAGES  —  shared banner + CTA band + page components.
   Everything else on inner pages reuses the components above.
   ===================================================================== */
/* Gradient banner with breadcrumb (all inner pages) */
.banner{background:linear-gradient(110deg,var(--cream) 0%,#F1E4C6 45%,#DFC792 78%,var(--gold) 100%);}
.banner .wrap{min-height:260px;display:flex;flex-direction:column;justify-content:center;padding-block:48px;}
.banner h1{font-size:50px;line-height:1.06;margin:0;}
.banner .lead{font-size:19px;color:#5C584F;max-width:1100px;margin-top:14px;}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:14px;font-weight:600;letter-spacing:.04em;margin-bottom:20px;}
.crumbs a{color:#755C25;} /* AA on the banner gradient mid-tone */
.crumbs .sep{color:#B9A67F;}
.crumbs .here{color:#5C584F;}

/* Bottom CTA band (all inner pages) */
.page-cta{background:#F6F0E5;border-top:1px solid #EFE4CE;text-align:center;}
.page-cta--plain{background:transparent;border-top:0;} /* gallery: band sits above, CTA stays on cream */
.page-cta .wrap{max-width:var(--wrap-tight);padding-block:88px;}
.page-cta h2{font-size:42px;line-height:1.14;margin:0 0 18px;}
.page-cta p{font-size:18px;line-height:1.7;color:#5C584F;margin:0 0 12px;}
.page-cta .strong{color:var(--ink);font-weight:700;}
.page-cta .btns{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:34px;}

/* Native-details FAQ (FAQ page + service pages) */
.faq-list{border-top:1px solid var(--line);}
.faq-list details{border-bottom:1px solid var(--line);}
.faq-list summary{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px 4px;cursor:pointer;list-style:none;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary>span:first-child{display:flex;gap:16px;align-items:baseline;}
.faq-num{font-family:var(--serif);font-size:22px;color:var(--gold-ink);line-height:1.3;flex:none;}
.faq-list h2,.faq-list h3{font-family:var(--sans);font-size:19px;font-weight:700;color:var(--charcoal);line-height:1.4;}
.faq-sign{flex-shrink:0;}
.faq-sign::after{content:"+";font-family:var(--serif);font-size:30px;color:var(--gold-deep);line-height:1;font-weight:500;}
.faq-list details[open] .faq-sign::after{content:"–";}
.faq-a{padding:0 4px 26px;}
.faq-a--indent{padding-left:42px;}
.faq-a p{font-size:17px;line-height:1.8;color:#57534B;margin:0 0 14px;}
.faq-a p:last-child{margin-bottom:0;}

/* Photo card (services landing featured grid) */
.photo-card{display:block;overflow:hidden;}
.photo-card img{width:100%;height:340px;object-fit:cover;}
.photo-card>div{padding:32px 32px 34px;}
.photo-card h3{font-size:32px;font-weight:600;line-height:1.2;margin:0 0 12px;}
.photo-card p{font-size:17px;line-height:1.7;color:var(--text-soft);margin:0 0 18px;}
.photo-card .more{font-size:15px;font-weight:700;color:var(--gold-ink);}

/* Quiet text tile with a top rule (services landing "also available") */
.tile-link{display:block;border-top:1px solid #E9DEC7;padding-top:24px;}
.tile-link h3{font-size:25px;font-weight:600;line-height:1.2;margin:0 0 8px;}
.tile-link:hover h3{color:var(--gold-ink);}
.tile-link p{font-size:16px;line-height:1.65;color:var(--text-mute);}

/* Service detail: body + sticky sidebar */
.svc-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:72px;align-items:start;padding-block:56px 96px;}
.svc-shell h2{font-size:44px;margin:0 0 28px;}
.svc-hero-img{width:78%;height:420px;object-fit:cover;border-radius:6px;margin:0 auto 44px;display:block;}
.svc-aside{position:sticky;top:112px;display:flex;flex-direction:column;gap:28px;}
.side-head{font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:#726D64;font-weight:700;margin-bottom:10px;}
.side-list{border-top:2px solid var(--gold);}
.side-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:16px;font-weight:600;color:#4E4A43;padding:13px 0;border-bottom:1px solid var(--line-soft);}
.side-list a:hover{color:var(--gold-ink);}
.side-list .arrow{color:var(--gold);}
.note-box{background:#F6F0E5;border:1px solid #EFE4CE;border-radius:var(--r);}
.note-box--pad{padding:44px;}
.note-box--promo{padding:28px;}
.note-box--promo .title{font-family:var(--serif);font-size:26px;line-height:1.25;color:var(--ink);margin-bottom:10px;}
.note-box--promo p{font-size:16px;line-height:1.65;color:#57534B;margin:0 0 20px;}
.note-box--promo .btn{justify-content:center;} /* buttons fill the column — center their labels */
.copy{font-size:19px;line-height:1.78;color:#5C584F;}
.copy p+p{margin-top:20px;} /* wpautop output needs the gap; global p reset has margin:0 */
.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;}
.check-list li{display:flex;gap:14px;align-items:baseline;font-size:18px;line-height:1.7;color:#4E4A43;}
.check-list li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold);transform:translateY(-3px);}

/* Service article body (wysiwyg, page-service.php) — plain h2/h3/p/ul markup
   from the editor picks up the design automatically, no classes needed.
   (Named svc-article: .svc-body is the homepage tile caption above.) */
.svc-article{font-size:19px;line-height:1.78;color:#5C584F;margin-bottom:56px;}
.svc-article p{margin:0 0 20px;}
.svc-article h2{font-size:34px;margin:44px 0 20px;padding-top:40px;border-top:1px solid #E9DEC7;}
.svc-article :is(h2,h3):first-child{margin-top:0;padding-top:0;border-top:0;}
.svc-article h3{font-family:var(--sans);font-size:20px;font-weight:700;color:#4E4A43;margin:30px 0 12px;}
.svc-article ul{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px 32px;}
.svc-article ul.cols-2{grid-template-columns:1fr 1fr;}
/* Bullets are positioned, not flexed — editor-normalized markup (TinyMCE
   strips bare spans) renders identically to the authored defaults. */
.svc-article li{position:relative;padding-left:22px;font-size:18px;line-height:1.7;color:#4E4A43;}
.svc-article li::before{content:"";position:absolute;left:2px;top:0.62em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.svc-article a{color:var(--gold-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.svc-article a.btn{text-decoration:none;}
.svc-article a.btn--gold{color:var(--ink);}
.svc-article a.btn--gold:hover{color:#fff;}
.svc-article a.btn--outline{color:var(--charcoal);}
.svc-article a.btn--outline:hover{color:#fff;}
/* Review cards: the attribution link stretches over the card, so the whole
   card is clickable. */
.svc-article blockquote{position:relative;background:#F6F0E5;border:1px solid #EFE4CE;border-left:3px solid var(--gold);border-radius:var(--r);padding:26px 30px;margin:0 0 20px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.svc-article blockquote:hover{border-color:var(--gold);box-shadow:0 14px 30px rgba(51,56,59,.10);transform:translateY(-2px);}
.svc-article blockquote p{margin:0;font-size:18px;line-height:1.75;color:#57534B;}
.svc-article blockquote cite{display:block;margin-top:14px;text-align:right;font-style:normal;font-size:16px;font-weight:700;color:var(--gold-ink);}
.svc-article blockquote a{text-decoration:none;color:var(--gold-ink);}
.svc-article blockquote a::after{content:"";position:absolute;inset:0;}

/* Reviews page */
.rev-split{display:grid;grid-template-columns:0.7fr 1.3fr;gap:56px;align-items:center;}
.score{font-family:var(--serif);font-size:56px;font-weight:600;color:var(--gold);line-height:1;}
.stars{color:var(--gold);font-size:20px;letter-spacing:3px;}
.quote-card{display:flex;flex-direction:column;padding:32px;margin:0;}
.quote-card .stars{font-size:17px;margin-bottom:16px;}
.quote-card blockquote{font-size:17px;line-height:1.75;color:#4E4A43;margin:0 0 18px;flex:1;}
.quote-card figcaption{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--ink);}

/* =====================================================================
   9c. ABOUT / DR. SADAT / NEW PATIENTS / GALLERY / BLOG
   ===================================================================== */
/* Two-column split — set the ratio per use via --cols; collapses on mobile */
.cols{display:grid;gap:64px;align-items:center;grid-template-columns:var(--cols,1fr 1fr);}
.cols--top{align-items:start;}

/* Thin gold offset frame. .accent wraps the element; --br shifts it bottom-right (media). */
.accent{position:relative;}
.accent::before{content:"";position:absolute;inset:-24px;border:1px solid #E0CFA4;border-radius:6px;pointer-events:none;}
.accent--br::before{top:22px;left:22px;right:-22px;bottom:-22px;}
.accent>img{position:relative;width:100%;border-radius:4px;}

/* Column that pins while the copy beside it scrolls past (clears the sticky header).
   Declared after .accent so it wins when both are on the same element. */
.sticky-media{position:sticky;top:112px;align-self:start;}

.band{background:#F6F0E5;border-block:1px solid #EFE4CE;}
.statement{font-family:var(--serif);font-size:31px;line-height:1.4;color:var(--ink);margin:0;}
.check-list--1{grid-template-columns:1fr;}

/* Numbered feature list (New Patients: out-of-network) */
.num-list{display:grid;gap:32px;}
.num-list>div{border-top:1px solid #E9DEC7;padding-top:26px;display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:start;}
.num-list .num{font-family:var(--serif);font-size:34px;line-height:1;color:var(--gold);}
.num-list h3{font-family:var(--serif);font-size:27px;font-weight:600;line-height:1.22;margin:0 0 10px;}
.num-list p{font-size:17px;line-height:1.75;color:#57534B;}

/* Credential rows + advanced-training tiles (Dr. Sadat) */
.cred-row{display:flex;align-items:center;gap:26px;border-top:2px solid var(--gold);padding-top:28px;}
.cred-row img{flex:none;width:120px;height:64px;object-fit:contain;object-position:left center;}
.cred-row .t{font-family:var(--serif);font-size:27px;line-height:1.2;color:var(--ink);}
.cred-row .s{font-size:16px;color:var(--text-mute);margin-top:4px;}
.ico-tile{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #EADFC9;border-radius:6px;padding:22px 24px;font-size:17px;line-height:1.45;color:var(--ink);font-weight:600;}
.ico-tile img{flex:none;width:52px;height:52px;object-fit:contain;}

/* Founder letter (About) */
.letter-card{background:#fff;border:1px solid #EADFC9;border-radius:6px;padding:56px 56px 48px;}
.letter-card .salute{font-family:var(--serif);font-size:30px;line-height:1.3;color:var(--ink);margin:0 0 26px;}
.letter-card p{font-size:17px;line-height:1.85;color:#57534B;margin:0 0 20px;}
.letter-card .sig{font-family:var(--serif);font-size:28px;line-height:1.3;color:var(--ink);margin:26px 0 0;}

/* Before/after drag slider (Smile Gallery). Each case is ONE stacked image:
   before on the top half, after on the bottom half. JS moves --pos. */
.ba-slide{--pos:50%;position:relative;overflow:hidden;border-radius:5px;background:#EDE7DE;aspect-ratio:800/464;cursor:ew-resize;touch-action:pan-y;user-select:none;box-shadow:0 1px 3px rgba(44,48,51,.08);}
.ba-slide img{position:absolute;top:0;left:0;width:100%;max-width:none;height:200%;object-fit:cover;pointer-events:none;}
.ba-slide .after-clip{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 0 var(--pos));}
.ba-slide .after-clip img{top:-100%;}
.ba-slide .bar{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:var(--cream);box-shadow:0 0 0 1px rgba(44,48,51,.15);pointer-events:none;}
.ba-slide .knob{position:absolute;top:50%;left:var(--pos);transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--cream);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;gap:4px;pointer-events:none;box-shadow:0 2px 8px rgba(44,48,51,.22);font-size:13px;color:var(--gold-ink);}
.ba-slide .lbl{position:absolute;bottom:16px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:7px 12px;border-radius:20px;pointer-events:none;}
.ba-slide .lbl--b{left:16px;background:rgba(44,48,51,.78);color:var(--cream);}
.ba-slide .lbl--a{right:16px;background:var(--gold);color:var(--ink);}
.ba-cap{border-top:1px solid #E9DEC7;margin-top:16px;padding:14px 0 18px;text-align:center;font-size:17px;font-weight:600;color:#A19B90;}

/* Hours of operation table (Contact page) */
.hours-table{border-top:1px solid var(--line);}
.hours-table>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:14px 0;}
.hours-table .d{font-size:17px;color:#43483C;font-weight:600;}
.hours-table .t{font-size:17px;color:var(--text-soft);}

/* Blog listing (blog index, category archives, search) */
.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;padding-block:22px;}
.pill{display:inline-block;background:#fff;border:1px solid #E4DBC8;color:#54504A;font-size:15px;font-weight:600;padding:10px 20px;border-radius:24px;}
.pill.on{background:var(--gold);border-color:var(--gold);color:var(--ink);}
.search-pill{display:flex;align-items:center;gap:10px;border:1px solid #E4DBC8;border-radius:24px;padding:10px 18px;background:var(--cream);min-width:280px;}
.search-pill input{border:none;background:transparent;outline:none;font-family:inherit;font-size:16px;color:var(--ink);width:100%;}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:72px 64px;padding:26px;}
/* A final row holding a single card is centred instead of hugging the left. */
.post-grid>:last-child:nth-child(3n+1){grid-column:2;}
.post-card{display:flex;flex-direction:column;}
.post-card .thumb img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px;}
.post-card .meta{display:flex;align-items:center;gap:12px;margin:22px 0 14px;font-size:14px;color:#726D64;}
.post-card .cat{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);}
.post-card h2{font-size:29px;font-weight:500;line-height:1.2;margin:0 0 12px;}
.post-card h2 a{color:var(--ink);}
.post-card h2 a:hover{color:var(--gold-ink);}
.post-card .excerpt{font-size:16px;line-height:1.7;color:var(--text-soft);margin:0 0 18px;}
.post-card .more{font-size:15px;font-weight:700;color:var(--gold-ink);margin-top:auto;}

/* Single post prose */
.post-hero img{height:360px;object-fit:cover;margin-bottom:0;}
.post-body p{font-size:18px;line-height:1.85;color:#4E4A43;margin:0 0 22px;}
.post-body h2{font-size:36px;font-weight:600;line-height:1.18;margin:56px 0 20px;}
.post-body h3{font-size:27px;font-weight:600;line-height:1.22;margin:38px 0 12px;}
.post-body a{font-weight:600;}
.post-body .aside-note{border-left:3px solid var(--gold);background:#F9F4E9;padding:16px 22px;margin:32px 0;font-size:17px;line-height:1.6;color:#57534B;}
.post-foot{border-top:1px solid #E9DEC7;margin-top:56px;padding-top:36px;}

/* Contact page */
.contact-shell{display:grid;grid-template-columns:1.45fr 1fr;gap:32px;align-items:start;padding-block:56px 40px;}
.consent-row{display:flex;gap:12px;align-items:flex-start;cursor:pointer;}
.consent-row input{accent-color:var(--gold);width:18px;height:18px;margin:2px 0 0;flex-shrink:0;}
.visit-card{background:var(--charcoal);border-radius:18px;padding:36px 32px;color:#fff;display:flex;flex-direction:column;gap:20px;}
.visit-card h3{font-size:28px;font-weight:600;color:#fff;margin-bottom:4px;}
.visit-card .row{display:flex;gap:14px;align-items:flex-start;font-size:16px;line-height:1.6;color:#DCD8CF;}
.visit-card .row svg{flex:none;color:var(--gold);margin-top:2px;}
.visit-card .row a{font-weight:700;color:#fff;}

/* Contact page: plain new-patient question — no bold, unframed yes/no */
.form-label{font-weight:400;color:#5C584F;}
.radio-row,.wpcf7-radio{gap:28px;}
.wpcf7-radio .wpcf7-list-item{flex:0 0 auto;}
.radio-opt,.wpcf7-radio label{flex:0 0 auto;border:0;background:transparent;padding:4px 0;justify-content:flex-start;font-weight:400;}

/* CF7 skin — the seeded form must render identically to the static markup */
.wpcf7 form{display:flex;flex-direction:column;gap:16px;}
.wpcf7-form-control-wrap{display:block;width:100%;}
.wpcf7 .textarea{min-height:96px;}
/* Consent acceptance: gold checkmark beside the disclaimer, wherever the form renders. */
.wpcf7-acceptance .wpcf7-list-item{margin:0;}
.wpcf7-acceptance label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;}
.wpcf7-acceptance input{accent-color:var(--gold);width:18px;height:18px;margin:2px 0 0;flex-shrink:0;}
.wpcf7-acceptance .wpcf7-list-item-label{font-size:15px;line-height:1.55;color:var(--text-soft);}
.wpcf7-submit{border:none;border-radius:var(--r-sm);justify-content:center;text-align:center;font:inherit;font-weight:700;}
.wpcf7-spinner{margin:8px auto 0;}
.wpcf7-not-valid-tip{font-size:14px;color:#B3564C;margin-top:6px;}
.wpcf7-response-output{margin:0;padding:14px 18px;border:1px solid var(--gold);border-radius:var(--r-sm);background:#F9F4E9;font-size:15px;color:#57534B;}

/* Office Tour */
.tour-hero{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 20px 46px rgba(51,56,59,0.14);}
.tour-hero>img{width:100%;height:520px;object-fit:cover;display:block;}
.tour-cap{position:absolute;left:32px;bottom:32px;background:rgba(251,248,243,0.96);border-radius:16px;padding:26px 30px;max-width:420px;}
.tour-cap .eyebrow{font-size:14px;letter-spacing:.22em;margin-bottom:10px;}
.tour-cap h2{font-size:28px;font-weight:600;line-height:1.15;margin:0 0 10px;}
.tour-cap p{font-size:16px;line-height:1.6;color:#5C584F;margin:0 0 14px;}
.tour-cap a{font-size:16px;font-weight:700;}
.tour-rooms{padding-top:88px;display:flex;flex-direction:column;gap:88px;}
.tour-row{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;}
.tour-row--flip{grid-template-columns:1fr 1.15fr;}
.tour-row--flip img{order:2;}
.tour-row img{width:100%;height:420px;object-fit:cover;border-radius:18px;display:block;box-shadow:0 16px 36px rgba(51,56,59,0.12);}
.tour-row .eyebrow{font-size:14px;letter-spacing:.22em;margin-bottom:14px;}
.tour-row h2{font-size:40px;margin:0 0 18px;}
.tour-row p{font-size:18px;line-height:1.75;color:#6E6A62;margin:0;}
.tour-hall{max-width:680px;margin:0 auto;}
.tour-hall img{width:100%;height:383px;object-fit:cover;border-radius:20px;display:block;box-shadow:0 20px 46px rgba(51,56,59,0.14);}
.tour-hall p{font-size:16px;line-height:1.6;color:#6E6A62;margin:18px 0 0;text-align:center;}
.zoomable{cursor:zoom-in;}
.zoom-overlay{position:fixed;inset:0;z-index:200;background:rgba(28,31,33,0.94);display:flex;align-items:center;justify-content:center;padding:clamp(12px,3.5vw,48px);cursor:zoom-out;}
.zoom-overlay img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;display:block;box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.zoom-overlay button{position:absolute;top:24px;right:24px;width:48px;height:48px;border:none;border-radius:14px;background:rgba(255,255,255,0.12);color:#fff;font-size:24px;line-height:1;cursor:pointer;}

/* --- Homepage technology collage: tall waiting-area photo beside two stacked --- */
.tech-collage img{width:100%;height:100%;object-fit:cover;border-radius:var(--r);display:block;}
.tech-collage .tall{grid-row:1/3;box-shadow:var(--sh-card);}

/* =====================================================================
   PILLAR PAGE  —  long-form guide (Template: Pillar Page).
   ===================================================================== */
.pillar-wrap{max-width:940px;padding-block:72px 60px;}
.pillar-hero{margin:0 0 60px;}
.pillar-hero img{width:100%;height:360px;object-fit:cover;object-position:50% 55%;}
.pillar-article{font-size:18px;line-height:1.85;color:#4E4A43;}
.pillar-article .lead-xl{font-size:21px;line-height:1.75;color:#3E3A34;margin:0 0 22px;}
.pillar-article p{margin:0 0 22px;}
.pillar-article h2{font-weight:600;font-size:36px;line-height:1.18;margin:64px 0 20px;}
.pillar-article h3{font-weight:600;font-size:27px;line-height:1.22;margin:38px 0 12px;}
.pillar-article a{color:var(--gold-ink);font-weight:600;}
/* FAQ accordion inside the article: the question must sit beside the +, so
   neutralise the article's heading margins there. */
.pillar-article .faq-list h3{margin:0;font-family:var(--sans);font-size:19px;font-weight:700;line-height:1.4;}
.pillar-article .faq-list p{margin:0 0 16px;}
.pillar-article .faq-list p:last-child{margin-bottom:0;}
.pillar-article ul{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px;}
.pillar-article li{position:relative;padding-left:20px;line-height:1.7;}
.pillar-article li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.pillar-article .note{font-size:15px;line-height:1.6;color:var(--text-soft);font-style:italic;margin:0 0 26px;}
/* "Also Read" callout */
.pillar-article .also-read{border-left:3px solid var(--gold);background:#F9F4E9;padding:16px 22px;margin:32px 0;font-size:17px;line-height:1.6;color:#57534B;}
.pillar-article .also-read a{font-weight:700;}
/* Two-up comparison cards */
.pillar-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:6px 0 26px;}
.pillar-cards>div{background:var(--white);border:1px solid #E9DEC7;border-radius:10px;padding:26px;}
.pillar-cards .t{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--ink);margin-bottom:10px;}
.pillar-cards p{font-size:16px;line-height:1.7;margin:0;}
/* Comparison table */
.table-scroll{overflow-x:auto;margin:18px 0 14px;}
.pillar-table{width:100%;min-width:720px;border-collapse:collapse;}
.pillar-table th[scope="col"]{text-align:left;padding:0 18px 14px 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);font-weight:800;vertical-align:bottom;border-bottom:2px solid var(--gold);}
.pillar-table th[scope="row"]{text-align:left;padding:22px 18px 22px 0;font-family:var(--serif);font-size:22px;line-height:1.2;font-weight:600;color:var(--ink);vertical-align:top;border-bottom:1px solid #E9DEC7;}
.pillar-table td{padding:24px 18px 22px;font-size:15.5px;line-height:1.6;vertical-align:top;border-bottom:1px solid #E9DEC7;}
/* Numbered steps — the circle number comes from a counter. The copy flows in
   normal document order (no grid), so any number of children lays out right. */
.pillar-steps{counter-reset:pstep;margin-top:14px;border-bottom:1px solid #E9DEC7;}
.pillar-step{position:relative;padding:30px 0 30px 74px;border-top:1px solid #E9DEC7;}
.pillar-step::before{counter-increment:pstep;content:counter(pstep);position:absolute;left:0;top:30px;width:52px;height:52px;border-radius:50%;background:var(--charcoal);color:#E7D3A6;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;font-weight:600;}
.pillar-step .k{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin:4px 0 6px;}
.pillar-step h3{margin:0 0 14px;}
.pillar-step>p:last-child{margin-bottom:0;}
/* Closing CTA band */
.pillar-cta .wrap{max-width:940px;padding-block:88px;}
.pillar-cta h2{font-size:42px;line-height:1.14;margin:0 0 24px;color:#fff;}
.pillar-cta p{font-size:18px;line-height:1.8;color:#DAD5CB;margin:0 0 20px;}
.pillar-cta p:last-child{margin-bottom:0;}
.pillar-cta a{color:#E7D3A6;font-weight:700;}

/* --- Financing (/insurance-financing/): Cherry card + live widget --- */
.fin-card{padding:52px 48px;border-radius:12px;}
.fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
.fin-list{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:14px;}
.fin-list li{display:flex;gap:14px;align-items:baseline;font-size:17px;line-height:1.7;color:#4E4A43;}
.fin-list .dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold);transform:translateY(-3px);}
.fin-hiw{background:var(--white);border:1px solid #E9DEC7;border-radius:10px;padding:34px 32px;display:flex;flex-direction:column;gap:22px;}
.fin-hiw-label{font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;}
.fin-step{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;}
.fin-step .num{font-family:var(--serif);font-size:30px;line-height:1;color:var(--gold-deep);}
.fin-step .t{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:5px;}
.fin-step p{font-size:16px;line-height:1.7;color:#57534B;margin:0;}
.fin-fine{font-size:14px;line-height:1.7;color:var(--text-soft);margin:30px 0 0;}
.fin-widget{max-width:820px;margin:44px auto 0;} /* photo hidden — center the widget column */
/* Cherry has no "no photo" option — remove its photo column entirely and let
   the card take the full row, centered. Their class hashes vary, so match the
   stable prefixes. The img rule also catches stock photos inside the blocks. */
.fin-widget [class*="main-widget_layout-"]{gap:0 !important;}
.fin-widget [class*="main-widget_layout-"] > *:not([class*="main-widgets_container-"]){display:none !important;}
.fin-widget [class*="main-widgets_container-"]{max-width:100% !important;min-width:0 !important;margin:0 auto !important;}
.fin-widget img[src*="/widgets/images/"]{display:none !important;}

/* --- Services hub (/services/): grouped text index, no images --- */
.svc-hub .grp{display:grid;grid-template-columns:300px 1fr;gap:48px;padding:56px 0;border-bottom:1px solid #EBE3D3;}
.svc-hub .grp:last-child{border-bottom:0;}
.svc-hub .grp-head{align-self:start;position:sticky;top:132px;}
.svc-hub .grp-head h2{font-size:34px;line-height:1.14;margin:0;}
.svc-hub .slist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;align-content:start;}
.srow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #EFE7D8;font-size:18px;font-weight:600;color:var(--charcoal);transition:color .2s ease,background .2s ease,padding-left .2s ease;}
.srow:hover{color:var(--gold-ink);background:#FBF6EA;padding-left:10px;}
.srow .arrow{color:var(--gold);font-weight:700;}

/* =====================================================================
   10. RESPONSIVE  —  collapse grids & scale type in one place.
   ===================================================================== */
@media (max-width:900px){
  :root{--section:56px;--gutter:clamp(20px,4vw,36px);} /* 20px on phones, wider on tablets */
  .eyebrow{letter-spacing:.16em;}
  .d-only{display:none !important;}
  .m-only{display:flex;}
  /* Header: one compact no-wrap row, logo scales to the space that's left */
  .site-header .wrap{flex-wrap:nowrap;gap:12px;padding:10px var(--gutter);}
  .brand{min-width:0;}
  .brand img{height:auto;max-height:52px;max-width:100%;object-fit:contain;object-position:left center;}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}
  /* grids sized with inline columns (Dr. Sadat, reviews, technology) collapse too */
  .grid[style*="grid-template-columns"]{grid-template-columns:1fr !important;gap:26px !important;}
  /* grid items may not stretch their track past the viewport (min-width:auto blowout) */
  .grid > *,.rev-split > *{min-width:0;}
  .grid--gap-lg{gap:32px;}
  /* Footer: logo first, full-width CTAs, centered address, stacked legal row */
  .footer-main{grid-template-columns:1fr;text-align:center;gap:28px;justify-items:center;padding-block:26px;}
  .footer-main > *{order:3;}
  .footer-main .logo-col{order:1;}
  .footer-main .logo-col img{height:84px;}
  .footer-main .contact-col{order:2;width:100%;}
  .footer-main .contact-col .footer-btn{justify-content:center;}
  .footer-main .addr-col{text-align:center;}
  .footer-legal .wrap{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px;}
  .footer-legal .legal-links{justify-content:center;}
  .h-display{font-size:40px;line-height:1.08;}
  .h1,.page-hero h1{font-size:38px;}
  .h2{font-size:32px;line-height:1.14;}
  .h3,.svc-body h3,.offer h3{font-size:23px;}
  .lead,.hero-copy p{font-size:17px;}
  .deco{background-image:none !important;}
  .progress-rail{display:none;}
  /* Featured services: copy always visible + cards stack stickily under the
     header as you scroll (each next card slides over the previous). */
  .svc-reveal{max-height:200px;opacity:1;transform:none;}
  .svc{position:sticky;min-height:300px;box-shadow:0 -8px 26px rgba(44,48,51,.22);}
  .svc:nth-child(1){top:84px;}
  .svc:nth-child(2){top:98px;}
  .svc:nth-child(3){top:112px;}
  .svc:nth-child(4){top:126px;}
  .svc-body{padding:24px 22px 22px;}
  .svc-grad{background:linear-gradient(180deg,rgba(30,33,35,.12) 0%,rgba(30,33,35,.55) 42%,rgba(24,27,29,.9) 78%,rgba(24,27,29,.96) 100%);}
  .svc-body h3{text-shadow:0 2px 6px rgba(0,0,0,.5);}
  .svc-reveal p{color:#fff;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.55);}
  .svc-reveal .more{color:#F0DFB6;}
  /* Same sticky-stack for the gallery cards, office photos and specials. */
  .stack-grid{gap:14px !important;}
  .stack-card{position:sticky;box-shadow:0 -10px 28px rgba(44,48,51,.2);}
  .stack-card:nth-child(1){top:84px;}
  .stack-card:nth-child(2){top:98px;}
  .stack-card:nth-child(3){top:112px;}
  .stack-card:nth-child(4){top:126px;}
  /* First visit: the row of steps becomes a vertical gold timeline. */
  .steps{flex-direction:column;gap:0;margin-bottom:38px;}
  .steps::before{display:none;}
  .step{display:flex;text-align:left;gap:18px;align-items:flex-start;margin-left:26px;padding:0 0 26px 22px;border-left:1px solid rgba(198,166,100,.32);}
  .step:last-child{border-left-color:transparent;padding-bottom:0;}
  .step-num{margin:0 0 0 -49px;flex-shrink:0;} /* circle sits on the timeline */
  .step p{max-width:none;}
  /* Credentials carousel: tighter cells, softer edge fade, quicker loop. */
  .marquee{-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{gap:14px;animation-duration:26s;}
  .marquee-track .cell{width:118px;height:74px;}
  .marquee-track .cell img{max-height:66px;}
  .map-frame iframe{height:300px;}
  /* Inner pages */
  .banner h1{font-size:38px;}
  .banner .lead{font-size:17px;}
  .page-cta h2{font-size:32px;}
  .svc-shell{grid-template-columns:1fr;gap:44px;padding-block:40px 64px;}
  .svc-shell h2{font-size:32px;}
  .svc-aside{display:none;} /* service pages: article only on mobile */
  .sticky-media{position:static;}
  /* full-width tap targets: article/help buttons + the closing CTA band */
  .svc-shell .btn,.page-cta .btns .btn{width:100%;justify-content:center;}
  .page-cta .btns{flex-direction:column;width:100%;}
  .svc-hero-img{height:300px;margin-bottom:32px;}
  .note-box--pad{padding:28px 22px;}
  .check-list{grid-template-columns:1fr;}
  .svc-article h2{font-size:27px;padding-top:32px;margin-top:36px;}
  .svc-article ul.cols-2{grid-template-columns:1fr;}
  .photo-card img{height:240px;}
  .photo-card h3{font-size:26px;}
  .faq-a--indent{padding-left:4px;}
  .rev-split{grid-template-columns:1fr;gap:36px;}
  .cols{grid-template-columns:1fr;gap:36px;}
  .num-list>div{grid-template-columns:40px 1fr;}
  .letter-card{padding:30px 24px;}
  .statement{font-size:24px;}
  .accent::before{inset:-12px;}
  .accent--br::before{top:12px;left:12px;right:-12px;bottom:-12px;}
  .post-grid{grid-template-columns:1fr;gap:56px;padding:26px 12px;}
  .post-card h2{font-size:25px;}
  .post-hero img{height:240px;}
  .post-body h2{font-size:29px;}
  .search-pill{min-width:0;width:100%;}
  /* Contact: single column, roomier cards */
  .contact-shell{grid-template-columns:1fr;gap:26px;padding-block:40px 26px;}
  .contact-shell .card{padding:26px 22px;}
  .visit-card{padding:26px 22px;}
  .contact-shell img{height:200px;}
  /* Office Tour: stack rows image-first, caption card drops below the photo */
  .tour-hero>img{height:240px;}
  .tour-cap{position:static;max-width:none;border-radius:0;padding:24px 26px 22px;background:#FBF8F3;}
  .tour-rooms{padding-top:44px;gap:44px;}
  .tour-row,.tour-row--flip{grid-template-columns:1fr;gap:24px;}
  .tour-row--flip img{order:0;}
  .tour-row img{height:260px;}
  .tour-row h2{font-size:32px;}
  .tour-hall img{height:240px;}
  /* Dr. Sadat: drop the gold offset frame on mobile (per the mobile design) */
  .framed::before{display:none;}
  /* Hero: photo + cream copy panel sit inset in the section's greige bg,
     so the section frames them (per the mobile design). */
  .hero-wrap{min-height:0;display:block;padding:0 var(--gutter);}
  .hero-img{position:relative;height:340px;object-position:90% 22%;}
  .hero-scrim{display:none;}
  .hero-copy{padding:34px 0 44px;background:var(--cream);}
  .hero-copy .inner{max-width:none;}
  /* Tech collage stacks: natural heights, no row spans */
  .tech-collage .tall{grid-row:auto;}
  .tech-collage img{height:auto;}
  /* Pillar page: tighter type, single-column cards, inline step numbers */
  .pillar-wrap{padding-block:40px 48px;}
  .pillar-hero{margin-bottom:36px;}
  .pillar-hero img{height:240px;}
  .pillar-article .lead-xl{font-size:19px;}
  .pillar-article h2{font-size:29px;margin:44px 0 16px;}
  .pillar-article h3{font-size:23px;margin:30px 0 10px;}
  .pillar-cards{grid-template-columns:1fr;}
  .pillar-step{padding:26px 0 26px 52px;}
  .pillar-step::before{width:38px;height:38px;font-size:19px;top:26px;}
  .pillar-cta .wrap{padding-block:56px;}
  .pillar-cta h2{font-size:32px;}
  /* Financing: card stacks, tighter padding */
  .fin-grid{grid-template-columns:1fr;gap:22px;}
  .fin-card{padding:30px 24px;}
  /* Services hub stacks: head above a single-column list */
  .svc-hub .grp{grid-template-columns:1fr;gap:18px;padding:40px 0;}
  .svc-hub .grp-head{position:static;}
  .svc-hub .slist{grid-template-columns:1fr;}
  /* Core Web Vitals: no smooth-scroll or decorative transitions on mobile.
     (The credentials carousel keeps its transform loop per the mobile design —
     compositor-only, and prefers-reduced-motion still stops it.) */
  html{scroll-behavior:auto;}
  .lift,.svc-grad,.svc-reveal{transition:none;}
  /* Inner pages: the bottom CTA band is hidden on mobile (homepage keeps its own). */
  .page-cta{display:none;}
}
@media (max-width:520px){
  .h-display,.h1,.page-hero h1{font-size:34px;}
  .h2{font-size:28px;}
  .dd-grid{column-count:1;}
}
@media (max-width:400px){
  .brand img{max-height:46px;}
  .call-label{display:none;} /* call button collapses to a round icon */
  .call-btn{width:48px;padding:0;border-radius:50%;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .marquee-track{animation:none !important;}
  .lift,.btn,.svc-grad,.svc-reveal,.progress-rail>div{transition:none !important;}
}
