/* ═══════════ PALETTE — from homepage ═══════════ */
:root {
  --navy:        #0D1B2A;
  --navy-mid:    #162536;
  --navy-deep:   #0A1520;
  --cream:       #F5F0EB;
  --greige:      #EDE8E1;
  --ivory:       #FAF8F4;
  --parchment:   #E6DFD3;
  --terra:       #A0522D;
  --terra-l:     #C4714A;
  --terra-d:     #7A3B1E;
  --gold:        #C9A96E;
  --gold-l:      #E8C98A;
  --gold-d:      #A8873E;
  --text-h:      #0D1B2A;
  --text-b:      #2A3040;
  --text-m:      #7A8090;
  --border:      #E6DFD3;
  --border-terra: rgba(160,82,45,0.22);
  --border-terra-h: rgba(160,82,45,0.55);
  --border-gold: rgba(201,169,110,0.25);
  --border-gold-h: rgba(201,169,110,0.60);
  --nk-d: rgba(250,248,244,.9);
  --nk-dm: rgba(250,248,244,.55);
  --nk-dl: rgba(250,248,244,.35);
  --nk-df: rgba(250,248,244,.22);
  --bdr-nv: rgba(201,169,110,.14);
  --e: cubic-bezier(.25,.46,.45,.94);
  --font-heading: 'Cormorant Garamond';
  --font-body:    'DM Sans';
}
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 17px; }
body { font-family: DM Sans; background: var(--greige); color: var(--text-b); overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font-family: inherit; }
.container { max-width: 1280px; margin: 0 auto; padding: 0 2rem; }

/* ═══════════ SCROLL REVEAL ═══════════ */
.rv { opacity: 1; transform: none; transition: opacity .8s var(--e), transform .8s var(--e); }
.rv.js-ready { opacity: 0; transform: translateY(18px); }
.rv.vis { opacity: 1; transform: none; }
.d1 { transition-delay: .1s; } .d2 { transition-delay: .2s; } .d3 { transition-delay: .3s; } .d4 { transition-delay: .4s; }

/* ═══════════ NAV ═══════════ */
#nav { background: var(--ivory); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 1000; transition: box-shadow .4s; }
#nav.sc { box-shadow: 0 4px 20px rgba(13,27,42,.10); }
.nav-inner { height: 72px; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { display: flex; align-items: center; gap: .6rem; flex-shrink: 0; text-decoration: none; }
.nav-logo-mark { width: 42px; height: 42px; background: var(--navy); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-family: Cormorant Garamond; font-size: 1.1rem; font-weight: 500; color: var(--gold); letter-spacing: .05em; flex-shrink: 0; }
.nav-logo-text { display: flex; flex-direction: column; gap: 1px; }
.nav-logo-nm { font-family: Cormorant Garamond; font-size: 1.15rem; font-weight: 500; color: var(--navy); letter-spacing: .06em; line-height: 1.1; }
.nav-logo-sub { font-family: Cormorant Garamond; font-size: .72rem; font-style: italic; color: var(--terra); letter-spacing: .06em; }
.nav-links { display: flex; align-items: center; gap: 2rem; list-style: none; margin-left: auto; margin-right: 1.5rem; }
.nav-links a { font-size: .88rem; font-weight: 500; color: var(--text-b); letter-spacing: .02em; transition: color .2s; position: relative; padding-bottom: 3px; }
.nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; right: 100%; height: 1.5px; background: var(--terra); transition: right .3s var(--e); }
.nav-links a:hover { color: var(--terra); }
.nav-links a:hover::after { right: 0; }
.nav-links .active { color: var(--terra); }
.nav-links .active::after { right: 0; }
.nav-right { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.nav-cta { background: var(--terra); color: var(--ivory); font-size: .88rem; font-weight: 700; letter-spacing: .04em; padding: .65rem 1.5rem; border-radius: 6px; transition: background .25s; white-space: nowrap; border: none; cursor: pointer; font-family: DM Sans; }
.nav-cta:hover { background: var(--terra-l); }
.burger { display: none; flex-direction: column; gap: 5px; width: 38px; height: 38px; background: none; border: none; cursor: pointer; align-items: center; justify-content: center; }
.burger span { display: block; width: 22px; height: 1.5px; background: var(--navy); border-radius: 2px; transition: all .3s; }
.burger.op span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger.op span:nth-child(2) { opacity: 0; }
.burger.op span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.mob-nav { position: fixed; inset: 0; background: var(--navy); z-index: 999; transform: translateX(100%); transition: transform .45s var(--e); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; }
.mob-nav.open { transform: none; }
.mob-nav a { font-family: Cormorant Garamond; font-size: 2.2rem; color: var(--ivory); }

/* ═══════════ PAGE HERO ═══════════ */
#page-hero { background: var(--navy); position: relative; overflow: hidden; padding: 3.5rem 0; }
#page-hero::before { display: none; }
#page-hero::after { display: none; }
.ph-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.ph-eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: .8rem; }
.ph-eyebrow-line { width: 28px; height: 1.5px; background: var(--gold); }
.ph-h1 { font-family: Cormorant Garamond; font-size: clamp(2.4rem, 4vw, 3.8rem); font-weight: 400; line-height: 1.08; color: var(--ivory); margin-bottom: .8rem; }
.ph-h1 em { font-style: italic; color: var(--gold-l); font-weight: 300; }
.ph-sub { font-size: 1.05rem; color: rgba(250,248,244,.65); max-width: 460px; line-height: 1.72; margin-bottom: 2rem; }
.ph-checks { display: flex; flex-direction: column; gap: .65rem; }
.ph-check { display: flex; align-items: center; gap: .75rem; font-size: .95rem; color: rgba(250,248,244,.75); }
.ph-check-ic { width: 20px; height: 20px; border-radius: 50%; background: rgba(201,169,110,.15); border: 1.5px solid var(--gold); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ph-check-ic svg { width: 9px; height: 9px; stroke: var(--gold); fill: none; stroke-width: 2.5; }

/* ═══════════ HERO ACTION CARDS ═══════════ */
.ph-cards { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.ph-card { background: var(--ivory); border: 1.5px solid var(--border); border-radius: 14px; overflow: hidden; transition: border-color .25s, box-shadow .25s; cursor: pointer; }
.ph-card:hover { border-color: rgba(160,82,45,.35); box-shadow: 0 4px 20px rgba(13,27,42,.07); }
.ph-card.open { border-color: var(--terra); box-shadow: 0 6px 32px rgba(13,27,42,.1); }
.ph-card-hd { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; user-select: none; }
.ph-card-ico { width: 44px; height: 44px; background: var(--navy); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .25s; }
.ph-card.open .ph-card-ico { background: var(--terra); }
.ph-card-ico svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; stroke-width: 1.6; }
.ph-card.open .ph-card-ico svg { stroke: var(--ivory); }
.ph-card-text { flex: 1; }
.ph-card-nm { font-family: Cormorant Garamond; font-size: 1.25rem; font-weight: 500; color: var(--navy); line-height: 1.2; }
.ph-card-ds { font-size: .8rem; color: var(--text-m); margin-top: .2rem; }
.ph-card-arrow { width: 28px; height: 28px; border: 1.5px solid var(--border); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .3s; }
.ph-card-arrow svg { width: 12px; height: 12px; stroke: var(--text-m); fill: none; stroke-width: 2; transition: transform .3s; }
.ph-card.open .ph-card-arrow { border-color: var(--terra); background: var(--terra); }
.ph-card.open .ph-card-arrow svg { stroke: var(--ivory); transform: rotate(180deg); }
.ph-card-body { max-height: 0; overflow: hidden; transition: max-height .45s cubic-bezier(.25,.46,.45,.94); }
.ph-card.open .ph-card-body { max-height: 600px; }
.ph-card-body-inner { padding: 0 1.5rem 1.5rem; border-top: 1px solid var(--border); padding-top: 1.25rem; }
.pc-field { margin-bottom: .8rem; }
.pc-label { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-m); font-weight: 600; display: block; margin-bottom: .35rem; }
.pc-input { width: 100%; background: var(--cream); border: 1.5px solid var(--border); border-radius: 6px; padding: .65rem .85rem; color: var(--navy); font-size: .88rem; font-family: DM Sans; outline: none; transition: border-color .25s; }
.pc-input:focus { border-color: var(--terra); }
.pc-input::placeholder { color: var(--text-m); }
.pc-input option { background: var(--ivory); color: var(--navy); }
.pc-row { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.pc-btn { width: 100%; background: var(--terra); color: var(--ivory); border: none; padding: .82rem 1.5rem; border-radius: 8px; font-size: .82rem; font-weight: 700; letter-spacing: .04em; cursor: pointer; transition: background .25s; font-family: DM Sans; display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .25rem; }
.pc-btn:hover { background: var(--terra-l); }
.pc-btn svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2; }
.pc-ok { display: none; background: rgba(76,175,125,.08); border: 1px solid rgba(76,175,125,.3); border-radius: 8px; padding: .9rem 1rem; font-size: .82rem; color: #3a9e72; line-height: 1.6; margin-top: .75rem; align-items: center; gap: .5rem; }
.pc-ok svg { width: 15px; height: 15px; stroke: currentColor; fill: none; flex-shrink: 0; }
.pc-types { display: flex; gap: .5rem; margin-bottom: .85rem; flex-wrap: wrap; }
.pc-type { flex: 1; min-width: 80px; padding: .6rem .5rem; border: 1.5px solid var(--border); border-radius: 8px; background: var(--cream); cursor: pointer; text-align: center; font-size: .65rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-m); transition: all .2s; font-family: DM Sans; }
.pc-type svg { display: block; margin: 0 auto .35rem; width: 17px; height: 17px; stroke: var(--text-m); fill: none; stroke-width: 1.5; transition: stroke .2s; }
.pc-type.sel, .pc-type:hover { border-color: var(--terra); color: var(--terra); background: rgba(160,82,45,.05); }
.pc-type.sel svg, .pc-type:hover svg { stroke: var(--terra); }
.pc-contacts { display: flex; flex-direction: column; gap: .55rem; }
.pc-contact { display: flex; align-items: center; gap: .85rem; padding: .85rem 1rem; background: var(--cream); border: 1.5px solid var(--border); border-radius: 8px; text-decoration: none; transition: all .25s; cursor: pointer; }
.pc-contact:hover { border-color: var(--terra); background: rgba(160,82,45,.04); }
.pc-contact-ico { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pc-contact-ico svg { width: 14px; height: 14px; fill: none; stroke-width: 1.6; }
.pc-contact-lbl { font-size: .82rem; font-weight: 600; color: var(--navy); }
.pc-contact-sub { font-size: .72rem; color: var(--text-m); }

/* ═══════════ CREDENTIAL RIBBON ═══════════ */
#ribbon { display: none; }
.ribbon-track { display: flex; width: max-content; animation: ribbonScroll 40s linear infinite; }
@keyframes ribbonScroll { to { transform: translateX(-50%); } }

/* ═══════════ SECTION LABELS ═══════════ */
.sl { display: flex; align-items: center; gap: .65rem; margin-bottom: .9rem; }
.sl-ln { width: 28px; height: 1.5px; background: var(--terra); }
.sl-tx { font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--terra); }
.sl-ln.dark { background: var(--gold); }
.sl-tx.dark { color: var(--gold); }
.sh { font-family: Cormorant Garamond; font-size: clamp(2.2rem, 3.5vw, 3.2rem); font-weight: 400; line-height: 1.1; color: var(--navy); }
.sh em { font-style: italic; color: var(--terra); font-weight: 300; }
.sh.lt { color: var(--ivory); }
.sh.lt em { color: var(--gold-l); }
.sb { font-size: 1.05rem; line-height: 1.8; color: var(--text-b); max-width: 520px; }
.sb.lt { color: rgba(250,248,244,.65); }

/* ═══════════ HUB SECTION ═══════════ */
#hub { background: var(--greige); padding: 3.5rem 0 0; }
.hub-intro { margin-bottom: 3rem; }
.hub-status { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; background: rgba(13,27,42,.04); border: 1px solid var(--border); border-radius: 6px; padding: .8rem 1.25rem; margin-bottom: 2.5rem; }
.hs-item { display: flex; align-items: center; gap: .5rem; font-size: .7rem; color: var(--text-m); letter-spacing: .02em; }
.hs-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.hs-dot.green { background: #4caf7d; }
.hs-dot.gold { background: var(--gold-d); }
.hs-dot.terra { background: var(--terra); }
.hs-sep { width: 1px; height: 16px; background: var(--border); }
.hub-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; background:var(--ivory); border:1px solid var(--border); border-radius:8px 8px 0 0; }
.hub-tabs::-webkit-scrollbar { display:none; }
.htab { flex:0 0 auto; padding:.9rem 1.1rem; font-size:.65rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--text-m); background:none; border:none; border-right:1px solid var(--border); cursor:pointer; transition:all .3s; font-family:DM Sans; display:flex; align-items:center; justify-content:center; gap:.4rem; white-space:nowrap; -webkit-tap-highlight-color:transparent; }
.htab:last-child { border-right:none; }
.htab svg { width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:1.8; flex-shrink:0; }
.htab.on { background:rgba(160,82,45,.07); color:var(--terra); border-bottom:2px solid var(--terra); }
.htab:hover:not(.on) { color:var(--navy); background:rgba(13,27,42,.03); }
.hpnl { display: none; padding: 2.5rem 2.5rem 1rem; background: var(--cream); border: 1px solid var(--border); border-top: none; border-radius: 0 0 8px 8px; animation: panelIn .4s var(--e); }
.hpnl.on { display: block; }
@keyframes panelIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.hp-hd { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.hp-title { font-family: Cormorant Garamond; font-size: 1.55rem; font-weight: 500; color: var(--navy); margin-bottom: .4rem; }
.hp-sub { font-size: .88rem; color: var(--text-b); line-height: 1.72; max-width: 600px; }
.form-gr { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.fld { display: flex; flex-direction: column; gap: .38rem; margin-bottom: .9rem; }
.fld-lb { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-m); font-weight: 600; }
.fld-req { color: var(--terra); margin-left: 2px; }
.fld-in { width: 100%; background: var(--cream); border: 1.5px solid var(--border); border-radius: 6px; padding: .75rem .9rem; color: var(--navy); font-size: .9rem; outline: none; transition: border-color .3s; font-family: DM Sans; }
.fld-in:focus { border-color: var(--terra); }
.fld-in::placeholder { color: var(--text-m); }
.fld-in option { background: var(--ivory); color: var(--navy); }
textarea.fld-in { resize: vertical; min-height: 90px; }
.form-sub { background: var(--terra); color: var(--ivory); border: none; padding: .92rem 2rem; border-radius: 6px; font-size: .88rem; font-weight: 700; letter-spacing: .04em; cursor: pointer; transition: background .25s, transform .2s; font-family: DM Sans; display: inline-flex; align-items: center; gap: .55rem; }
.form-sub:hover { background: var(--terra-l); transform: translateY(-1px); }
.form-sub svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
.form-ok { display: none; background: rgba(76,175,125,.07); border: 1px solid rgba(76,175,125,.3); border-radius: 6px; padding: 1.1rem 1.3rem; color: #3a9e72; font-size: .88rem; line-height: 1.6; margin-top: .9rem; align-items: center; gap: .65rem; }
.form-ok svg { width: 18px; height: 18px; stroke: currentColor; fill: none; flex-shrink: 0; }
.progress-track { margin-bottom: 2.5rem; }
.pt-label { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-m); margin-bottom: .9rem; font-weight: 500; }
.pt-steps { display: flex; gap: 0; position: relative; }
.pt-steps::before { content: ''; position: absolute; top: 16px; left: 16px; right: 16px; height: 1px; background: var(--border); z-index: 0; }
.pt-step { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .5rem; position: relative; z-index: 1; }
.pt-dot { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--border); background: var(--ivory); display: flex; align-items: center; justify-content: center; font-size: .65rem; font-weight: 700; color: var(--text-m); transition: all .3s; flex-shrink: 0; }
.pt-dot.done { border-color: var(--terra); background: rgba(160,82,45,.08); color: var(--terra); }
.pt-dot.done svg { width: 12px; height: 12px; stroke: var(--terra); fill: none; stroke-width: 2.5; }
.pt-dot.current { border-color: var(--terra); background: var(--terra); color: var(--ivory); }
.pt-lbl { font-size: .6rem; color: var(--text-m); text-align: center; line-height: 1.3; }
.pt-step.done .pt-lbl, .pt-step.current .pt-lbl { color: var(--text-b); }
.deadline-list { display: flex; flex-direction: column; gap: .5rem; }
.dl-item { display: flex; align-items: center; gap: .9rem; padding: .9rem 1.1rem; background: var(--cream); border: 1px solid var(--border); border-radius: 6px; transition: border-color .3s; }
.dl-item:hover { border-color: rgba(201,169,110,.28); }
.dl-badge { font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 3px; flex-shrink: 0; white-space: nowrap; }
.dl-badge.red { background: rgba(220,80,80,.12); color: #e87272; border: 1px solid rgba(220,80,80,.2); }
.dl-badge.amber { background: rgba(201,169,110,.12); color: var(--gold-l); border: 1px solid rgba(201,169,110,.22); }
.dl-badge.green { background: rgba(76,175,125,.1); color: #7fd4a8; border: 1px solid rgba(76,175,125,.18); }
.dl-tl { font-size: .85rem; font-weight: 500; color: var(--nk-d); flex: 1; }
.dl-dt { font-size: .72rem; color: var(--nk-dl); white-space: nowrap; }
.dl-icon { width: 14px; height: 14px; stroke: currentColor; fill: none; flex-shrink: 0; }
.doc-types { display: flex; flex-wrap: wrap; gap: .42rem; margin-bottom: 1.4rem; }
.dt-badge { font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; border: 1px solid rgba(160,82,45,.25); color: var(--terra-l); padding: 3px 9px; border-radius: 3px; background: rgba(160,82,45,.05); }
.upload-zone { border: 1.5px dashed rgba(160,82,45,.35); border-radius: 8px; padding: 2.5rem; text-align: center; cursor: pointer; transition: border-color .3s, background .3s; position: relative; background: var(--cream); }
.upload-zone:hover, .upload-zone.drag { border-color: rgba(160,82,45,.55); background: rgba(160,82,45,.04); }
.upload-zone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.uz-ico { width: 38px; height: 38px; stroke: rgba(160,82,45,.35); fill: none; margin: 0 auto 1rem; display: block; }
.uz-h { font-family:Cormorant Garamond; font-size: 1.15rem; font-weight: 500; color: var(--ivory); margin-bottom: .38rem; }
.uz-sub { font-size: .78rem; color: var(--nk-dm); line-height: 1.55; }
.file-list { margin-top: 1rem; display: flex; flex-direction: column; gap: .42rem; }
.file-it { display: flex; align-items: center; gap: .65rem; background: var(--cream); border: 1px solid var(--border); padding: .55rem .85rem; border-radius: 5px; }
.file-nm { font-size: .78rem; color: var(--text-b); flex: 1; }
.file-sz { font-size: .65rem; color: var(--text-m); }
.file-rm { background: none; border: none; cursor: pointer; color: var(--text-m); font-size: .75rem; transition: color .2s; padding: .15rem .3rem; }
.file-rm:hover { color: rgba(220,80,80,.7); }
.doc-sub { background: var(--terra); color: var(--ivory); border: none; padding: .88rem 2rem; border-radius: 6px; font-size: .85rem; font-weight: 700; letter-spacing: .04em; cursor: pointer; transition: background .25s; font-family:DM Sans; display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem; }
.doc-sub:hover { background: var(--terra-l); }
.doc-sub svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
.doc-nt { font-size: .7rem; color: var(--text-m); margin-top: .75rem; line-height: 1.65; display: flex; align-items: flex-start; gap: .45rem; }
.doc-nt svg { width: 13px; height: 13px; stroke: var(--terra-l); fill: none; flex-shrink: 0; margin-top: 1px; }
.book-gr { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.book-type { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.bt { flex: 1; min-width: 100px; padding: .8rem .7rem; border: 1px solid var(--border); border-radius: 6px; display: flex; flex-direction: column; align-items: center; gap: .42rem; cursor: pointer; transition: all .25s; background: var(--cream); -webkit-tap-highlight-color: transparent; }
.bt svg { width: 20px; height: 20px; stroke: var(--text-m); fill: none; stroke-width: 1.5; transition: stroke .25s; }
.bt-lb { font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-m); transition: color .25s; }
.bt.sel, .bt:hover { border-color: var(--terra); background: rgba(160,82,45,.06); }
.bt.sel svg, .bt:hover svg { stroke: var(--terra); }
.bt.sel .bt-lb, .bt:hover .bt-lb { color: var(--terra); }
.time-slots { display: grid; grid-template-columns: repeat(3,1fr); gap: .42rem; }
.ts { padding: .55rem; border: 1px solid var(--border); border-radius: 4px; font-size: .72rem; text-align: center; color: var(--text-m); cursor: pointer; background: var(--cream); transition: all .2s; font-family: DM Sans; }
.ts:hover, .ts.sel { border-color: var(--terra); color: var(--terra); background: rgba(160,82,45,.06); }
.copt-gr { display: grid; grid-template-columns: repeat(2,1fr); gap: .85rem; margin-bottom: 2rem; }
.copt { display: flex; align-items: center; gap: .85rem; border: 1px solid var(--border); padding: 1.1rem; border-radius: 8px; transition: all .3s; background: var(--cream); text-decoration: none; cursor: pointer; }
.copt:hover { border-color: var(--terra); background: rgba(160,82,45,.04); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(13,27,42,.08); }
.copt-ico { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.copt-ic { width: 16px; height: 16px; fill: none; stroke-width: 1.5; }
.copt-tl { font-size: .85rem; font-weight: 600; color: var(--navy); display: block; margin-bottom: 2px; }
.copt-ds { font-size: .72rem; color: var(--text-m); }
.secure-msg { background: var(--cream); border: 1px solid var(--border); border-radius: 8px; padding: 1.75rem; margin-bottom: 1.5rem; }
.sm-hd { font-family: Cormorant Garamond; font-size: 1.15rem; font-weight: 500; color: var(--navy); margin-bottom: .4rem; display: flex; align-items: center; gap: .6rem; }
.sm-hd svg { width: 16px; height: 16px; stroke: var(--terra); fill: none; }
.sm-sub { font-size: .82rem; color: var(--text-b); margin-bottom: 1.3rem; line-height: 1.6; }
.msg-thread { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.3rem; max-height: 260px; overflow-y: auto; padding-right: .25rem; }
.msg-thread::-webkit-scrollbar { width: 3px; }
.msg-thread::-webkit-scrollbar-thumb { background: rgba(160,82,45,.2); border-radius: 2px; }
.msg-bubble { max-width: 80%; padding: .8rem 1rem; border-radius: 6px; font-size: .84rem; line-height: 1.6; }
.msg-bubble.theirs { background: var(--ivory); border: 1px solid var(--border); color: var(--text-b); align-self: flex-start; }
.msg-bubble.theirs .msg-name { font-size: .62rem; color: var(--terra); font-weight: 600; margin-bottom: .28rem; letter-spacing: .06em; text-transform: uppercase; }
.msg-bubble.theirs .msg-time { font-size: .58rem; color: var(--text-m); margin-top: .3rem; }
.msg-bubble.yours { background: rgba(160,82,45,.1); border: 1px solid rgba(160,82,45,.25); color: var(--navy); align-self: flex-end; }
.msg-bubble.yours .msg-time { font-size: .58rem; color: var(--text-m); margin-top: .3rem; text-align: right; }
.msg-compose { display: flex; gap: .65rem; align-items: flex-end; }
.msg-compose textarea { flex: 1; background: var(--ivory); border: 1.5px solid var(--border); border-radius: 6px; padding: .72rem .88rem; color: var(--navy); font-size: .88rem; outline: none; transition: border-color .3s; font-family: DM Sans; resize: none; min-height: 52px; }
.msg-compose textarea:focus { border-color: var(--terra); }
.msg-compose textarea::placeholder { color: var(--text-m); }
.msg-send { background: var(--terra); color: var(--ivory); border: none; padding: .72rem 1.1rem; border-radius: 6px; cursor: pointer; transition: background .25s; flex-shrink: 0; display: flex; align-items: center; gap: .35rem; font-size: .74rem; font-weight: 700; font-family: DM Sans; }
.msg-send:hover { background: var(--terra-l); }
.msg-send svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2; }

/* ═══════════ HOW IT WORKS ═══════════ */
#how { background: var(--greige); padding: 3.5rem 0; position: relative; overflow: hidden; }
.how-header { text-align: center; max-width: 620px; margin: 0 auto 3rem; }
.how-header .sl { justify-content: center; }
.how-header h2 { font-family:Cormorant Garamond; font-size: clamp(2.2rem,3.8vw,3.4rem); font-weight: 400; color: var(--navy); line-height: 1.1; margin-top: .7rem; }
.how-header h2 em { font-style: italic; color: var(--terra); font-weight: 300; }
.how-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; position: relative; }
.how-steps::before { content: ''; position: absolute; top: 56px; left: calc(16.6% + 44px); right: calc(16.6% + 44px); height: 1px; background: linear-gradient(90deg, rgba(13,27,42,.15), rgba(13,27,42,.06), rgba(13,27,42,.15)); z-index: 0; }
.hw2 { position: relative; z-index: 1; padding: 0 2.5rem; text-align: center; }
.hw2:first-child { padding-left: 0; }
.hw2:last-child { padding-right: 0; }
.hw2-num-wrap { position: relative; display: inline-flex; margin-bottom: 2rem; }
.hw2-num { width: 88px; height: 88px; border-radius: 50%; background: var(--navy); border: 1.5px solid rgba(13,27,42,.2); display: flex; align-items: center; justify-content: center; position: relative; }
.hw2-num::before { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(13,27,42,.08); }
.hw2-n { font-family: Cormorant Garamond; font-size: 1.6rem; font-weight: 400; color: var(--gold); line-height: 1; }
.hw2-icon { position: absolute; bottom: -2px; right: -2px; width: 30px; height: 30px; background: var(--terra); border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid var(--navy); }
.hw2-icon svg { width: 13px; height: 13px; stroke: var(--ivory); fill: none; stroke-width: 2; }
.hw2-tag { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; color: var(--terra); font-weight: 700; margin-bottom: .55rem; font-family: DM Sans; }
.hw2-tl { font-family: Cormorant Garamond; font-size: 1.7rem; font-weight: 500; color: var(--navy); margin-bottom: .8rem; line-height: 1.15; }
.hw2-ds { font-size: .95rem; color: var(--text-b); line-height: 1.8; }

/* ═══════════ HUB KEY DATES ═══════════ */
.hub-kd-f{font-size:.76rem;font-weight:600;letter-spacing:.04em;padding:.36rem .95rem;border-radius:20px;border:1.5px solid var(--border);background:transparent;color:var(--text-m);cursor:pointer;transition:all .2s}
.hub-kd-f:hover{border-color:var(--terra);color:var(--terra)}
.hub-kd-f.on{background:var(--navy);color:var(--ivory);border-color:var(--navy)}

/* ═══════════ TWO-COLUMN CALENDAR ═══════════ */
.kd-layout { display: grid; grid-template-columns: 200px 1fr; gap: 0; background: var(--cream); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; box-shadow: 0 4px 24px rgba(13,27,42,.1); }
@media(max-width:768px){ .kd-layout { grid-template-columns: 1fr; } }

/* Left: controls — navy */
.kd-months { border-right: 1px solid rgba(201,169,110,.15); display: flex; flex-direction: column; background: var(--navy); padding: 1.4rem 1.1rem; gap: 1rem; }
.kd-ctrl-label { font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--gold-l); margin-bottom: .4rem; display: block; }
.kd-year-toggle { display: flex; gap: 0; border: 1px solid rgba(201,169,110,.25); border-radius: 6px; overflow: hidden; }
.kd-yr-btn { flex: 1; padding: .55rem 0; font-size: .82rem; font-weight: 600; color: rgba(250,248,244,.45); background: transparent; border: none; cursor: pointer; transition: all .2s; font-family: DM Sans; }
.kd-yr-btn:first-child { border-right: 1px solid rgba(201,169,110,.25); }
.kd-yr-btn.on { background: var(--terra); color: var(--ivory); }
.kd-yr-btn:hover:not(.on) { background: rgba(255,255,255,.06); color: var(--ivory); }
.kd-month-select { width: 100%; background: rgba(255,255,255,.06); border: 1px solid rgba(201,169,110,.25); border-radius: 6px; padding: .6rem .75rem; font-size: .85rem; color: var(--gold-l); font-family: DM Sans; outline: none; cursor: pointer; transition: border-color .2s; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23C9A96E' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .7rem center; padding-right: 2rem; color-scheme: dark; }
.kd-month-select:focus { border-color: var(--gold); }
.kd-month-meta { font-size: .72rem; color: var(--gold-l); opacity: .7; line-height: 1.6; padding-top: .5rem; border-top: 1px solid rgba(201,169,110,.2); }

/* Right: detail panel — cream/ivory */
.kd-detail { display: flex; flex-direction: column; min-height: 420px; background: var(--cream); }
.kd-detail-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; padding: 3rem 2rem; text-align: center; }
.kd-detail-empty-icon { width: 48px; height: 48px; border-radius: 10px; background: rgba(13,27,42,.05); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.kd-detail-empty-icon svg { width: 22px; height: 22px; stroke: var(--text-m); fill: none; }
.kd-detail-empty-h { font-family: Cormorant Garamond; font-size: 1.1rem; color: var(--text-m); margin-bottom: .35rem; }
.kd-detail-empty-s { font-size: .8rem; color: var(--text-m); opacity: .7; }
.kd-detail-hd { padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; background: var(--navy); }
.kd-detail-title { font-family: Cormorant Garamond; font-size: 1.25rem; font-weight: 500; color: var(--gold-l); }
.kd-detail-sub { font-size: .72rem; color: rgba(201,169,110,.55); margin-top: 1px; }
.kd-detail-body { flex: 1; overflow-y: auto; padding: .5rem 1.5rem 1.2rem; max-height: 480px; }
.kd-detail-body::-webkit-scrollbar { width: 3px; }
.kd-detail-body::-webkit-scrollbar-thumb { background: rgba(160,82,45,.2); border-radius: 2px; }
.kd-row { display: flex; align-items: center; gap: .85rem; padding: .85rem 0; border-bottom: 1px solid var(--border); }
.kd-row:last-child { border-bottom: none; }
.kd-block { width: 44px; height: 44px; background: var(--navy); border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; }
.kd-block.past { background: rgba(13,27,42,.18); }
.kd-block.urgent { background: var(--terra); }
.kd-block-day { font-family: Cormorant Garamond; font-size: 1.05rem; font-weight: 500; color: var(--gold-l); line-height: 1; }
.kd-block.past .kd-block-day { color: var(--text-m); }
.kd-block.urgent .kd-block-day { color: var(--ivory); }
.kd-block-mon { font-size: .52rem; font-weight: 700; letter-spacing: .07em; color: rgba(201,169,110,.55); text-transform: uppercase; margin-top: 1px; }
.kd-block.past .kd-block-mon { color: var(--text-m); opacity: .6; }
.kd-block.urgent .kd-block-mon { color: rgba(250,248,244,.75); }
.kd-info { flex: 1; min-width: 0; }
.kd-info-label { font-size: .88rem; font-weight: 500; color: var(--text-b); line-height: 1.3; }
.kd-info-label.past { color: var(--text-m); }
.kd-info-desc { font-size: .72rem; color: var(--text-m); margin-top: .15rem; }
.kd-pills { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; flex-shrink: 0; }
.kd-cat-pill { font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: .22rem .55rem; border-radius: 3px; white-space: nowrap; }
.kd-cat-pill.tax     { background: rgba(220,80,80,.1);  color: #c0504a; border: 1px solid rgba(220,80,80,.2); }
.kd-cat-pill.vat     { background: rgba(160,120,40,.1);  color: #9a7a30; border: 1px solid rgba(160,120,40,.2); }
.kd-cat-pill.payroll { background: rgba(56,140,95,.1);  color: #2e8a5f; border: 1px solid rgba(56,140,95,.2); }
.kd-cat-pill.ct      { background: rgba(80,110,180,.1);  color: #4a6aaf; border: 1px solid rgba(80,110,180,.2); }
.kd-cat-pill.accounts{ background: rgba(160,82,45,.1);  color: var(--terra); border: 1px solid rgba(160,82,45,.2); }
.kd-status-pill { font-size: .56rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 3px; white-space: nowrap; }
.kd-status-pill.passed  { background: rgba(13,27,42,.06); color: var(--text-m); border: 1px solid var(--border); }
.kd-status-pill.upcoming{ background: rgba(80,110,180,.08); color: #4a6aaf; border: 1px solid rgba(80,110,180,.15); }
.kd-status-pill.soon    { background: rgba(160,120,40,.08); color: #9a7a30; border: 1px solid rgba(160,120,40,.15); }
.kd-status-pill.urgent  { background: rgba(220,80,80,.08); color: #c0504a; border: 1px solid rgba(220,80,80,.15); }

/* colour dots (reused) */
.kd-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.kd-dot.tax     { background: #e87272; }
.kd-dot.vat     { background: var(--gold); }
.kd-dot.payroll { background: #4caf7d; }
.kd-dot.ct      { background: #6485c4; }
.kd-dot.accounts{ background: var(--terra); }

/* ═══════════ TAX ESTIMATOR SUITE ═══════════ */
#calc-sec { background: var(--navy); padding: 3.5rem 0; }
.calc-hd { text-align: center; margin-bottom: 2.5rem; }
.calc-hd .sl { justify-content: center; }
.est-tabs { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center; margin-bottom: 2.5rem; }
.est-tab { font-family: DM Sans; font-size: .82rem; font-weight: 500; padding: .5rem 1.3rem; border-radius: 20px; border: 1px solid rgba(201,169,110,.35); background: transparent; color: var(--ivory); cursor: pointer; transition: all .2s; white-space: nowrap; }
.est-tab:hover { border-color: var(--gold); color: var(--gold); }
.est-tab.on { background: var(--terra); color: var(--ivory); border-color: var(--terra); }
.est-pnl { display: none; }
.est-pnl.on { display: block; }
.est-wr { display: grid; grid-template-columns: 1fr 1.15fr; gap: 4rem; align-items: start; max-width: 980px; margin: 0 auto; }
.est-info-eyebrow { font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: .5rem; }
.est-info-title { font-family: Cormorant Garamond; font-size: clamp(1.9rem, 2.8vw, 2.6rem); font-weight: 400; color: var(--ivory); line-height: 1.15; margin-bottom: .9rem; }
.est-info-title em { font-style: italic; color: var(--gold); }
.est-info-body { font-size: .92rem; color: var(--nk-dm); line-height: 1.78; margin-bottom: 1.5rem; }
.est-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
.est-tag { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .3rem .75rem; border-radius: 20px; border: 1px solid var(--bdr-nv); color: var(--nk-dl); background: rgba(255,255,255,.03); }
.est-note { font-size: .78rem; color: var(--nk-dm); background: rgba(201,169,110,.06); border-left: 2px solid rgba(201,169,110,.4); padding: .65rem .9rem; border-radius: 0 4px 4px 0; line-height: 1.6; }
.calc-fm { background: var(--cream); border: 1px solid var(--border-terra); padding: 2rem; border-radius: 8px; }
.calc-fm-title { font-family: Cormorant Garamond; font-size: 1.5rem; font-weight: 400; color: var(--navy); margin-bottom: 1.25rem; padding-bottom: .9rem; border-bottom: 1px solid var(--border); }
.calc-fld { margin-bottom: 1rem; }
.calc-fld-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-bottom: 1rem; }
.calc-lb { font-size: .63rem; letter-spacing: .13em; text-transform: uppercase; color: var(--text-m); display: block; margin-bottom: .42rem; font-weight: 600; }
.calc-in { width: 100%; background: var(--ivory); border: 1px solid var(--border); border-radius: 4px; padding: .7rem .85rem; color: var(--navy); font-size: .88rem; outline: none; transition: border-color .3s; -webkit-appearance: none; font-family:DM Sans; }
.calc-in:focus { border-color: var(--terra); }
.calc-in option { background: var(--ivory); color: var(--navy); }
.calc-res { background: var(--navy-mid); border: 1px solid rgba(201,169,110,.2); padding: 1.15rem; border-radius: 6px; margin-top: 1rem; display: none; }
.calc-rr { display: flex; justify-content: space-between; align-items: baseline; padding: .42rem 0; border-bottom: 1px solid rgba(201,169,110,.12); }
.calc-rr:last-child { border: none; padding-top: .6rem; }
.calc-rl { font-size: .75rem; color: var(--nk-dm); }
.calc-rv { font-family: Cormorant Garamond; font-size: 1.1rem; color: var(--ivory); font-weight: 400; }
.calc-rv.tot { font-size: 1.55rem; color: var(--gold); }
.calc-rv.pos { color: #7fd4a8; }
.calc-rv.neg { color: #e08080; }
.calc-go { width: 100%; padding: .88rem; background: var(--terra); color: var(--ivory); border: none; cursor: pointer; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; border-radius: 4px; margin-top: 1rem; transition: background .25s; font-family: DM Sans; }
.calc-go:hover { background: var(--terra-l); }
.calc-disc { font-size: .62rem; color: var(--text-m); line-height: 1.6; margin-top: .6rem; text-align: center; }
.calc-disc--prominent { font-size: .72rem; color: var(--text-b); line-height: 1.65; margin-top: .85rem; padding: .65rem .85rem; background: rgba(160,82,45,0.07); border: 1px solid rgba(160,82,45,0.18); border-radius: 4px; text-align: left; }

/* ═══════════ FAQ ═══════════ */
#faq { background: var(--navy); padding: 3.5rem 0; }
.faq-hd { text-align: center; margin-bottom: 2.5rem; }
.faq-hd .sl { justify-content: center; }
.faq-hd .sl-ln { background: var(--gold); }
.faq-hd .sl-tx { color: var(--gold); }
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 4rem; align-items: start; }
.faq-it { border-bottom: 1px solid rgba(250,248,244,.12); }
.faq-q { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 0; cursor: pointer; gap: .9rem; -webkit-tap-highlight-color: transparent; user-select: none; }
.faq-qt { font-family: Cormorant Garamond; font-size: 1.12rem; color: var(--ivory); line-height: 1.3; font-weight: 400; }
.faq-ic { width: 22px; height: 22px; border: 1.5px solid rgba(250,248,244,.35); border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: all .3s; background: none; cursor: pointer; }
.faq-ic svg { width: 9px; height: 9px; stroke: rgba(250,248,244,.5); fill: none; stroke-width: 2; transition: transform .35s var(--e); }
.faq-it.op .faq-ic { border-color: var(--terra); background: var(--terra); }
.faq-it.op .faq-ic svg { stroke: var(--ivory); transform: rotate(45deg); }
.faq-it.op .faq-qt { color: var(--terra); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .5s var(--e); }
.faq-it.op .faq-a { max-height: 1000px; padding-bottom: 1.1rem; }
.faq-at { font-size: .88rem; line-height: 1.82; color: rgba(250,248,244,.65); }

/* ═══════════ CTA BAND ═══════════ */
#cta-band { background: var(--terra); padding: 3.5rem 2.5rem; }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; max-width: 1200px; margin: 0 auto; }
.cta-inner-left { flex: 1; min-width: 260px; }
.cta-inner-right { display: flex; gap: .75rem; flex-shrink: 0; flex-wrap: wrap; align-items: center; }
.cta-inner h2 { font-family: Cormorant Garamond; font-size: clamp(1.7rem, 2.5vw, 2.4rem); font-weight: 400; color: var(--ivory); line-height: 1.15; margin-bottom: .4rem; }
.cta-inner h2 em { font-style: italic; color: var(--gold-l); }
.cta-inner p { font-size: .95rem; color: rgba(250,248,244,.85); margin: .4rem 0 0; line-height: 1.6; }
.btn-cta-filled { display: inline-flex; align-items: center; gap: .6rem; padding: 1rem 2.25rem; border: none; border-radius: 10px; font-size: 1rem; font-weight: 700; letter-spacing: .02em; color: var(--navy); background: var(--gold); text-decoration: none; cursor: pointer; transition: background .25s; white-space: nowrap; font-family: DM Sans; }
.btn-cta-filled:hover { background: var(--gold-l); }
.btn-cta-outline { display: inline-flex; align-items: center; gap: .4rem; padding: 1rem .5rem; border: none; background: transparent; font-size: 1rem; font-weight: 500; letter-spacing: .01em; color: var(--gold-l); cursor: pointer; transition: color .25s; white-space: nowrap; font-family: DM Sans; text-decoration: none; }
.btn-cta-outline:hover { color: var(--ivory); }
@media(max-width:700px){ #cta-band { padding: 2.5rem 1.35rem; } .cta-inner { flex-direction: column; align-items: flex-start; } .cta-inner-right { width: 100%; } }

/* ═══════════ FOOTER ═══════════ */
#footer { background: var(--navy-deep); border-top: 1px solid rgba(201,169,110,.12); padding: 3.5rem 0 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 3.5rem; margin-bottom: 3.5rem; }
.f-logo-row { display: flex; align-items: center; gap: .65rem; margin-bottom: 1rem; }
.f-logo-circle { width: 36px; height: 36px; background: rgba(201,169,110,.12); border: 1px solid rgba(201,169,110,.25); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: Cormorant Garamond; font-size: .85rem; font-weight: 600; color: var(--gold); }
.f-logo-nm { font-family: Cormorant Garamond; font-size: 1.1rem; font-weight: 500; color: var(--ivory); letter-spacing: .12em; }
.f-desc { font-size: .82rem; line-height: 1.82; color: rgba(250,248,244,.35); margin-bottom: 1.4rem; max-width: 245px; }
.f-socials { display: flex; gap: .6rem; }
.f-social { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.1); border-radius: 5px; display: flex; align-items: center; justify-content: center; transition: border-color .25s; }
.f-social:hover { border-color: rgba(201,169,110,.4); }
.f-social svg { width: 14px; height: 14px; stroke: rgba(250,248,244,.35); fill: none; stroke-width: 1.6; transition: stroke .25s; }
.f-social:hover svg { stroke: var(--gold); }
.f-col-h { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-l); margin-bottom: 1rem; font-weight: 600; }
.f-links { display: flex; flex-direction: column; gap: .55rem; }
.f-links a { font-size: .82rem; color: rgba(250,248,244,.35); transition: color .25s; }
.f-links a:hover { color: rgba(250,248,244,.75); }
.f-contact-item { display: flex; align-items: flex-start; gap: .45rem; font-size: .78rem; color: rgba(250,248,244,.35); margin-bottom: .55rem; transition: color .25s; }
.f-contact-item:hover { color: rgba(250,248,244,.65); }
.f-contact-item svg { width: 12px; height: 12px; stroke: var(--gold); fill: none; flex-shrink: 0; margin-top: 3px; }
.f-newsletter { display: flex; gap: .38rem; margin-top: .5rem; }
.f-newsletter input { flex: 1; background: rgba(255,255,255,.06); border: 1px solid rgba(201,169,110,.15); border-radius: 4px; padding: .52rem .7rem; color: var(--ivory); font-size: .78rem; outline: none; transition: border-color .3s; font-family: DM Sans; }
.f-newsletter input:focus { border-color: var(--terra); }
.f-newsletter input::placeholder { color: rgba(250,248,244,.25); }
.f-newsletter button { background: var(--terra); color: var(--ivory); border: none; padding: .52rem .85rem; border-radius: 4px; font-size: .72rem; font-weight: 600; cursor: pointer; transition: background .25s; font-family: DM Sans; }
.f-newsletter button:hover { background: var(--terra-l); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.06); padding-top: 1.6rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.f-cp { font-size: .68rem; color: rgba(250,248,244,.2); }
.f-legal { display: flex; gap: 1.4rem; }
.f-legal a { font-size: .65rem; color: rgba(250,248,244,.2); transition: color .3s; }
.f-legal a:hover { color: rgba(250,248,244,.5); }

/* WhatsApp FAB */
.wa { position: fixed; bottom: 1.5rem; right: 1.5rem; width: 48px; height: 48px; background: #25D366; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 500; box-shadow: 0 4px 16px rgba(37,211,102,.28); transition: transform .3s; }
.wa:hover { transform: scale(1.1); }
.wa svg { width: 24px; height: 24px; fill: #fff; }

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width: 1024px) {
  .ph-inner { grid-template-columns: 1fr; gap: 3rem; }
  .ph-h1 { font-size: clamp(2rem, 5vw, 3rem); }
  .ph-cards { grid-template-columns: 1fr; }
  .pc-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
}
@media (max-width: 768px) {
  .nav-links { display: none; }
  .nav-right .nav-cta { display: none; }
  .burger { display: flex; }
  .ph-cards { grid-template-columns: 1fr 1fr; }
  .form-gr { grid-template-columns: 1fr; }
  .book-gr { grid-template-columns: 1fr; }
  .copt-gr { grid-template-columns: 1fr; }
  .est-wr, .faq-grid { grid-template-columns: 1fr; gap: 0; }
  .hub-tabs { gap: 0; }
  .htab { min-width: 80px; font-size: .58rem; padding: .75rem .5rem; }
  .hpnl { padding: 1.5rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .pt-steps { flex-wrap: wrap; gap: .75rem; }
  .pt-steps::before { display: none; }
}
@media (max-width: 560px) {
  .ph-cards { grid-template-columns: 1fr; }
  .book-type { flex-direction: column; }
  .bt { flex-direction: row; justify-content: flex-start; gap: .75rem; }
}

/* ═══════════ HUB NOTICE ═══════════ */
.hub-notice { display:flex; align-items:flex-start; gap:.85rem; background:rgba(201,169,110,.08); border:1px solid rgba(201,169,110,.28); border-radius:8px; padding:1rem 1.3rem; margin-bottom:1.8rem; font-size:.85rem; color:var(--text-b); line-height:1.65; }
.hub-notice svg { width:16px; height:16px; stroke:var(--gold-d); fill:none; flex-shrink:0; margin-top:2px; }
.hub-notice strong { color:var(--navy); }

/* ═══════════ LOCK OVERLAY ═══════════ */
.hub-lock-overlay { display:flex; align-items:center; justify-content:center; min-height:0; padding:1.5rem 1rem 2rem; }
.hub-lock-box { max-width:600px; width:100%; text-align:center; }
.hub-lock-icon { width:64px; height:64px; background:var(--navy); border-radius:14px; display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem; }
.hub-lock-icon svg { width:28px; height:28px; stroke:var(--gold); fill:none; stroke-width:1.5; }
.hub-lock-title { font-family:Cormorant Garamond; font-size:clamp(1.7rem,2.5vw,2.3rem); font-weight:400; color:var(--navy); margin-bottom:.75rem; line-height:1.15; }
.hub-lock-body { font-size:.92rem; color:var(--text-b); line-height:1.8; margin-bottom:0; max-width:500px; margin-left:auto; margin-right:auto; }
.hub-lock-preview { background:var(--cream); border:1px solid var(--border); border-radius:8px; padding:1.25rem 1.4rem; margin:1.6rem auto 0; max-width:520px; text-align:left; position:relative; overflow:hidden; }
.hub-lock-preview::after { content:''; position:absolute; bottom:0; left:0; right:0; height:60px; background:linear-gradient(to bottom, transparent, var(--cream)); pointer-events:none; }
.hub-lock-btn { display:inline-flex; align-items:center; gap:.55rem; background:var(--terra); color:var(--ivory); padding:.88rem 2rem; border-radius:6px; font-size:.88rem; font-weight:700; letter-spacing:.03em; cursor:pointer; transition:background .25s; margin-top:1.8rem; border:none; font-family:DM Sans; }
.hub-lock-btn:hover { background:var(--terra-l); }
.hub-lock-btn svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; }
.hlp-step { display:flex; align-items:center; gap:.75rem; padding:.5rem 0; border-bottom:1px solid var(--border); font-size:.82rem; color:var(--text-m); }
.hlp-step:last-child { border:none; }
.hlp-dot { width:26px; height:26px; border-radius:50%; border:1.5px solid var(--border); background:var(--ivory); display:flex; align-items:center; justify-content:center; font-size:.6rem; font-weight:700; flex-shrink:0; }
.hlp-step.done .hlp-dot { border-color:var(--terra); background:rgba(160,82,45,.1); }
.hlp-step.done .hlp-dot svg { width:10px; height:10px; stroke:var(--terra); fill:none; stroke-width:2.5; }
.hlp-step.done { color:var(--text-b); }
.hlp-step.cur .hlp-dot { border-color:var(--terra); background:var(--terra); color:var(--ivory); }
.hlp-step.cur { color:var(--terra); font-weight:600; }
.hlp-dl { display:flex; align-items:center; gap:.7rem; padding:.6rem 0; border-bottom:1px solid var(--border); }
.hlp-dl:last-child { border:none; }
.hlp-badge { font-size:.58rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:2px 7px; border-radius:3px; flex-shrink:0; white-space:nowrap; }
.hlp-badge.red { background:rgba(220,80,80,.1); color:#e87272; border:1px solid rgba(220,80,80,.18); }
.hlp-badge.amber { background:rgba(201,169,110,.12); color:var(--gold-d); border:1px solid rgba(201,169,110,.22); }
.hlp-badge.grn { background:rgba(76,175,125,.1); color:#4caf7d; border:1px solid rgba(76,175,125,.18); }
.hlp-dl-tl { font-size:.8rem; color:var(--text-b); flex:1; }
.hlp-dl-dt { font-size:.7rem; color:var(--text-m); white-space:nowrap; }
.hlp-doc { display:flex; align-items:center; gap:.75rem; padding:.7rem 0; border-bottom:1px solid var(--border); }
.hlp-doc:last-child { border:none; }
.hlp-doc-ico { width:32px; height:32px; background:rgba(160,82,45,.08); border-radius:6px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hlp-doc-ico svg { width:15px; height:15px; stroke:var(--terra); fill:none; }
.hlp-doc-nm { font-size:.8rem; font-weight:500; color:var(--navy); display:block; }
.hlp-doc-meta { font-size:.7rem; color:var(--text-m); }
.hlp-doc-dl { font-size:.7rem; font-weight:600; color:var(--terra); white-space:nowrap; margin-left:auto; flex-shrink:0; }
.hlp-upload { border:1.5px dashed rgba(160,82,45,.3); border-radius:6px; padding:1.4rem; text-align:center; background:var(--ivory); }
.hlp-upload svg { width:26px; height:26px; stroke:rgba(160,82,45,.4); fill:none; margin:0 auto .5rem; display:block; }
.hlp-upload-h { font-size:.85rem; color:var(--text-m); margin-bottom:.3rem; }
.hlp-upload-sub { font-size:.7rem; color:var(--text-m); opacity:.7; }
.hlp-badges { display:flex; flex-wrap:wrap; gap:.38rem; margin-top:.85rem; }
.hlp-tag { font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; border:1px solid rgba(160,82,45,.22); color:var(--terra-l); padding:2px 8px; border-radius:3px; background:rgba(160,82,45,.04); }
.hlp-formats { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:.9rem; }
.hlp-fmt { display:flex; align-items:center; gap:.38rem; padding:.45rem .8rem; border:1px solid var(--border); border-radius:5px; font-size:.65rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-m); background:var(--ivory); }
.hlp-fmt svg { width:12px; height:12px; stroke:currentColor; fill:none; }
.hlp-fmt.on { border-color:var(--terra); color:var(--terra); background:rgba(160,82,45,.05); }
.hlp-slots { display:grid; grid-template-columns:repeat(4,1fr); gap:.38rem; }
.hlp-slot { padding:.45rem; border:1px solid var(--border); border-radius:4px; font-size:.7rem; text-align:center; color:var(--text-m); background:var(--ivory); }
.hlp-slot.on { border-color:var(--terra); color:var(--terra); background:rgba(160,82,45,.05); }
.hlp-msg { max-width:85%; padding:.7rem .9rem; border-radius:6px; font-size:.78rem; line-height:1.65; margin-bottom:.5rem; }
.hlp-msg.them { background:var(--ivory); border:1px solid var(--border); color:var(--text-b); }
.hlp-msg.you { background:rgba(160,82,45,.08); border:1px solid rgba(160,82,45,.18); color:var(--navy); margin-left:auto; }
.hlp-msg-nm { font-size:.58rem; color:var(--terra); font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.25rem; }
.hlp-msg-t { font-size:.58rem; color:var(--text-m); margin-top:.25rem; }
.hlp-msg.you .hlp-msg-t { text-align:right; }
.hlp-compose { background:var(--ivory); border:1.5px solid var(--border); border-radius:6px; padding:.6rem .85rem; font-size:.78rem; color:var(--text-m); margin-top:.65rem; }
.hlp-inv { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--border); }
.hlp-inv:last-child { border:none; }
.hlp-inv-ref { font-size:.62rem; color:var(--text-m); font-weight:600; letter-spacing:.07em; text-transform:uppercase; display:block; margin-bottom:2px; }
.hlp-inv-desc { font-size:.8rem; color:var(--navy); display:block; }
.hlp-inv-amt { font-family:Cormorant Garamond; font-size:1rem; color:var(--navy); display:block; margin-bottom:3px; text-align:right; }
.hlp-ref { display:flex; align-items:center; gap:.85rem; padding:.7rem 0; border-bottom:1px solid var(--border); }
.hlp-ref:last-child { border:none; }
.hlp-ref-av { width:34px; height:34px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; font-size:.6rem; font-weight:700; color:var(--gold); flex-shrink:0; letter-spacing:.04em; }
.hlp-ref-nm { font-size:.8rem; font-weight:500; color:var(--navy); display:block; }
.hlp-ref-st { font-size:.7rem; color:var(--text-m); margin-top:1px; display:block; }
.hlp-ref-add { border:1.5px dashed rgba(160,82,45,.28); border-radius:6px; padding:.7rem; text-align:center; font-size:.78rem; color:var(--terra); margin-top:.4rem; }
.hlp-chk { padding:.7rem 0; border-bottom:1px solid var(--border); }
.hlp-chk:last-child { border:none; }
.hlp-chk-q { font-size:.8rem; color:var(--text-b); margin-bottom:.5rem; line-height:1.5; }
.hlp-chk-opts { display:flex; gap:.4rem; }
.hlp-chk-opt { font-size:.7rem; font-weight:600; padding:.28rem .8rem; border-radius:4px; border:1px solid var(--border); color:var(--text-m); background:var(--ivory); }
.hlp-chk-opt.on { border-color:var(--terra); color:var(--terra); background:rgba(160,82,45,.05); }


  <!-- ═══════════════════════════════════════
       CUSTOM CURSOR v3 — Ledgertech stock-chart arrow
  ═══════════════════════════════════════ -->

    /* ── CUSTOM CURSOR ── */
    #lt-cursor-arrow {
      position: fixed; top: 0; left: 0;
      width: 14px; height: 14px;
      pointer-events: none; z-index: 999999;
      transform: translate(-50%, -50%);
      will-change: left, top;
      transition: transform 0.2s cubic-bezier(.25,.46,.45,.94), opacity 0.3s;
    }
    #lt-cursor-ring {
      position: fixed; top: 0; left: 0;
      width: 28px; height: 28px;
      border-radius: 50%;
      border: 1px solid rgba(201,169,110,0.55);
      pointer-events: none; z-index: 999998;
      transform: translate(-50%, -50%);
      will-change: left, top;
      transition: width 0.35s cubic-bezier(.25,.46,.45,.94), height 0.35s cubic-bezier(.25,.46,.45,.94), border-color 0.35s, opacity 0.3s;
    }
    body.cursor-hover #lt-cursor-ring { width: 42px; height: 42px; border-color: rgba(201,169,110,0.9); }
    body.cursor-hover #lt-cursor-arrow { transform: translate(-50%,-50%) scale(1.1); }
    body.cursor-click #lt-cursor-ring { width: 18px; height: 18px; border-color: rgba(201,169,110,1); }
    @media (hover: none) { #lt-cursor-arrow, #lt-cursor-ring { display: none; } body { cursor: auto !important; } }
    @media (hover: hover) and (pointer: fine) { body { } }

/* ═══════════════════════════════════════════════════
   CLIENT HUB PAGE — MOBILE RESPONSIVE OVERRIDES
   Add this AFTER clienthub.css
   Breakpoints: 1024px, 768px, 560px, 400px
═══════════════════════════════════════════════════ */

/* ── GLOBAL ── */
@media (max-width: 768px) {
  html { font-size: 15px; }
  body { font-size: 1rem; }
  .container { padding: 0 1.25rem; }
}
@media (max-width: 400px) {
  html { font-size: 14px; }
  .container { padding: 0 1rem; }
}

/* ═══════════ NAV — MOBILE ═══════════ */
@media (max-width: 768px) {
  .nav-inner { height: 60px; }
  .nav-logo-mark { width: 36px; height: 36px; font-size: .95rem; }
  .nav-logo-nm  { font-size: 1rem; }
  .nav-logo-sub { font-size: .65rem; }
  .nav-links { display: none; }
  .nav-right .nav-cta { display: none; }
  .burger { display: flex; }
  .mob-nav a { font-size: 1.8rem; }
}

/* ═══════════ PAGE HERO — MOBILE ═══════════ */
@media (max-width: 1024px) {
  #page-hero { padding: 2.75rem 0; }
  .ph-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .ph-h1 { font-size: clamp(2rem, 6vw, 3rem); }
  .ph-sub { max-width: 100%; font-size: 1rem; }
  .ph-cards { grid-template-columns: 1fr 1fr; gap: .85rem; }
}

@media (max-width: 768px) {
  #page-hero { padding: 2rem 0; }
  .ph-h1 { font-size: clamp(1.9rem, 7vw, 2.8rem); margin-bottom: .65rem; }
  .ph-sub { font-size: .95rem; margin-bottom: 1.5rem; }
  .ph-checks { gap: .5rem; }
  .ph-check { font-size: .88rem; }
}

@media (max-width: 560px) {
  .ph-cards { grid-template-columns: 1fr; gap: .75rem; }
  .ph-card-hd { padding: 1rem 1.25rem; gap: .75rem; }
  .ph-card-ico { width: 38px; height: 38px; }
  .ph-card-ico svg { width: 17px; height: 17px; }
  .ph-card-nm { font-size: 1.1rem; }
  .ph-card-ds { font-size: .75rem; }
  .ph-card-body-inner { padding: 0 1.25rem 1.25rem; padding-top: 1rem; }
  .pc-row { grid-template-columns: 1fr; }
  .pc-types { gap: .38rem; }
  .pc-type { min-width: 70px; padding: .5rem .38rem; font-size: .6rem; }
  .pc-type svg { width: 15px; height: 15px; }
}

@media (max-width: 400px) {
  .ph-h1 { font-size: clamp(1.75rem, 8vw, 2.4rem); }
  .copt-gr { grid-template-columns: 1fr; }
}

/* ═══════════ HUB SECTION (TABS + PANELS) — MOBILE ═══════════ */
@media (max-width: 768px) {
  #hub { padding: 2.5rem 0 0; }
  .hub-intro { margin-bottom: 2rem; }

  /* Status bar */
  .hub-status { padding: .65rem 1rem; gap: .85rem; flex-wrap: wrap; margin-bottom: 2rem; }
  .hs-item { font-size: .65rem; }
  .hs-sep  { display: none; }

  /* Tabs */
  .hub-tabs { border-radius: 8px 8px 0 0; }
  .htab { min-width: 72px; font-size: .55rem; padding: .7rem .45rem; gap: .3rem; }
  .htab svg { width: 11px; height: 11px; }

  /* Panel */
  .hpnl { padding: 1.5rem 1.25rem 1rem; }
  .hp-hd { margin-bottom: 1.5rem; padding-bottom: 1.1rem; }
  .hp-title { font-size: 1.35rem; }
  .hp-sub { font-size: .85rem; }

  /* Forms */
  .form-gr { grid-template-columns: 1fr; gap: .75rem; }
  .fld-in  { font-size: .85rem; padding: .65rem .8rem; }
  textarea.fld-in { min-height: 80px; }
  .form-sub { font-size: .84rem; padding: .82rem 1.5rem; }
}

/* ═══════════ PROGRESS TRACK — MOBILE ═══════════ */
@media (max-width: 768px) {
  .progress-track { margin-bottom: 2rem; }
  .pt-steps { flex-wrap: wrap; gap: .65rem; justify-content: flex-start; }
  .pt-steps::before { display: none; }
  .pt-step { flex: 0 0 calc(33.33% - .5rem); }
  .pt-dot  { width: 28px; height: 28px; font-size: .6rem; }
  .pt-lbl  { font-size: .56rem; }
}

@media (max-width: 400px) {
  .pt-step { flex: 0 0 calc(50% - .35rem); }
}

/* ═══════════ DEADLINE LIST — MOBILE ═══════════ */
@media (max-width: 768px) {
  .deadline-list { gap: .42rem; }
  .dl-item { padding: .75rem .9rem; gap: .75rem; }
  .dl-badge { font-size: .56rem; padding: 2px 6px; }
  .dl-tl   { font-size: .8rem; }
  .dl-dt   { font-size: .65rem; }
}

/* ═══════════ UPLOAD ZONE — MOBILE ═══════════ */
@media (max-width: 768px) {
  .upload-zone { padding: 2rem 1.25rem; }
  .uz-h   { font-size: 1.05rem; }
  .uz-sub { font-size: .74rem; }
  .doc-types { gap: .35rem; }
  .dt-badge  { font-size: .56rem; padding: 2px 7px; }
  .doc-sub   { font-size: .82rem; padding: .8rem 1.5rem; }
}

/* ═══════════ BOOKING GRID — MOBILE ═══════════ */
@media (max-width: 768px) {
  .book-gr { grid-template-columns: 1fr; gap: 2rem; }
  .book-type { gap: .45rem; }
  .bt { padding: .65rem .6rem; }
  .bt svg { width: 17px; height: 17px; }
  .bt-lb { font-size: .58rem; }
  .time-slots { grid-template-columns: repeat(3, 1fr); gap: .38rem; }
  .ts { font-size: .68rem; padding: .48rem; }
}

@media (max-width: 560px) {
  .book-type { flex-direction: column; }
  .bt { flex-direction: row; justify-content: flex-start; gap: .65rem; padding: .65rem .85rem; }
  .time-slots { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════ CONTACT OPTIONS GRID — MOBILE ═══════════ */
@media (max-width: 768px) {
  .copt-gr { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .copt    { padding: .9rem; }
  .copt-ico { width: 30px; height: 30px; }
  .copt-tl  { font-size: .8rem; }
  .copt-ds  { font-size: .68rem; }
}

@media (max-width: 400px) {
  .copt-gr { grid-template-columns: 1fr; }
}

/* ═══════════ SECURE MESSAGE — MOBILE ═══════════ */
@media (max-width: 768px) {
  .secure-msg { padding: 1.4rem 1.1rem; }
  .sm-hd  { font-size: 1.05rem; }
  .sm-sub { font-size: .8rem; }
  .msg-bubble { max-width: 92%; font-size: .8rem; padding: .65rem .85rem; }
  .msg-compose textarea { font-size: .84rem; min-height: 46px; }
  .msg-send { font-size: .7rem; padding: .65rem .9rem; }
}

/* ═══════════ HOW IT WORKS — MOBILE ═══════════ */
@media (max-width: 1024px) {
  .how-steps { grid-template-columns: 1fr; gap: 2rem; }
  .how-steps::before { display: none; }
  .hw2 { padding: 0; text-align: left; display: flex; align-items: flex-start; gap: 1.5rem; }
  .hw2:first-child { padding-left: 0; }
  .hw2:last-child  { padding-right: 0; }
  .hw2-num-wrap { flex-shrink: 0; margin-bottom: 0; }
  .hw2-num  { width: 72px; height: 72px; }
  .hw2-n    { font-size: 1.4rem; }
  .hw2-icon { width: 26px; height: 26px; }
  .hw2-tl   { font-size: 1.45rem; margin-bottom: .6rem; }
  .hw2-ds   { font-size: .9rem; }
}

@media (max-width: 768px) {
  #how { padding: 2.5rem 0; }
  .how-header { margin-bottom: 2.25rem; }
  .how-header h2 { font-size: clamp(1.9rem, 6.5vw, 2.8rem); }
  .hw2 { flex-direction: column; align-items: flex-start; gap: .85rem; }
  .hw2-num { width: 64px; height: 64px; }
}

/* ═══════════ KEY DATES (TWO-COLUMN CALENDAR) — MOBILE ═══════════ */
@media (max-width: 768px) {
  .kd-layout { grid-template-columns: 1fr; border-radius: 10px; }
  .kd-months { border-right: none; border-bottom: 1px solid rgba(201,169,110,.15); padding: 1.1rem 1.25rem; flex-direction: row; flex-wrap: wrap; gap: .85rem; align-items: center; }
  .kd-ctrl-label { display: none; }
  .kd-year-toggle { min-width: 120px; }
  .kd-month-select { min-width: 140px; flex: 1; }
  .kd-month-meta { display: none; }
  .kd-detail { min-height: 300px; }
  .kd-detail-hd { padding: .9rem 1.25rem; }
  .kd-detail-body { padding: .4rem 1.25rem 1rem; }
  .kd-row { gap: .65rem; padding: .75rem 0; }
  .kd-block { width: 40px; height: 40px; border-radius: 7px; }
  .kd-block-day { font-size: .95rem; }
  .kd-block-mon { font-size: .48rem; }
  .kd-info-label { font-size: .83rem; }
  .kd-info-desc  { font-size: .68rem; }
  .kd-pills { gap: .28rem; }
  .kd-cat-pill    { font-size: .54rem; padding: .18rem .45rem; }
  .kd-status-pill { font-size: .52rem; padding: .16rem .42rem; }
}

/* ═══════════ TAX ESTIMATOR — MOBILE ═══════════ */
@media (max-width: 768px) {
  #calc-sec { padding: 2.5rem 0; }
  .calc-hd  { margin-bottom: 2rem; }
  .est-tabs { gap: .38rem; margin-bottom: 2rem; }
  .est-tab  { font-size: .78rem; padding: .42rem 1.05rem; }
  .est-wr   { grid-template-columns: 1fr; gap: 2rem; }
  .est-info-title { font-size: clamp(1.65rem, 5.5vw, 2.2rem); }
  .est-info-body  { font-size: .88rem; }
  .calc-fm  { padding: 1.5rem 1.25rem; }
  .calc-fm-title { font-size: 1.3rem; margin-bottom: 1rem; }
  .calc-fld-row { grid-template-columns: 1fr; gap: .65rem; margin-bottom: .65rem; }
  .calc-in  { font-size: .85rem; padding: .65rem .8rem; }
  .calc-rr  { padding: .38rem 0; }
  .calc-rl  { font-size: .72rem; }
  .calc-rv  { font-size: 1.05rem; }
  .calc-rv.tot { font-size: 1.4rem; }
  .calc-go  { font-size: .72rem; padding: .82rem; }
}

@media (max-width: 400px) {
  .est-tab { font-size: .72rem; padding: .38rem .85rem; }
}

/* ═══════════ FAQ — MOBILE ═══════════ */
@media (max-width: 768px) {
  #faq { padding: 2.5rem 0; }
  .faq-hd { margin-bottom: 2rem; }
  .faq-grid { grid-template-columns: 1fr; gap: 0; }
  .faq-qt { font-size: 1.05rem; }
  .faq-at { font-size: .85rem; }
  .faq-q  { padding: 1rem 0; gap: .75rem; }
  .faq-ic { width: 20px; height: 20px; }
}

/* ═══════════ HUB LOCK OVERLAY — MOBILE ═══════════ */
@media (max-width: 768px) {
  .hub-lock-overlay { padding: 1.25rem 1rem 1.75rem; }
  .hub-lock-icon    { width: 54px; height: 54px; }
  .hub-lock-icon svg { width: 24px; height: 24px; }
  .hub-lock-title   { font-size: clamp(1.5rem, 5.5vw, 2rem); }
  .hub-lock-body    { font-size: .88rem; }
  .hub-lock-preview { padding: 1rem 1.1rem; margin-top: 1.25rem; }
  .hub-lock-btn     { font-size: .84rem; padding: .8rem 1.5rem; margin-top: 1.4rem; }
  .hlp-slots { grid-template-columns: repeat(3, 1fr); gap: .32rem; }
  .hlp-slot  { font-size: .65rem; }
  .hlp-step  { gap: .6rem; font-size: .78rem; }
  .hlp-dl-tl { font-size: .76rem; }
  .hlp-dl-dt { font-size: .65rem; }
  .hlp-doc-nm  { font-size: .76rem; }
  .hlp-doc-meta { font-size: .65rem; }
  .hlp-msg     { font-size: .75rem; padding: .65rem .8rem; max-width: 95%; }
}

@media (max-width: 560px) {
  .hlp-slots { grid-template-columns: repeat(2, 1fr); }
  .hlp-formats { gap: .38rem; }
  .hlp-fmt { font-size: .6rem; padding: .38rem .65rem; }
}

/* ═══════════ CTA BAND — MOBILE ═══════════ */
@media (max-width: 700px) {
  #cta-band { padding: 2rem 1.25rem; }
  .cta-inner { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .cta-inner h2 { font-size: clamp(1.5rem, 5.5vw, 2rem); }
  .cta-inner p  { font-size: .9rem; }
  .cta-inner-right { width: 100%; flex-direction: column; gap: .65rem; }
  .btn-cta-filled  { width: 100%; justify-content: center; padding: .9rem 1.5rem; }
  .btn-cta-outline { padding: .5rem 0; }
}

/* ═══════════ FOOTER — MOBILE ═══════════ */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.25rem; }
}

@media (max-width: 768px) {
  #footer { padding: 2rem 0 1.25rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.75rem; margin-bottom: 2.5rem; }
  .f-desc { max-width: 100%; font-size: .8rem; }
  .f-newsletter { flex-direction: column; gap: .45rem; }
  .f-newsletter input  { width: 100%; }
  .f-newsletter button { width: 100%; padding: .65rem; font-size: .82rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .f-legal { flex-wrap: wrap; gap: 1rem; }
}

/* ═══════════ WHATSAPP FAB — MOBILE ═══════════ */
@media (max-width: 768px) {
  .wa { width: 44px; height: 44px; bottom: 1.1rem; right: 1.1rem; }
  .wa svg { width: 21px; height: 21px; }
}

/* ═══════════ HUB NOTICE — MOBILE ═══════════ */
@media (max-width: 768px) {
  .hub-notice { padding: .85rem 1rem; font-size: .8rem; gap: .65rem; margin-bottom: 1.4rem; }
}

/* ═══════════ SECTION LABELS / HEADINGS — MOBILE ═══════════ */
@media (max-width: 768px) {
  .sh { font-size: clamp(1.9rem, 6.5vw, 2.8rem); }
  .sb { font-size: .97rem; }
  .sl { margin-bottom: .7rem; }
}

/* ═══════════ CUSTOM CURSOR — TOUCH HIDE ═══════════ */
@media (hover: none) {
  #lt-cursor-arrow,
  #lt-cursor-ring { display: none !important; }
  body { cursor: auto !important; }
}

/* ═══════════ OVERFLOW SAFETY ═══════════ */
@media (max-width: 768px) {
  body { overflow-x: hidden; }
}

/* ==========================================================
   Ledgertech — Self-hosted fonts (PECR / UK GDPR compliant)
   No external requests. All files served from /fonts/
   Generated from Fontsource (identical to Google Fonts data).
   ========================================================== */

/* ── Cormorant Garamond ── */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('cormorant-garamond-latin-300-normal.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('cormorant-garamond-latin-300-italic.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('cormorant-garamond-latin-400-normal.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('cormorant-garamond-latin-400-italic.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('cormorant-garamond-latin-500-normal.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('cormorant-garamond-latin-500-italic.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('cormorant-garamond-latin-600-normal.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('cormorant-garamond-latin-600-italic.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;
}

/* ── DM Sans ── */

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('dm-sans-latin-300-normal.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: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('dm-sans-latin-400-normal.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: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('dm-sans-latin-500-normal.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: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('dm-sans-latin-600-normal.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: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('dm-sans-latin-700-normal.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;
}

/* ── DM Mono ── */

@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('dm-mono-latin-400-normal.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: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('dm-mono-latin-500-normal.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;
}

