/* Shuhari Business Services — shared styles
   Tokens come from the brand guidelines: Executive Navy, Mastery Gold, Ivory Paper,
   Libre Baskerville (display) + Libre Franklin (body). */

:root{
  --navy:#102E4A;
  --navy-deep:#0A2035;
  --navy-panel:#16395A;
  --gold:#BE9D69;
  --gold-soft:#D4BC93;
  --ivory:#F4EDE2;
  --ivory-card:#F9F4EA;
  --mist:#D7D8D2;
  --taupe:#D6C8B8;
  --graphite:#2C3035;
  --serif:'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --sans:'Libre Franklin', Arial, Helvetica, sans-serif;
  --container:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:90px;}
body{
  margin:0; font-family:var(--sans); color:var(--graphite); background:var(--ivory);
  -webkit-font-smoothing:antialiased; line-height:1.6;
}
img{max-width:100%; display:block;}
a{color:inherit;}
ul,ol{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,h5,p,figure{margin:0;}
.wrap{max-width:var(--container); margin:0 auto; padding:0 32px;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px;
}
.skip-link{position:absolute; left:-999px; top:8px; background:var(--gold); color:var(--navy); padding:10px 16px; z-index:200; font-weight:600;}
.skip-link:focus{left:8px;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

/* ---------- Eyebrow + buttons ---------- */
.eyebrow{
  font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:14px;
}
.eyebrow::before,.eyebrow::after{content:""; width:26px; height:1px; background:var(--gold); opacity:.7;}
.eyebrow--left::after{display:none;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-weight:600; font-size:13px; letter-spacing:1.6px; text-transform:uppercase;
  text-decoration:none; padding:16px 30px; border-radius:2px; border:1px solid transparent; cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), background .35s, color .35s, border-color .35s;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--gold); color:var(--navy);}
.btn-primary:hover{background:var(--gold-soft);}
.btn-outline{border-color:rgba(244,237,226,.55); color:var(--ivory);}
.btn-outline:hover{border-color:var(--gold); color:var(--gold);}
.btn-outline-navy{border-color:var(--navy); color:var(--navy);}
.btn-outline-navy:hover{background:var(--navy); color:var(--ivory);}
.btn-row{display:flex; gap:18px; flex-wrap:wrap;}

/* ---------- Navigation ---------- */
header.nav{position:fixed; top:0; left:0; right:0; z-index:100; padding:24px 0; transition:padding .4s ease, background .4s ease, box-shadow .4s ease;}
header.nav .wrap{display:flex; align-items:center; justify-content:space-between;}
header.nav .logo img{height:46px; width:auto; transition:height .4s ease;}
header.nav.scrolled{padding:14px 0; background:rgba(16,46,74,.96); box-shadow:0 10px 30px rgba(10,20,35,.25); backdrop-filter:blur(6px);}
header.nav.scrolled .logo img{height:38px;}
nav.links{display:flex; align-items:center; gap:34px;}
nav.links a:not(.btn){
  font-size:12.5px; font-weight:500; letter-spacing:1.8px; text-transform:uppercase; text-decoration:none;
  color:var(--ivory); opacity:.85; position:relative; padding-bottom:4px; transition:opacity .3s, color .3s;
}
nav.links a:not(.btn)::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--gold); transition:width .35s ease;}
nav.links a:not(.btn):hover{opacity:1; color:var(--gold);}
nav.links a:not(.btn):hover::after,
nav.links a[aria-current="page"]::after{width:100%;}
nav.links a[aria-current="page"]{opacity:1; color:var(--gold);}
nav.links .btn{margin-left:6px; padding:14px 24px;}
.menu-toggle{display:none; background:none; border:0; padding:8px; cursor:pointer;}
.menu-toggle span{display:block; width:24px; height:2px; background:var(--ivory); margin:5px 0; transition:.3s;}
.nav-overlay{display:none; position:fixed; inset:0; background:rgba(10,20,35,.55); z-index:99; opacity:0; transition:opacity .4s ease;}
.nav-overlay.open{display:block; opacity:1;}
@media (max-width:1280px){
  nav.links{position:fixed; top:0; right:0; height:100vh; width:78%; max-width:340px; background:var(--navy);
    flex-direction:column; align-items:flex-start; padding:100px 40px 40px; gap:26px; z-index:101;
    transform:translateX(100%); transition:transform .45s cubic-bezier(.2,.8,.2,1); box-shadow:-20px 0 50px rgba(0,0,0,.35);}
  nav.links.open{transform:translateX(0);}
  nav.links .btn{margin-left:0; margin-top:10px;}
  .menu-toggle{display:block; position:relative; z-index:102;}
}

/* ---------- Pattern system ----------
   Each tile is cut to the pattern's exact repeat period, so neighbouring tiles continue the lattice
   with no doubled rows or gaps. Keep background-size equal to the tile's CSS size (the PNGs are 2x).
   - tile-02 (emblem repeat) : general navy sections
   - tile-03 (large emblem)  : hero / cover moments only
   - tile-01 (scrollwork)    : ivory sections (navy recolour)                                    */
.pattern-navy, .pattern-ivory{position:relative; isolation:isolate;}
.pattern-navy{background-color:var(--navy);}
.pattern-ivory{background-color:var(--ivory);}
.pattern-navy::before, .pattern-ivory::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-repeat:repeat;
}
.pattern-navy::before{background-image:url('../img/tile-02-gold.png'); background-size:96px 118px; opacity:.15;}
.pattern-navy--cover::before{background-image:url('../img/tile-03-gold.png'); background-size:120px 170px; opacity:.13;}
.pattern-ivory::before{background-image:url('../img/tile-01-navy.png'); background-size:96px 96px; opacity:.11;}

/* ---------- Section shells ---------- */
section{padding:120px 0;}
@media (max-width:760px){section{padding:80px 0;}}
.section-head{max-width:660px; margin-bottom:60px;}
.section-head h2{font-family:var(--serif); font-size:clamp(30px,4vw,42px); margin-top:18px; line-height:1.2;}
.section-head p{margin-top:18px; font-size:16px; opacity:.85; line-height:1.75;}
.on-navy{color:var(--ivory);}
.on-navy .section-head h2{color:var(--ivory);}
.on-navy .section-head p{color:var(--mist);}
.on-ivory .section-head h2{color:var(--navy);}

/* ---------- Home hero ---------- */
.hero{min-height:100vh; display:flex; align-items:center; overflow:hidden; padding:120px 0 80px;}
.hero .wrap{position:relative; z-index:3; width:100%;}
.hero-emblem{position:absolute; top:54%; right:-5%; transform:translateY(-50%); width:min(42vw,520px); opacity:.62; z-index:1;
  animation:emblem-breathe 10s ease-in-out infinite;}
@keyframes emblem-breathe{0%,100%{transform:translateY(-50%) scale(1);}50%{transform:translateY(-50%) scale(1.035);}}
.hero-content{max-width:640px;}
.hero h1{font-family:var(--serif); font-size:clamp(40px,6vw,68px); line-height:1.08; color:var(--ivory); margin:24px 0 26px; font-weight:700;}
.hero h1 em{color:var(--gold); font-style:italic; font-weight:400;}
.hero p.lead{font-size:17px; color:var(--mist); max-width:500px; margin-bottom:38px; line-height:1.75;}

/* ---------- Inner-page hero ---------- */
.page-hero{padding:170px 0 90px; overflow:hidden;}
.page-hero h1{font-family:var(--serif); font-size:clamp(34px,5vw,56px); line-height:1.12; color:var(--ivory); margin:22px 0 22px; font-weight:700; max-width:780px;}
.page-hero h1 em{color:var(--gold); font-style:italic; font-weight:400;}
.page-hero p.lead{font-size:17px; color:var(--mist); max-width:620px; line-height:1.75;}
.page-hero--short{padding-bottom:70px;}

/* ---------- Stats ---------- */
.stats{background:var(--ivory); padding:56px 0;}
.stats .wrap{display:grid; grid-template-columns:repeat(3,1fr);}
.stat{text-align:center; padding:0 24px; border-left:1px solid rgba(16,46,74,.14);}
.stat:first-child{border-left:0;}
.stat .num{font-family:var(--serif); font-size:40px; color:var(--navy); font-weight:700; line-height:1.2;}
.stat .label{font-size:11.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--graphite); opacity:.75; margin-top:8px;}
@media (max-width:640px){
  .stats .wrap{grid-template-columns:1fr; row-gap:28px;}
  .stat{border-left:0; border-top:1px solid rgba(16,46,74,.14); padding-top:24px;}
  .stat:first-child{border-top:0; padding-top:0;}
}

/* ---------- Why Shuhari (pillars + quote) ---------- */
.two-col{display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:start;}
@media (max-width:900px){.two-col{grid-template-columns:1fr; gap:48px;}}
.pillars{display:flex; flex-direction:column; gap:26px;}
.pillar{display:flex; gap:18px; align-items:flex-start;}
.pillar .mark{flex:0 0 auto; width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:15px;}
.pillar h4{font-family:var(--serif); font-size:19px; color:var(--ivory); margin-bottom:6px;}
.pillar p{font-size:14.5px; color:var(--mist); opacity:.9;}
.quote-block{border-left:2px solid var(--gold); padding-left:32px;}
.quote-mark{font-family:var(--serif); font-size:60px; color:var(--gold); line-height:.5; display:block; margin-bottom:14px;}
.quote-block p{font-family:var(--serif); font-style:italic; font-size:22px; line-height:1.55; color:var(--ivory);}
.quote-block--ivory p{color:var(--navy); font-size:clamp(24px,3vw,30px); line-height:1.4;}
.quote-block cite{display:block; margin-top:20px; font-style:normal; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold);}

/* ---------- Cards ---------- */
.card-grid{display:grid; gap:24px;}
.card-grid--3{grid-template-columns:repeat(3,1fr);}
.card-grid--4{grid-template-columns:repeat(4,1fr);}
.card-grid--2{grid-template-columns:repeat(2,1fr);}
@media (max-width:1020px){.card-grid--4{grid-template-columns:repeat(2,1fr);} .card-grid--3{grid-template-columns:1fr 1fr;}}
@media (max-width:700px){.card-grid--4,.card-grid--3,.card-grid--2{grid-template-columns:1fr;}}

.card{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); padding:38px 32px; position:relative; display:flex; flex-direction:column; transition:background .35s, transform .35s, box-shadow .35s;}
.card::before{content:""; position:absolute; top:-1px; left:-1px; width:0; height:2px; background:var(--gold); transition:width .4s ease;}
.card:hover{background:#fff; transform:translateY(-3px); box-shadow:0 18px 40px rgba(16,46,74,.1);}
.card:hover::before{width:calc(100% + 2px);}
.card .kicker{font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600;}
.card h3{font-family:var(--serif); font-size:22px; color:var(--navy); margin:14px 0 12px; line-height:1.3;}
.card p{font-size:14.5px; opacity:.85; line-height:1.7;}
.card .card-link{margin-top:auto; padding-top:26px; font-size:12.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--navy); text-decoration:none; display:inline-flex; gap:8px; align-items:center;}
.card .card-link span{transition:transform .3s;}
.card .card-link:hover span{transform:translateX(4px);}
.card .price{font-family:var(--serif); font-size:26px; color:var(--navy); margin-top:6px;}
.card .price small{font-family:var(--sans); font-size:13px; color:var(--graphite); opacity:.75;}

/* compact service tiles (catalogue) */
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(16,46,74,.14); border:1px solid rgba(16,46,74,.14);}
.svc{background:var(--ivory-card); padding:32px 26px; position:relative; transition:background .35s;}
.svc:hover{background:#fff;}
.svc::before{content:""; position:absolute; top:0; left:0; width:0; height:2px; background:var(--gold); transition:width .4s ease;}
.svc:hover::before{width:100%;}
.svc h3{font-family:var(--serif); font-size:18px; color:var(--navy); line-height:1.3; margin-bottom:10px;}
.svc p{font-size:13.5px; opacity:.82; line-height:1.65;}
.svc-grid--5{grid-template-columns:repeat(5,1fr);}
.svc-grid--dark{background:rgba(190,157,105,.28); border-color:rgba(190,157,105,.28);}
.svc-grid--dark .svc{background:var(--navy-panel);}
.svc-grid--dark .svc:hover{background:#1B4468;}
.svc-grid--dark .svc h3{color:var(--ivory);}
.svc-grid--dark .svc p{color:var(--mist); opacity:.9;}
@media (max-width:1100px){.svc-grid,.svc-grid--5{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.svc-grid,.svc-grid--5{grid-template-columns:1fr;}}
.subhead{display:flex; align-items:baseline; gap:18px; margin:0 0 26px; flex-wrap:wrap;}
.subhead h3{font-family:var(--serif); font-size:26px;}
.subhead span{font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600;}

/* ---------- Method ---------- */
.method-row{display:grid; grid-template-columns:repeat(5,1fr); position:relative;}
.method-row::before{content:""; position:absolute; top:22px; left:6%; right:6%; height:1px; background:rgba(190,157,105,.4);}
.method-step{position:relative; padding:0 18px;}
.step-num{width:46px; height:46px; border-radius:50%; background:var(--navy); border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:var(--serif); color:var(--gold); font-size:16px; position:relative; z-index:2; margin-bottom:22px;}
.method-step h4{font-family:var(--serif); font-size:18px; margin-bottom:10px; color:var(--ivory);}
.method-step p{font-size:13.5px; color:var(--mist); opacity:.88; line-height:1.6;}
@media (max-width:900px){.method-row{grid-template-columns:1fr; gap:34px;} .method-row::before{display:none;} .method-step{padding:0;}}

/* Shu-Ha-Ri phases */
.phase .kicker{font-family:var(--serif); font-size:34px; color:var(--gold); line-height:1;}
.phase .sub{font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--graphite); opacity:.7; margin-top:8px; display:block;}

/* ---------- Pricing ---------- */
.price-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:1020px){.price-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.price-grid{grid-template-columns:1fr;}}
.tier{background:rgba(244,237,226,.06); border:1px solid rgba(190,157,105,.4); padding:34px 28px; display:flex; flex-direction:column; gap:6px;}
.tier .size{font-size:12px; letter-spacing:2.4px; text-transform:uppercase; color:var(--gold); font-weight:600;}
.tier .amount{font-family:var(--serif); font-size:38px; color:var(--ivory); line-height:1.15; margin-top:10px;}
.tier .per{font-size:13px; color:var(--mist); opacity:.85;}
.tier ul{margin-top:22px; padding-top:20px; border-top:1px solid rgba(190,157,105,.3); display:flex; flex-direction:column; gap:12px;}
.tier li{font-size:14px; color:var(--mist); display:flex; gap:10px;}
.tier li::before{content:"◈"; color:var(--gold); font-size:12px; margin-top:3px;}

.included{margin-top:70px;}
.included h3{font-family:var(--serif); font-size:26px; color:var(--ivory); margin-bottom:8px;}
.included .count{font-size:14px; color:var(--mist); opacity:.85; margin-bottom:34px;}
.included-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:34px;}
@media (max-width:1020px){.included-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.included-grid{grid-template-columns:1fr;}}
.included-grid h4{font-size:12px; letter-spacing:2.2px; text-transform:uppercase; color:var(--gold); font-weight:600; padding-bottom:14px; border-bottom:1px solid rgba(190,157,105,.35); margin-bottom:16px;}
.included-grid li{font-size:14px; color:var(--mist); margin-bottom:12px; padding-left:18px; position:relative; line-height:1.55;}
.included-grid li::before{content:""; position:absolute; left:0; top:8px; width:6px; height:6px; background:var(--gold); transform:rotate(45deg);}
.fineprint{margin-top:46px; font-size:13px; color:var(--mist); opacity:.8; max-width:820px; line-height:1.7; border-left:2px solid var(--gold); padding-left:18px;}

/* "Do the math" comparison */
.math{display:grid; grid-template-columns:1.3fr .7fr; gap:24px; align-items:stretch;}
@media (max-width:900px){.math{grid-template-columns:1fr;}}
.math-rows{display:flex; flex-direction:column; gap:24px;}
.math-row{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); padding:30px 32px; display:grid; grid-template-columns:1fr auto; gap:8px 28px; align-items:center;}
.math-row h3{font-family:var(--serif); font-size:20px; color:var(--navy);}
.math-row p{font-size:14px; opacity:.8; grid-column:1; line-height:1.65;}
.math-row .figure{grid-column:2; grid-row:1 / span 2; font-family:var(--serif); font-size:34px; color:var(--navy); font-weight:700; white-space:nowrap; text-align:right; line-height:1.15;}
.math-row .figure small{display:block; font-family:var(--sans); font-size:12px; font-weight:400; letter-spacing:.4px; opacity:.7;}
.math-row--us{border-color:var(--gold); box-shadow:inset 3px 0 0 var(--gold);}
.math-keep{background:var(--navy); color:var(--ivory); padding:36px 34px; display:flex; flex-direction:column; justify-content:center; gap:10px; position:relative; overflow:hidden;}
.math-keep .eyebrow{font-size:11px;}
.math-keep .big{font-family:var(--serif); font-size:46px; color:var(--gold); font-weight:700; line-height:1.1; margin-top:8px;}
.math-keep p{font-size:14px; color:var(--mist); line-height:1.65;}
@media (max-width:560px){.math-row{grid-template-columns:1fr;} .math-row .figure{grid-column:1; grid-row:auto;}}

/* ---------- Pills ---------- */
.pill-row{display:flex; flex-wrap:wrap; gap:12px;}
.pill{border:1px solid var(--navy); color:var(--navy); font-size:13px; letter-spacing:.4px; padding:10px 18px; border-radius:999px; background:rgba(249,244,234,.6); transition:background .3s, color .3s;}
.pill:hover{background:var(--navy); color:var(--ivory);}

/* ---------- Partners ---------- */
.partner{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); display:flex; flex-direction:column; transition:transform .35s, box-shadow .35s;}
.partner:hover{transform:translateY(-3px); box-shadow:0 18px 40px rgba(16,46,74,.1);}
.partner .photo{aspect-ratio:4/5; background:var(--navy); overflow:hidden;}
.partner .photo img{width:100%; height:100%; object-fit:cover;}
.partner .body{padding:26px 26px 30px;}
.partner h3{font-family:var(--serif); font-size:21px; color:var(--navy); line-height:1.3;}
.partner .role{font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600; margin:8px 0 14px; display:block;}
.partner p{font-size:14px; opacity:.82; line-height:1.7;}
.partner p.pending{font-style:italic; opacity:.6;}

/* ---------- CTA band ---------- */
.cta-band{text-align:center; padding:110px 0;}
.cta-band h2{font-family:var(--serif); font-size:clamp(28px,4vw,44px); margin:18px 0 20px; line-height:1.2; color:var(--ivory);}
.cta-band h2 em{color:var(--gold); font-style:italic;}
.cta-band p{color:var(--mist); margin:0 auto 38px; font-size:16px; max-width:560px;}
.cta-band .btn-row{justify-content:center; gap:20px;}
.cta-band--light h2{color:var(--navy);}
.cta-band--light p{color:var(--graphite); opacity:.85;}

/* ---------- Contact / form ---------- */
.contact-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:start;}
@media (max-width:960px){.contact-grid{grid-template-columns:1fr; gap:40px;}}
.contact-panel{background:var(--navy); color:var(--ivory); padding:44px 38px; position:relative; overflow:hidden;}
.contact-panel h2{font-family:var(--serif); font-size:26px; margin-bottom:26px;}
.contact-panel dl{margin:0; display:flex; flex-direction:column; gap:22px;}
.contact-panel dt{font-size:11.5px; letter-spacing:2.2px; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:4px;}
.contact-panel dd{margin:0; font-size:15.5px; color:var(--ivory); word-break:break-word;}
.contact-panel dd a{text-decoration:none; border-bottom:1px solid rgba(190,157,105,.5); transition:color .3s, border-color .3s;}
.contact-panel dd a:hover{color:var(--gold); border-color:var(--gold);}
.contact-panel .note{margin-top:34px; padding-top:26px; border-top:1px solid rgba(190,157,105,.35); font-family:var(--serif); font-style:italic; font-size:17px; line-height:1.6; color:var(--ivory);}

.form-card{background:var(--ivory-card); border:1px solid rgba(16,46,74,.16); padding:44px 42px; box-shadow:0 24px 60px rgba(16,46,74,.08);}
@media (max-width:560px){.form-card{padding:32px 22px;} .contact-panel{padding:34px 26px;}}
.form-card h2{font-family:var(--serif); font-size:28px; color:var(--navy); margin-bottom:8px;}
.form-card .intro{font-size:14.5px; opacity:.8; margin-bottom:30px;}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 20px;}
@media (max-width:620px){.field-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:8px;}
.field--full{grid-column:1 / -1;}
.field label, .field legend{font-size:11.5px; letter-spacing:1.8px; text-transform:uppercase; font-weight:600; color:var(--navy); padding:0;}
.field label .req, .field legend .req{color:var(--gold);}
.field input[type=text], .field input[type=email], .field input[type=tel], .field select, .field textarea{
  font-family:var(--sans); font-size:15px; color:var(--graphite); background:#fff; border:1px solid rgba(16,46,74,.28);
  border-radius:2px; padding:14px 14px; width:100%; transition:border-color .25s, box-shadow .25s;
}
.field textarea{min-height:140px; resize:vertical; line-height:1.6;}
.field select{appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%); background-position:calc(100% - 20px) 55%, calc(100% - 14px) 55%; background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:40px;}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--gold); box-shadow:0 0 0 3px rgba(190,157,105,.25); outline:none;}
.field input:user-invalid, .field textarea:user-invalid, .field select:user-invalid{border-color:#9B3B3B;}
.choice{display:flex; gap:12px; flex-wrap:wrap;}
.choice label{text-transform:none; letter-spacing:.2px; font-size:14.5px; font-weight:500; display:flex; align-items:center; gap:10px; border:1px solid rgba(16,46,74,.28); padding:12px 18px; cursor:pointer; background:#fff; border-radius:2px; transition:border-color .25s, background .25s;}
.choice input{accent-color:var(--navy); width:16px; height:16px; margin:0;}
.choice label:has(input:checked){border-color:var(--navy); background:var(--ivory);}
.field fieldset{border:0; padding:0; margin:0; min-width:0;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-actions{margin-top:30px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.form-actions small{font-size:13px; opacity:.7; max-width:320px; line-height:1.5;}
[hidden]{display:none !important;}

.thanks{text-align:center; max-width:640px; margin:0 auto;}
.thanks .tick{width:72px; height:72px; border:1px solid var(--gold); border-radius:50%; margin:0 auto 28px; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:30px;}

/* ---------- Footer ---------- */
footer{background:var(--navy-deep); color:var(--mist); padding:80px 0 32px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:50px;}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr; row-gap:44px;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
footer .f-logo img{height:42px; width:auto; margin-bottom:20px;}
footer .f-tag{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:14px; margin-bottom:18px;}
footer p.f-desc{font-size:13.5px; opacity:.75; max-width:290px; line-height:1.7;}
footer h5{font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); margin-bottom:20px; font-weight:600;}
footer ul li{margin-bottom:12px; font-size:13.5px; color:rgba(215,216,210,.85);}
footer ul li a{color:var(--mist); text-decoration:none; opacity:.85; transition:opacity .3s, color .3s;}
footer ul li a:hover{opacity:1; color:var(--gold);}
.footer-bottom{margin-top:70px; padding-top:28px; border-top:1px solid rgba(244,237,226,.12); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-bottom p{font-size:12px; opacity:.6;}

/* ---------- Reveal on scroll ---------- */
.js [data-reveal]{opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);}
.js [data-reveal].in-view{opacity:1; transform:none;}

/* ---------- Timeline (Approach page) ---------- */
.timeline{display:flex; flex-direction:column; border-top:1px solid rgba(190,157,105,.35);}
.timeline li{display:grid; grid-template-columns:90px 240px 1fr; gap:10px 32px; align-items:baseline; padding:34px 0; border-bottom:1px solid rgba(190,157,105,.35);}
.timeline .n{font-family:var(--serif); font-size:34px; color:var(--gold); line-height:1;}
.timeline h3{font-family:var(--serif); font-size:24px; color:var(--ivory);}
.timeline p{font-size:15.5px; color:var(--mist); line-height:1.75; max-width:560px;}
@media (max-width:760px){.timeline li{grid-template-columns:56px 1fr; padding:28px 0;} .timeline p{grid-column:2;} .timeline .n{font-size:26px;}}
.svc-grid--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.svc-grid--3{grid-template-columns:1fr;}}
@media (min-width:961px){.contact-panel{position:sticky; top:110px;}}

/* --- added: rank labels, CTA card, training page --- */
.svc .rank{display:block; font-family:var(--serif); font-size:13px; letter-spacing:2px; color:var(--gold); margin-bottom:12px;}
.card--cta{background:var(--navy); border-color:var(--navy);}
.card--cta:hover{background:var(--navy);}
.card--cta h3{color:var(--ivory);} .card--cta p{color:var(--mist); opacity:.9;} .card--cta .card-link{color:var(--gold);}
.method-row--4{grid-template-columns:repeat(4,1fr);}
@media (max-width:1020px){.method-row--4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.method-row--4{grid-template-columns:1fr;}}
.price-grid--2{grid-template-columns:repeat(2,1fr); max-width:760px;}
@media (max-width:560px){.price-grid--2{grid-template-columns:1fr;}}
.prog-head{font-family:var(--serif); font-size:26px; color:var(--ivory); margin:64px 0 24px;}
.prog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(190,157,105,.28); border:1px solid rgba(190,157,105,.28);}
@media (max-width:1020px){.prog-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.prog-grid{grid-template-columns:1fr;}}
.prog{background:var(--navy-panel); padding:30px 28px; display:flex; flex-direction:column; transition:background .3s;}
.prog:hover{background:#1B4468;}
.prog-top{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px;}
.prog .cat{font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600;}
.prog .days{font-size:11.5px; letter-spacing:1px; color:var(--ivory); border:1px solid rgba(190,157,105,.5); padding:3px 10px; border-radius:999px; white-space:nowrap;}
.prog h3{font-family:var(--serif); font-size:20px; color:var(--ivory); line-height:1.3; margin-bottom:16px;}
.prog ul{display:flex; flex-direction:column; gap:9px; margin-bottom:22px;}
.prog li{font-size:14px; color:var(--mist); display:flex; gap:10px;}
.prog li::before{content:"◈"; color:var(--gold); font-size:11px; margin-top:4px;}
.prog-price{margin-top:auto; padding-top:18px; border-top:1px solid rgba(190,157,105,.3); font-family:var(--serif); font-size:22px; color:var(--ivory);}
.prog-price small{display:block; font-family:var(--sans); font-size:12.5px; color:var(--mist); opacity:.85; margin-top:2px;}
.stats-stack{display:flex; gap:40px; justify-content:center; flex-wrap:wrap;}
.stats-stack .stat{text-align:center;}
.stats-stack .num{font-family:var(--serif); font-size:56px; color:var(--navy); line-height:1;}
.stats-stack .label{font-size:13px; letter-spacing:1.4px; text-transform:uppercase; margin-top:8px; opacity:.8;}
nav.links{gap:28px;}
@media (min-width:1021px) and (max-width:1180px){nav.links{gap:18px;} nav.links .btn{padding:12px 16px;}}
/* method steps on light sections */
.on-ivory .method-step h4{color:var(--navy);}
.on-ivory .method-step p{color:var(--graphite); opacity:.9;}
.on-ivory .method-row::before{background:rgba(16,46,74,.25);}
.partner .spec{font-size:13px; font-weight:600; color:var(--navy); letter-spacing:.3px; margin:-6px 0 14px; display:block;}
.partner .bio{font-size:14.5px; line-height:1.7; opacity:.9;}
/* partner profile cards (horizontal) */
.pgrid{display:grid; grid-template-columns:repeat(2,1fr); gap:28px;}
@media (max-width:1100px){.pgrid{grid-template-columns:1fr;}}
.pcard{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); display:grid; grid-template-columns:240px 1fr; position:relative; transition:box-shadow .35s, transform .35s;}
.pcard:hover{box-shadow:0 18px 40px rgba(16,46,74,.1); transform:translateY(-3px);}
.pcard::before{content:""; position:absolute; top:-1px; left:-1px; width:3px; height:calc(100% + 2px); background:var(--gold);}
.pcard .photo{background:var(--navy); overflow:hidden; min-height:260px;}
.pcard .photo img{width:100%; height:100%; object-fit:cover; object-position:50% 15%; display:block;}
.pcard .body{padding:30px 30px 32px;}
.pcard .role{font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600; display:block; margin-bottom:6px;}
.pcard h3{font-family:var(--serif); font-size:24px; color:var(--navy); line-height:1.25; margin-bottom:14px;}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
.chip{font-size:11.5px; letter-spacing:.3px; color:var(--navy); border:1px solid rgba(16,46,74,.3); padding:4px 11px; border-radius:999px; background:rgba(255,255,255,.5);}
.pcard .bio{font-size:14px; line-height:1.7; opacity:.9;}
@media (max-width:560px){.pcard{grid-template-columns:1fr;} .pcard .photo{height:300px;}}
/* partner card v2: photo + tags on a navy side panel */
.pcard{grid-template-columns:250px 1fr;}
.pcard .side{background:var(--navy); display:flex; flex-direction:column;}
.pcard .side img{width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%; display:block;}
.pcard .side .chips{padding:18px 18px 22px; margin:0;}
.pcard .side .chip{color:var(--ivory); border-color:rgba(190,157,105,.55); background:transparent;}
.pcard h3{margin-bottom:16px;}
@media (max-width:560px){.pcard{grid-template-columns:1fr;} .pcard .side img{aspect-ratio:4/4;}}

.pcard .side .sect-label{font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:600; padding:18px 18px 0;}
.pcard .side .sect-label + .chips{padding-top:10px;}

/* ---------- client portal ---------- */
.pt-app{min-height:320px;}
.pt-center{display:flex; justify-content:center;}
.pt-login{width:100%; max-width:520px;}
.pt-bar{display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid rgba(16,46,74,.18);}
.pt-title{font-family:var(--serif); font-size:26px; color:var(--navy); text-decoration:none;}
.pt-who{font-size:13.5px; margin-left:auto; opacity:.85;}
.pt-small{padding:9px 16px; font-size:12px;}
.pt-actions{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:22px;}
.pt-filters{display:flex; gap:12px; align-items:center; flex-wrap:wrap;}
.pt-filters select{min-width:170px;}
.pt-check{display:inline-flex; gap:7px; align-items:center; font-size:14px; cursor:pointer;}
.pt-check input{width:auto;}
.pt-list{display:flex; flex-direction:column; gap:12px;}
.pt-row{display:block; background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); border-left:3px solid var(--gold); padding:18px 22px; text-decoration:none; color:inherit; transition:box-shadow .3s, transform .3s;}
.pt-row:hover{box-shadow:0 14px 32px rgba(16,46,74,.1); transform:translateY(-2px);}
.pt-row--late{border-left-color:#B3402A;}
.pt-row-main{display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; margin-bottom:10px;}
.pt-row-main strong{font-family:var(--serif); font-size:18px; color:var(--navy);}
.pt-row-meta{display:flex; gap:18px; flex-wrap:wrap; font-size:13px; align-items:center; opacity:.9;}
.pt-ref{font-size:12px; letter-spacing:1.6px; color:var(--gold); font-weight:600;}
.pt-co{font-size:12px; background:var(--navy); color:var(--ivory); padding:3px 10px; border-radius:999px;}
.pt-late{color:#B3402A; font-weight:600;}
.pt-badge{font-size:11.5px; letter-spacing:.6px; font-weight:600; padding:4px 11px; border-radius:999px; border:1px solid var(--navy); color:var(--navy); white-space:nowrap;}
.pt-badge--open{background:#E4EDF5;} .pt-badge--in-progress{background:#F3E7CF; border-color:#BE9D69;}
.pt-badge--waiting-on-client{background:#F6DFD6; border-color:#B3402A; color:#7A2A19;}
.pt-badge--resolved{background:#DCEBDD; border-color:#4C7A52; color:#2F5535;} .pt-badge--closed{background:#E6E6E6; border-color:#999; color:#555;}
.pt-note{background:rgba(190,157,105,.14); border:1px solid rgba(190,157,105,.5); padding:14px 18px; font-size:14px; margin:14px 0;}
.pt-note--error{background:#F6DFD6; border-color:#B3402A; color:#7A2A19;}
.pt-back{display:inline-block; margin-bottom:14px; font-size:13px; color:var(--navy);}
.pt-head{display:flex; gap:14px; align-items:baseline; flex-wrap:wrap; margin-bottom:18px;}
.pt-head h2{font-family:var(--serif); color:var(--navy); font-size:28px; line-height:1.25;}
.pt-info{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:rgba(16,46,74,.14); border:1px solid rgba(16,46,74,.14); margin-bottom:26px;}
.pt-info>div{background:var(--ivory-card); padding:14px 18px; display:flex; flex-direction:column; gap:6px; align-items:flex-start;}
.pt-info span:first-child{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; opacity:.7;}
.pt-cols{display:grid; grid-template-columns:1fr; gap:28px;}
@media (min-width:961px){.pt-cols:has(.pt-panel){grid-template-columns:1fr 340px; align-items:start;}}
.pt-thread{display:flex; flex-direction:column; gap:14px; margin-bottom:22px;}
.pt-msg{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); padding:16px 20px;}
.pt-msg--staff{background:#EAF0F6; border-color:rgba(16,46,74,.25);}
.pt-msg--internal{background:#FBF1D9; border:1px dashed #BE9D69;}
.pt-msg-h{display:flex; gap:12px; justify-content:space-between; flex-wrap:wrap; font-size:13px; margin-bottom:8px;}
.pt-msg-h span:last-child{opacity:.65;}
.pt-msg p{white-space:pre-wrap; word-break:break-word; font-size:15px; line-height:1.7;}
.pt-tag{font-size:11px; background:#BE9D69; color:var(--navy); padding:2px 8px; font-weight:600; letter-spacing:.5px;}
.pt-reply textarea{min-height:120px; width:100%; margin-bottom:10px;}
.pt-reply .pt-check{display:flex; margin-bottom:12px;}
.pt-panel{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); border-top:3px solid var(--navy); padding:22px;}
.pt-panel h3{font-family:var(--serif); color:var(--navy); margin-bottom:14px;}
.pt-panel .field-grid{grid-template-columns:1fr;}
.pt-followers{display:flex; flex-direction:column; gap:6px; margin-top:6px;}
/* portal polish */
.pt-panel label{display:block; margin:16px 0 6px;}
.pt-panel h3 + label{margin-top:0;}
.pt-panel input[type=date],.pt-panel input[type=number],.pt-panel input[type=text],.pt-panel select{width:100%; min-height:46px; padding:10px 12px; border:1px solid rgba(16,46,74,.25); background:#fff; font:inherit;}
.pt-followers label{display:flex; align-items:center; gap:8px; margin:0;}
.pt-panel .btn{margin-top:18px;}
.pt-filters select{min-height:42px; padding:8px 10px; border:1px solid rgba(16,46,74,.25); background:#fff; font:inherit; max-width:100%;}
@media (max-width:600px){.pt-filters{width:100%}.pt-filters select{flex:1 1 100%}}
.pt-panel select,.pt-filters select{appearance:none; -webkit-appearance:none; padding-right:34px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23102E4A' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;}
.pt-prio{font-size:11.5px; font-weight:700; letter-spacing:.6px; padding:4px 10px; border-radius:999px;}
.pt-prio--high{background:#F3E7CF; color:#7A5A1E; border:1px solid #BE9D69;}
.pt-prio--urgent{background:#B3402A; color:#fff; border:1px solid #B3402A;}
.pt-row--urgent{border-left-color:#B3402A; border-left-width:5px;}
.pt-link{color:var(--navy); text-decoration:underline; margin-left:auto; margin-right:-4px;}
/* attachments */
.pt-attach input[type=file]{width:100%; padding:10px; background:#fff; border:1px dashed rgba(16,46,74,.4); font:inherit;}
.pt-attach small{display:block; margin-top:6px; color:#5b6670;}
.pt-files{list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:6px;}
.pt-files li{display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fff; border:1px solid rgba(16,46,74,.15); padding:6px 10px; font-size:14px; overflow-wrap:anywhere;}
.pt-files--saved{margin-top:10px;}
.pt-files--saved li{justify-content:flex-start; background:rgba(255,255,255,.7);}
.pt-x{border:0; background:none; font-size:20px; line-height:1; cursor:pointer; color:#7A2A19; padding:0 4px;}
.pt-filelink{border:0; background:none; padding:0; font:inherit; color:var(--navy); text-decoration:underline; cursor:pointer; text-align:left; overflow-wrap:anywhere;}
.pt-reply .pt-attach{margin-top:12px;}
/* clients & people */
.pt-link2{color:var(--navy); text-decoration:underline;}
.pt-fold{background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); margin:0 0 12px;}
.pt-fold>summary{cursor:pointer; padding:14px 18px; display:flex; gap:12px; align-items:baseline; justify-content:space-between; font-weight:600; color:var(--navy); list-style:none;}
.pt-fold>summary::-webkit-details-marker{display:none}
.pt-fold[open]>summary{border-bottom:1px solid rgba(16,46,74,.1);}
.pt-fold>.pt-mini,.pt-fold-body{padding:16px 18px;}
.pt-fold--inner{background:#fff; margin-top:14px;}
.pt-muted{color:#5b6670; font-weight:400; font-size:14px;}
.pt-dl{display:grid; grid-template-columns:150px 1fr; gap:6px 14px; margin:0 0 14px;}
.pt-dl dt{font-size:12px; letter-spacing:.8px; text-transform:uppercase; color:#5b6670;} .pt-dl dd{margin:0; overflow-wrap:anywhere;}
.pt-fold-body h4{font-family:var(--serif); color:var(--navy); margin:20px 0 8px;}
.pt-person{display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid rgba(16,46,74,.1);}
.pt-person--off{opacity:.6;}
.pt-person-main{display:flex; flex-direction:column; gap:2px; min-width:0; overflow-wrap:anywhere;} .pt-person-main span{font-size:14px; color:#44505a;}
.pt-person-act{display:flex; gap:8px; flex-wrap:wrap;}
.pt-person>div:last-child:not(.pt-person-act){flex-basis:100%;}
.pt-mini .field{margin-bottom:12px;}
.pt-contact{margin:0 0 14px; color:#44505a;}
@media (max-width:600px){.pt-dl{grid-template-columns:1fr}}
/* search, export, feedback, time */
.pt-filters input[type=search]{min-height:42px; padding:8px 12px; border:1px solid rgba(16,46,74,.25); background:#fff; font:inherit; min-width:240px; flex:1 1 240px;}
.pt-export{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:28px; padding-top:18px; border-top:1px solid rgba(16,46,74,.14);}
.pt-feedback{margin-top:20px; padding:18px; background:var(--ivory-card); border:1px solid rgba(16,46,74,.14); border-left:4px solid var(--gold);}
.pt-feedback h3{font-family:var(--serif); color:var(--navy); margin:0 0 10px;}
.pt-feedback textarea{width:100%; margin:10px 0; font:inherit; padding:10px; border:1px solid rgba(16,46,74,.25);}
.pt-thumbs{display:flex; gap:12px;}
.pt-thumb{font-size:26px; line-height:1; padding:10px 18px; background:#fff; border:2px solid rgba(16,46,74,.2); cursor:pointer; border-radius:8px;}
.pt-thumb.is-on{border-color:var(--navy); background:#E4EDF5;}
.pt-times{list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:6px;}
.pt-times li{display:flex; justify-content:space-between; gap:8px; align-items:flex-start; font-size:14px; background:#fff; border:1px solid rgba(16,46,74,.12); padding:8px 10px; overflow-wrap:anywhere;}
@media (max-width:600px){.pt-filters input[type=search]{min-width:0; flex-basis:100%;}}
/* sla, summary, mfa */
.pt-sla{font-size:12.5px; font-weight:600; padding:3px 10px; border-radius:999px; background:#E4EDF5; color:#102E4A; border:1px solid #102E4A;}
.pt-sla--late{background:#F6DFD6; color:#7A2A19; border-color:#B3402A;}
.pt-qr{display:block; margin:0 auto 12px; background:#fff; padding:8px; border:1px solid rgba(16,46,74,.15);}
.pt-center code{background:#fff; padding:2px 6px; border:1px solid rgba(16,46,74,.15); overflow-wrap:anywhere;}
.pt-report{background:#fff; border:1px solid rgba(16,46,74,.15); padding:28px; margin-top:20px;}
.pt-report h2{font-family:var(--serif); color:var(--navy); margin:2px 0 4px;} .pt-report h3{font-family:var(--serif); color:var(--navy); margin:22px 0 8px;}
.pt-report-brand{letter-spacing:3px; font-size:12px; color:var(--gold); margin:0; font-weight:700;} .pt-report-sub{margin:0 0 18px; color:#44505a;} .pt-report-foot{margin-top:24px; font-size:12px; color:#5b6670;}
.pt-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px;}
.pt-stat{background:var(--ivory-card); border:1px solid rgba(16,46,74,.12); padding:14px;} .pt-stat strong{display:block; font-family:var(--serif); font-size:26px; color:var(--navy);} .pt-stat span{font-size:12.5px; color:#44505a;}
.pt-table{width:100%; border-collapse:collapse; font-size:14px;} .pt-table th,.pt-table td{text-align:left; padding:7px 8px; border-bottom:1px solid rgba(16,46,74,.12); vertical-align:top; overflow-wrap:anywhere;} .pt-table th{font-size:12px; letter-spacing:.6px; text-transform:uppercase; color:#5b6670;}
@media (max-width:700px){.pt-report{padding:16px; overflow-x:auto}}
@media print{
  .skip-link,header.nav,.nav-overlay,.page-hero,footer,.pt-noprint,.pt-bar,.pt-tabs{display:none !important;}
  .pattern-ivory,body{background:#fff !important;}
  .pt-report{border:0; padding:0; margin:0;}
  .pt-stat{break-inside:avoid;} .pt-table tr{break-inside:avoid;}
}

/* ---------- Home v2 (audit fixes) ---------- */
:root{--gold-ink:#7D5F25;}
section{padding:84px 0;}
@media (max-width:700px){section{padding:56px 0;}}
.on-ivory .eyebrow,.cta-band--light .eyebrow,.card .kicker,.on-ivory .partner .role{color:var(--gold-ink);}
.on-ivory .eyebrow::before,.on-ivory .eyebrow::after{background:var(--gold-ink);}
.card--cta .kicker{color:var(--gold);}
.card .price small,.stat .label{opacity:1; color:#4A5560;}
.hero{min-height:0; padding:150px 0 96px;}
.hero-emblem{right:6%; top:50%; width:min(30vw,380px); opacity:.9; animation:none; transform:translateY(-50%);}
@media (max-width:900px){.hero-emblem{display:none;} .hero{padding:120px 0 64px;}}
@media (max-width:700px){
  .stats{padding:28px 0;}
  .stats .wrap{grid-template-columns:repeat(3,1fr); row-gap:0;}
  .stat{border-top:0!important; border-left:1px solid rgba(16,46,74,.14); padding:0 8px;}
  .stat:first-child{border-left:0;}
  .stat .num{font-size:28px;} .stat .label{font-size:10.5px; letter-spacing:.8px;}
  .section-head{margin-bottom:32px;}
  .card{padding:22px;}
}
.pillars--row{flex-direction:row; gap:36px; margin-bottom:56px;}
.pillars--row .pillar{flex:1;}
@media (max-width:900px){.pillars--row{flex-direction:column; gap:20px; margin-bottom:40px;}}
.method-title{font-family:var(--serif); font-size:24px; color:var(--ivory); margin:0 0 28px; padding-top:40px; border-top:1px solid rgba(190,157,105,.35);}
.lead-faces{display:flex; gap:26px; flex-wrap:wrap; justify-content:center;}
.lead-faces figure{margin:0; text-align:center; width:132px;}
.lead-faces img,.face-initials{width:104px; height:104px; border-radius:50%; object-fit:cover; object-position:top; border:3px solid var(--gold); display:block; margin:0 auto 10px;}
.face-initials{background:var(--navy); color:var(--gold); font-family:var(--serif); font-size:30px; display:flex; align-items:center; justify-content:center; box-sizing:border-box;}
.lead-faces figcaption{font-family:var(--serif); font-size:13.5px; color:var(--navy); font-weight:700; line-height:1.3;}
@media (max-width:700px){.lead-faces{display:grid; grid-template-columns:1fr 1fr; gap:20px 8px;} .lead-faces figure{width:auto;}}
.menu-toggle{min-width:44px; min-height:44px;}
footer ul li a{display:inline-block; padding:8px 0;}
footer ul li{margin-bottom:0;}
nav.links a:not(.btn){padding-top:12px; padding-bottom:12px;}
@media (max-width:700px){
  .method-row{gap:18px;}
  .method-step{display:grid; grid-template-columns:46px 1fr; column-gap:16px; align-items:start;}
  .method-step .step-num{grid-row:1 / span 2; margin:0;}
  .method-step h4{margin:0 0 2px;}
  .method-step p{margin:0; font-size:14px;}
  .method-title{padding-top:28px; margin-bottom:20px;}
  .card .kicker{display:none;}
  .card--cta .kicker{display:block;}
  .card .card-link{padding-top:14px;}
  .card-grid{gap:12px;}
  .pillars--row{margin-bottom:28px;}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr 1fr; gap:24px 16px;}
  .footer-grid > div:first-child{grid-column:1 / -1;}
  .footer-grid > div:last-child{grid-column:1 / -1;}
  footer ul li{font-size:14px;}
}

nav.links{gap:26px;} nav.links a{white-space:nowrap;}
nav.links a[href="portal.html"]:not(.btn){border:1px solid rgba(190,157,105,.6); color:var(--gold); padding:10px 16px; opacity:1;}
nav.links a[href="portal.html"]:not(.btn)::after{display:none;}
@media (max-width:1280px){nav.links a[href="portal.html"]:not(.btn){padding:12px 16px; margin-top:6px;}}
header.nav .logo{flex-shrink:0;} header.nav .logo img{max-width:none;}
header.nav .logo{margin-right:32px;} nav.links{gap:22px;} nav.links a:not(.btn){letter-spacing:1.5px;} nav.links .btn{padding:14px 20px;}
@media (max-width:1280px){header.nav .logo{margin-right:0;}}

/* ---------- Portal dashboard ---------- */
.pt-dash-head{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:22px;}
.pt-dash-head h2{font-family:var(--serif); font-size:30px; color:var(--navy); margin:0;}
.pt-dash-head p{margin:4px 0 0;}
.pt-tiles{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:28px;}
.pt-tiles--4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:1100px){.pt-tiles{grid-template-columns:repeat(3,minmax(0,1fr));} .pt-tiles--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.pt-tiles,.pt-tiles--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
.pt-tile{font:inherit; text-align:left; cursor:pointer; background:var(--ivory-card); border:1px solid rgba(16,46,74,.16); border-top:3px solid var(--navy); padding:16px 16px 14px; min-height:44px; display:flex; flex-direction:column; gap:2px; color:var(--navy); transition:box-shadow .25s, transform .25s;}
.pt-tile:hover{box-shadow:0 12px 26px rgba(16,46,74,.12); transform:translateY(-2px);}
.pt-tile strong{font-family:var(--serif); font-size:34px; line-height:1.1;}
.pt-tile span{font-size:13px; color:#3A444D; font-weight:600;}
.pt-tile small{font-size:12px; color:#4A5560;}
.pt-tile--warn{border-top-color:var(--gold-ink);}
.pt-tile--late{border-top-color:#B3402A;} .pt-tile--late strong{color:#B3402A;}
.pt-dash-grid{display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:24px; align-items:start;}
@media (max-width:900px){.pt-dash-grid{grid-template-columns:1fr;}}
.pt-dash-col{display:flex; flex-direction:column; gap:24px; min-width:0;}
.pt-card{background:transparent; min-width:0;}
.pt-card-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:12px; padding-bottom:8px; border-bottom:1px solid rgba(16,46,74,.18);}
.pt-card-head h3{font-family:var(--serif); font-size:19px; color:var(--navy); margin:0;}
.pt-card .pt-row{margin-bottom:10px;}
.pt-card .pt-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.pt-bars{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px;}
.pt-bars li{margin:0;}
.pt-bars-btn,.pt-bars li > span{display:grid; grid-template-columns:minmax(90px,38%) 1fr 28px; gap:10px; align-items:center;}
.pt-bars li{display:block;}
.pt-bars-btn{width:100%; font:inherit; background:none; border:0; padding:0; min-height:36px; cursor:pointer; text-align:left; color:inherit;}
.pt-bars-btn:hover .pt-bars-fill{background:var(--navy);}
.pt-bars-label{font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.pt-bars-track{display:block; height:10px; background:rgba(16,46,74,.1);}
.pt-bars-fill{display:block; height:100%; background:var(--gold-ink); transition:background .2s;}
.pt-bars-n{font-weight:700; color:var(--navy); text-align:right; font-size:14px;}
.pt-preset{margin:0 0 14px; padding:10px 14px; background:rgba(190,157,105,.16); border:1px solid rgba(125,95,37,.35); font-size:14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.pt-card{padding:0;}

.tier--np .size{display:block; font-family:var(--serif); font-size:22px; letter-spacing:0; text-transform:none; font-weight:700; margin-bottom:16px;}

/* portal section tabs */
.pt-tabs{display:flex; gap:4px; margin:-8px 0 26px; border-bottom:1px solid rgba(16,46,74,.18); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.pt-tabs::-webkit-scrollbar{display:none;}
.pt-tab{flex:0 0 auto; display:inline-flex; align-items:center; min-height:48px; padding:0 22px; font-size:15px; font-weight:600; color:#3A444D; text-decoration:none; border-bottom:3px solid transparent; margin-bottom:-1px; transition:color .15s, background .15s;}
.pt-tab:hover{color:var(--navy); background:rgba(16,46,74,.05);}
.pt-tab.is-on{color:var(--navy); border-bottom-color:var(--gold); background:rgba(190,157,105,.14);}
.pt-tab--ext{margin-left:auto;}
.pt-bar{margin-bottom:18px; border-bottom:0; padding-bottom:0;}
@media (max-width:760px){ .pt-tab{padding:0 16px; font-size:14.5px;} .pt-tabs{margin-top:0;} }

/* contact: client login box */
.contact-side{display:flex; flex-direction:column; gap:24px;}
.login-card{background:var(--ivory-card, #FBF8F1); border:1px solid rgba(16,46,74,.16); border-top:4px solid var(--gold); padding:34px 38px;}
.login-card .eyebrow{display:block; margin-bottom:8px;}
.login-card h2{font-family:var(--serif); font-size:26px; color:var(--navy); margin:0 0 10px;}
.login-card p{margin:0 0 22px; color:#3A444D;}
.login-card .btn{display:inline-flex;}

/* careers page */
.job-list{display:flex; flex-direction:column; gap:20px; margin-top:28px;}
.job{background:#FBF8F1; border:1px solid rgba(16,46,74,.16); border-left:4px solid var(--gold); padding:28px 32px;}
.job h3{font-family:var(--serif); font-size:24px; color:var(--navy); margin:0 0 6px;}
.job-meta{margin:0; font-size:13px; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold-ink); font-weight:600;}
.job-sum{margin:14px 0 0; color:#2C3035;}
.job-more{margin-top:14px;}
.job-more summary{cursor:pointer; color:var(--navy); font-weight:600; min-height:44px; display:flex; align-items:center;}
.job-more h4{font-family:var(--serif); color:var(--navy); margin:18px 0 8px;}
.job-more ul{margin:0; padding-left:20px;}
.job-more li{margin-bottom:6px;}
.job-apply{margin-top:18px;}
.job-empty{background:#FBF8F1; border:1px solid rgba(16,46,74,.16); padding:34px; text-align:left;}
.job-empty h3{font-family:var(--serif); color:var(--navy); margin:0 0 8px;}
.job-empty p{margin:0 0 18px;}
.job-privacy{margin-top:28px; max-width:720px; opacity:.85; font-size:14.5px;}

/* recruitment (staff) */
.rc-sub{display:flex; gap:4px; margin:0 0 20px;}
.rc-subtab{padding:8px 16px; font-weight:600; font-size:14px; color:#3A444D; text-decoration:none; border:1px solid rgba(16,46,74,.2);}
.rc-subtab.is-on{background:var(--navy); color:var(--ivory); border-color:var(--navy);}
.rc-filters{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:20px;}
@media (max-width:760px){.rc-filters{grid-template-columns:1fr;}}
.rc-tablewrap{overflow-x:auto;}
.rc-table{width:100%; border-collapse:collapse; background:#FBF8F1; font-size:14.5px;}
.rc-table th{text-align:left; font-size:11.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--navy); padding:12px 14px; border-bottom:2px solid var(--gold);}
.rc-table td{padding:12px 14px; border-bottom:1px solid rgba(16,46,74,.12); vertical-align:top;}
.rc-head{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:flex-end;}
.rc-head h2{margin:0;}
.rc-status{min-width:220px;}
.rc-dl{display:grid; grid-template-columns:repeat(2,1fr); gap:14px 24px; margin:0 0 16px;}
@media (max-width:620px){.rc-dl{grid-template-columns:1fr;}}
.rc-kv dt{font-size:11.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--gold-ink); font-weight:600;}
.rc-kv dd{margin:2px 0 0;}
.rc-cover{white-space:pre-wrap; background:rgba(16,46,74,.04); padding:14px 16px; margin:0 0 16px;}
.rc-note{border-left:3px solid var(--gold); padding:4px 0 4px 14px; margin-bottom:12px;}
.rc-note p{margin:2px 0 0; white-space:pre-wrap;}
.rc-job{display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; margin-bottom:14px;}
.rc-job h3{margin:0;}
.rc-jobctl{display:flex; gap:10px; align-items:center;}


/* three boxes in the top menu: Client login, Careers, Book a Consultation */
.nav-actions{display:flex; align-items:center; gap:10px; margin-left:6px;}
nav.links .nav-box{margin:0; padding:13px 18px; font-size:12px; letter-spacing:1.3px; white-space:nowrap;}
nav.links .nav-box.btn-outline[aria-current="page"]{background:rgba(190,157,105,.18);}
@media (max-width:1280px){
  .nav-actions{flex-direction:column; align-items:stretch; width:100%; margin:6px 0 0; gap:12px;}
  nav.links .nav-box{padding:15px 18px; text-align:center;}
}
@media (min-width:1281px){
  header.nav .logo{margin-right:34px;}
  nav.links{gap:14px;} nav.links a:not(.btn){letter-spacing:1px; font-size:12.5px;}
  .nav-actions{gap:8px; margin-left:4px;}
  nav.links .nav-box{padding:12px 13px; font-size:11px; letter-spacing:.9px;}
}
@media (min-width:1281px) and (max-width:1500px){ header.nav .wrap{padding-left:28px; padding-right:28px;} }

/* recruitment: positions, CV database */
.rc-position{display:flex; justify-content:space-between; align-items:center; gap:16px; background:#FBF8F1; border:1px solid rgba(16,46,74,.16); border-left:4px solid var(--gold); padding:20px 26px; margin-bottom:14px; text-decoration:none; color:inherit; transition:box-shadow .2s, transform .2s;}
.rc-position:hover,.rc-position:focus-visible{box-shadow:0 10px 26px rgba(10,20,35,.14); transform:translateY(-2px);}
.rc-position h3{margin:0 0 2px; font-family:var(--serif); color:var(--navy); font-size:20px;}
.rc-position p{margin:0;}
.rc-pos-side{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.rc-go{font-size:22px; color:var(--gold-ink);}
.rc-new{background:var(--gold); color:var(--navy); font-weight:700; font-size:12px; padding:4px 10px; letter-spacing:.8px; text-transform:uppercase;}
.rc-jobstate{font-size:11.5px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; padding:4px 10px; background:rgba(16,46,74,.1); color:var(--navy);}
.rc-jobstate--open{background:#DCEBDD; color:#1E5A2B;}
.rc-jobstate--closed{background:#ECE7DE; color:#4A5560;}
.rc-filters--4{grid-template-columns:repeat(4,1fr); align-items:end;}
@media (max-width:900px){.rc-filters--4{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.rc-filters--4{grid-template-columns:1fr;}}
.rc-tools{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.rc-colpick{position:relative;}
.rc-colpick summary{cursor:pointer; list-style:none; display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border:1px solid var(--navy); color:var(--navy); font-weight:700; font-size:12px; letter-spacing:1.4px; text-transform:uppercase;}
.rc-colpick summary::-webkit-details-marker{display:none;}
.rc-colbox{position:absolute; z-index:20; top:calc(100% + 6px); left:0; min-width:270px; background:#FBF8F1; border:1px solid rgba(16,46,74,.25); box-shadow:0 14px 34px rgba(10,20,35,.2); padding:12px 16px; display:flex; flex-direction:column; gap:2px;}
.rc-colopt{display:flex; align-items:center; gap:10px; min-height:36px; font-size:14.5px; cursor:pointer; text-transform:none; letter-spacing:0; font-weight:400;}
.rc-colopt input{width:20px; height:20px; accent-color:var(--navy);}
.rc-wide{min-width:260px; max-width:420px; white-space:pre-wrap;}
.rc-table td button{white-space:nowrap;}
nav.links .nav-box.btn-outline{border-color:var(--gold); color:var(--ivory);}
nav.links .nav-box.btn-outline:hover{background:var(--gold); color:var(--navy);}
.rc-bar{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin:6px 0 14px;}
.rc-bar p{margin:0;}
.rc-colbox{max-height:60vh; overflow:auto;}
.job-about{margin:6px 0 0;font-size:14px;color:var(--navy);opacity:.8;font-style:italic}
