/* Tenterden Finance — shared stylesheet across all pages.
   Design system v2: editorial / premium UK property finance.
   One serif (Fraunces) for editorial statements, one grotesque sans
   (Public Sans) for everything structural. Disciplined spacing scale,
   flattened components (borders + type over cards/shadows), green used
   only for CTA / interaction / accent — never as a background wash. */
:root{
  --bg:#f7f6f2; --bg-alt:#efece4; --fg:#0e1d2a; --muted:#5c6670; --line:rgba(14,29,42,.14);
  --accent:#1c4d40; --accent2:#2f6b58; --card:#ffffff; --card-line:rgba(14,29,42,.12);
  --onaccent:#f4f8f6; --onaccent-muted:#a9cabd;
  --display-font:"Fraunces",Georgia,serif; --body-font:"Public Sans",system-ui,sans-serif;

  --maxw:1200px;
  --sp-1:8px; --sp-2:12px; --sp-3:16px; --sp-4:24px; --sp-5:32px;
  --sp-6:48px; --sp-7:64px; --sp-8:96px; --sp-9:128px;
  --radius:2px;

  /* ---- type scale: one system, applied everywhere ----
     H1   64px / 1.05 / -0.015em  — serif. One per page: the masthead statement.
     H2   44px / 1.15 / -0.01em   — serif. Major section statements only.
     H3   19px / 1.35 / 0         — sans 600. Component headings (titles, questions).
     H4   15px / 1.4  / .01em    — sans 600. Small structural labels (values, captions-as-label).
     Eyebrow  12px / .16em track — sans 600 uppercase. Section/category label.
     Body      18px / 1.7        — sans 400. Substantial reading paragraphs, measure ~640px.
     Small body 15px / 1.65      — sans 400. Supporting copy, list items, secondary text.
     Nav       14.5px            — sans 400/600 (active).
     Button    13.5px / .02em    — sans 600.
     Caption   12.5px            — sans 400. Photo credits, meta, footnotes. */
  --fs-h1:clamp(38px,5.4vw,64px); --lh-h1:1.05; --ls-h1:-.015em;
  --fs-h2:clamp(28px,3.6vw,44px); --lh-h2:1.15; --ls-h2:-.01em;
  --fs-h3:19px; --lh-h3:1.35;
  --fs-h4:15px; --lh-h4:1.4;
  --fs-eyebrow:12px;
  --fs-body:18px; --lh-body:1.7;
  --fs-body-sm:15px; --lh-body-sm:1.65;
  --fs-nav:14.5px;
  --fs-btn:13.5px;
  --fs-caption:12.5px;
  --measure:640px; --measure-sm:520px;

  /* minor serif statement — one sanctioned step between H2 and H3, used only
     for the five finance-product titles (Buy to Let, Commercial Finance...),
     which are section headings in the document outline but visually smaller
     than a page-level H2 statement. */
  --fs-h2b:28px; --lh-h2b:1.2;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0b1119; --bg-alt:#0f1620; --fg:#f2f1ec; --muted:#9aa5ad; --line:rgba(255,255,255,.15);
    --accent:#2f8a6d; --accent2:#5fae97; --card:#121a22; --card-line:rgba(255,255,255,.1);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0b1119; --bg-alt:#0f1620; --fg:#f2f1ec; --muted:#9aa5ad; --line:rgba(255,255,255,.15);
  --accent:#2f8a6d; --accent2:#5fae97; --card:#121a22; --card-line:rgba(255,255,255,.1);
  color-scheme:dark;
}

*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body-font);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:32px;position:relative;z-index:1;}
@media (max-width:700px){ .wrap{padding-inline:20px;} }

/* ---- type system: defined once, applied everywhere below. components set
   max-width / colour / margin for their context — never their own font-size. ---- */
h1,h2,h3,h4{text-wrap:balance;margin:0;color:var(--fg);}
h1{font-family:var(--display-font);font-weight:500;font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);max-width:17ch;}
h2{font-family:var(--display-font);font-weight:600;font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);max-width:18ch;}
h3{font-family:var(--body-font);font-weight:600;font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:0;}
h4,.h4{font-family:var(--body-font);font-weight:600;font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:.01em;}
p{margin:0;}
.measure{max-width:var(--measure);}
.measure-sm{max-width:var(--measure-sm);}
.eyebrow{font-family:var(--body-font);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:10px;}
.eyebrow::after{content:"";height:1px;width:30px;background:var(--accent2);opacity:.85;}
.eyebrow .idx{color:var(--accent2);font-variant-numeric:tabular-nums;}

/* watermark lion — used once in the hero, once in the footer. a brand
   signature, not a repeating decorative motif. */
.lionmark{position:absolute;top:0;right:-40px;width:380px;max-width:55vw;opacity:.045;pointer-events:none;z-index:0;}
.lionmark.light{filter:invert(1) brightness(2.4);opacity:.07;}

/* ---- motion: scroll reveal + load-in + hover micro-interactions ---- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:translateY(0);}

@keyframes fadeUpIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.loadin{opacity:0;animation:fadeUpIn .7s cubic-bezier(.16,1,.3,1) forwards;}
.loadin.d1{animation-delay:.06s;}
.loadin.d2{animation-delay:.14s;}
.loadin.d3{animation-delay:.22s;}

@media (prefers-reduced-motion: reduce){
  .reveal,.reveal.in{opacity:1!important;transform:none!important;transition:none!important;}
  .loadin{opacity:1!important;animation:none!important;}
  *{scroll-behavior:auto!important;}
}

/* image zoom-on-hover inside contained frames — restrained */
.heroimg,.whyimg,.prowimg,.pheroimg,.duoimg{position:relative;overflow:hidden;}
.heroimg img,.whyimg img,.prowimg img,.pheroimg img,.duoimg img{transition:transform .8s cubic-bezier(.16,1,.3,1);}
.heroimg:hover img,.whyimg:hover img,.prowimg:hover img,.pheroimg:hover img,.duocard:hover .duoimg img{transform:scale(1.035);}

.svc,.step{transition:border-color .3s;}
.svc h3,.step h3{transition:color .25s;}

/* link + button polish */
.btn{transition:background-color .25s,color .25s,border-color .25s;}
.navlinks a{position:relative;transition:color .2s;}
.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--fg);transition:right .3s cubic-bezier(.16,1,.3,1);}
.navlinks a:hover::after,.navlinks a.active::after{right:0;}
.findmore{display:inline-flex;align-items:center;gap:8px;}
.findmore .ar{transition:transform .25s cubic-bezier(.16,1,.3,1);display:inline-block;}
.findmore:hover .ar{transform:translateX(4px);}
.duocap .ar{transition:transform .25s cubic-bezier(.16,1,.3,1);display:inline-block;}
.duocard:hover .duocap .ar{transform:translateX(4px);}

/* ---- buttons: squared, restrained, two variants ---- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--body-font);font-size:var(--fs-btn);letter-spacing:.02em;font-weight:600;padding:13px 24px;border-radius:var(--radius);text-decoration:none;white-space:nowrap;border:1px solid var(--fg);color:var(--fg);}
.btn:hover{background:var(--fg);color:var(--bg);}
.btn-solid{background:var(--accent);border-color:var(--accent);color:var(--onaccent);}
.btn-solid:hover{background:var(--accent2);border-color:var(--accent2);color:var(--onaccent);}
.btn-onaccent{border-color:rgba(244,248,246,.5);color:var(--onaccent);}
.btn-onaccent:hover{background:var(--onaccent);color:var(--accent);border-color:var(--onaccent);}

/* ---- nav ---- */
.nav{border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--bg);}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:16px;}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none;}
.crest{width:72px;height:72px;border-radius:50%;background:#f0eee7;display:flex;align-items:center;justify-content:center;flex:none;}
.crest img{width:56px;height:auto;}
.wordmark{display:flex;align-items:center;gap:12px;}
.wordmark .rule{width:1px;height:32px;background:var(--line);}
.wordmark .text{line-height:1.15;}
.wordmark .text .t1{font-family:var(--body-font);font-weight:600;font-size:19px;letter-spacing:.08em;color:var(--fg);}
.wordmark .text .t2{font-family:var(--body-font);font-weight:600;font-size:10.5px;letter-spacing:.28em;color:var(--accent2);margin-top:3px;}
.navcenter{display:flex;align-items:center;gap:36px;flex:1;justify-content:center;}
.navlinks{display:flex;gap:30px;font-size:var(--fs-nav);color:var(--muted);}
.navlinks a{text-decoration:none;}
.navlinks a:hover{color:var(--fg);}
.navlinks a.active{color:var(--fg);font-weight:600;}
.navright{display:flex;align-items:center;gap:16px;flex:none;}
.navtoggle{display:none;flex:none;width:40px;height:40px;border:1px solid var(--line);background:none;border-radius:var(--radius);align-items:center;justify-content:center;cursor:pointer;padding:0;}
.navtoggle .bars{position:relative;width:18px;height:12px;}
.navtoggle .bars span{position:absolute;left:0;right:0;height:1px;background:var(--fg);transition:transform .25s,opacity .25s;}
.navtoggle .bars span:nth-child(1){top:0;}
.navtoggle .bars span:nth-child(2){top:50%;margin-top:-.5px;}
.navtoggle .bars span:nth-child(3){bottom:0;}
.nav.open .navtoggle .bars span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.nav.open .navtoggle .bars span:nth-child(2){opacity:0;}
.nav.open .navtoggle .bars span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

@media (max-width:900px){
  .navcenter{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .nav.open .navcenter{display:flex;max-height:420px;}
  .navlinks{flex-direction:column;gap:0;width:100%;}
  .navlinks a{padding:16px 20px;border-top:1px solid var(--line);font-size:15px;}
  .navlinks a::after{display:none;}
  .navtoggle{display:flex;}
  .navright .btn:not(.navcta-mobile){display:none;}
}
.navcta-desktop{display:inline-flex;}
@media (max-width:900px){ .navcta-desktop{display:none;} }

/* ---- hero (home): tight, editorial, asymmetric — not a two-column SaaS split.
   Text column carries most of the width; the image is a narrow, tall "plate"
   rather than a near-square photo, bottom-aligned with the headline baseline. ---- */
.hero{position:relative;overflow:hidden;padding-block:var(--sp-6) 0;}
.herogrid{display:grid;grid-template-columns:1.35fr .65fr;gap:var(--sp-6);align-items:end;}
.hero h1{margin-top:16px;}
.hero .sub{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--muted);max-width:46ch;margin-top:18px;}
.hero .ctas{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.heroimg{position:relative;overflow:hidden;aspect-ratio:3/4;border:1px solid var(--card-line);}
.heroimg img{width:100%;height:100%;object-fit:cover;}
.herocredit{font-size:var(--fs-caption);color:var(--muted);margin-top:10px;letter-spacing:.02em;}
@media (max-width:860px){ .herogrid{grid-template-columns:1fr;gap:var(--sp-5);} .heroimg{max-width:320px;aspect-ratio:4/5;} .hero h1{max-width:none;} }

/* ---- hero credential line: a single quiet rule, not a bordered trust grid.
   Reads as a byline under the masthead statement — present, not shouting. ---- */
.herocred{margin-top:var(--sp-5);padding-top:17px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:var(--fs-caption);color:var(--muted);letter-spacing:.01em;}
.herocred b{font-weight:600;color:var(--fg);}
.herocred .dot{width:3px;height:3px;border-radius:50%;background:var(--muted);opacity:.6;flex:none;}
.herocred .less{display:none;align-items:center;gap:10px;}
@media (min-width:541px){ .herocred .less{display:inline-flex;} }

/* ---- page header (sub-pages) ---- */
.pagehero{position:relative;overflow:hidden;padding-block:var(--sp-7) var(--sp-6);}
.pagehero h1{margin-top:16px;}
.pagehero .sub{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--muted);max-width:var(--measure-sm);margin-top:18px;}
.pageherosplit{display:grid;grid-template-columns:1.2fr .9fr;gap:var(--sp-6);align-items:end;}
.pageherosplit .sub{margin-top:0;padding-bottom:4px;}
@media (max-width:860px){ .pageherosplit{grid-template-columns:1fr;gap:var(--sp-3);} }

/* ---- page header, split with contained portrait image ---- */
.pherogrid{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--sp-6);align-items:end;}
.pheroimg{overflow:hidden;aspect-ratio:4/5;border:1px solid var(--card-line);}
.pheroimg img{width:100%;height:100%;object-fit:cover;}
@media (max-width:860px){ .pherogrid{grid-template-columns:1fr;gap:var(--sp-4);} .pheroimg{order:-1;max-width:280px;} }

/* ---- services (home teaser): number / title / rule / copy ---- */
.section{padding-block:var(--sp-8);position:relative;overflow:hidden;}
.section.tight{padding-block:var(--sp-6);}
.section.alt{background:var(--bg-alt);}
.sectionhead{display:grid;grid-template-columns:1fr auto;gap:var(--sp-5);align-items:end;}
.section h2{margin-top:12px;}
.section .lede{font-size:var(--fs-body-sm);color:var(--muted);max-width:var(--measure-sm);margin-top:0;line-height:var(--lh-body-sm);}
.sectionhead .lede{margin-top:0;justify-self:end;text-align:left;max-width:34ch;padding-bottom:4px;}
@media (max-width:760px){ .sectionhead{grid-template-columns:1fr;} .sectionhead .lede{justify-self:start;margin-top:14px;} }

.servicesrow{display:grid;grid-template-columns:repeat(5,1fr);margin-top:var(--sp-6);border-top:1px solid var(--line);}
.svc{padding:22px 22px 4px 0;border-left:1px solid var(--line);text-decoration:none;display:block;color:inherit;}
.svc:first-child{border-left:none;}
.svc:not(:first-child){padding-left:22px;}
.svc .n{font-family:var(--body-font);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;}
.svc h3{margin-top:28px;}
.svc .rule{width:20px;height:1px;background:var(--accent2);margin:14px 0 14px;transition:width .3s;}
.svc:hover .rule{width:34px;}
.svc p{font-size:var(--fs-body-sm);color:var(--muted);line-height:var(--lh-body-sm);margin:0;}
.svc:hover h3{color:var(--accent2);}
@media (max-width:900px){ .servicesrow{grid-template-columns:repeat(2,1fr);row-gap:0;} .svc{border-left:none;border-top:1px solid var(--line);padding:20px 16px 20px 0!important;} .svc:nth-child(even){padding-left:20px!important;border-left:1px solid var(--line);} }
@media (max-width:540px){ .servicesrow{grid-template-columns:1fr;} .svc:nth-child(even){border-left:none;padding-left:0!important;} }

/* ---- why us ---- */
.whygrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--sp-7);align-items:center;}
.whyimg{overflow:hidden;aspect-ratio:3/4;border:1px solid var(--card-line);}
.whyimg img{width:100%;height:100%;object-fit:cover;}
.whytext p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--muted);margin:18px 0 0;max-width:var(--measure);}
.findmore{margin-top:24px;font-size:var(--fs-nav);font-weight:600;color:var(--accent2);text-decoration:none;}
@media (max-width:860px){ .whygrid{grid-template-columns:1fr;gap:var(--sp-4);} }

/* ---- finance solutions product rows: alternating editorial rows, each a
   compact spec sheet (what it is / suited to / typical situations / our
   role / CTA) rather than a repeat of the homepage's numbered cards. ---- */
.prow{display:grid;grid-template-columns:.88fr 1.12fr;gap:var(--sp-6);align-items:start;padding-block:var(--sp-5);border-top:1px solid var(--line);}
.prow:first-of-type{border-top:none;}
.prow.rev{grid-template-columns:1.12fr .88fr;}
.prow.rev .prowimg{order:2;}
.prowimg{overflow:hidden;aspect-ratio:4/3;border:1px solid var(--card-line);}
.prowimg img{width:100%;height:100%;object-fit:cover;}
.prowtext .k{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.prowtext h2{font-size:var(--fs-h2b);line-height:var(--lh-h2b);max-width:none;}
.prowtext p{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--muted);margin:12px 0 0;max-width:var(--measure-sm);}
.solmeta{margin-top:18px;border-top:1px solid var(--line);max-width:var(--measure-sm);}
.solrow{display:grid;grid-template-columns:116px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);}
.solrow .lbl{font-family:var(--body-font);font-weight:600;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--accent2);padding-top:2px;}
.solrow .val{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--fg);}
.solcta{margin-top:18px;}
@media (max-width:860px){ .prow, .prow.rev{grid-template-columns:1fr;gap:var(--sp-3);} .prow.rev .prowimg{order:0;} }
@media (max-width:560px){ .solrow{grid-template-columns:1fr;gap:3px;padding:10px 0;} }

/* ---- approach ---- */
.approach{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--sp-6);margin-top:var(--sp-3);align-items:start;}
.approach h3{margin:30px 0 10px;}
.approach h3:first-child{margin-top:0;}
.approach p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg);margin:0 0 18px;max-width:var(--measure);}
.approach p:last-child{margin-bottom:0;}
.sidecard{border:1px solid var(--card-line);padding:var(--sp-5) var(--sp-4);}
.sidecard .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;}
.sidecard .v{font-family:var(--body-font);font-weight:600;font-size:var(--fs-h4);line-height:var(--lh-h4);margin-bottom:18px;}
.sidecard .v:last-child{margin-bottom:0;}
.sidecard hr{border:none;border-top:1px solid var(--card-line);margin:18px 0;}
@media (max-width:860px){ .approach{grid-template-columns:1fr;} }

/* ---- process ---- */
.processrow{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--sp-6);border-top:1px solid var(--line);}
.step{padding:24px 22px 0 0;border-left:1px solid var(--line);}
.step:first-child{border-left:none;}
.step:not(:first-child){padding-left:22px;}
.step .num{font-family:var(--display-font);font-weight:500;color:var(--accent2);font-size:clamp(26px,3vw,36px);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.step h3{margin-top:18px;}
.step p{font-size:var(--fs-body-sm);color:var(--muted);margin:10px 0 0;line-height:var(--lh-body-sm);}
.step ul{margin:12px 0 0;padding:0;list-style:none;font-size:var(--fs-body-sm);color:var(--muted);line-height:var(--lh-body-sm);}
.step li{margin-bottom:7px;padding-left:14px;position:relative;}
.step li::before{content:"";position:absolute;left:0;top:7px;width:5px;height:1px;background:var(--accent2);}
@media (max-width:860px){ .processrow{grid-template-columns:repeat(2,1fr);row-gap:28px;} .step{border-left:none;border-top:1px solid var(--line);padding:22px 16px 0 0!important;} .step:nth-child(even){padding-left:22px!important;border-left:1px solid var(--line);} }
@media (max-width:540px){ .processrow{grid-template-columns:1fr;} .step:nth-child(even){border-left:none;padding-left:0!important;} }

/* ---- faq ---- */
.faq{margin-top:var(--sp-5);max-width:var(--measure);}
.faq details{border-top:1px solid var(--line);padding:19px 0;}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;font-family:var(--body-font);font-weight:600;font-size:var(--fs-h3);line-height:var(--lh-h3);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-size:18px;color:var(--accent2);font-weight:400;flex:none;}
.faq details[open] summary::after{content:"\2212";}
.faq p{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--muted);margin:14px 0 0;max-width:var(--measure);}

/* ---- insights / stats / chart ---- */
.statrow{display:grid;grid-template-columns:1.1fr repeat(3,0.9fr);gap:0;margin-top:var(--sp-6);border:1px solid var(--card-line);}
.stat{padding:24px 24px;border-left:1px solid var(--card-line);}
.stat:first-child{border-left:none;}
.stat .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.stat .v{font-family:var(--display-font);font-weight:500;font-size:28px;margin-top:9px;color:var(--fg);}
.stat.hero .v{font-size:34px;color:var(--accent2);}
.stat .d{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;}
@media (max-width:760px){ .statrow{grid-template-columns:1fr 1fr;} .stat{border-left:none;border-top:1px solid var(--card-line);} .stat:nth-child(1),.stat:nth-child(2){border-top:none;} }

.chartcard{border:1px solid var(--card-line);padding:28px 28px 22px;margin-top:var(--sp-5);}
.chartcard .chead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;}
.chartcard .asof{font-size:var(--fs-caption);color:var(--muted);}
.chartwrap{position:relative;margin-top:20px;}
.chartwrap svg{width:100%;height:auto;display:block;overflow:visible;}
.chline{fill:none;stroke:var(--accent2);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.charea{fill:var(--accent2);opacity:0;transition:opacity 1s ease .4s;}
.charea.in{opacity:.07;}
.chline.draw{transition:stroke-dashoffset 1.4s cubic-bezier(.16,1,.3,1);}
.chdot{fill:var(--card);stroke:var(--accent2);stroke-width:1.75;opacity:0;transition:opacity .4s ease;}
.chdot.in{opacity:1;}
@media (prefers-reduced-motion: reduce){ .charea{transition:none;opacity:.07;} .chline.draw{transition:none;} .chdot{transition:none;opacity:1;} }
.chgrid{stroke:var(--line);stroke-width:1;}
.chaxis{font-size:10.5px;fill:var(--muted);font-family:var(--body-font);}
.chdot{fill:var(--card);stroke:var(--accent2);stroke-width:1.75;}
.chdot.cur{fill:var(--accent2);}
.chhit{fill:transparent;cursor:crosshair;}
.chcrosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:0;}
.chtooltip{position:absolute;pointer-events:none;background:var(--fg);color:var(--bg);font-size:12px;padding:6px 10px;border-radius:2px;white-space:nowrap;opacity:0;transform:translate(-50%,-130%);transition:opacity .08s;z-index:3;}
.chtooltip b{font-weight:600;}
.datatoggle{margin-top:16px;}
.datatoggle summary{cursor:pointer;font-size:12.5px;color:var(--accent2);font-weight:600;}
.datatable{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;}
.datatable th,.datatable td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--card-line);color:var(--muted);}
.datatable th{color:var(--fg);font-weight:600;}
.note{font-size:var(--fs-caption);color:var(--muted);margin-top:18px;line-height:1.65;max-width:var(--measure);}

/* ---- cta band ---- */
.ctaband{background:var(--accent);color:var(--onaccent);position:relative;overflow:hidden;}
.ctaband .wrap{padding-block:var(--sp-6);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;}
.ctaband .eyebrow{color:var(--onaccent-muted);}
.ctaband .eyebrow::after{background:var(--onaccent-muted);}
.ctaband h2{color:var(--onaccent);margin-top:10px;font-size:var(--fs-h2b);line-height:var(--lh-h2b);max-width:38ch;}

/* ---- contact ---- */
.contact{border-top:1px solid var(--card-line);}
.contact .wrap{padding-block:var(--sp-6);}

/* ---- contact form ---- */
.formgrid{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--sp-6);margin-top:var(--sp-5);align-items:start;}
.cform{display:flex;flex-direction:column;gap:18px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.ffield{display:flex;flex-direction:column;gap:7px;}
.ffield label{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.ffield input,.ffield select,.ffield textarea{font:15px/1.5 var(--body-font);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 13px;transition:border-color .2s;}
.ffield textarea{resize:vertical;min-height:110px;}
.ffield input:focus,.ffield select:focus,.ffield textarea:focus{outline:none;border-color:var(--accent2);}
.cform .btn{align-self:flex-start;border:none;cursor:pointer;margin-top:4px;}
.formnote{font-size:var(--fs-caption);color:var(--muted);margin:0;}
.directcontact{background:var(--bg-alt);border:1px solid var(--card-line);padding:var(--sp-4) var(--sp-4);}
.directcontact .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.directcontact .row{border-top:1px solid var(--card-line);padding:12px 0;}
.directcontact .row:first-of-type{border-top:none;padding-top:0;}
.directcontact .v{font-family:var(--body-font);font-weight:600;font-size:var(--fs-h4);line-height:var(--lh-h4);color:var(--fg);text-decoration:none;}
@media (max-width:760px){ .formgrid{grid-template-columns:1fr;} .frow{grid-template-columns:1fr;} }

/* ---- footer ---- */
.footer{padding-block:var(--sp-6) var(--sp-4);border-top:1px solid var(--line);position:relative;overflow:hidden;}
.footer .top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;}
.footer .navlinks{flex-direction:column;gap:11px;}
.footer .navlinks a::after{display:none;}
.footer .fcontact{font-size:var(--fs-body-sm);color:var(--muted);line-height:1.85;text-align:right;}
.footer .fcontact a{text-decoration:none;}
.footer .small{margin-top:var(--sp-5);padding-top:20px;border-top:1px solid var(--line);font-size:var(--fs-caption);color:var(--muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
@media (max-width:700px){ .footer .fcontact{text-align:left;} }
.footer .lionmark{top:auto;bottom:-56px;right:-8px;width:220px;opacity:.06;}
@media (max-width:700px){ .footer .lionmark{width:150px;bottom:-30px;} }
/* Keep navigation accessible while scrolling on mobile only */
@media (max-width: 900px) {
  .nav {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
}

/* Company registration details in footer */
.footer .company-details {
  margin-top: 16px;
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--muted);
  max-width: 900px;
}
/* Legal footer links and legal information pages */
.footer .legal-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:12.5px;color:var(--muted)}
.footer .legal-links a{text-underline-offset:3px}
.legal-page{padding-block:64px 88px}
.legal-page .legal-copy{max-width:790px}
.legal-page h1{margin-bottom:22px}
.legal-page h2{font-family:var(--body-font);font-size:20px;line-height:1.35;letter-spacing:0;margin:30px 0 10px;max-width:none}
.legal-page p,.legal-page li{font-size:15px;line-height:1.8;margin-bottom:12px}
.legal-page ul{padding-left:22px}
.legal-page a{text-underline-offset:3px}
