/* assets/css/site.css
   Extracted from the original inline CSS during Stage 2.
   Subsequent approved cleanup removed unused rules and added
   minor footer styling support. */
:root{
  --ink:#2b2d52;--ink-deep:#1e2040;--ink-mid:#353870;
  --rose:#c9909c;--rose-soft:#ddb8c0;--rose-pale:#f5e8eb;
  --cream:#faf8f5;--cream2:#f2ede8;--white:#fff;
  --tm:#5a5c7a;--tl:#9a9cb5;--bd:rgba(43,45,82,.1);
  --green:#2a9d6e;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden}
.page{display:none}.page.active{display:block}
/* ── LOGO ── */
.lgo{display:flex;align-items:center;gap:12px;cursor:pointer;text-decoration:none}
.lm{width:44px;height:44px;flex-shrink:0;object-fit:contain}
.lw{font-family:'Alex Brush',cursive;font-size:22px;color:#fff;line-height:1;display:block}
.lw.dk{color:var(--ink)}
.ls{font-size:8px;font-weight:500;letter-spacing:3.5px;text-transform:uppercase;color:var(--rose-soft);margin-top:3px;display:block}
.ls.dk{color:var(--rose)}
/* ── LANG TOGGLE ── */
.lang-toggle{display:flex;align-items:center;gap:0;margin-left:6px;border:1px solid rgba(255,255,255,.2);overflow:hidden}
.lang-btn{padding:6px 12px;font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.55);background:transparent;border:none;cursor:pointer;font-family:'Montserrat',sans-serif;transition:all .2s}
.lang-btn.active{background:var(--rose);color:#fff}
/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:var(--ink-deep);box-shadow:0 1px 30px rgba(20,22,50,.4)}
.nl{display:flex;align-items:center;gap:0}
.nl a{font-size:9.5px;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.68);text-decoration:none;padding:9px 10px;transition:color .25s;cursor:pointer}
.nl a:hover,.nl a.on{color:var(--rose-soft)}
.ncta{background:var(--rose)!important;color:#fff!important;margin-left:4px;font-weight:600!important;padding:9px 16px!important}
.ncta:hover{background:var(--rose-soft)!important;color:var(--ink)!important}
.hbg{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;font:inherit;color:inherit}
.hbg span{width:24px;height:1.5px;background:#fff;display:block}
.mob{display:none;position:fixed;top:72px;left:0;right:0;background:var(--ink-deep);z-index:997;flex-direction:column;border-top:1px solid rgba(201,144,156,.18)}
.mob.open{display:flex}
.mob a{color:rgba(255,255,255,.74);text-decoration:none;font-size:11.5px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;padding:16px 5vw;border-bottom:1px solid rgba(255,255,255,.055);cursor:pointer}
.mcta{background:var(--rose)!important;color:#fff!important;text-align:center;border-bottom:none!important;font-weight:600!important}


/* ── VISA COMPARE GRID ── */
.visa-compare-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:0}
.vcg-card{background:#fff;border:1px solid var(--bd);padding:22px;display:flex;flex-direction:column;gap:10px;position:relative}
.vcg-card.vcg-featured{background:var(--ink-deep);border-color:var(--rose)}
.vcg-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--rose);color:#fff;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:3px 12px;white-space:nowrap}
.vcg-icon{font-size:26px}
.vcg-name{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--ink)}
.vcg-featured .vcg-name{color:#fff}
.vcg-best{font-size:11.5px;color:var(--tm);font-weight:300;font-style:italic;border-bottom:1px solid var(--bd);padding-bottom:10px}
.vcg-featured .vcg-best{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}
.vcg-facts{display:flex;flex-direction:column;gap:5px}
.vcg-fact{font-size:12px;color:var(--tm);font-weight:300}
.vcg-featured .vcg-fact{color:rgba(255,255,255,.7)}
.vcg-cta{margin-top:auto;background:none;border:none;color:var(--rose);font-size:11.5px;font-weight:600;cursor:pointer;text-align:left;padding:6px 0 0;font-family:'Montserrat',sans-serif}
.vcg-featured .vcg-cta{color:var(--rose-soft)}
@media(max-width:1100px){.visa-compare-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.visa-compare-grid{grid-template-columns:1fr}}

/* ── BLOG ARTICLES ── */
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:28px}
.art-card{background:#fff;border:1px solid var(--bd);padding:24px;display:flex;flex-direction:column;gap:12px;border-top:3px solid var(--rose)}
.art-tag{font-size:9px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--rose)}
.art-title{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:500;color:var(--ink);line-height:1.3}
.art-excerpt{font-size:13px;color:var(--tm);font-weight:300;line-height:1.75}
.art-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--tl);font-weight:300}
.art-topics{display:flex;flex-wrap:wrap;gap:5px}
.art-topic{font-size:10px;padding:3px 8px;background:rgba(201,144,156,.08);color:var(--rose);font-weight:500;border:1px solid rgba(201,144,156,.2)}
.art-cta{margin-top:auto;background:none;border:none;color:var(--rose);font-size:11.5px;font-weight:600;cursor:pointer;text-align:left;padding:0;font-family:'Montserrat',sans-serif;letter-spacing:.5px}
.art-cta:hover{color:var(--ink)}
@media(max-width:900px){.art-grid{grid-template-columns:1fr}}

/* ── COOKIE BANNER ── */
.cookie{position:fixed;bottom:0;left:0;right:0;z-index:9998;background:var(--ink-deep);border-top:1px solid rgba(201,144,156,.2);padding:16px 5vw;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cookie p{font-size:12px;color:rgba(255,255,255,.6);font-weight:300;max-width:600px}
.cookie a{color:var(--rose-soft);text-decoration:underline}
.cookie-btns{display:flex;gap:10px;flex-shrink:0}
.ck-accept{background:var(--rose);color:#fff;border:none;padding:9px 22px;font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;cursor:pointer;font-family:'Montserrat',sans-serif}
.ck-decline{background:transparent;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.15);padding:9px 22px;font-size:10px;font-weight:500;cursor:pointer;font-family:'Montserrat',sans-serif}
/* ── WA FLOAT ── */
.wa{position:fixed;bottom:28px;right:28px;z-index:9990;display:flex;align-items:center;gap:12px;cursor:pointer;pointer-events:none}
.wa-bubble{pointer-events:auto;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.4);text-decoration:none;animation:wap 3s infinite;transition:transform .2s}
.wa-bubble:hover{transform:scale(1.1)}
.wa-bubble svg{width:26px;height:26px;fill:#fff}
.wa-tip{background:var(--ink-deep);color:#fff;padding:8px 14px;font-size:11px;font-weight:400;white-space:nowrap;border-radius:2px;border:1px solid rgba(201,144,156,.2);opacity:0;pointer-events:none;transition:opacity .2s}
.wa:hover .wa-tip{opacity:1}
@keyframes wap{0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.4)}50%{box-shadow:0 4px 30px rgba(37,211,102,.7)}}
/* ── BUTTONS ── */
.btnr{display:inline-flex;align-items:center;gap:10px;background:var(--rose);color:#fff;padding:14px 32px;font-size:10px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;border:none;cursor:pointer;text-decoration:none;font-family:'Montserrat',sans-serif;transition:all .3s}
.btnr:hover{background:var(--rose-soft);color:var(--ink);transform:translateY(-2px)}
.btnr svg,.btng svg{transition:transform .3s}
.btnr:hover svg,.btng:hover svg{transform:translateX(4px)}
.btng{display:inline-flex;align-items:center;gap:9px;color:rgba(255,255,255,.58);font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;border:none;background:none;cursor:pointer;font-family:'Montserrat',sans-serif;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:3px;transition:all .3s;text-decoration:none}
.btng:hover{color:var(--rose-soft);border-color:var(--rose-soft)}
.btnd{display:inline-flex;align-items:center;gap:10px;background:var(--ink-deep);color:#fff;padding:16px 40px;font-size:10px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;border:none;cursor:pointer;white-space:nowrap;font-family:'Montserrat',sans-serif;transition:all .3s;text-decoration:none}
.btnd:hover{background:var(--ink);transform:translateY(-2px)}
.btnw{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--rose-soft);padding:14px 30px;font-size:10px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;border:1px solid rgba(201,144,156,.36);cursor:pointer;text-decoration:none;font-family:'Montserrat',sans-serif;transition:all .3s}
.btnw:hover{background:rgba(201,144,156,.1);border-color:var(--rose-soft)}
/* ── EYEBROW ── */
.ey{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.el{width:30px;height:1px;background:var(--rose);flex-shrink:0}
.et{font-size:9.5px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--rose)}
/* ── SECTIONS ── */
.s{padding:104px 5vw}.s-sm{padding:72px 5vw}
h2.d{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,3.8vw,58px);font-weight:400;line-height:1.12;color:var(--ink)}
h2.d em{font-style:italic;color:var(--rose)}
h2.d.lt{color:#fff}h2.d.lt em{color:var(--rose-soft)}
.bt{font-size:13.5px;font-weight:300;line-height:1.9;color:var(--tm)}
.bt.lt{color:rgba(255,255,255,.5)}
/* ── HERO ── */
.hero{min-height:100vh;background:var(--ink-deep);display:grid;grid-template-columns:1fr 1fr;padding-top:72px;position:relative;overflow:hidden}
.hl{display:flex;flex-direction:column;justify-content:center;padding:76px 56px 156px 5vw;position:relative;z-index:2}
.hr{position:relative;overflow:hidden}
.hr-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 55% 42%,rgba(201,144,156,.13) 0%,transparent 65%)}
.orb{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(46vw,440px);height:min(46vw,440px);border-radius:50%;border:1px solid rgba(201,144,156,.11);display:flex;align-items:center;justify-content:center}
.orb::before{content:'';position:absolute;width:80%;height:80%;border-radius:50%;border:1px solid rgba(201,144,156,.07)}
.orb-t{font-family:'Cormorant Garamond',serif;font-size:clamp(88px,12vw,180px);font-weight:300;color:rgba(201,144,156,.055);letter-spacing:-6px;user-select:none}
h1.ht{font-family:'Cormorant Garamond',serif;font-size:clamp(42px,5.2vw,76px);font-weight:300;color:#fff;line-height:1.08;margin-bottom:22px}
h1.ht em{font-style:italic;color:var(--rose-soft)}
.hdesc{font-size:13.5px;font-weight:300;line-height:1.9;color:rgba(255,255,255,.53);max-width:400px;margin-bottom:42px}
.hact{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:40px}
/* TRUST SIGNALS BAR */
.htrust{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-top:32px;border-top:1px solid rgba(255,255,255,.08)}
.htrust-item{display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.45);font-weight:300}
.htrust-item span{color:var(--rose-soft);font-weight:500}
/* Three columns, not four: the firm removed the "1,404 Cédulas & Pensionados"
   statistic in the approved October 2026 homepage copy batch. Leaving
   repeat(4,1fr) here would strand the three remaining statistics in the left
   three-quarters of the bar with an empty fourth cell. */
.hstats{position:absolute;bottom:0;left:0;right:0;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(26,28,56,.9);backdrop-filter:blur(16px);border-top:1px solid rgba(201,144,156,.17)}
.hs{padding:20px 0;text-align:center;border-right:1px solid rgba(201,144,156,.1)}
.hs:last-child{border-right:none}
.hs-n{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:400;color:var(--rose-soft);line-height:1;display:block}
.hs-l{font-size:8px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.34);margin-top:5px;display:block}
/* ── TRUST BAR (sitewide) ── */
.tbar{background:var(--rose-pale);padding:16px 5vw;display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap;border-bottom:1px solid rgba(201,144,156,.2)}
.tbar-item{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink);font-weight:400}
.tbar-item svg{flex-shrink:0;color:var(--rose)}
/* ── HOW IT WORKS ── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:56px;position:relative}
.steps::before{content:'';position:absolute;top:28px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--rose),transparent);z-index:0}
.step{text-align:center;padding:0 24px;position:relative;z-index:1}
.step-num{width:56px;height:56px;border-radius:50%;background:var(--rose);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;color:#fff;margin:0 auto 20px}
/* DARK GROUND: How It Works now sits in the fifth content position, which the
   original positional rhythm renders as .sbg. .step-num (rose disc, white
   numeral) and the rose connector rule already worked on either ground; only
   these two text colours needed the on-dark variants — #fff as .sc-t used, and
   rgba(255,255,255,.5) as .bt.lt already establishes for on-dark body copy.
   Used only by the homepage. */
.step-t{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:#fff;margin-bottom:10px}
.step-b{font-size:12.5px;line-height:1.8;color:rgba(255,255,255,.5);font-weight:300}
/* ── WHY CARDS ── */
.why{display:grid;grid-template-columns:1fr 1.1fr;gap:84px;align-items:start}
.wcards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bd);border:1px solid var(--bd);margin-top:44px}
.wc{background:var(--cream);padding:38px 32px;transition:background .35s}
.wc:hover{background:var(--ink)}
.wc:hover .wct,.wc:hover .wcb{color:rgba(255,255,255,.84)}
.wc:hover .wci{color:var(--rose-soft)}
.wci{font-size:24px;margin-bottom:14px;color:var(--rose);display:block;transition:color .35s}
.wct{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--ink);margin-bottom:9px;transition:color .35s}
.wcb{font-size:12.5px;line-height:1.85;color:var(--tm);font-weight:300;transition:color .35s}
.aq{border-left:3px solid var(--rose);padding:20px 22px;background:var(--rose-pale);margin-top:28px}
.aq p{font-family:'Cormorant Garamond',serif;font-size:19px;font-style:italic;color:var(--ink);line-height:1.55}
.aq cite{display:block;margin-top:10px;font-size:9.5px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--rose);font-style:normal}
.chk{color:var(--rose);font-size:16px}
.crs{color:#ccc;font-size:16px}
/* ── SERVICES ── */
.sbg{background:var(--ink-deep)}
/* Two columns, not three: the approved Practice Areas copy has four items, and
   the first three carry long descriptions that a 4-up row would squeeze into
   ~250px of measure. 2x2 keeps each description at a readable width. Used only
   by the homepage Practice Areas grid. */
/* DARK CARDS ON A LIGHT SECTION. The Practice Areas section ground is --cream
   (first content position in the positional rhythm), but the four cards keep
   the original dark navy treatment they had before the reorder — every value
   below is the pre-reorder original, restored verbatim. The 1px .sgrid gaps
   now read as light hairlines separating the navy cards from each other.
   Used only by the homepage Practice Areas grid. */
.sgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.055);margin-top:52px}
.sc{background:var(--ink);padding:44px 36px;position:relative;overflow:hidden;cursor:pointer;transition:background .35s;border-bottom:3px solid transparent;display:block;text-decoration:none}
.sc:hover{background:var(--ink-mid);border-bottom-color:var(--rose)}
.sc-n{font-family:'Cormorant Garamond',serif;font-size:72px;font-weight:300;color:rgba(255,255,255,.035);line-height:1;position:absolute;top:16px;right:18px;transition:color .35s}
.sc:hover .sc-n{color:rgba(201,144,156,.07)}
.sc-i{width:48px;height:48px;margin-bottom:18px;border:1px solid rgba(201,144,156,.24);display:flex;align-items:center;justify-content:center;font-size:20px;transition:border-color .35s}
.sc:hover .sc-i{border-color:var(--rose)}
.sc-t{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;color:#fff;margin-bottom:11px}
.sc-d{font-size:12.5px;line-height:1.85;color:rgba(255,255,255,.38);font-weight:300;margin-bottom:22px}
.sc-l{font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:var(--rose-soft);font-weight:500;display:flex;align-items:center;gap:7px;transition:gap .3s}
.sc:hover .sc-l{gap:12px}
/* ── TEAM ── */
.tpair{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:52px}
.tc{background:var(--cream2);padding:48px 42px;position:relative;overflow:hidden;border-bottom:4px solid transparent;transition:border-color .3s}
.tc:hover{border-bottom-color:var(--rose)}
.tc::before{content:'';position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle at top right,rgba(201,144,156,.1),transparent 70%)}
.tc-av{width:64px;height:64px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;color:var(--rose-soft);margin-bottom:22px;position:relative}
.tc-av::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(201,144,156,.27)}
.tc-n{font-family:'Cormorant Garamond',serif;font-size:27px;font-weight:400;color:var(--ink);margin-bottom:3px}
.tc-r{font-size:8.5px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--rose);margin-bottom:18px}
.tc-b{font-size:13px;line-height:1.9;color:var(--tm);font-weight:300;margin-bottom:16px}
.tc-cred{font-size:10.5px;color:var(--tm);font-weight:400;padding:10px 14px;background:var(--rose-pale);border-left:2px solid var(--rose)}
/* ── TESTIMONIALS ── */
.tsbg{background:var(--ink-deep)}
.tsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:52px}
.tcard{background:rgba(255,255,255,.038);border:1px solid rgba(201,144,156,.1);padding:38px 32px;transition:border-color .3s}
.tcard:hover{border-color:rgba(201,144,156,.3)}
.tqm{font-family:'Cormorant Garamond',serif;font-size:70px;font-weight:300;line-height:.7;color:var(--rose);opacity:.27;margin-bottom:12px}
.ttxt{font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;font-weight:300;color:rgba(255,255,255,.7);line-height:1.8;margin-bottom:24px}
.tauth{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid rgba(201,144,156,.12)}
.tav{width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,var(--rose),var(--rose-soft));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:500;color:var(--ink);flex-shrink:0}
.tn{font-size:12.5px;font-weight:500;color:#fff}
.td{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--rose-soft);opacity:.72;margin-top:2px}
/* ROSE CARDS ON A LIGHT SECTION (homepage Client Stories only).
   The exact same var(--rose) as the "Ready to begin" .cband, deliberately: the
   cards are meant to read as one family with that band. Section ground stays
   --cream. The base .tcard rules above are built for a dark ground, and the
   component is SHARED — /clients/ still renders it inside a dark .s.tsbg
   section — so this is scoped to .ts-light on the homepage section only.
   Do not restyle .tcard globally.

   KNOWN CONTRAST FAILURE — accepted by the firm, recorded deliberately.
   White on --rose #c9909c measures 2.64:1. .ttxt (16px) and .tn (12.5px) are
   normal text under WCAG, which asks 4.5:1, so both fail AA. The firm was shown
   the measurement and chose this exact rose-plus-white pairing for visual
   consistency with the CTA band. Do NOT "fix" it by darkening the rose,
   introducing another pink, or reverting the text to a dark colour — that is a
   decided question. Revisit only if the firm asks.
   The avatar keeps .tc-av's navy disc (--ink) with --rose-soft initials at
   7.31:1, which also separates it from the rose card surface. */
.ts-light .tcard{background:var(--rose);border-color:rgba(255,255,255,.2)}
.ts-light .tcard:hover{border-color:rgba(255,255,255,.45)}
.ts-light .tqm{color:#fff;opacity:.3}
.ts-light .ttxt{color:#fff}
.ts-light .tauth{border-top-color:rgba(255,255,255,.3)}
.ts-light .tav{background:var(--ink);color:var(--rose-soft)}
.ts-light .tn{color:#fff}
/* STAR RATING */
.stars{color:#f0c14b;font-size:13px;margin-bottom:10px;letter-spacing:1px}
/* ── GOOGLE REVIEWS STRIP ── */
.rev-strip{background:var(--cream2);padding:48px 5vw}
.rev-strip-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.rev-score{text-align:center}
.rev-big{font-family:'Cormorant Garamond',serif;font-size:72px;font-weight:300;color:var(--ink);line-height:1}
.rev-stars{color:#f0c14b;font-size:20px;letter-spacing:2px;margin:4px 0}
.rev-sub{font-size:11px;color:var(--tm);font-weight:300;letter-spacing:1px}
.rev-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;flex:1}
.rev-card{background:#fff;border:1px solid rgba(43,45,82,.07);padding:20px 18px}
.rev-card-stars{color:#f0c14b;font-size:12px;margin-bottom:8px}
.rev-card-txt{font-size:12.5px;line-height:1.75;color:var(--tm);font-weight:300;font-style:italic;margin-bottom:12px}
.rev-card-name{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--rose)}
.rev-badge{display:flex;align-items:center;gap:8px;margin-top:6px}
.rev-badge-g{font-size:13px;font-weight:700;color:#4285F4;letter-spacing:-0.5px}
.rev-badge span{font-size:10px;color:var(--tm)}
/* ── PRICING ── */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd);margin-top:52px}
.price-card{background:var(--cream);padding:44px 36px;position:relative}
.price-card.featured{background:var(--ink);border-top:4px solid var(--rose)}
.price-tier{font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--rose);margin-bottom:12px}
.price-card.featured .price-tier{color:var(--rose-soft)}
.price-name{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:500;color:var(--ink);margin-bottom:8px}
.price-card.featured .price-name{color:#fff}
.price-amount{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:400;color:var(--rose);line-height:1;margin-bottom:4px}
.price-list{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:28px}
.price-list li{font-size:12.5px;color:var(--tm);font-weight:300;display:flex;align-items:center;gap:8px}
.price-card.featured .price-list li{color:rgba(255,255,255,.6)}
.price-list li::before{content:'✓';color:var(--rose);font-size:13px;flex-shrink:0}
.price-disc{font-size:10.5px;color:var(--tl);font-style:italic;margin-top:12px;line-height:1.6}
/* ── BLOG ── */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.blog-card{background:#fff;border:1px solid rgba(43,45,82,.07);overflow:hidden;transition:transform .3s,box-shadow .3s}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(43,45,82,.1)}
.blog-img{height:180px;display:flex;align-items:center;justify-content:center;font-size:40px;position:relative}
.blog-cat{position:absolute;bottom:12px;left:14px;background:var(--rose);color:#fff;font-size:8.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:4px 10px}
.blog-body{padding:24px}
.blog-date{font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:var(--tl);margin-bottom:9px}
.blog-title{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:500;color:var(--ink);line-height:1.35;margin-bottom:10px}
.blog-excerpt{font-size:12.5px;line-height:1.8;color:var(--tm);font-weight:300;margin-bottom:16px}
.blog-more{font-size:9.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--rose);display:flex;align-items:center;gap:6px;transition:gap .25s;cursor:pointer}
.blog-card:hover .blog-more{gap:10px}
/* ── VIDEO SECTION ── */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:52px}
.vid-card{display:block;text-decoration:none;color:inherit}
.vid-thumb{position:relative;aspect-ratio:16/9;background:var(--ink-mid);overflow:hidden;cursor:pointer}
.vid-thumb:hover .vid-overlay{opacity:1}
.vid-overlay{position:absolute;inset:0;background:rgba(43,45,82,.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.vid-play{width:56px;height:56px;border-radius:50%;background:var(--rose);display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff}
.vid-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:48px;opacity:.15}
.vid-label{padding:12px 14px;background:var(--ink);font-size:12px;color:rgba(255,255,255,.65);font-weight:300;line-height:1.4}
.vid-tag{font-size:8.5px;letter-spacing:2px;text-transform:uppercase;color:var(--rose-soft);margin-bottom:4px}
/* ── PROCESS ── */
.proc-bg{background:var(--ink-deep)}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.05);margin-top:52px}
.proc-step{background:var(--ink);padding:40px 30px;text-align:center;position:relative}
.proc-step::after{content:'→';position:absolute;right:-1px;top:50%;transform:translateY(-50%);font-size:18px;color:rgba(201,144,156,.3);background:var(--ink);padding:0 4px;z-index:1}
.proc-step:last-child::after{display:none}
.pnum{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:var(--rose);opacity:.35;line-height:1;margin-bottom:12px}
.ptitle{font-family:'Cormorant Garamond',serif;font-size:19px;color:#fff;margin-bottom:10px}
.pbody{font-size:12px;line-height:1.8;color:rgba(255,255,255,.4);font-weight:300}
/* ── NATIONALITY FLAGS ── */
.flags-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px;padding:24px;background:var(--cream2);border:1px solid var(--bd)}
.flag-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--tm);font-weight:300}
/* ── ABOUT ── */
.ab-hero{background:var(--ink-deep);padding:154px 5vw 92px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;overflow:hidden}
.ab-hero::after{content:'LM';position:absolute;right:2vw;bottom:-24px;font-family:'Cormorant Garamond',serif;font-size:clamp(140px,20vw,280px);font-weight:300;color:rgba(201,144,156,.04);line-height:1;letter-spacing:-7px;pointer-events:none}
.aphs{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;z-index:1}
.aph{background:var(--ink-mid);border:1px solid rgba(201,144,156,.13);aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden}
.aph:first-child{margin-top:40px}
.aph-av{width:62px;height:62px;border-radius:50%;background:linear-gradient(145deg,var(--rose),var(--rose-soft));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:23px;font-weight:500;color:var(--ink)}
.aph-n{font-family:'Cormorant Garamond',serif;font-size:15.5px;color:#fff;text-align:center}
.aph-r{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--rose-soft);text-align:center}
.aph-tag{position:absolute;bottom:0;left:0;right:0;background:rgba(201,144,156,.1);border-top:1px solid rgba(201,144,156,.18);padding:8px;text-align:center;font-size:9px;color:rgba(255,255,255,.38);letter-spacing:1px}
.bgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:64px}
.bcard{background:var(--ink-deep);padding:44px 38px;border-top:4px solid var(--rose)}
.bcard:last-child{border-top-color:var(--rose-soft)}
.bav{width:58px;height:58px;border-radius:50%;background:linear-gradient(145deg,var(--rose),var(--rose-soft));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:500;color:var(--ink);margin-bottom:18px}
.bn{font-family:'Cormorant Garamond',serif;font-size:26px;color:#fff;font-weight:400;margin-bottom:3px}
.br{font-size:8.5px;letter-spacing:3px;text-transform:uppercase;color:var(--rose-soft);margin-bottom:6px}
.bbar{font-size:10.5px;color:rgba(201,144,156,.7);margin-bottom:16px;font-style:italic}
.bb{font-size:13px;line-height:1.9;color:rgba(255,255,255,.45);font-weight:300}
.btags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.btag{font-size:9px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;border:1px solid rgba(201,144,156,.2);color:var(--rose-soft)}
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.055);margin-top:52px}
.vc{background:var(--ink);padding:40px 34px;text-align:center}
.vn{font-family:'Cormorant Garamond',serif;font-size:46px;font-weight:300;color:var(--rose);opacity:.35;line-height:1}
.vt{font-family:'Cormorant Garamond',serif;font-size:22px;color:#fff;margin:12px 0 10px}
.vb{font-size:12.5px;line-height:1.85;color:rgba(255,255,255,.38);font-weight:300}
/* ── PRACTICE AREAS ── */
.pa-h{background:var(--ink-deep);padding:154px 5vw 72px;position:relative;overflow:hidden}
.pa-h::before{content:'LAW';position:absolute;right:-1vw;bottom:-32px;font-family:'Cormorant Garamond',serif;font-size:clamp(110px,18vw,250px);font-weight:700;color:rgba(201,144,156,.036);line-height:1;pointer-events:none;letter-spacing:-4px}
.pagrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd);margin:0 5vw}
.pac{background:var(--cream);padding:46px 38px;position:relative;overflow:hidden;border-bottom:4px solid transparent;transition:all .35s}
.pac:hover{background:var(--ink-deep);border-bottom-color:var(--rose)}
.pac:hover .pact,.pac:hover .pacd{color:rgba(255,255,255,.84)}
.pac:hover .pacd{color:rgba(255,255,255,.46)}
.pac:hover .paci{border-color:var(--rose);color:var(--rose)}
.pac:hover .pag{border-color:rgba(201,144,156,.25);color:var(--rose-soft)}
.pac:hover .pain{color:rgba(255,255,255,.27)}
.pac:hover .pacn{color:rgba(201,144,156,.055)}
.pacn{font-family:'Cormorant Garamond',serif;font-size:66px;font-weight:300;color:rgba(43,45,82,.046);line-height:1;margin-bottom:14px;transition:color .35s}
.paci{width:48px;height:48px;border:1px solid rgba(43,45,82,.12);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:22px;color:var(--ink);transition:all .35s}
.pact{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;color:var(--ink);margin-bottom:12px;transition:color .35s}
.pacd{font-size:13px;line-height:1.85;color:var(--tm);font-weight:300;margin-bottom:18px;transition:color .35s}
.pain{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--tl);margin-bottom:8px;font-weight:600;transition:color .35s}
.patags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:22px}
.pag{font-size:9px;padding:4px 10px;border:1px solid rgba(43,45,82,.1);color:var(--tm);transition:all .35s}
.pacta{font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:var(--rose);font-weight:600;display:flex;align-items:center;gap:7px;transition:gap .3s;cursor:pointer;text-decoration:none}
.pac:hover .pacta{gap:12px}
/* ── CLIENTS ── */
.cl-h{background:var(--ink-deep);padding:154px 5vw 72px}
.cl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(201,144,156,.1);margin-top:48px}
.cls{background:rgba(43,45,82,.56);padding:26px 0;text-align:center}
.cls-n{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--rose-soft);font-weight:400}
.cls-l{font-size:8px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-top:5px}
.gw{padding:72px 5vw;background:var(--cream)}
.gfilts{display:flex;gap:8px;margin-bottom:40px;flex-wrap:wrap}
.gfb{padding:8px 20px;font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:600;font-family:'Montserrat',sans-serif;border:1px solid rgba(43,45,82,.12);background:transparent;color:var(--tm);cursor:pointer;transition:all .2s}
.gfb.on,.gfb:hover{background:var(--ink);color:var(--rose-soft);border-color:var(--ink)}
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gc{background:#fff;border:1px solid rgba(43,45,82,.055);overflow:hidden;transition:transform .3s,box-shadow .3s}
.gc:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(43,45,82,.1)}
.gc-p{aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.gc-av{width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,var(--rose),var(--rose-soft));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--ink)}
.gc-n{color:#fff;font-size:12.5px;font-weight:400;text-align:center}
.gc-t{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--rose-soft);text-align:center}
.gc-f{padding:11px 13px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(43,45,82,.055)}
.gc-c{font-size:11px;color:var(--tm)}
.gc-y{font-size:10px;color:var(--rose);font-weight:500}
/* ── FAQ ── */
.fh{background:var(--ink-deep);padding:154px 5vw 72px}
.fb{padding:72px 5vw 90px}
.fi2{max-width:800px}
.fcat{margin-bottom:48px}
.fcatt{font-size:9px;letter-spacing:4px;text-transform:uppercase;color:var(--rose);font-weight:600;padding-bottom:13px;margin-bottom:5px;border-bottom:1px solid rgba(201,144,156,.2)}
.fitem{border-bottom:1px solid rgba(43,45,82,.08)}
.fqh{font-size:inherit;font-weight:400}
.fq{display:flex;justify-content:space-between;align-items:center;width:100%;padding:19px 0;cursor:pointer;gap:18px;background:none;border:none;text-align:left;line-height:inherit;font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:400;color:var(--ink);transition:color .2s}
.fq:hover{color:var(--rose)}
.ftog{width:30px;height:30px;border:1px solid rgba(43,45,82,.12);display:flex;align-items:center;justify-content:center;color:var(--rose);font-size:18px;flex-shrink:0;transition:all .3s;font-weight:300}
.fitem.open .ftog{background:var(--rose);color:#fff;transform:rotate(45deg);border-color:var(--rose)}
.fa{display:none;padding:4px 0 22px;max-width:660px;font-size:13px;line-height:1.9;color:var(--tm);font-weight:300}
.fitem.open .fa{display:block}
/* ── CONTACT ── */
.cw{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:72px}
.cl2{background:var(--ink-deep);padding:72px 52px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(201,144,156,.1)}
.cr2{background:var(--cream);padding:72px 52px;display:flex;flex-direction:column;justify-content:center;overflow-y:auto}
.cms{margin-top:42px;display:flex;flex-direction:column;gap:22px}
.cm{display:flex;gap:14px;align-items:flex-start}
.cm-i{width:42px;height:42px;border:1px solid rgba(201,144,156,.2);display:flex;align-items:center;justify-content:center;color:var(--rose-soft);font-size:16px;flex-shrink:0}
.cm-l{font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--rose);opacity:.7;margin-bottom:4px}
.cm-v{font-family:'Cormorant Garamond',serif;font-size:18px;color:#fff;font-weight:400;line-height:1.3}
.cm-v a{color:#fff;text-decoration:none;transition:color .2s}
.cm-v a:hover{color:var(--rose-soft)}
.offs{margin-top:36px;padding-top:30px;border-top:1px solid rgba(255,255,255,.07)}
.off-l{font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--rose);opacity:.7;margin-bottom:12px}
.off-r{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.off-d{width:4px;height:4px;border-radius:50%;background:var(--rose);opacity:.46;flex-shrink:0}
.off-n{font-size:12px;color:rgba(255,255,255,.38);font-weight:300}
/* MAP EMBED */
.map-wrap{margin-top:28px;border:1px solid rgba(201,144,156,.15);overflow:hidden;height:160px;position:relative;background:var(--ink-mid);display:flex;align-items:center;justify-content:center;cursor:pointer}
.map-placeholder{text-align:center;color:rgba(255,255,255,.4)}
.map-placeholder p{font-size:11px;margin-top:6px}
/* FORM */
.fhd{margin-bottom:28px}
.fhd h2{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:400;color:var(--ink);margin-bottom:6px}
.fhd p{font-size:12.5px;color:var(--tm);font-weight:300}
.fr2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.fg3{margin-bottom:16px}
label.fl2{display:block;font-size:8px;letter-spacing:2.5px;text-transform:uppercase;color:var(--tl);margin-bottom:7px;font-weight:600}
input.fi3,select.fi3,textarea.fi3{width:100%;padding:12px 13px;border:1px solid rgba(43,45,82,.11);background:#fff;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:300;color:var(--ink);outline:none;transition:border-color .2s;appearance:none}
input.fi3:focus,select.fi3:focus,textarea.fi3:focus{border-color:var(--rose)}
input.fi3:focus-visible,select.fi3:focus-visible,textarea.fi3:focus-visible{outline:2px solid var(--rose);outline-offset:1px}
textarea.fi3{height:96px;resize:vertical}
.fsub{width:100%;padding:15px;margin-top:6px;background:var(--ink);color:#fff;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s}
.fsub:hover{background:var(--rose)}
.fnote{text-align:center;font-size:10px;color:var(--tl);margin-top:11px}
#fsucc{display:none;margin-top:14px;padding:18px;background:var(--rose-pale);border:1px solid var(--rose);text-align:center}
#fsucc h3{font-family:'Cormorant Garamond',serif;font-size:21px;color:var(--ink);margin-bottom:6px}
#fsucc p{font-size:12.5px;color:var(--tm);font-weight:300}
/* PORTAL CTA */
.portal-strip{background:linear-gradient(135deg,var(--ink),var(--ink-mid));padding:36px 5vw;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid rgba(201,144,156,.15)}
.portal-txt h3{font-family:'Cormorant Garamond',serif;font-size:22px;color:#fff;margin-bottom:4px}
.portal-txt p{font-size:12px;color:rgba(255,255,255,.45);font-weight:300}
/* NEWSLETTER */
.nl-strip{background:var(--rose-pale);padding:52px 5vw;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;border-top:1px solid rgba(201,144,156,.2)}
.nl-form{display:flex;gap:0}
.nl-input{flex:1;padding:14px 16px;border:1px solid rgba(43,45,82,.15);border-right:none;background:#fff;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:300;color:var(--ink);outline:none}
.nl-input:focus{border-color:var(--rose)}
.nl-btn{background:var(--rose);color:#fff;border:none;padding:14px 24px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background .2s}
.nl-btn:hover{background:var(--rose-soft)}
/* PRIVACY POLICY */
.policy-content{max-width:820px;padding:120px 5vw 100px}
.policy-content h1{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:var(--ink);margin-bottom:8px}
.policy-content h2{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;color:var(--ink);margin:36px 0 12px}
.policy-content p{font-size:13.5px;line-height:1.9;color:var(--tm);font-weight:300;margin-bottom:14px}
.policy-content ul{margin:0 0 14px 20px}
.policy-content ul li{font-size:13.5px;line-height:1.9;color:var(--tm);font-weight:300}
/* CTA BAND */
.cband{background:var(--rose);padding:72px 5vw;display:grid;grid-template-columns:1fr auto;align-items:center;gap:40px}
.ct{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,3.2vw,46px);font-weight:400;color:#fff;line-height:1.2}
.ct em{font-style:italic}
.cs{font-size:12.5px;color:rgba(255,255,255,.64);margin-top:8px;font-weight:300}
/* FOOTER */
footer{background:var(--ink-deep);padding:72px 5vw 26px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.07)}
.ftag{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:300;font-style:italic;color:rgba(255,255,255,.44);margin:16px 0 12px;line-height:1.5}
.fbio{font-size:12px;line-height:1.85;color:rgba(255,255,255,.28);font-weight:300;margin-bottom:22px}
.fsoc{display:flex;gap:8px}
.fsb{width:34px;height:34px;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.34);font-size:12px;text-decoration:none;transition:all .2s;cursor:pointer;font-weight:600}
.fsb:hover{border-color:var(--rose);color:var(--rose)}
.fct{font-size:8.5px;letter-spacing:3.5px;text-transform:uppercase;color:var(--rose);margin-bottom:18px;font-weight:600;opacity:.74}
.fcol ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.fcol ul li a{font-size:12px;color:rgba(255,255,255,.34);text-decoration:none;font-weight:300;cursor:pointer;transition:color .2s}
.fcol ul li a:hover{color:var(--rose-soft)}
.fbot{padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fcpy{font-size:10.5px;color:rgba(255,255,255,.17);font-weight:300}
.fleg{display:flex;gap:18px}
.fleg a,.fleg span{font-size:10.5px;color:rgba(255,255,255,.17);text-decoration:none;transition:color .2s}
.fleg a:hover{color:var(--rose-soft)}
/* ANIMATIONS */
@keyframes fu{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.a1{animation:fu .75s ease both}.a2{animation:fu .75s .11s ease both}.a3{animation:fu .75s .22s ease both}.a4{animation:fu .75s .33s ease both}
/* RESPONSIVE */
@media(max-width:1024px){.why{grid-template-columns:1fr;gap:44px}.bgrid{grid-template-columns:1fr}.pagrid{grid-template-columns:1fr 1fr}.ab-hero{grid-template-columns:1fr}.proc-grid{grid-template-columns:repeat(2,1fr)}.price-grid{grid-template-columns:1fr}.rev-cards{grid-template-columns:1fr 1fr}.blog-grid{grid-template-columns:1fr 1fr}.vid-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.nl{display:none}.hbg{display:flex}.hero{grid-template-columns:1fr}.hl{padding:76px 5vw 30px}.hr{margin:0 5vw}.hstats{position:static;margin-top:46px;grid-template-columns:repeat(2,1fr)}.hs:nth-child(2){border-right:none}.hs:nth-child(3){grid-column:1/-1}.sgrid{grid-template-columns:1fr}.tpair{grid-template-columns:1fr}.tsgrid{grid-template-columns:1fr}.ggrid{grid-template-columns:repeat(2,1fr)}.cband{grid-template-columns:1fr;text-align:center}.fgrid{grid-template-columns:1fr 1fr}.vals{grid-template-columns:1fr}.cw{grid-template-columns:1fr}.cl2{padding:52px 5vw;border-right:none;border-bottom:1px solid rgba(201,144,156,.1)}.cr2{padding:52px 5vw}.fr2{grid-template-columns:1fr}.pagrid{grid-template-columns:1fr}.cl-stats{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.rev-strip-inner{flex-direction:column}.rev-cards{grid-template-columns:1fr}.nl-strip{grid-template-columns:1fr}.tbar{gap:20px}.portal-strip{flex-direction:column;text-align:center}}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hstats{grid-template-columns:repeat(2,1fr)}.hs:nth-child(2){border-right:none}.hs:nth-child(3){grid-column:1/-1}.sgrid{grid-template-columns:1fr}.tpair{grid-template-columns:1fr}.tsgrid{grid-template-columns:1fr}.ggrid{grid-template-columns:repeat(2,1fr)}.cband{grid-template-columns:1fr;text-align:center}.fgrid{grid-template-columns:1fr 1fr}.vals{grid-template-columns:1fr}.cw{grid-template-columns:1fr}.cl2{padding:52px 5vw;border-right:none;border-bottom:1px solid rgba(201,144,156,.1)}.cr2{padding:52px 5vw}.fr2{grid-template-columns:1fr}.pagrid{grid-template-columns:1fr}.cl-stats{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.rev-strip-inner{flex-direction:column}.rev-cards{grid-template-columns:1fr}.nl-strip{grid-template-columns:1fr}.tbar{gap:20px}.portal-strip{flex-direction:column;text-align:center}}
@media(max-width:600px){.s{padding:64px 5vw}h2.d{font-size:30px}.fgrid{grid-template-columns:1fr}.hl{padding:64px 5vw 26px}.blog-grid{grid-template-columns:1fr}.vid-grid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));column-gap:22px;row-gap:34px;margin-top:40px}.steps::before{display:none}.step{padding:0}.wcards{grid-template-columns:1fr;margin-top:32px}.wc{padding:26px 24px}}

.fcol-static{font-size:12px;color:rgba(255,255,255,.34);font-weight:300}

/* ── TEMPORARY LAUNCH PHOTOGRAPHY ──────────────────────────────
   Additive only — no existing rule is modified. Every photo uses
   object-fit:cover inside an EXISTING container, so replacing a
   photo later means swapping the src and (if needed) nudging
   object-position, with no layout change.
   .ph-av intentionally does NOT rely on overflow:hidden on the
   parent, so .tc-av::after's decorative -4px ring is preserved. */
.ph-av{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 25%;display:block}
.orb-photo{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 25%;display:block}
.story-photo{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:center 30%;display:block;margin-top:52px}
@media(max-width:760px){.story-photo{aspect-ratio:4/3}}

/* ── HERO PHOTO (rectangular; replaces the circular .orb treatment) ──
   Insets mirror .hl's 76px/156px vertical padding so the image aligns
   with the hero text block, and 5vw on the right matches the page
   gutter. This absolute framing is the two-column desktop treatment; below
   1100px the hero stacks and the media query re-lays the photo in flow as
   a 4/3 block under the hero copy (it is never hidden).
   The framing border is deliberately absent: the ::after gradient below
   dissolves the left edge into the navy hero instead of fencing the
   photo off as a separate rectangle. */
.hero-photo{position:absolute;inset:76px 5vw 156px 0;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
/* Single soft left-edge transition in --ink-deep (#1e2040 = 30,32,64).
   Deliberately NOT opaque at 0% and fully clear by 27%, so the navy meets
   the photograph over roughly the left quarter instead of laying a dark
   curtain across it. The previous flat 12% full-image tint is removed —
   it was muddying the whole frame; the photograph stays photographic and
   skin tones stay natural. */
.hero-photo::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to right,rgba(30,32,64,.92) 0%,rgba(30,32,64,.62) 5%,rgba(30,32,64,.34) 11%,rgba(30,32,64,.14) 18%,rgba(30,32,64,.04) 23%,rgba(30,32,64,0) 28%)}
/* Stacked-hero treatment. Must come after the two rules above: the media query
   adds no specificity, so placing these earlier in the file would let the
   desktop rules win and collapse .hr to zero height, clipping the photo away.
   The left-edge fade becomes a top-edge fade so the photograph melts into the
   navy hero copy above it, mirroring the desktop treatment on a narrow screen. */
@media(max-width:1100px){
  .hero-photo{position:relative;inset:auto;width:100%;aspect-ratio:4/3}
  .hero-photo::after{background:linear-gradient(to bottom,rgba(30,32,64,.92) 0%,rgba(30,32,64,.62) 5%,rgba(30,32,64,.34) 11%,rgba(30,32,64,.14) 18%,rgba(30,32,64,.04) 23%,rgba(30,32,64,0) 28%)}
}

/* ── ABOUT HERO PROFILE PHOTOS (larger, rectangular) ──
   Replaces the 62px .aph-av circle inside the existing .aph card.
   The card, its 3/4 ratio, background, name/role/tag are unchanged.
   The hard rose border-bottom is removed — the ::after gradient below
   melts the photo into the card instead of scoring a line across it. */
.aph-photo{position:relative;width:100%;height:66%;flex-shrink:0;overflow:hidden}
.aph-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
/* Bottom fade to --ink-mid (#353870 = 53,56,112), the .aph card colour, so
   the photograph dissolves into the name/role area instead of ending on a
   hard edge. No top tint: the photo now starts at the card's top edge and
   any tint there just reads as a band. */
.aph-photo::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,rgba(53,56,112,0) 55%,rgba(53,56,112,.42) 82%,rgba(53,56,112,1) 100%)}
/* Photograph flush to the top edge — .aph centres its children, which left
   an empty coloured band above each photo. Overriding alignment here (rather
   than editing the original .aph rule) starts the image at the card top and
   reserves room at the bottom for the absolutely-positioned .aph-tag.
   Corners softened and the frame border lightened so the card reads as one
   piece rather than a photo rectangle inside another rectangle. */
.aphs .aph{justify-content:flex-start;gap:0;border-radius:3px;border-color:rgba(201,144,156,.07);padding-bottom:30px}
.aphs .aph .aph-photo{height:62%}
.aphs .aph .aph-n{margin-top:14px}
/* Marianna's frame sits further back than Mayra's, so hers alone is
   scaled up to match the portrait scale of the pair. Mayra's crop and
   object-position are untouched. */
.aph-photo.is-zoom img{transform:scale(1.3);transform-origin:center 22%}

/* ══════════════════════════════════════════════════════════════════════
   APPROVED HOMEPAGE COPY BATCH (October 2026)
   Presentation support for the firm-approved homepage copy. Every rule here
   exists to lay that fixed text out readably — the copy itself is not
   negotiable, so layout problems are solved here rather than by editing words.
   Nothing below is referenced by any page other than the homepage, and nothing
   below alters the mobile rules approved in commit 890f2e5 (hero photo in flow,
   hero statistics placement, the four-step grid, .wcards) apart from the
   three-statistic change recorded at .hstats further up this file.
   ══════════════════════════════════════════════════════════════════════ */

/* ── PRACTICE AREAS (homepage, light --cream band — first content position) ── */
.pa-intro{margin-top:14px;max-width:620px}
/* The four approved items have very uneven description lengths, so pin each
   card's "Learn more" to the card's bottom edge instead of letting it sit
   wherever the text happens to end. Overriding .sc's display:block changes
   nothing else: .sc-n is absolutely positioned and the remaining children are
   full-width blocks either way. */
.sc{display:flex;flex-direction:column}
.sc-l{margin-top:auto}
/* Card 04 has no destination: it is a <div>, not an <a>, with no href and no
   "Learn more" row. Only the pointer cursor is cancelled here — the card keeps
   .sc's hover background, rose bottom border and numeral treatment so it
   highlights on hover like cards 01-03. Do not add an href or a pointer
   cursor; the default cursor is what signals there is nothing to click. */
.sc-static{cursor:default}
.sc-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.sc-list li{font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.46);font-weight:300;display:flex;gap:9px}
.sc-list li::before{content:'';width:4px;height:4px;margin-top:8px;border-radius:50%;background:var(--rose);flex-shrink:0}
/* Closing thought for the section — a transition line, not a heading, so it
   stays a paragraph and does not enter the document outline. */
.pa-close{font-family:'Cormorant Garamond',serif;font-size:clamp(19px,1.9vw,25px);font-style:italic;font-weight:300;color:var(--rose);text-align:center;margin-top:46px}

/* ── WHY CHOOSE US (homepage) ──
   Continuous narrative rather than cards, so a constrained measure instead of
   the full 90vw content width: 13.5px body text set across 1300px is tiring. */
.wcu-prose{max-width:660px;margin-top:22px;display:flex;flex-direction:column;gap:17px}
.wcu-prose strong{font-weight:500;color:var(--ink)}

/* ── WHAT YOU CAN EXPECT (homepage) ──
   A visually connected subsection within the Why Choose Us band: the hairline
   and spacing tie it to the prose above, while it stays a sibling h2 so the
   page keeps a flat h1 > h2 outline. */
/* .exp is the right-hand column of the .why pair, so it carries no top offset
   on desktop and aligns with the Why Choose Us column. The separating hairline
   appears only once .why collapses to one column at 1024px — see below. */
/* The approved heading runs to three sentences — far too long for h2.d's 58px
   desktop ceiling. Same reduction the newsletter heading already applies,
   which does it with an inline style; this needs the h2.d.exp-h selector
   (0,2,1) rather than a bare .exp-h (0,1,0), because h2.d is (0,1,1) and would
   otherwise win here and again inside the 600px block below. */
/* Both .why column headings share one scale so they balance side by side.
   .why is homepage-only, so this touches no other page. */
.why h2.d{font-size:clamp(24px,2.5vw,34px)}
.exp-intro{max-width:660px;margin-top:16px;display:flex;flex-direction:column;gap:15px}
/* One vertical list at every width — it lives inside a half-width column now,
   so a nested second grid would crush the measure. */
.exp-list{list-style:none;margin-top:38px;display:grid;grid-template-columns:1fr;gap:17px}
/* align-items:flex-start, not centre: these items run to two and three lines,
   and a centred tick (as .price-list uses for its short one-liners) would
   float to the middle of the block. */
/* Hanging indent, NOT flex. display:flex made the <strong> lead phrase and the
   text after it two separate flex items, so they sat side by side and wrapped
   independently — that was the fragmented look. In normal inline flow the bold
   phrase, em dash and explanation are one sentence that wraps naturally, with
   the tick hanging in the left gutter. Do not reintroduce flex or grid here. */
.exp-list li{position:relative;padding-left:25px;font-size:13px;line-height:1.85;color:var(--tm);font-weight:300}
.exp-list li::before{content:'✓';position:absolute;left:0;top:0;color:var(--rose);font-size:13px;line-height:1.85}
.exp-list strong{font-weight:500;color:var(--ink)}

/* ── OUR MOST REQUESTED SERVICES (homepage) ── */
.mrs-intro{margin-top:14px;max-width:620px}
/* Only the middle card carries a lead sentence, so the three bullet lists start
   at different heights. Making the card a flex column and pushing the call to
   action down with margin-top:auto keeps the three buttons aligned on one line.
   .price-card is used only by this homepage grid. */
.price-card{display:flex;flex-direction:column}
.price-card .btnr{margin-top:auto}
.price-lead{font-size:12.5px;line-height:1.75;color:var(--tm);font-weight:300;margin-bottom:18px}
.price-card.featured .price-lead{color:rgba(255,255,255,.6)}

/* ── HOMEPAGE COPY BATCH — RESPONSIVE ── */
@media(max-width:1100px){
  /* .sgrid is already 1fr at this width, so all four cards run full width and
     the grid itself needs nothing further. */
  .pa-close{margin-top:38px}
}
@media(max-width:1024px){
  /* .why has collapsed to one column here, so Why Choose Us and What You Can
     Expect now stack. Restore the hairline that separates them. */
  .exp{padding-top:38px;border-top:1px solid var(--bd)}
}
@media(max-width:600px){
  /* The approved hero headline's longest line ("Built on experience.") is far
     longer than the line it replaced, and at h1.ht's 42px floor it lands within
     a few pixels of the 0.9vw content width on a 375px phone — so it would
     wrap unpredictably and break the intended three-line structure. Scaling
     with the viewport keeps the headline as large as actually fits instead of
     shrinking it everywhere. Selector is h1.ht (0,1,1) to match the base rule. */
  h1.ht{font-size:clamp(34px,9.6vw,42px)}
  /* Practice Areas card 01 and 02 now carry long descriptions. At .sc's desktop
     36px side padding a 375px phone leaves only ~265px of measure; trimming the
     padding returns ~20px per line without touching the copy. */
  .sc{padding:34px 26px}
  /* "Find the Right Structure" is the longest approved call-to-action label on
     the page. At .btnr's 32px side padding it needs slightly more than a
     375px phone leaves inside .price-card, so it would wrap to a two-line
     button. Trimming the padding only for these three in-card buttons keeps
     each label on one line; .btnr is not white-space:nowrap, so a wrap
     remains the graceful fallback rather than an overflow. */
  .price-card .btnr{padding:14px 14px}
  .why h2.d{font-size:24px}
  .exp-list{margin-top:30px}
  .wcu-prose{margin-top:18px;gap:15px}
}

/* ── HOMEPAGE SECTION RHYTHM ──
   Applied to the six major homepage sections only (they carry .s-tight beside
   .s). 72px top takes its cue from the "Ready to begin" .cband (padding:72px
   5vw) rather than copying it everywhere; bottom runs a little longer because
   these sections end on content rather than a single CTA row. Steps down at the
   existing breakpoints so mobile is not forced to desktop spacing. Declared
   after the 600px .s shorthand above so it wins there; left/right padding still
   comes from .s. */
.s-tight{padding-top:72px;padding-bottom:80px}
@media(max-width:900px){.s-tight{padding-top:58px;padding-bottom:64px}}
@media(max-width:600px){.s-tight{padding-top:46px;padding-bottom:52px}}

/* ── HEADER WORDMARK ──
   "Lamboglia Law" is live Alex Brush text, not an image — there is no wordmark
   asset in assets/images/ (logo-mark.png is the LML monogram). Matching the
   reference proportion, where the script spans roughly the width of the
   subtitle, is therefore a type-size change with nothing stretched or redrawn.
   SCOPED TO .nav ON PURPOSE: .lw/.ls are also used by partials/footer.html, and
   a bare .lw rule would enlarge the footer lockup on all 11 pages. The extra
   .ls margin clears Alex Brush's descenders at the larger size. .nav keeps its
   fixed 72px height; the lockup computes to roughly 50px, so it still fits. */
.nav .lw{font-size:36px}
.nav .ls{margin-top:5px}

/* ══════════════════════════════════════════════════════════════════════
   IMMIGRATION & RESIDENCY PAGE (November 2026 approved-content update)
   Page-scoped: every selector below is prefixed .imm- and is used only by
   /practice-areas/immigration-residency/. Nothing here affects the homepage
   or any other page. The palette is the existing navy/rose system — no new
   colours, no new typefaces.

   The approved copy is long-form legal prose, so the layout is built for
   reading: a constrained measure, real heading hierarchy, and generous
   separation between pathways. Long paragraphs are deliberately NOT placed
   in narrow cards.
   ══════════════════════════════════════════════════════════════════════ */

/* Readable measure for body prose. ~68 characters at 13.5px .bt. */
.imm-prose{max-width:68ch}
.imm-prose .bt+.bt{margin-top:14px}
.imm-prose .bt.lt{color:rgba(255,255,255,.62)}

/* The four opening concepts. Short definitions, so a 2x2 grid suits them —
   unlike the pathway blocks below. These are h2s (siblings of the section
   h2s further down) so the page outline stays h1 > h2 > h3 > h4. */
.imm-concepts{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 56px}
.imm-concept{max-width:60ch}
.imm-ct{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,2.4vw,32px);font-weight:400;color:var(--ink);line-height:1.15}

/* Standfirst under a heading — the one-line summary that precedes the prose. */
.imm-lead{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.5vw,19px);font-style:italic;font-weight:400;color:var(--rose);line-height:1.5;margin-top:10px;margin-bottom:16px;max-width:60ch}
.imm-lead-lt{color:var(--rose-soft)}

/* Pathway blocks. A rose rule on the left ties each block together without
   boxing the prose into a card. */
.imm-paths{margin-top:50px;display:flex;flex-direction:column;gap:54px}
.imm-path{border-left:2px solid var(--rose);padding-left:30px}
.imm-pt{font-family:'Cormorant Garamond',serif;font-size:clamp(23px,2.3vw,30px);font-weight:500;color:var(--ink);line-height:1.2}

/* Sub-headings inside a pathway or section. */
.imm-sub{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:500;color:var(--ink);margin-top:26px;margin-bottom:12px}
.imm-sub-lg{font-size:clamp(20px,2vw,25px);margin-top:42px}

/* Neutral bullets for legal conditions — a rose dot, not a checkmark.
   .price-list's tick reads as a benefit claim, which these are not. */
.imm-list{list-style:none;max-width:68ch;margin:16px 0 0;display:flex;flex-direction:column;gap:11px}
.imm-list li{position:relative;padding-left:21px;font-size:13.5px;line-height:1.85;color:var(--tm);font-weight:300}
.imm-list li::before{content:'';position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--rose)}

/* Official category / legal basis. A definition list because that is what it
   is: term and value. Set quieter than body copy so it reads as a citation. */
.imm-meta{margin-top:24px;max-width:68ch;border-top:1px solid var(--bd);padding-top:18px}
.imm-meta dt{font-size:9px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--rose);margin-bottom:5px}
.imm-meta dd{font-size:12px;line-height:1.75;color:var(--tm);font-weight:300;font-style:italic;margin-bottom:14px}
.imm-meta dd:last-child{margin-bottom:0}

/* The 51 designated countries. A dense multi-column list keeps a long roster
   scannable instead of running it as one paragraph. */
.imm-countries{list-style:none;margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:9px 22px}
.imm-countries li{position:relative;padding-left:15px;font-size:12.5px;line-height:1.6;color:var(--tm);font-weight:300}
.imm-countries li::before{content:'';position:absolute;left:0;top:8px;width:4px;height:4px;border-radius:50%;background:var(--rose-soft)}

/* Naturalisation reciprocity periods. */
.imm-recip{margin-top:22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--bd);border:1px solid var(--bd);max-width:68ch}
.imm-recip-g{background:var(--cream);padding:22px 24px}
.imm-recip-t{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;color:var(--rose);margin-bottom:12px}
.imm-recip-l{list-style:none;display:flex;flex-direction:column;gap:7px}
.imm-recip-l li{font-size:12.5px;line-height:1.5;color:var(--tm);font-weight:300}

/* The recommended sequence — set apart because it is the practical takeaway
   of the Timing Matters subsection. */
.imm-callout{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,1.9vw,23px);font-style:italic;font-weight:400;color:var(--ink);line-height:1.6;max-width:62ch;margin-top:20px;padding:22px 26px;background:var(--rose-pale);border-left:3px solid var(--rose)}

.imm-help{margin-top:18px;max-width:62ch}

@media(max-width:900px){
  .imm-concepts{grid-template-columns:1fr;gap:32px}
}
@media(max-width:600px){
  .imm-paths{margin-top:36px;gap:40px}
  .imm-path{padding-left:18px}
  .imm-sub-lg{margin-top:34px}
  .imm-callout{padding:18px 20px}
  .imm-countries{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  .imm-recip-g{padding:18px 20px}
}
