/* Solara Finance — site styles
   Layout: full-bleed navy photography bands alternating with ivory editorial sections,
   hairline champagne-gold grids, logo-left fixed header. One light brand look by design. */

@font-face{font-family:"Newsreader";src:url("fonts/newsreader-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url("fonts/jost-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url("fonts/jost-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  /* Brand palette (from the Solara brief) */
  --navy:#101D32;        /* Midnight Navy */
  --gold:#C5A36B;        /* Champagne Gold */
  --ivory:#F5F1E9;       /* Warm Ivory */
  --charcoal:#252A32;    /* Charcoal */
  --stone:#DDD8D0;       /* Soft Stone */
  /* Supporting tones */
  --navy-deep:#0B1526;
  --paper:#FBF9F4;
  --gold-ink:#7A5F33;    /* gold for small text on light backgrounds (AA contrast) */
  --gold-icon:#A98752;
  --muted:#56606C;
  --on-navy:#F5F1E9;
  --on-navy-2:rgba(245,241,233,.8);
  --on-navy-3:rgba(245,241,233,.62);
  --line:rgba(37,42,50,.13);
  --line-strong:rgba(37,42,50,.32);
  --line-gold:rgba(197,163,107,.5);
  --line-gold-dark:rgba(197,163,107,.26);
  --error:#A3362A;
  /* Type */
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Jost", Futura, "Century Gothic", "Helvetica Neue", Arial, sans-serif;
  /* Space */
  --gutter:clamp(20px, 5vw, 80px);
  --sec:clamp(88px, 10vw, 140px);
  --hdr:84px;
}
@media (max-width:959px){ :root{ --hdr:68px } }

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{background:var(--navy-deep); -webkit-text-size-adjust:100%; text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth} }
body{margin:0; background:var(--ivory); color:var(--charcoal); font:400 16.5px/1.75 var(--sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2,h3{font-family:var(--serif); font-weight:400; text-wrap:balance}
h1 em,h2 em{font-style:italic}
a{color:inherit}
img{max-width:100%; height:auto}
section[id]{scroll-margin-top:calc(var(--hdr) - 1px)}
.sprite{position:absolute; width:0; height:0; overflow:hidden}
.ic{fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; flex:none}

.skip{position:fixed; left:16px; top:-80px; z-index:100; background:var(--gold); color:var(--navy); padding:12px 18px; font-weight:500; text-decoration:none}
.skip:focus{top:calc(12px + env(safe-area-inset-top,0px))}

.wrap{width:100%; max-width:1280px; margin-inline:auto;
  padding-left:max(var(--gutter), env(safe-area-inset-left,0px));
  padding-right:max(var(--gutter), env(safe-area-inset-right,0px))}
.section{padding-block:var(--sec)}

/* ---------- shared type ---------- */
.eyebrow{display:flex; align-items:center; gap:14px; font:500 11.5px/1.5 var(--sans); letter-spacing:.26em; text-transform:uppercase; color:var(--gold-ink)}
.eyebrow::before{content:""; width:36px; height:1px; background:currentColor; opacity:.7; flex:none}
.eyebrow--center{justify-content:center}
.eyebrow--center::after{content:""; width:36px; height:1px; background:currentColor; opacity:.7; flex:none}
.on-navy .eyebrow,.eyebrow--light{color:var(--gold)}
.h1{font-size:clamp(2.4rem, 4.4vw, 3.75rem); line-height:1.08; letter-spacing:-.015em}
.h2{font-size:clamp(2rem, 3.5vw, 3.25rem); line-height:1.1; letter-spacing:-.01em; color:var(--navy)}
.on-navy .h2{color:var(--on-navy)}
.lead{font-size:clamp(1.1rem, 1.35vw, 1.24rem); line-height:1.7; color:var(--navy)}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:56px; padding:0 30px 0 calc(30px + .2em); font:500 12px/1 var(--sans); letter-spacing:.2em; text-transform:uppercase; text-decoration:none; border:0; border-radius:0; cursor:pointer; outline-offset:-6px; transition:background-color .3s ease, color .3s ease, outline-color .3s ease, border-color .3s ease}
.btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
.btn-gold{background:var(--gold); color:var(--navy); outline:1px solid rgba(16,29,50,.32)}
.btn-gold:hover{background:#D3B47F}
.btn-navy{background:var(--navy); color:var(--ivory); outline:1px solid rgba(197,163,107,.55)}
.btn-navy:hover{background:#1A2C49; outline-color:var(--gold)}
.btn-ghost{background:transparent; color:var(--on-navy); border:1px solid rgba(245,241,233,.42)}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold)}
.btn-sm{min-height:46px; padding:0 22px 0 calc(22px + .2em); font-size:11px}
.btn .arr{letter-spacing:0; transition:transform .3s ease}
.btn:hover .arr{transform:translateX(4px)}
.btn[disabled]{opacity:.65; cursor:progress}

/* ---------- header ---------- */
.site-header{position:fixed; inset:0 0 auto; z-index:60; padding-top:env(safe-area-inset-top,0px); transition:background-color .35s ease, box-shadow .35s ease}
.site-header.is-solid{background:rgba(16,29,50,.97); box-shadow:0 1px 0 var(--line-gold-dark)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header.is-solid{background:rgba(16,29,50,.9); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px)}
}
.hdr{display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--hdr)}
.brand{display:block; flex:none; padding-block:6px}
.brand img{display:block; height:44px; width:auto}
.brand:focus-visible{outline:2px solid var(--gold); outline-offset:4px}
.hdr-right{display:flex; align-items:center; gap:clamp(24px, 3vw, 44px)}
.nav{display:flex; align-items:center; gap:clamp(22px, 2.6vw, 38px)}
.nav a{position:relative; font:500 11.5px/1 var(--sans); letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--on-navy-2); padding-block:14px; transition:color .25s ease}
.nav a::after{content:""; position:absolute; left:0; right:.2em; bottom:6px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s ease}
.nav a:hover,.nav a.is-active{color:var(--on-navy)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
.nav a:focus-visible{outline:2px solid var(--gold); outline-offset:4px}
.lbl-short{display:none}
.menu-btn{display:none; width:44px; height:44px; margin-right:-10px; border:0; background:none; color:var(--on-navy); cursor:pointer; place-items:center}
.menu-btn .bars{position:relative; width:22px; height:9px}
.menu-btn .bars::before,.menu-btn .bars::after{content:""; position:absolute; left:0; width:22px; height:1.2px; background:currentColor; transition:transform .3s ease, top .3s ease}
.menu-btn .bars::before{top:0}
.menu-btn .bars::after{top:8px}
.menu-btn[aria-expanded="true"] .bars::before{top:4px; transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{top:4px; transform:rotate(-45deg)}
.menu-btn:focus-visible{outline:2px solid var(--gold); outline-offset:0}

.mnav{position:fixed; inset:0; z-index:55; background:var(--navy); overflow-y:auto; padding-top:calc(var(--hdr) + env(safe-area-inset-top,0px)); padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}
.mnav-inner{display:grid; gap:0; padding-top:12px}
.mnav a.m-link{display:flex; justify-content:space-between; align-items:center; font:400 28px/1.2 var(--serif); color:var(--on-navy); text-decoration:none; padding-block:18px; border-bottom:1px solid var(--line-gold-dark)}
.mnav a.m-link::after{content:"→"; font:400 16px/1 var(--sans); color:var(--gold)}
.mnav .btn{margin-top:36px; width:100%}
.mnav .m-tag{margin-top:28px; font:500 10.5px/1.6 var(--sans); letter-spacing:.24em; text-transform:uppercase; color:var(--gold); text-align:center}
html.menu-open{overflow:hidden}

@media (max-width:959px){
  .nav{display:none}
  .menu-btn{display:inline-grid}
  .brand img{height:36px}
  .hdr-right{gap:14px}
}
@media (max-width:479px){
  .lbl-long{display:none}
  .lbl-short{display:inline}
  .brand img{height:32px}
  .hdr .btn-sm{padding:0 16px 0 calc(16px + .2em); min-height:42px}
}

/* ---------- hero ---------- */
.hero{position:relative; isolation:isolate; display:flex; align-items:center; min-height:clamp(620px, 92svh, 920px); background:var(--navy); color:var(--on-navy); overflow:hidden}
.hero-img{position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:70% 42%}
.hero-shade{position:absolute; inset:0; z-index:-1; background:
  linear-gradient(180deg, rgba(16,29,50,.78) 0, rgba(16,29,50,0) 190px),
  linear-gradient(0deg, var(--navy) 0, rgba(16,29,50,0) 200px),
  linear-gradient(90deg, rgba(16,29,50,.97) 0%, rgba(16,29,50,.92) 34%, rgba(16,29,50,.68) 54%, rgba(16,29,50,.2) 74%, rgba(16,29,50,0) 88%)}
.hero-inner{width:100%; padding-top:calc(var(--hdr) + 64px); padding-bottom:110px}
.hero-copy{display:grid; gap:28px; max-width:720px; justify-items:start}
.hero .eyebrow{color:var(--gold); gap:12px; flex-wrap:wrap; row-gap:4px}
.hero .eyebrow .sep{display:inline-block; width:1px; height:12px; background:var(--gold); opacity:.6}
.hero .eyebrow::before{display:none}
.hero h1{color:var(--on-navy)}
.hero h1 em{display:block; color:var(--gold)}
.hero-sub{font-size:clamp(1.08rem, 1.4vw, 1.22rem); line-height:1.7; color:var(--on-navy-2); max-width:30em}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px; margin-top:8px}
.hero-caption{position:absolute; right:max(var(--gutter), env(safe-area-inset-right,0px)); bottom:30px; display:flex; align-items:center; gap:12px; font:500 10px/1 var(--sans); letter-spacing:.3em; text-transform:uppercase; color:var(--on-navy-3)}
.hero-caption::before{content:""; width:24px; height:1px; background:var(--gold); opacity:.7}
@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise 1s cubic-bezier(.2,.7,.2,1) both; animation-delay:calc(var(--i,0) * 110ms + 120ms)}
  @keyframes rise{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
}
@media (max-width:719px){
  .hero{align-items:flex-end; min-height:clamp(620px, 94svh, 860px)}
  .hero-img{object-position:90% 50%}
  .hero-shade{background:
    linear-gradient(180deg, rgba(16,29,50,.8) 0, rgba(16,29,50,0) 150px),
    linear-gradient(0deg, var(--navy) 0%, rgba(16,29,50,.94) 40%, rgba(16,29,50,.35) 68%, rgba(16,29,50,0) 82%)}
  .hero-inner{padding-top:calc(var(--hdr) + 140px); padding-bottom:56px}
  .hero-copy{gap:22px}
  .hero .eyebrow{font-size:10.5px; letter-spacing:.2em}
  .hero-ctas{display:grid; width:100%; gap:12px}
  .hero-ctas .btn{width:100%}
  .hero-caption{display:none}
}

/* ---------- intro band ---------- */
.intro{background:var(--navy); color:var(--on-navy); padding-block:0 var(--sec)}
.intro-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(40px, 7vw, 120px); align-items:start; padding-top:clamp(52px, 6vw, 88px); border-top:1px solid var(--line-gold-dark)}
.intro-statement{font:400 clamp(1.7rem, 2.7vw, 2.5rem)/1.18 var(--serif); color:var(--on-navy); text-wrap:balance}
.intro-copy{display:grid; gap:20px; color:var(--on-navy-2); max-width:36em}
@media (max-width:859px){ .intro-grid{grid-template-columns:1fr; gap:28px} }

/* ---------- who we are ---------- */
.who{background:var(--ivory)}
.who-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(56px, 8vw, 128px); align-items:center}
.frame{position:relative; max-width:100%}
.frame::before{content:""; position:absolute; inset:20px -20px -20px 20px; border:1px solid var(--line-gold); pointer-events:none}
.frame img{position:relative; display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 50%; background:var(--stone)}
.who-copy{display:grid; gap:20px; max-width:600px}
.who-copy .h2{margin-bottom:6px}
.who-copy > p:not(.lead):not(.eyebrow){color:var(--charcoal)}
.pull{margin-block:6px; padding:4px 0 4px 24px; border-left:1px solid var(--gold); font:italic 400 clamp(1.3rem, 1.9vw, 1.7rem)/1.35 var(--serif); color:var(--navy)}
@media (max-width:899px){
  .who-grid{grid-template-columns:1fr; gap:56px}
  .frame{margin-right:14px}
  .frame::before{inset:14px -14px -14px 14px}
  .frame img{aspect-ratio:4/3}
}

/* ---------- what we do ---------- */
.what{background:var(--paper)}
.sec-head{display:grid; gap:22px; justify-items:center; text-align:center; max-width:840px; margin-inline:auto}
.sec-head .lead{color:var(--muted); max-width:36em}
.sec-head{max-width:1000px}
.h2 .ln{display:block}
@media (min-width:900px){ .h2 .ln{white-space:nowrap} }
.triptych{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(10px, 1.6vw, 24px); margin-top:clamp(52px, 6vw, 84px)}
.tile{position:relative; overflow:hidden; background:var(--navy)}
.tile img{display:block; width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.tile:hover img{transform:scale(1.035)}
.tile figcaption{position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; gap:12px; padding:64px 24px 22px; background:linear-gradient(0deg, rgba(16,29,50,.88), rgba(16,29,50,0)); font:500 11.5px/1 var(--sans); letter-spacing:.3em; text-transform:uppercase; color:var(--on-navy)}
.tile figcaption::before{content:""; width:22px; height:1px; background:var(--gold); flex:none}
.svc-grid{list-style:none; margin:clamp(56px, 6vw, 88px) 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--line-gold); border-left:1px solid var(--line-gold)}
.svc-grid > li{min-width:0; border-right:1px solid var(--line-gold); border-bottom:1px solid var(--line-gold)}
.svc{position:relative; display:grid; align-content:start; gap:12px; height:100%; padding:clamp(30px, 3vw, 44px); color:inherit; text-decoration:none; transition:background-color .35s ease}
.svc:hover{background:var(--ivory)}
.svc:focus-visible{outline:2px solid var(--gold); outline-offset:-2px}
.svc .ic{width:36px; height:36px; color:var(--gold-icon); margin-bottom:10px}
.svc h3{font:500 clamp(1.25rem, 1.6vw, 1.45rem)/1.2 var(--serif); color:var(--navy)}
.svc p{font-size:15.5px; line-height:1.7; color:var(--muted)}
.svc-go{position:absolute; top:clamp(30px, 3vw, 44px); right:clamp(26px, 2.8vw, 40px); font:400 18px/1 var(--sans); color:var(--gold-ink); opacity:0; transform:translateX(-6px); transition:opacity .3s ease, transform .3s ease}
.svc:hover .svc-go,.svc:focus-visible .svc-go{opacity:1; transform:none}
@media (hover:none){ .svc-go{opacity:.75; transform:none} }
.what-close{display:grid; justify-items:center; gap:32px; max-width:780px; margin:clamp(60px, 7vw, 96px) auto 0; text-align:center}
.what-close p{font:italic 400 clamp(1.3rem, 2vw, 1.75rem)/1.4 var(--serif); color:var(--navy); text-wrap:balance}
@media (max-width:899px){
  .svc-grid{grid-template-columns:1fr; border-left:0}
  .svc-grid > li{border-right:0}
  .svc{grid-template-columns:40px minmax(0,1fr); column-gap:18px; row-gap:6px; padding:26px 32px 26px 0}
  .svc .ic{grid-row:span 2; width:32px; height:32px; margin:2px 0 0}
  .svc-go{top:30px; right:2px}
  .svc:hover{background:transparent}
}
@media (max-width:599px){
  .tile img{aspect-ratio:3/4}
  .tile figcaption{padding:36px 10px 11px; font-size:9.5px; letter-spacing:.18em; gap:0; justify-content:center}
  .tile figcaption::before{display:none}
}

/* ---------- why solara ---------- */
.why{background:var(--navy); color:var(--on-navy)}
.why-band{position:relative; isolation:isolate; display:flex; align-items:flex-start; height:clamp(400px, 44vw, 640px); overflow:hidden}
.why-band img{position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:0% 30%}
.why-shade{position:absolute; inset:0; z-index:-1; background:
  linear-gradient(0deg, var(--navy) 0, rgba(16,29,50,0) 34%),
  linear-gradient(115deg, rgba(11,21,38,.72) 0%, rgba(11,21,38,.25) 38%, rgba(11,21,38,0) 58%)}
.why-band-inner{width:100%; display:grid; gap:24px; justify-items:start; padding-top:clamp(64px, 8vw, 120px)}
.why-band-inner .h2{max-width:8.5em}
.why-grid{list-style:none; margin:0; padding:clamp(24px, 3vw, 40px) 0 var(--sec); display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); column-gap:clamp(32px, 4.5vw, 72px); row-gap:clamp(44px, 4.5vw, 64px)}
.why-item{position:relative; display:grid; align-content:start; gap:14px; padding-top:30px; border-top:1px solid var(--line-gold-dark)}
.why-item::before{content:""; position:absolute; left:0; top:-1px; width:44px; height:1px; background:var(--gold)}
.why-item h3{font:400 clamp(1.3rem, 1.7vw, 1.55rem)/1.2 var(--serif); color:var(--on-navy)}
.why-item p{font-size:15.5px; line-height:1.75; color:var(--on-navy-2)}
@media (max-width:959px){ .why-grid{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width:599px){
  .why-band{height:clamp(360px, 100vw, 440px)}
  .why-band img{object-position:8% 20%}
  .why-shade{background:linear-gradient(0deg, var(--navy) 0, rgba(16,29,50,0) 38%), linear-gradient(160deg, rgba(11,21,38,.75) 0%, rgba(11,21,38,.3) 45%, rgba(11,21,38,0) 70%)}
  .why-grid{grid-template-columns:1fr; row-gap:36px}
}

/* ---------- enquiry ---------- */
.enquire{background:var(--ivory)}
.enq-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(48px, 6.5vw, 112px); align-items:start}
.enq-copy{display:grid; gap:22px; justify-items:start; position:sticky; top:calc(var(--hdr) + 48px)}
.serif-sub{font:italic 400 clamp(1.25rem, 1.7vw, 1.55rem)/1.35 var(--serif); color:var(--gold-ink)}
.enq-copy > p:not(.eyebrow):not(.serif-sub){color:var(--charcoal); max-width:30em}
.confid{display:flex; align-items:flex-start; gap:14px; margin-top:10px; padding-top:24px; border-top:1px solid var(--line); font-size:14.5px; line-height:1.65; color:var(--muted); max-width:30em}
.confid .ic{width:20px; height:20px; color:var(--gold-ink); margin-top:2px}
.form-card{position:relative; background:var(--paper); padding:clamp(28px, 4.2vw, 60px); outline:1px solid var(--line-gold); outline-offset:-10px; box-shadow:0 40px 70px -50px rgba(16,29,50,.45)}
.form-head{display:grid; gap:6px; margin-bottom:34px}
.form-head h3{font:400 clamp(1.6rem, 2.2vw, 2rem)/1.15 var(--serif); color:var(--navy)}
.form-head p{font-size:14px; color:var(--muted)}
.fields{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:30px 36px}
.field{display:grid; gap:8px; align-content:start; min-width:0}
.field.full{grid-column:1 / -1}
.field label{font:500 11px/1.4 var(--sans); letter-spacing:.17em; text-transform:uppercase; color:var(--charcoal)}
.field .opt{letter-spacing:.08em; text-transform:none; font-weight:400; color:var(--muted)}
.field .req{color:var(--gold-ink)}
.field input,.field select,.field textarea{width:100%; min-width:0; margin:0; font:400 16px/1.5 var(--sans); color:var(--charcoal); background:transparent; border:0; border-bottom:1px solid var(--line-strong); border-radius:0; padding:8px 0 10px; -webkit-appearance:none; appearance:none; transition:border-color .25s ease, box-shadow .25s ease}
.field input::placeholder,.field textarea::placeholder{color:#8B919A; opacity:1}
.field select{cursor:pointer; padding-right:28px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237A5F33' stroke-width='1.3'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 2px center}
.field select.is-empty{color:#8B919A}
.field select option{color:var(--charcoal)}
.field textarea{resize:vertical; min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-bottom-color:var(--navy); box-shadow:0 1px 0 var(--navy)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-bottom-color:var(--error); box-shadow:0 1px 0 var(--error)}
.field.flash select{border-bottom-color:var(--gold); box-shadow:0 1px 0 var(--gold)}
.hint{font-size:13.5px; line-height:1.55; color:var(--muted)}
.hint.is-ref{color:var(--gold-ink)}
.err{font-size:13.5px; line-height:1.5; color:var(--error)}
.field label.check{display:grid; grid-template-columns:22px minmax(0,1fr); gap:14px; align-items:start; font:400 14.5px/1.65 var(--sans); letter-spacing:0; text-transform:none; color:var(--charcoal); cursor:pointer}
.check input{-webkit-appearance:none; appearance:none; width:20px; height:20px; margin:3px 0 0; display:grid; place-content:center; background:#fff; border:1px solid var(--line-strong); border-radius:0; cursor:pointer; transition:background-color .2s ease, border-color .2s ease}
.check input::before{content:""; width:10px; height:5.5px; border-left:1.6px solid var(--gold); border-bottom:1.6px solid var(--gold); transform:rotate(-45deg) translate(1px,-1px); opacity:0}
.check input:checked{background:var(--navy); border-color:var(--navy)}
.check input:checked::before{opacity:1}
.check input:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.field.is-invalid .check input{border-color:var(--error)}
.check a{color:var(--navy); text-underline-offset:3px; text-decoration-color:var(--gold)}
.hp{position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden}
.form-foot{display:grid; gap:16px; justify-items:start; margin-top:36px}
.req-note{font-size:13px; color:var(--muted)}
.form-error{font-size:14.5px; color:var(--error)}
.form-done{display:grid; gap:18px; justify-items:start; padding-block:20px}
.form-done:focus{outline:none}
.form-done .seal{width:56px; height:56px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-ink)}
.form-done .seal .ic{width:22px; height:22px; stroke-width:1.5}
.form-done h3{font:400 clamp(1.7rem, 2.6vw, 2.2rem)/1.15 var(--serif); color:var(--navy); max-width:14em}
.form-done p{color:var(--charcoal); max-width:32em}
.form-done .preview-note{font-size:13.5px; color:var(--muted)}
@media (max-width:959px){
  .enq-grid{grid-template-columns:1fr}
  .enq-copy{position:static}
}
@media (max-width:639px){
  .fields{grid-template-columns:1fr; gap:26px}
  .form-foot .btn{width:100%}
  .form-card{outline-offset:-8px}
}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep); color:var(--on-navy-2); padding-block:clamp(72px, 8vw, 104px) calc(36px + env(safe-area-inset-bottom,0px))}
.foot-top{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:48px; align-items:start; padding-bottom:56px; border-bottom:1px solid var(--line-gold-dark)}
.foot-brand{display:grid; gap:18px; justify-items:start}
.foot-brand img{display:block; width:190px; height:auto}
.foot-tag{font:500 10.5px/1.6 var(--sans); letter-spacing:.26em; text-transform:uppercase; color:var(--gold)}
.foot-line{font:italic 400 19px/1.35 var(--serif); color:var(--on-navy)}
.foot-nav{display:grid; gap:4px; justify-items:start}
.foot-nav a{font:500 11.5px/1 var(--sans); letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--on-navy); padding-block:9px}
.foot-nav a:hover{color:var(--gold)}
.foot-nav a:focus-visible,.foot-bottom a:focus-visible{outline:2px solid var(--gold); outline-offset:4px}
.foot-legal{display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:32px clamp(40px, 6vw, 96px); align-items:start; padding-block:44px; font-size:13.5px; line-height:1.8; color:var(--on-navy-3)}
.foot-legal section{display:grid; gap:12px; align-content:start; min-width:0}
.foot-reg p{max-width:66ch}
.foot-h{margin-bottom:4px; font:500 10.5px/1.6 var(--sans); letter-spacing:.26em; text-transform:uppercase; color:var(--gold)}
.foot-co{grid-column:1 / -1}
.foot-legal .todo{color:var(--gold)}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 28px; padding-top:28px; border-top:1px solid var(--line-gold-dark); font-size:12.5px; color:var(--on-navy-3)}
.foot-bottom nav{display:flex; flex-wrap:wrap; gap:8px 28px}
.foot-bottom a{text-decoration:none}
.foot-bottom a:hover{color:var(--gold)}
@media (max-width:859px){
  .foot-top{grid-template-columns:1fr; gap:40px}
  .foot-legal{grid-template-columns:1fr; gap:32px}
}

/* ---------- legal pages ---------- */
.legal-hero{background:var(--navy); color:var(--on-navy); padding-block:calc(var(--hdr) + 72px) 72px}
.legal-hero .wrap{display:grid; gap:20px}
.legal-hero h1{font-size:clamp(2.3rem, 4.3vw, 3.6rem); line-height:1.08; color:var(--on-navy)}
.legal-hero p{color:var(--on-navy-3); font-size:14.5px}
.legal{background:var(--ivory); padding-block:clamp(56px, 7vw, 96px) var(--sec)}
.legal .wrap{max-width:860px}
.prose{display:grid; gap:18px; color:var(--charcoal)}
.prose h2{font:400 clamp(1.5rem, 2.2vw, 1.9rem)/1.2 var(--serif); color:var(--navy); margin-top:28px}
.prose h3{font:500 1.2rem/1.25 var(--serif); color:var(--navy); margin-top:8px}
.prose ul{margin:0; padding-left:1.2em; display:grid; gap:8px}
.prose li::marker{color:var(--gold-ink)}
.prose a{color:var(--navy); text-decoration-color:var(--gold); text-underline-offset:3px}
.prose .note{padding:18px 22px; background:var(--paper); border-left:2px solid var(--gold); font-size:14.5px; color:var(--muted)}
.prose .todo{background:rgba(197,163,107,.22); padding:0 4px}
.simple-page{min-height:100svh; display:grid; place-items:center; background:var(--navy); color:var(--on-navy); text-align:center; padding:calc(var(--hdr) + 40px) 0 60px}
.simple-page .wrap{display:grid; gap:24px; justify-items:center}
.simple-page h1{font-size:clamp(2.3rem, 5vw, 3.9rem); line-height:1.08}
.simple-page p{color:var(--on-navy-2); max-width:30em}
