/* ==========================================================================
   LYS Insurance Agency - design system
   Warm cream ground, plum ink, magenta + gold from Lourdes' own logo.
   Playfair Display (display) + Karla (body), both self-hosted.
   ========================================================================== */

/* ---------- fonts ----------
   The two families are subset to the characters this site actually uses (full printable
   ASCII plus the Spanish accents), and each weight is pinned to one instance of the
   variable font. That took the six files from 184 KB to 60 KB.
   Each webfont is paired with a metric-matched local fallback (size-adjust plus
   ascent/descent/line-gap overrides taken from the real font files), so the text
   occupies the same box before and after the swap. Without that the swap moved every
   line of copy and cost 0.2 CLS on mobile. */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/playfair-display-500-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/playfair-display-600-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/playfair-display-700-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Karla';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/karla-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Karla';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/karla-500-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Karla';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/karla-700-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* metric-matched fallbacks
   size-adjust, ascent-override, descent-override and line-gap-override were measured in
   a real browser against the shipped webfonts (not guessed): the fallback now renders
   within 0.2% of the webfont's width and matches its line box exactly, so the swap no
   longer moves a line of copy. */
@font-face{font-family:'Playfair Fallback';
  src:local('Times New Roman'),local('Liberation Serif'),local('DejaVu Serif'),local('Georgia');
  size-adjust:111.5%;ascent-override:108.2%;descent-override:25.1%;line-gap-override:0%;}
@font-face{font-family:'Karla Fallback';
  src:local('Arial'),local('Liberation Sans'),local('Helvetica'),local('DejaVu Sans');
  size-adjust:101%;ascent-override:91.7%;descent-override:25.2%;line-gap-override:0%;}

/* ---------- tokens ---------- */
:root{
  --cream:#FAF5EE; --cream-2:#F3EAE0; --cream-3:#EFE4D8;
  --plum:#3E0F2C; --plum-2:#55163C;
  --magenta:#BB1473; --magenta-soft:#CB509E; --magenta-wash:#F7E4F0;
  --gold:#F6C024; --gold-soft:#F6D366; --gold-deep:#A9791A;
  --ink:#2A1720; --ink-soft:#5A4450;
  --rule:rgba(62,15,44,.14); --rule-strong:rgba(62,15,44,.3);
  --focus:#1E5AA8;
  --shadow:0 1px 2px rgba(62,15,44,.06),0 12px 32px -18px rgba(62,15,44,.28);
  --maxw:1220px; --gut:clamp(20px,4vw,56px);
  --sans:'Karla','Karla Fallback',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --serif:'Playfair Display','Playfair Fallback',Georgia,'Times New Roman',serif;
  --step--1:clamp(.82rem,.79rem + .12vw,.9rem);
  --step-0:clamp(1rem,.97rem + .16vw,1.08rem);
  --step-1:clamp(1.12rem,1.05rem + .3vw,1.3rem);
  --step-2:clamp(1.35rem,1.2rem + .6vw,1.7rem);
  --step-3:clamp(1.7rem,1.4rem + 1.1vw,2.4rem);
  --step-4:clamp(2.1rem,1.6rem + 2vw,3.4rem);
  --step-5:clamp(2.5rem,1.7rem + 3.4vw,4.6rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:var(--step-0);line-height:1.62;
  font-synthesis-weight:none;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,picture,svg{max-width:100%}
img{height:auto;display:block}
a{color:var(--magenta);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--plum)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--plum);line-height:1.1;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:var(--step-5);font-weight:500}
h2{font-size:var(--step-4)}
h3{font-size:var(--step-2);font-weight:600}
p{margin:0 0 1em;max-width:68ch}
strong{font-weight:700}
.lead{font-size:var(--step-1);color:var(--ink-soft);max-width:56ch}
.eyebrow{font-family:var(--sans);font-size:var(--step--1);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--magenta);margin:0 0 .9em}
.eyebrow--gold{color:var(--gold-deep)}
.skip{position:absolute;left:-9999px;top:0;background:var(--plum);color:#fff;padding:.7em 1.1em;z-index:200}
.skip:focus{left:8px;top:8px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.narrow{max-width:820px}
.rule{border:0;border-top:1px solid var(--rule);margin:0}
.section{padding-block:clamp(56px,8vw,110px)}
.section--tight{padding-block:clamp(40px,5vw,64px)}
.section--cream2{background:var(--cream-2)}
.section--plum{background:var(--plum);color:#F6EDEA}
.section--plum h2,.section--plum h3{color:#fff}
.section--plum .lead{color:#E3C9D6}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:60;background:transparent;transition:background .25s ease,box-shadow .25s ease,border-color .25s ease;border-bottom:1px solid transparent}
.site-head.is-stuck{background:rgba(250,245,238,.94);backdrop-filter:saturate(140%) blur(8px);border-bottom-color:var(--rule);box-shadow:0 6px 24px -20px rgba(62,15,44,.5)}
.site-head__bar{display:flex;align-items:center;gap:clamp(12px,2vw,28px);min-height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.brand img{width:auto;height:38px;max-width:min(46vw,220px);object-fit:contain}
.brand__name{display:none}
@media (max-width:520px){.brand img{height:32px}}
.nav{margin-inline-start:auto;display:flex;align-items:center;gap:clamp(6px,1.4vw,18px)}
.nav a{font-size:var(--step--1);font-weight:500;color:var(--plum);text-decoration:none;padding:.55em .5em;border-radius:4px;display:inline-flex;align-items:center;min-height:44px}
.nav a:hover{color:var(--magenta);background:rgba(187,20,115,.07)}
.nav a[aria-current="page"]{color:var(--magenta);box-shadow:inset 0 -2px 0 var(--gold)}
.lang{font-family:var(--sans);font-size:var(--step--1);font-weight:700;letter-spacing:.08em;background:transparent;color:var(--plum);border:1px solid var(--rule-strong);border-radius:999px;padding:.45em .9em;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.lang:hover{border-color:var(--magenta);color:var(--magenta)}
.head-cta{margin-inline-start:6px;white-space:nowrap}
@media (max-width:880px){.nav a.nav__link--secondary{display:none}}
@media (max-width:640px){.head-cta{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--sans);font-weight:700;font-size:var(--step--1);letter-spacing:.02em;
  padding:.95em 1.5em;border-radius:3px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease}
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn--primary{background:var(--magenta);color:#fff;border-color:var(--magenta)}
.btn--primary:hover{background:var(--plum);border-color:var(--plum);color:#fff;transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--plum);border-color:var(--rule-strong)}
.btn--ghost:hover{border-color:var(--magenta);color:var(--magenta);transform:translateY(-1px)}
.btn--gold{background:var(--gold);color:var(--plum);border-color:var(--gold)}
.btn--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--plum);transform:translateY(-1px)}
.btn--onplum{background:#fff;color:var(--plum);border-color:#fff}
.btn--onplum:hover{background:var(--gold);border-color:var(--gold);color:var(--plum)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:1.6rem}
.btn-row .btn{white-space:nowrap}
@media (max-width:400px){.btn{padding:.85em 1.15em}.btn-row{gap:10px}}

/* ---------- hero ---------- */
.hero{position:relative;padding-top:clamp(28px,4vw,54px);padding-bottom:clamp(40px,6vw,80px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0 0 auto auto;width:min(48vw,620px);height:min(48vw,620px);right:-12vw;top:-16vw;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(246,192,36,.22),rgba(246,192,36,0) 62%);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:end}
.hero__copy{position:relative;z-index:2}
.hero h1{margin-bottom:.35em}
.hero h1 em{font-style:normal;color:var(--magenta)}
.hero__kicker{display:flex;align-items:center;gap:12px;font-size:var(--step--1);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--plum);margin:0 0 1.1em}
.hero__kicker::before{content:"";width:34px;height:2px;background:var(--gold);display:block}
.hero__facts{margin:1.6rem 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px}
.hero__facts li{font-size:var(--step--1);color:var(--ink-soft);display:flex;align-items:center;gap:.5em}
.hero__facts svg{width:16px;height:16px;color:var(--magenta);flex:0 0 auto}
.hero__media{position:relative}
.hero__media img{width:100%;aspect-ratio:676/800;object-fit:cover;object-position:50% 22%;border-radius:2px}
.hero__media::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--gold);border-radius:2px;z-index:-1}
.hero__quote{margin:1.1rem 0 0;padding-left:16px;border-left:2px solid var(--gold);font-family:var(--serif);font-size:var(--step-1);color:var(--plum);font-style:italic;max-width:34ch}
@media (max-width:900px){
  /* copy first so the headline and the call button land inside the first viewport */
  .hero__grid{grid-template-columns:1fr;align-items:start;gap:20px}
  .hero__media{order:2;max-width:290px}
  .hero__media::after{inset:10px -10px -10px 10px}
  .hero__quote{display:none}
  .hero h1{font-size:clamp(1.95rem,7vw,2.7rem);margin-bottom:.25em}
  .hero .lead{font-size:1.02rem}
  .hero{padding-top:14px;padding-bottom:30px}
  .hero__facts{margin-top:1rem;gap:8px 16px}
  .btn-row{margin-top:1.1rem;gap:10px}
}
@media (max-height:700px) and (min-width:901px){.hero{padding-bottom:clamp(24px,3vw,44px)}.hero__media{max-width:400px}}

/* ---------- services: clean two-column grid, every block left aligned ---------- */
.head-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(20px,4vw,64px);align-items:end;margin-bottom:clamp(26px,3.6vw,46px)}
.head-split h2{margin-bottom:0}
.head-split .lead{margin-bottom:.2em}
@media (max-width:820px){.head-split{grid-template-columns:1fr;gap:12px;align-items:start}}
.svc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.2vw,28px);align-items:start}
.svc-card{display:flex;flex-direction:column;text-align:left;background:#fff;border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;padding:clamp(20px,2.4vw,30px);box-shadow:0 1px 2px rgba(62,15,44,.04)}
.svc-card:nth-child(even){border-top-color:var(--magenta)}
.svc-card__top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.svc-card__icon{width:50px;height:50px;min-width:50px;color:var(--magenta);display:grid;place-items:center;border:1px solid var(--rule-strong);border-radius:50%}
.svc-card__icon svg{width:25px;height:25px}
.svc-card__num{font-size:var(--step--1);font-weight:700;letter-spacing:.14em;color:var(--gold-deep)}
.svc-card h3{margin:0 0 .45em;font-size:var(--step-2)}
.svc-card > p{margin:0 0 1em;color:var(--ink-soft);font-size:var(--step-0);text-align:left}
.svc-card__list{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid var(--rule);font-size:var(--step--1);color:var(--ink-soft);text-align:left}
.svc-card__list li{display:flex;gap:.55em;align-items:flex-start;margin-bottom:.35em;text-align:left}
.svc-card__list li:last-child{margin-bottom:0}
.svc-card__list svg{width:15px;height:15px;color:var(--magenta);flex:0 0 auto;margin-top:.28em}
@media (max-width:720px){.svc-grid{grid-template-columns:1fr}}

/* ---------- split / about ---------- */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,72px);align-items:center}
.split--reverse{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.split__media img{width:100%;height:auto;border-radius:2px}
.split__media--framed{position:relative}
.split__media--framed::after{content:"";position:absolute;inset:12px 12px -12px -12px;border:1px solid var(--gold);z-index:-1;border-radius:2px}
@media (max-width:860px){.split,.split--reverse{grid-template-columns:1fr;gap:28px}}
.proof{margin:1.6rem 0 0;padding:0;list-style:none;display:grid;gap:14px}
.proof li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;font-size:var(--step-0)}
.proof svg{width:22px;height:22px;color:var(--magenta);margin-top:.15em}
.proof strong{color:var(--plum);font-weight:700}

/* ---------- states / coverage ---------- */
.states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,40px);margin-top:clamp(24px,3vw,44px)}
.state{border-top:2px solid var(--gold);padding-top:18px}
.state h3{margin:0 0 .4em}
.state p{color:var(--ink-soft);font-size:var(--step--1);margin:0}
.state__label{font-size:var(--step--1);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--magenta);display:block;margin-bottom:.6em}
@media (max-width:760px){.states{grid-template-columns:1fr;gap:22px}}

/* ---------- numbers band ---------- */
.band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,36px)}
.band__item{border-left:1px solid rgba(255,255,255,.22);padding-left:18px}
.band__item:first-child{border-left:0;padding-left:0}
.band__num{font-family:var(--serif);font-size:var(--step-3);color:var(--gold);display:block;line-height:1}
.band__label{font-size:var(--step--1);color:#E3C9D6;display:block;margin-top:.5em}
@media (max-width:700px){.band{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.band__item:nth-child(3){border-left:0;padding-left:0}}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--rule);margin-top:clamp(20px,3vw,36px)}
.faq details{border-bottom:1px solid var(--rule);padding:18px 0}
.faq summary{font-family:var(--serif);font-size:var(--step-1);color:var(--plum);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:700;color:var(--magenta);font-size:1.4em;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq p{margin:.8em 0 0;color:var(--ink-soft)}

/* ---------- closing cta ---------- */
.cta-close{text-align:center;background:var(--plum);color:#F6EDEA;border-radius:3px;padding:clamp(34px,6vw,72px) clamp(20px,5vw,64px)}
.cta-close h2{color:#fff;margin-bottom:.4em}
.cta-close p{color:#E3C9D6;margin-inline:auto}
.cta-close .btn-row{justify-content:center}
.cta-close__phone{font-family:var(--serif);font-size:var(--step-3);color:var(--gold);text-decoration:none;display:inline-block;margin:.2em 0 .6em}
.cta-close__phone:hover{color:#fff}

/* ---------- forms ---------- */
.form{display:grid;gap:16px;margin-top:1.6rem}
.field{display:grid;gap:6px}
.field label{font-size:var(--step--1);font-weight:700;color:var(--plum);letter-spacing:.02em}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:var(--step-0);color:var(--ink);background:#fff;border:1.5px solid var(--rule-strong);border-radius:3px;padding:.8em .9em;width:100%}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--magenta);outline:3px solid rgba(187,20,115,.18);outline-offset:1px}
.field--error input,.field--error select,.field--error textarea{border-color:#B3261E;background:#FFF6F5}
.field__error{font-size:var(--step--1);color:#8C1D18;font-weight:700;display:none}
.field--error .field__error{display:block}
.form__note{font-size:var(--step--1);color:var(--ink-soft)}
.form__status{border-left:3px solid var(--gold);background:var(--cream-2);padding:12px 16px;font-size:var(--step--1);display:none}
.form__status.is-on{display:block}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){.grid-2{grid-template-columns:1fr}}

/* ---------- contact cards / meta list ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}}
.meta-list{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:16px}
.meta-list li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start}
.meta-list svg{width:20px;height:20px;color:var(--magenta);margin-top:.2em}
.meta-list a{font-weight:500}
.meta-list dt,.meta-list .meta-list__k{font-size:var(--step--1);font-weight:700;color:var(--plum);letter-spacing:.02em;display:block}

/* ---------- legal pages ---------- */
.legal{max-width:760px}
.legal h2{font-size:var(--step-2);margin-top:2em}
.legal h2:first-of-type{margin-top:.6em}
.legal ul{padding-left:1.15em}
.legal li{margin-bottom:.5em}

/* ---------- footer ---------- */
.site-foot{background-color:var(--plum);color:#F3E3EB;padding-block:clamp(44px,6vw,72px) 28px;margin-top:clamp(48px,7vw,96px)}
.site-foot a{color:#F7E4F0}
.site-foot a:hover{color:var(--gold)}
.site-foot h2{color:#fff;font-size:var(--step-2);margin-bottom:.6em}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,48px)}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr;gap:26px}}
.foot-list{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:var(--step--1)}
.foot-list svg{width:16px;height:16px;vertical-align:-3px;margin-right:.5em;color:var(--gold)}
.foot-logo{width:auto;height:44px;margin-bottom:1rem}
.foot-social{display:flex;gap:12px;margin-top:1rem}
.foot-social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.3);border-radius:50%}
.foot-social svg{width:18px;height:18px}
.foot-social a:hover{border-color:var(--gold);color:var(--gold)}
.disclaimer{margin-top:clamp(30px,4vw,48px);border-top:1px solid rgba(255,255,255,.18);padding-top:22px;font-size:.83rem;color:#E6D2DC;line-height:1.65}
.disclaimer p{max-width:none;margin:0 0 .8em}
.disclaimer strong{color:#F0DCE6}
.foot-bottom{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;font-size:var(--step--1);margin-top:20px;color:#E6D2DC}

/* ---------- 404 ---------- */
.err{min-height:62vh;display:grid;place-items:center;text-align:left}

/* ---------- reveal ---------- */
/* opacity only: a reveal that slides from 12px to 0 moves the element, and every move
   inside the viewport is counted as layout shift */
.js .reveal{opacity:0}
.js .reveal.is-in{opacity:1;transition:opacity .34s cubic-bezier(.22,.61,.36,1)}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1!important;transition:none!important}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ---------- utility ---------- */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.center{text-align:center}
.center p{margin-inline:auto}
.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}
.nowrap{white-space:nowrap}
/* contrast floor on plum: all small text >= 4.5:1 */
.site-foot p, .site-foot li, .site-foot .foot-list a { color:#F1E1E8 }
.site-foot h3 { color:var(--gold) }
.section--plum .band__label { color:#F0DCE6 }
.foot-logo { height:44px; width:auto }

/* specificity fix: nav link colour must not override button colours (contrast 2.64 -> 8.9) */
.nav a.btn, .nav a.btn:hover { color:#fff }
.nav a.btn--gold, .nav a.btn--gold:hover { color:var(--plum) }
.nav a.btn--ghost { color:var(--plum) }

/* responsive header: the .btn display rule lives after the earlier media query, so the
   hide rule must be re-declared here with equal-or-higher specificity (source order wins). */
@media (max-width:640px){
  .nav a.head-cta, .head-cta.btn, a.btn.head-cta { display:none }
  .site-head__bar{min-height:64px}
}
@media (max-width:880px){
  .nav a.nav__link--secondary{display:none}
}
/* keep the header inside the viewport at every width */
.site-head__bar{max-width:100%;overflow:hidden}
.nav{min-width:0}

/* ---------- about column: agent card (no second copy of the hero photo) ---------- */
.about-card{max-width:380px;margin-inline:auto;background:#fff;border:1px solid var(--rule);
  border-top:3px solid var(--gold);border-radius:2px;padding:clamp(20px,2.4vw,30px);
  box-shadow:0 1px 2px rgba(62,15,44,.04)}
.about-card__quote{margin:0 0 18px;padding-left:16px;border-left:2px solid var(--gold);font-family:var(--serif);
  font-size:var(--step-1);line-height:1.35;color:var(--plum);font-style:italic}
.about-card__id{border-top:1px solid var(--rule);padding-top:16px}
.about-card__name{margin:0 0 .2em;font-family:var(--serif);font-size:var(--step-2);font-weight:600;color:var(--plum);line-height:1.15}
.about-card__role{margin:0 0 .35em;font-size:var(--step--1);color:var(--ink-soft)}
.about-card__facts{margin:1.1rem 0 0;display:grid;gap:10px;font-size:var(--step--1)}
.about-card__facts > div{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:baseline}
.about-card__facts dt{font-weight:700;color:var(--plum);letter-spacing:.02em}
.about-card__facts dd{margin:0;color:var(--ink-soft)}
@media (max-width:860px){.about-card{max-width:none}}

/* ---------- the about page portrait: the one place her photo appears ---------- */
.split--portrait{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:center;gap:clamp(24px,4vw,56px)}
.portrait{position:relative;z-index:0;margin:0;max-width:320px}
.portrait img{width:100%;max-width:320px;height:auto;aspect-ratio:676/800;object-fit:cover;
  object-position:50% 18%;border-radius:2px}
.portrait::after{content:"";position:absolute;inset:12px -12px -12px 12px;border:1px solid var(--gold);
  border-radius:2px;z-index:-1}
@media (max-width:860px){.split--portrait{grid-template-columns:1fr;gap:24px}.portrait{max-width:240px}}

/* ---------- chat widget must never sit over the primary CTAs ---------- */
@media (max-width:640px){
  .btn-row .btn{position:relative;z-index:5}
  .cta-close .btn-row{margin-bottom:76px}
  main{padding-bottom:8px}
  /* the chat launcher lives in the bottom-right corner; give the last line of the
     footer room to clear it */
  .foot-bottom{padding-bottom:58px}
}

/* Defensive: the third-party chat bubble animates in from off-canvas; clip horizontal
   overflow at the root so its transition can never create a sideways scrollbar. */
html{overflow-x:clip}
body{overflow-x:clip}
@supports not (overflow: clip){html,body{overflow-x:hidden}}
