/*
  Shared subpage system for Impact Business Alliance.
  This file extends home.css so every internal page uses the exact same
  typography, colour system, spacing rhythm, button treatment, header,
  footer, mobile drawer and motion language as the homepage.
*/

body.subpage{background:var(--cream)}
.subpage main{overflow:hidden}

/* Shared internal hero */
.sub-hero{position:relative;min-height:82svh;background:var(--navy);color:#fff;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.sub-hero-media{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;z-index:-4;will-change:transform;animation:heroZoom 14s ease-out both}
.sub-hero-shade{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(4,10,18,.94) 0%,rgba(4,10,18,.78) 42%,rgba(4,10,18,.38) 76%,rgba(4,10,18,.18) 100%),linear-gradient(0deg,rgba(4,10,18,.70),transparent 42%)}
.sub-hero-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:calc(100%/6) 100%;mask-image:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.1))}
.sub-hero-inner{width:min(var(--max),calc(100% - 2*var(--pad)));margin:0 auto;padding:190px 0 94px}
.sub-hero-copy{max-width:1050px}
.sub-hero .iba-eyebrow{margin-bottom:24px}
.sub-hero h1{font-size:clamp(58px,6vw,92px);line-height:.93;letter-spacing:-.055em;max-width:12ch;margin:0 0 28px;text-wrap:balance}
.sub-hero .lead{font-size:clamp(15px,1.2vw,18px);line-height:1.72;color:#d4d8dc;max-width:760px;margin-bottom:32px}
.sub-hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.sub-hero-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:0;height:1px;background:rgba(255,255,255,.28)}

/* Generic section headings */
.sub-section{padding:var(--section) 0}
.sub-section-white{background:#fff}
.sub-section-ivory{background:var(--ivory)}
.sub-section-navy{background:var(--navy);color:#fff}
.sub-heading-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(50px,7vw,105px);align-items:start;margin-bottom:clamp(52px,6vw,88px)}
.sub-heading-grid h2{max-width:12ch}
.sub-heading-grid .intro{font-size:15px;line-height:1.78;color:#666c69;max-width:60ch;padding-top:4px}
.sub-section-navy .sub-heading-grid .intro{color:#abb4be}
.sub-section-navy .section-label{color:var(--gold-light)}
.sub-copy-large{font-family:"Familjen Grotesk",Inter,sans-serif;font-size:clamp(27px,3.1vw,44px);line-height:1.08;letter-spacing:-.035em;color:var(--ink);margin:0}
.sub-section-navy .sub-copy-large{color:#fff}

/* Editorial split */
.editorial-split{display:grid;grid-template-columns:1fr 1fr;min-height:720px;background:#fff}
.editorial-split.reverse .editorial-media{order:2}
.editorial-split.reverse .editorial-copy{order:1}
.editorial-media{position:relative;overflow:hidden;min-height:620px;background:#ddd}
.editorial-media img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;will-change:transform}
.editorial-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(70px,8vw,120px) clamp(45px,7vw,110px)}
.editorial-copy h2{font-size:clamp(44px,5vw,74px);max-width:10ch;margin-bottom:28px}
.editorial-copy>p{color:#666c69;line-height:1.78;max-width:58ch}
.editorial-copy .split-btn{margin-top:22px;align-self:flex-start}

/* Philosophy / principles */
.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2)}
.principle-card{min-height:320px;padding:28px;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.principle-card>span{font-size:10px;color:var(--gold-light);letter-spacing:.14em}
.principle-card h3{font-size:clamp(28px,2.8vw,40px);line-height:1;margin:auto 0 18px;color:#fff}
.principle-card p{font-size:12px;line-height:1.7;color:#adb6c0;max-width:30ch;margin:0}

/* Leadership */
.leader-panel{display:grid;grid-template-columns:.88fr 1.12fr;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.leader-portrait{min-height:640px;background:var(--navy);position:relative;overflow:hidden}
.leader-portrait img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.leader-portrait.no-photo{display:grid;place-items:center;background:linear-gradient(145deg,#0b192b,#07111f)}
.leader-monogram{font-family:"Familjen Grotesk";font-size:clamp(120px,17vw,250px);line-height:1;color:rgba(255,255,255,.08);letter-spacing:-.08em}
.leader-copy{padding:clamp(60px,7vw,105px)}
.leader-copy h2{font-size:clamp(46px,5vw,74px);margin-bottom:10px}
.leader-role{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#806e4c;margin-bottom:38px}
.leader-copy p{color:#646a67;line-height:1.8;max-width:62ch}
.leader-copy .text-link{margin-top:18px}

/* Stats */
.sub-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #cbc5ba;border-bottom:1px solid #cbc5ba}
.sub-stat{padding:clamp(38px,5vw,64px) 0}
.sub-stat+.sub-stat{border-left:1px solid #cbc5ba;padding-left:clamp(35px,5vw,70px)}
.sub-stat strong{display:block;font-family:"Familjen Grotesk";font-weight:500;font-size:clamp(86px,10vw,150px);line-height:.78;letter-spacing:-.065em;color:var(--navy)}
.sub-stat span{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#776a51;margin-top:22px}
.stat-statement{font-family:"Familjen Grotesk";font-size:clamp(30px,4vw,56px);line-height:1.03;letter-spacing:-.04em;max-width:23ch;margin:60px auto 0;text-align:center}

/* Private Clients capabilities */
.capability-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.capability-card{min-height:330px;padding:34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:18px;align-content:start;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}
.capability-card:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}
.capability-card>span{font-size:10px;color:#806e4c;padding-top:5px}.capability-card:hover>span{color:var(--gold-light)}
.capability-card h3{font-size:clamp(29px,3vw,43px);line-height:1.02;margin:0 0 24px;max-width:12ch}
.capability-card p{grid-column:2;color:#6a6f6c;font-size:13px;line-height:1.75;max-width:50ch;margin:0}.capability-card:hover p{color:#b7c0c8}

/* Quote statement */
.statement-band{padding:clamp(90px,11vw,165px) 0;background:var(--navy);color:#fff;text-align:center}
.statement-band p{font-family:"Familjen Grotesk";font-size:clamp(42px,6vw,90px);line-height:.95;letter-spacing:-.05em;max-width:16ch;margin:0 auto;color:#fff}
.statement-band span{display:block;font-family:Inter,sans-serif;font-size:10px;letter-spacing:.18em;color:var(--gold-light);margin-bottom:30px}

/* Programme rows */
.programme-list{border-top:1px solid var(--line)}
.programme-row{display:grid;grid-template-columns:48px 1fr 1.4fr 32px;gap:24px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);transition:padding .35s var(--ease),background .35s var(--ease)}
.programme-row:hover{padding-left:18px;padding-right:18px;background:#fff}
.programme-flag{font-size:29px}
.programme-row h3{font-size:clamp(29px,3vw,42px);line-height:1;margin:0}
.programme-row p{font-size:12px;line-height:1.65;color:#6c716e;margin:0;max-width:60ch}
.programme-row b{font-size:18px;font-weight:400;transition:transform .3s var(--ease)}.programme-row:hover b{transform:translate(3px,-3px)}
.programme-note{font-size:10px;line-height:1.65;color:#7b807c;margin-top:24px;max-width:90ch}

/* Process */
.process-line{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.process-step{min-height:290px;padding:29px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.process-step>span{font-size:10px;color:#806e4c}.process-step h3{font-size:31px;margin:auto 0 15px}.process-step p{font-size:12px;color:#6b706d;line-height:1.7;margin:0;max-width:28ch}

/* Contact choice cards */
.conversation-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.conversation-card{padding:clamp(38px,5vw,68px);min-height:480px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:#fff;transition:background .35s var(--ease),color .35s var(--ease)}
.conversation-card:hover{background:var(--navy);color:#fff}
.conversation-card>span{font-size:10px;color:#806e4c;letter-spacing:.14em}.conversation-card:hover>span{color:var(--gold-light)}
.conversation-card h2{font-size:clamp(42px,4.6vw,68px);max-width:9ch;margin:42px 0 24px}
.conversation-card ul{list-style:none;padding:0;margin:0 0 38px;color:#6d726f;font-size:13px;line-height:1.9}.conversation-card:hover ul{color:#b9c1c9}
.conversation-card .text-link{margin-top:auto;align-self:flex-start}

/* Contact form */
.contact-layout{display:grid;grid-template-columns:.86fr 1.14fr;background:#fff;border:1px solid var(--line)}
.contact-aside{background:var(--navy);color:#fff;padding:clamp(48px,6vw,86px);display:flex;flex-direction:column;min-height:720px}
.contact-aside h2{font-size:clamp(45px,5vw,72px);max-width:8ch;margin:0 0 28px}
.contact-aside>p{color:#aeb7c0;line-height:1.75;max-width:42ch}
.contact-details{margin-top:auto;padding-top:45px;border-top:1px solid rgba(255,255,255,.18)}
.contact-details span{display:block;font-size:9px;letter-spacing:.15em;color:var(--gold-light);text-transform:uppercase;margin:24px 0 7px}
.contact-details p,.contact-details a{font-size:12px;color:#d0d5da;margin:0;line-height:1.7}
.contact-form-panel{padding:clamp(48px,6vw,86px)}
.contact-form-panel h2{font-size:clamp(44px,5vw,68px);margin:0 0 16px}
.contact-form-panel>p{font-size:13px;color:#6d726f;line-height:1.7;margin-bottom:42px}
.iba-form{display:grid;gap:25px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.iba-field{display:grid;gap:9px}
.iba-field label{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#72674e}
.iba-field input,.iba-field select,.iba-field textarea{width:100%;border:0;border-bottom:1px solid #a8a49a;background:transparent;border-radius:0;padding:12px 0 13px;color:var(--ink);font-family:Inter,sans-serif;font-size:13px;outline:0;transition:border-color .2s var(--ease)}
.iba-field input:focus,.iba-field select:focus,.iba-field textarea:focus{border-color:var(--navy)}
.iba-field textarea{min-height:125px;resize:vertical}
.form-consent{display:flex;align-items:flex-start;gap:10px;font-size:10px;line-height:1.55;color:#717672}
.form-consent input{margin-top:2px;accent-color:var(--navy)}
.form-status{display:none;font-size:11px;padding-top:12px}.form-status.show{display:block}.form-status.ok{color:#426b54}.form-status.error{color:#9e463f}
.iba-form .split-btn{justify-self:start;appearance:none;cursor:pointer;font:inherit}

/* Closing image CTA, same language as homepage */
.sub-closing{position:relative;min-height:620px;display:flex;align-items:center;color:#fff;isolation:isolate;overflow:hidden;background:var(--navy)}
.sub-closing img{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;z-index:-3;will-change:transform}
.sub-closing:after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(4,10,18,.93),rgba(4,10,18,.55),rgba(4,10,18,.22))}
.sub-closing h2{font-size:clamp(46px,5.6vw,82px);max-width:10ch;margin-bottom:24px}
.sub-closing p{font-size:15px;color:#d2d7dc;max-width:52ch;margin-bottom:30px}

/* Page specific */
.about-intro{padding-bottom:0}
.about-intro .sub-heading-grid{margin-bottom:0}
.about-belief{font-family:"Familjen Grotesk";font-size:clamp(34px,4.5vw,68px);line-height:1;letter-spacing:-.045em;max-width:19ch;margin:0}
.about-belief strong{color:#8a7449;font-weight:500}
.service-note{font-size:11px;color:#777b78;line-height:1.7;max-width:85ch;margin-top:30px}

@media(max-width:1000px){
  .sub-heading-grid,.leader-panel,.contact-layout{grid-template-columns:1fr}
  .leader-portrait{min-height:520px}.contact-aside{min-height:560px}.contact-details{margin-top:50px}
  .principle-grid{grid-template-columns:1fr 1fr}.capability-grid{grid-template-columns:1fr 1fr}.process-line{grid-template-columns:1fr 1fr}
  .programme-row{grid-template-columns:48px 1fr 30px}.programme-row p{grid-column:2}.programme-row b{grid-column:3;grid-row:1/3}
}

@media(max-width:900px){
  .sub-hero{min-height:76svh}.sub-hero-inner{padding:150px 0 80px}.sub-hero h1{font-size:clamp(52px,10vw,82px);max-width:11ch}.sub-hero-shade{background:linear-gradient(90deg,rgba(4,10,18,.94),rgba(4,10,18,.57)),linear-gradient(0deg,rgba(4,10,18,.65),transparent 45%)}
  .editorial-split,.editorial-split.reverse{grid-template-columns:1fr}.editorial-split.reverse .editorial-media,.editorial-split .editorial-media{order:0}.editorial-split.reverse .editorial-copy,.editorial-split .editorial-copy{order:1}.editorial-media{min-height:58vw}.editorial-copy{padding:70px var(--pad) 85px}
  .conversation-grid{grid-template-columns:1fr}.conversation-card{min-height:410px}
}

@media(max-width:620px){
  .sub-hero{min-height:78svh}.sub-hero-inner{padding:126px 0 64px}.sub-hero h1{font-size:clamp(45px,13vw,62px);line-height:.93;max-width:10.5ch;margin-bottom:22px}.sub-hero .lead{font-size:13.5px;line-height:1.63;max-width:95%}.sub-hero-actions{align-items:flex-start;flex-direction:column}
  .sub-heading-grid{gap:28px;margin-bottom:48px}.sub-heading-grid .intro{font-size:13.5px}.editorial-media{min-height:76vw}.editorial-copy{padding:64px var(--pad) 76px}.editorial-copy h2{font-size:42px}
  .principle-grid,.capability-grid,.process-line{grid-template-columns:1fr}.principle-card{min-height:250px}.capability-card{min-height:270px;padding:27px 23px;grid-template-columns:30px 1fr}.capability-card p{font-size:11.5px}.process-step{min-height:220px}
  .sub-stats{grid-template-columns:1fr}.sub-stat+.sub-stat{border-left:0;border-top:1px solid #cbc5ba;padding-left:0}.sub-stat strong{font-size:95px}.stat-statement{text-align:left;margin-left:0;margin-right:0}
  .programme-row{grid-template-columns:38px 1fr 22px;gap:15px;padding:24px 0}.programme-flag{font-size:24px}.programme-row h3{font-size:29px}.programme-row p{font-size:11px}.programme-row:hover{padding-left:8px;padding-right:8px}
  .conversation-card{padding:34px 24px;min-height:380px}.conversation-card h2{font-size:44px;margin-top:35px}.contact-aside,.contact-form-panel{padding:52px 24px}.contact-aside{min-height:540px}.form-grid{grid-template-columns:1fr}.sub-closing{min-height:600px}.sub-closing h2{font-size:48px}
}

@media(prefers-reduced-motion:reduce){.sub-hero-media{animation:none}.capability-card,.programme-row{transition:none}}
