/* Elektra Designs - site stylesheet. Was style.css + proposed.css; merged, cascade order preserved. Sections run in page order: tokens, shell, home, inner pages, footer, case study modal, booker, portal, cookie banner. */

/* Elektra Designs - Shared Stylesheet Created in Wales by Thorne Technology https://thornetechnology.co.uk
*/
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
img{display:block;max-width:100%;object-fit:cover;object-position:center center;}
html{scroll-behavior:smooth;}
:root{
  --char:#3B3B3B;--dark:#2A2A2A;--ink:#2E2E2E;
  --white:#FFFFFF;--cream:#F8F6F2;--warm:#F0EDE8;--sand:#E8E4DE;
  --red:#CC2222;--amber:#E8A020;--grey:#7A7A7A;--lgrey:#B8B8B8;
  --rule:rgba(46,46,46,0.10);--bdr:rgba(255,255,255,0.09);

  /* Poppins has no → glyph, so a text arrow falls back to whatever font the
     visitor's OS supplies and lands off-centre. Drawn instead, as a mask so it
     takes currentColor and sits exactly where we put it. */
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 8'%3E%3Cpath d='M1 4h19.4M17.2 1 20.8 4l-3.6 3' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body{font-family:'Poppins',sans-serif;font-weight:400;background:var(--cream);color:var(--ink);overflow-x:hidden;}
.wrap{max-width:1160px;margin:0 auto;padding:0 48px;}

/* NAV */
header{position:fixed;top:0;left:0;right:0;z-index:200;height:80px;background:var(--char);border-bottom:1px solid rgba(255,255,255,0.08);transition:box-shadow .3s;}
header.scrolled{box-shadow:0 2px 24px rgba(0,0,0,0.28);}
.nav-inner{max-width:1160px;margin:0 auto;padding:0 48px;height:80px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{text-decoration:none;display:flex;flex-direction:column;gap:4px;}
.nav-logo-name{font-family:'Tenor Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:0.26em;color:var(--white);line-height:1;}
.nav-logo-img{height:44px;width:auto;display:block;object-fit:contain;object-position:left center;}
nav{display:flex;align-items:center;gap:32px;}
nav a{font-family:'Poppins',sans-serif;font-size:12px;font-weight:400;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.65);text-decoration:none;transition:color .2s;position:relative;padding-bottom:2px;}
nav a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--red);transform:scaleX(0);transition:transform .25s;}
nav a:hover{color:var(--white);}
nav a:hover::after,nav a.active::after{transform:scaleX(1);}
nav a.active{color:var(--white);}
.nav-book{background:var(--red)!important;color:var(--white)!important;padding:11px 26px;font-weight:500!important;transition:background .2s!important;}
.nav-book::after{display:none!important;}
.nav-book:hover{background:#aa1c1c!important;}
.ham{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;width:44px;height:44px;margin-right:-10px;background:none;border:none;padding:0;}
.ham span{display:block;width:22px;height:1.5px;background:var(--white);transition:all .3s;}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.ham.open span:nth-child(2){opacity:0;}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mob-nav{display:none;position:fixed;top:80px;left:0;right:0;background:var(--char);z-index:190;flex-direction:column;border-bottom:1px solid rgba(255,255,255,0.08);box-shadow:0 8px 24px rgba(0,0,0,0.28);}
.mob-nav.open{display:flex;}
.mob-nav a{font-family:'Poppins',sans-serif;font-size:11px;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.6);text-decoration:none;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,0.07);transition:color .2s;}
.mob-nav a:last-child{border-bottom:none;}
.mob-nav a:hover{color:var(--white);}

/* PAGE HERO */
.page-hero{padding-top:80px;background:var(--char);min-height:300px;display:flex;align-items:flex-end;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(204,34,34,0.07) 0%,transparent 55%);}
.page-hero-inner{padding:52px 48px;max-width:1160px;margin:0 auto;width:100%;position:relative;z-index:1;}
.page-hero-kicker{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:0.5em;text-transform:uppercase;color:var(--amber);margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.page-hero-kicker::before{content:'';width:20px;height:1px;background:var(--amber);}
.page-hero h1{font-family:'Tenor Sans',sans-serif;font-size:clamp(36px,6vw,88px);font-weight:400;letter-spacing:0.04em;color:var(--white);line-height:0.92;}
.page-hero h1 span{display:block;-webkit-text-stroke:1px rgba(255,255,255,0.22);color:transparent;}

/* UTILITIES */
.lbl{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:0.48em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.lbl::before{content:'';width:16px;height:1px;background:var(--red);flex-shrink:0;}
.lbl--light{color:rgba(255,255,255,0.35);}
.lbl--dark{color:var(--red);}
.lbl--light::before{background:rgba(255,255,255,0.35);}
.btn-red{font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;background:var(--red);color:var(--white);padding:14px 36px;text-decoration:none;transition:all .25s;display:inline-block;border:1.5px solid var(--red);cursor:pointer;}
.btn-red:hover{background:var(--white);color:var(--red);border-color:var(--red);}
.btn-white{font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;background:var(--white);color:var(--red);padding:14px 44px;text-decoration:none;transition:background .25s;display:inline-block;}
.btn-white:hover{background:var(--cream);}
.btn-ghost{font-family:'Poppins',sans-serif;font-size:10px;font-weight:400;letter-spacing:0.24em;text-transform:uppercase;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.55);padding:13px 44px;text-decoration:none;transition:all .25s;display:inline-block;}
.btn-ghost:hover{border-color:var(--amber);color:var(--amber);}
.link-arrow{font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--red);text-decoration:none;display:inline-flex;align-items:center;gap:12px;transition:gap .2s;}
.link-arrow::after{content:'→';font-size:18px;}
.link-arrow:hover{gap:16px;}

/* CTA BAND */
.cta-band{background:var(--char);padding:96px 0;text-align:center;}
.cta-kicker{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:0.5em;text-transform:uppercase;color:var(--amber);margin-bottom:20px;}
.cta-band h2{font-family:'Tenor Sans',sans-serif;font-style:normal;font-size:clamp(26px,4vw,54px);font-weight:300;color:var(--white);line-height:1.3;margin-bottom:14px;}
.cta-band h2 strong{font-style:italic;font-family:'Tenor Sans',sans-serif;font-size:0.65em;display:block;letter-spacing:0.08em;font-weight:400;}
.cta-band p{font-size:14px;font-weight:300;color:rgba(255,255,255,0.4);margin-bottom:40px;line-height:1.85;max-width:480px;margin-left:auto;margin-right:auto;}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* LOGO MARQUEE */
.logo-strip{background:var(--char);border-top:1px solid rgba(255,255,255,0.07);padding:26px 0;overflow:hidden;}
.logo-track{display:flex;width:max-content;animation:logoScroll 32s linear infinite;}
.logo-track:hover{animation-play-state:paused;}
@keyframes logoScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.logo-item{display:flex;align-items:center;padding:0 48px;white-space:nowrap;flex-shrink:0;}
.logo-word{font-family:'Tenor Sans',sans-serif;font-size:12px;font-weight:400;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.18);}
.logo-sep{width:4px;height:4px;background:rgba(255,255,255,0.10);border-radius:50%;margin:0 48px;flex-shrink:0;}

/* FOOTER */
footer{background:var(--dark);padding:96px 0 0;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:56px;margin-bottom:0;padding-bottom:32px;align-items:start;}
.f-name{font-family:'Tenor Sans',sans-serif;font-size:16px;font-weight:500;letter-spacing:0.24em;color:var(--white);margin-bottom:6px;}
.f-contact a,.f-contact span{display:block;font-size:14px;font-weight:400;color:rgba(255,255,255,0.7);text-decoration:none;line-height:2.2;transition:color .2s;}
.f-contact a:hover{color:var(--amber);}
.f-col h4{font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.32em;text-transform:uppercase;color:var(--red);margin-bottom:20px;}
.f-col ul{list-style:none;}
.f-col ul a,.f-col ul span{display:block;font-size:14px;font-weight:400;color:rgba(255,255,255,0.65);text-decoration:none;line-height:2.4;transition:color .2s;}
.f-col ul a:hover{color:var(--white);}
.client-link{color:rgba(232,160,32,0.65)!important;}
.client-link:hover{color:var(--amber)!important;}
.f-social-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid var(--bdr);}
.f-socials{display:flex;gap:12px;}
.f-social-link{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid rgba(255,255,255,0.12);text-decoration:none;transition:border-color .2s,background .2s;}
.f-social-link:hover{border-color:var(--amber);background:rgba(232,160,32,0.08);}
.f-social-link svg{width:16px;height:16px;fill:rgba(255,255,255,0.6);transition:fill .2s;}
.f-social-link:hover svg{fill:var(--amber);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:20px 0;}
.f-markets{font-size:11px;font-weight:300;color:rgba(255,255,255,0.35);font-style:italic;letter-spacing:0.04em;text-align:right;flex-shrink:0;}
.f-copy{font-size:12px;font-weight:400;letter-spacing:0.05em;color:rgba(255,255,255,0.5);}
.f-copy a{color:var(--amber);text-decoration:none;}
.f-rsa{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:0.26em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(232,160,32,0.22);padding:8px 16px;}
.f-legal{display:flex;gap:24px;align-items:center;}
.f-legal a{font-size:12px;font-weight:400;color:rgba(255,255,255,0.5);text-decoration:none;letter-spacing:0.04em;transition:color .2s;}
.f-legal a:hover{color:var(--white);}

/* REVEAL */
.rv{opacity:0;transform:translateY(16px);transition:opacity .75s ease,transform .75s ease;}
.rv.in{opacity:1;transform:none;}
.d1{transition-delay:.12s;}.d2{transition-delay:.24s;}.d3{transition-delay:.36s;}

/* RESPONSIVE */
@media(max-width:1024px){.wrap{padding:0 28px;}.nav-inner{padding:0 28px;}.page-hero-inner{padding:44px 28px;}.footer-grid{grid-template-columns:1fr 1fr;gap:32px;}.f-markets{text-align:left;flex-shrink:1;}}
@media(max-width:768px){nav{display:none;}.ham{display:flex;}.page-hero{min-height:220px;}.page-hero h1{font-size:clamp(32px,8vw,56px);}}
@media(max-width:500px){.wrap{padding:0 20px;}.nav-inner{padding:0 20px;}.page-hero-inner{padding:36px 20px;}.footer-grid{grid-template-columns:1fr;}.cta-btns{flex-direction:column;align-items:center;}.f-social-bar{flex-direction:column;align-items:flex-start;gap:16px;}.f-markets{text-align:left;flex-shrink:1;}}

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* PAGE-SPECIFIC STYLES */
/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* index.php */
/* ── HERO - image LEFT, text RIGHT ── */
.hero {
padding-top: 80px;
height: 100vh;
min-height: 640px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 100px;
background: var(--white); position: relative;
}
/* Image panel - left */
.hero-right {
position: relative; overflow: hidden; background: var(--sand);
order: -1; grid-row: 1;
}
.hero-logos {
display: block;
grid-column: 1 / -1;
grid-row: 2;
background: #ffffff;
border-top: 1px solid rgba(46,46,46,0.10);
padding: 20px 48px;
overflow: hidden;
height: 100px;
box-sizing: border-box;
}
.hero-photo {
position: absolute; inset: 0;
/* SWAP: hp-hero.png */
background-image: url('/assets/img/hp-hero.png'), linear-gradient(135deg,#d6d0c8,#c0b9ae);
background-size: cover; background-position: center center;
}
.hero-photo::after {
content: ''; position: absolute; inset: 0;
background: linear-gradient(to right, transparent 45%, rgba(255,255,255,.55) 70%, var(--white) 100%);
}
.hero-name-card {
position: absolute; bottom: 108px; right: 28px; z-index: 2;
background: var(--white); padding: 14px 20px; border-left: 3px solid var(--red);
}
.joe-photo-wrap .hero-name-card { bottom: 24px; right: 24px; }
.hnc-name { font-family: 'Tenor Sans', sans-serif; font-size: 14px; letter-spacing: 0.12em; color: var(--ink); margin-bottom: 3px; }
.hnc-role { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 400; letter-spacing: 0.28em; text-transform: uppercase; color: var(--red); }

/* Text panel - right */
.hero-left {
display: flex; flex-direction: column; justify-content: center;
padding: 60px 48px 110px 56px;
}
.hero-kicker {
font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 600;
letter-spacing: 0.42em; text-transform: uppercase; color: var(--red);
margin-bottom: 22px; display: flex; align-items: center; gap: 14px;
}
.hero-kicker::before { content: ''; width: 22px; height: 1px; background: var(--red); }
.hero-h1 {
font-family: 'Tenor Sans', sans-serif;
font-size: clamp(48px, 6vw, 92px);
font-weight: 400; letter-spacing: 0.03em;
color: var(--ink); line-height: 0.96; margin-bottom: 26px;
}
.hero-tagline {
font-family: 'Poppins', sans-serif;
font-size: clamp(15px, 1.5vw, 18px); font-weight: 400;
color: var(--grey); line-height: 1.75; max-width: 460px; margin-bottom: 38px;
border-left: 2px solid var(--red); padding-left: 20px;
}
.hero-ctas { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
/* Secondary button - red outline, red text */
.btn-outline-red {
font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 500;
letter-spacing: 0.18em; text-transform: uppercase;
color: var(--red); text-decoration: none;
border: 1.5px solid var(--red); padding: 13px 32px;
transition: background .22s, color .22s; display: inline-block;
}
.btn-outline-red:hover { background: var(--red); color: var(--white); }

/* Proof strip - full width at bottom of hero */
/* Hero logo strip - replaces proof strip when logos load */
.hero-logos {
display: block;
grid-column: 1 / -1;
background: #ffffff;
border-top: 1px solid rgba(46,46,46,0.10);
padding: 18px 0;
overflow: hidden;
}
.hero-logos-label {
font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600;
letter-spacing: 0.38em; text-transform: uppercase; color: var(--lgrey);
text-align: center; margin-bottom: 14px;
}
.tt-logo-card {
display: inline-flex; align-items: center; justify-content: center;
background: var(--white); border: 1px solid rgba(0,0,0,0.08);
border-radius: 10px; padding: 14px 28px;
box-shadow: 0 2px 8px rgba(0,0,0,0.06);
flex-shrink: 0; transition: box-shadow .2s;
}
.tt-logo-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.12); }
.problem { background: var(--char); padding: 72px 0; }
.problem .wrap { text-align: center; }
.problem h2 { font-family: 'Tenor Sans', sans-serif; font-style: normal; font-size: clamp(18px,2.4vw,38px); font-weight: 300; color: var(--white); line-height: 1.4; margin-bottom: 18px; white-space: nowrap; }
.problem h2 strong { font-style: italic; font-weight: 600; }
.problem h2 em { font-style: italic; font-weight: 300; }
.problem p { font-size: 15px; font-weight: 300; color: rgba(255,255,255,.42); line-height: 2.2; max-width: 100%; margin: 0 auto 10px; }
.difference { background: var(--cream); padding: 96px 0; }
.diff-header { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; margin-bottom: 56px; padding-bottom: 32px; border-bottom: 1px solid var(--rule); }
.diff-header h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(26px,3.2vw,48px); font-weight: 400; letter-spacing: 0.05em; color: var(--ink); line-height: 1.1; }
.diff-header p { font-size: 15px; font-weight: 300; color: var(--grey); line-height: 1.9; }
.diff-header p strong { color: var(--ink); font-weight: 500; }
.pillars { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--rule); }
.pillar { background: var(--cream); padding: 44px 36px; transition: background .3s; position: relative; overflow: hidden; }
.pillar::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.7,0,.3,1); }
.pillar:hover { background: var(--white); }
.pillar:hover::after { transform: scaleX(1); }
.pillar-num { font-family: 'Tenor Sans', sans-serif; font-size: 11px; font-weight: 400; letter-spacing: 0.1em; color: var(--red); margin-bottom: 18px; display: block; }
.pillar-title { font-family: 'Tenor Sans', sans-serif; font-size: 20px; font-weight: 400; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 8px; }
.pillar-sub { font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--red); margin-bottom: 14px; }
.pillar-body { font-size: 15px; font-weight: 400; color: var(--grey); line-height: 1.85; }
.process { background: var(--white); padding: 96px 0; }
.process-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 48px; padding-bottom: 22px; border-bottom: 1px solid var(--rule); }
.process-header h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(24px,3vw,44px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); }
.process-header p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 15px; color: var(--grey); max-width: none; text-align: right; line-height: 1.6; }
.steps { display: flex; flex-direction: column; }
.step { display: grid; grid-template-columns: 64px 1fr 1fr; border-top: 1px solid var(--rule); transition: background .25s; }
.step:last-child { border-bottom: 1px solid var(--rule); }
.step:hover { background: var(--cream); }
.step:hover .step-num { color: var(--red); }
.step-num { font-family: 'Tenor Sans', sans-serif; font-size: 42px; font-weight: 400; color: var(--red); display: flex; align-items: center; justify-content: center; padding: 28px 0; border-right: 1px solid var(--rule); transition: color .3s; }
.step-info { padding: 28px 36px; border-right: 1px solid var(--rule); display: flex; flex-direction: column; justify-content: center; }


.step-desc { padding: 28px 36px; font-size: 13.5px; font-weight: 400; color: var(--grey); line-height: 1.85; display: flex; align-items: center; }
.process-footer { margin-top: 32px; display: flex; align-items: center; justify-content: space-between; padding: 24px 0; }
.process-footer p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 13px; color: var(--grey); }
.testimonials { background: var(--warm); padding: 96px 0; }
.testi-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
.testi-header h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.1em; color: var(--ink); }
.testi-header a { font-family: 'Poppins', sans-serif; font-size: 9.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red); text-decoration: none; border-bottom: 1px solid rgba(204,34,34,.3); padding-bottom: 2px; transition: border-color .2s; }
.testi-header a:hover { border-bottom-color: var(--red); }
.testi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; opacity: 1; transition: opacity .5s ease; }
.testi-dots { display: flex; gap: 8px; justify-content: center; margin-top: 24px; }
.testi-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--rule); border: none; cursor: pointer; padding: 0; transition: background .2s; }
.testi-dot.active { background: var(--red); }
.tc { background: var(--white); padding: 40px 36px; border-top: 2px solid var(--red); transition: transform .25s, box-shadow .25s; display: flex; flex-direction: column; }
.tc:hover { transform: translateY(-4px); box-shadow: 0 14px 40px rgba(0,0,0,.07); }
.tc-stars { color: var(--amber); font-size: 11px; letter-spacing: 2px; margin-bottom: 16px; }
.tc-body { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 17px; font-weight: 400; color: var(--ink); line-height: 1.75; margin-bottom: 16px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.tc-read-more { font-family: 'Poppins', sans-serif; font-size: 9.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red) !important; background: none; border: none; cursor: pointer; padding: 0; margin-bottom: 20px; display: none; text-align: left; text-decoration: none; }
.tc-read-more.visible { display: block; }
.tc-name { font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; color: var(--ink); display: block; margin-bottom: 3px; margin-top: auto; }
.tc-role { font-family: 'Poppins', sans-serif; font-size: 9.5px; font-weight: 300; letter-spacing: 0.1em; color: var(--red); }
/* Testimonial modal */
.tc-modal { display: none; position: fixed; inset: 0; z-index: 500; background: rgba(0,0,0,0.6); align-items: center; justify-content: center; padding: 24px; }
.tc-modal.open { display: flex; }
.tc-modal-inner { background: var(--white); max-width: 640px; width: 100%; padding: 52px 48px; position: relative; }
.tc-modal-close { position: absolute; top: 20px; right: 24px; background: none; border: none; font-size: 26px; cursor: pointer; color: var(--grey); line-height: 1; }
.tc-modal-quote { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 20px; font-weight: 400; color: var(--ink); line-height: 1.75; margin-bottom: 28px; }
.tc-modal-name { font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; color: var(--ink); }
.tc-modal-role { font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 300; letter-spacing: 0.1em; color: var(--red); display: block; margin-top: 4px; }
.joe { background: var(--cream); padding: 96px 0; }
.joe-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 88px; align-items: center; }
.joe-photo-wrap { position: relative; }
.joe-photo { width: 100%; aspect-ratio: 4/5; background-image: url('/assets/img/joe-portrait.jpg'), linear-gradient(135deg,#d6d0c8,#bfb8ae); background-size: cover; background-position: center center; }
.joe-photo-wrap::before { content: ''; position: absolute; bottom: -14px; right: -14px; width: 48%; height: 36%; border: 2px solid rgba(204,34,34,.14); z-index: -1; }
.joe-kicker { font-family: 'Tenor Sans', sans-serif; font-size: clamp(20px,2.5vw,32px); font-weight: 400; letter-spacing: 0.04em; text-transform: none; color: var(--ink); margin-bottom: 18px; display: block; }
.joe-kicker::before { display: none; }
.joe-content h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,38px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); line-height: 1.1; margin-bottom: 22px; }
.joe-content p { font-size: 14.5px; font-weight: 400; color: var(--grey); line-height: 1.95; margin-bottom: 14px; }
.joe-content p strong { color: var(--ink); font-weight: 500; }
.joe-quote { margin-top: 28px; padding: 20px 24px; border-left: 2px solid var(--red); background: var(--white); }
.joe-quote p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 16px; font-weight: 300; color: var(--ink); line-height: 1.6; margin-bottom: 8px; }
.joe-quote cite { font-family: 'Poppins', sans-serif; font-style: normal; font-size: 8.5px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--red); }
.joe-badge { margin-top: 22px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(204,34,34,.3); padding: 9px 16px; font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red); }
.joe-links { margin-top: 24px; display: flex; gap: 24px; flex-wrap: wrap; }
@media (max-width: 900px) {
.hero { grid-template-columns: 1fr; height: auto; min-height: auto; max-height: none; }
.hero-right { min-height: 60vw; order: -1; }
.hero-left { padding: 52px 28px 110px; }
.hero-name-card { bottom: 24px; right: 16px; }
.hero-logos { padding: 14px 0 12px; }
.hero-logos-label { margin-bottom: 10px; }
.diff-header { grid-template-columns: 1fr; gap: 20px; }
.pillars { grid-template-columns: 1fr; }
.process-header { flex-direction: column; align-items: flex-start; gap: 8px; }
.process-header p { text-align: left; }
.step { grid-template-columns: 52px 1fr; }
.step-desc { display: none; }
.testi-grid { grid-template-columns: 1fr; }
.testi-header { flex-direction: column; align-items: flex-start; gap: 10px; }
.joe-inner { grid-template-columns: 1fr; gap: 40px; }
.joe-photo { aspect-ratio: 4/3; }
}
@media (max-width: 500px) {
.hero-left { padding: 44px 20px 110px; }
.hero-right { min-height: 60vw; order: -1; }
.hero-ctas { flex-direction: column; align-items: flex-start; }
}

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* about.php */
.about-hero {
  padding-top: 80px;
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--char);
  position: relative;
  overflow: hidden;
}
.about-hero-img {
  position: relative;
  background-image: url('/assets/img/about-hero.jpg'), linear-gradient(135deg,#5a5248,#3b3530);
  background-size: cover;
  background-position: center center;
  min-height: 60vh;
}
.about-hero-img::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to right, transparent 60%, rgba(59,59,59,.7) 100%);
}
.about-hero-content {
  display: flex; flex-direction: column; justify-content: center;
  padding: 80px 72px 80px 64px;
}
.about-hero-content .page-hero-kicker {
  font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600;
  letter-spacing: 0.5em; text-transform: uppercase; color: var(--amber);
  margin-bottom: 20px; display: flex; align-items: center; gap: 12px;
}
.about-hero-content .page-hero-kicker::before { content: ''; width: 20px; height: 1px; background: var(--amber); }
.about-hero-content h1 {
  font-family: 'Tenor Sans', sans-serif;
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 400; letter-spacing: 0.04em;
  color: var(--white); line-height: 0.96; margin-bottom: 28px;
}
.about-hero-content p {
  font-size: 15px; font-weight: 400; color: rgba(255,255,255,0.55);
  line-height: 1.85; max-width: 420px; margin-bottom: 36px;
}
.about-hero-content .hero-ctas { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
  .about-photo-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 50%, rgba(42,42,42,.85) 100%); }
  .about-photo-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 32px; z-index: 2; }
  .apc-name { font-family: 'Tenor Sans', sans-serif; font-size: 18px; font-weight: 500; letter-spacing: 0.14em; color: var(--white); margin-bottom: 4px; }
  .apc-title { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 14px; color: var(--amber); }
  .about-text { background: var(--white); padding: 80px 64px; display: flex; flex-direction: column; justify-content: center; }
  .about-text h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.8vw,40px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); line-height: 1.1; margin-bottom: 24px; }
  .about-text p { font-size: 14.5px; font-weight: 400; color: var(--grey); line-height: 1.95; margin-bottom: 16px; }
  .about-text p strong { color: var(--ink); font-weight: 500; }
  .about-badge { display: block; border-left: 3px solid var(--red); padding: 14px 20px; font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 16px; font-weight: 400; letter-spacing: 0.02em; text-transform: none; color: var(--ink); margin-top: 24px; line-height: 1.6; }
  .values-section { background: var(--cream); padding: 96px 0; }
  .values-header { margin-bottom: 52px; }
  .values-header h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); }
  .values-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--rule); }
  .value-card { background: var(--cream); padding: 44px 40px; transition: background .3s; }
  .value-card:hover { background: var(--white); }
  .vc-num { font-family: 'Tenor Sans', sans-serif; font-size: 48px; font-weight: 400; color: var(--red); line-height: 1; margin-bottom: 8px; }
  .vc-title { font-family: 'Tenor Sans', sans-serif; font-size: 16px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink); margin-bottom: 12px; }
  .vc-body { font-size: 13.5px; font-weight: 400; color: var(--grey); line-height: 1.85; }
  .timeline-section { background: var(--white); padding: 96px 0; }
  .timeline-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 48px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .timeline { display: flex; flex-direction: column; }
  .tl-row { display: grid; grid-template-columns: 100px 1fr; gap: 0 40px; padding: 26px 0; border-bottom: 1px solid var(--rule); align-items: center; transition: background .2s, padding .2s; }
  .tl-row:hover { background: var(--cream); padding: 26px 16px; margin: 0 -16px; }
  .tl-year { font-family: 'Tenor Sans', sans-serif; font-size: 20px; font-weight: 400; color: var(--red); letter-spacing: 0.06em; }
  .tl-text { font-size: 14px; font-weight: 400; color: var(--grey); line-height: 1.75; }
  .tl-text strong { color: var(--ink); font-weight: 500; }
  .sectors-section { background: var(--warm); padding: 96px 0; }
  .sectors-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .sectors-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--rule); }
  .sector { background: var(--warm); padding: 28px 24px; transition: background .25s; }
  .sector:hover { background: var(--white); }
  .sector-name { font-family: 'Tenor Sans', sans-serif; font-size: 20px; font-weight: 400; letter-spacing: 0.04em; color: var(--ink); margin-bottom: 4px; transition: color .2s; }
  .sector:hover .sector-name { color: var(--red); }
  .sector-note { font-size: 12px; font-weight: 300; color: var(--lgrey); }
  .joe-quote-full { background: var(--char); padding: 64px 0; text-align: center; }
  .joe-quote-full blockquote { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: clamp(20px,2.5vw,34px); font-weight: 300; color: var(--white); line-height: 1.5; max-width: 720px; margin: 0 auto 16px; }
  .joe-quote-full cite { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.4em; text-transform: uppercase; color: var(--amber); }
  /* Affiliations & memberships */
  .affiliations-section { background: var(--white); padding: 96px 0; }
  .affiliations-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 48px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .affil-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--rule); }
  .affil-card { background: var(--white); padding: 44px 38px; transition: background .3s; display: flex; flex-direction: column; gap: 16px; }
  .affil-card:hover { background: var(--cream); }
  .affil-logo-area { display: flex; align-items: center; gap: 0; margin-bottom: 4px; }
  .affil-initial {
width: 52px; height: 52px; flex-shrink: 0;
background: var(--char); display: flex; align-items: center; justify-content: center;
font-family: 'Tenor Sans', sans-serif; font-size: 18px; font-weight: 500;
color: var(--white); letter-spacing: 0.04em;
  }
  .affil-initial.red { background: var(--red); }
  .affil-initial.amber { background: var(--amber); color: var(--dark); }
  .affil-name { font-family: 'Tenor Sans', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 6px; }
  .affil-role { font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.38em; text-transform: uppercase; color: var(--red); margin-bottom: 10px; display: block; }
  .affil-body { font-size: 13.5px; font-weight: 400; color: var(--grey); line-height: 1.85; flex: 1; }
  .affil-link { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: gap .2s; margin-top: 4px; }
  .affil-link::after { content: '→'; font-size: 13px; }
  .affil-link:hover { gap: 14px; }

  /* Sponsorship & awards */
  .awards-section { background: var(--char); padding: 96px 0; }
  .awards-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--white); margin-bottom: 48px; padding-bottom: 20px; border-bottom: 1px solid var(--bdr); }
  .awards-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--bdr); }
  .award-card { background: var(--char); padding: 52px 44px; transition: background .3s; }
  .award-card:hover { background: var(--dark); }
  .award-badge {
display: inline-flex; align-items: center; gap: 10px; margin-bottom: 24px;
font-family: 'Poppins', sans-serif; font-size: 8px; font-weight: 600;
letter-spacing: 0.42em; text-transform: uppercase; color: var(--amber);
border: 1px solid rgba(232,160,32,0.22); padding: 7px 14px;
  }
  .award-badge-dot { width: 5px; height: 5px; background: var(--amber); border-radius: 50%; flex-shrink: 0; }
  .award-title { font-family: 'Tenor Sans', sans-serif; font-size: clamp(18px,2vw,26px); font-weight: 500; letter-spacing: 0.08em; color: var(--white); line-height: 1.15; margin-bottom: 16px; }
  .award-body { font-size: 13.5px; font-weight: 300; color: rgba(255,255,255,.4); line-height: 1.85; margin-bottom: 22px; }
  .award-link { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: gap .2s; }
  .award-link::after { content: '→'; font-size: 13px; }
  .award-link:hover { gap: 14px; }

  @media (max-width: 900px) {
.about-split { grid-template-columns: 1fr; }
.about-photo { min-height: 60vw; }
.about-text { padding: 52px 28px; }
.values-grid { grid-template-columns: 1fr; }
.sectors-grid { grid-template-columns: repeat(2,1fr); }
.tl-row:hover { margin: 0; padding: 26px 0; }
.affil-grid { grid-template-columns: 1fr; }
.awards-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 500px) { .sectors-grid { grid-template-columns: 1fr; } }

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* services.php */
.services-intro { background: var(--white); padding: 80px 0; }
  .services-intro-inner { display: flex; flex-direction: column; gap: 24px; }
  .services-intro-inner h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(24px,3.2vw,44px); font-weight: 400; letter-spacing: 0.04em; color: var(--ink); line-height: 1.1; margin-bottom: 0; }
  .svc-intro-sub { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: clamp(20px,2.5vw,34px); font-weight: 300; color: var(--grey); margin-top: 0; margin-bottom: 0; }
  .services-intro-inner p { font-size: 15px; font-weight: 300; color: var(--grey); line-height: 1.95; max-width: 720px; }
  .services-intro-inner p strong { color: var(--ink); font-weight: 500; }
  .svc-block { padding: 80px 0; }
  .svc-block:nth-child(odd) { background: var(--cream); }
  .svc-block:nth-child(even) { background: var(--white); }
  .svc-block-inner { display: grid; grid-template-columns: 280px 1fr; gap: 80px; align-items: start; }
  .svc-block-num { font-family: 'Tenor Sans', sans-serif; font-size: 64px; font-weight: 400; color: var(--red); line-height: 1; margin-bottom: 4px; }
  
  
  .svc-block-content p { font-size: 14.5px; font-weight: 400; color: var(--grey); line-height: 1.95; margin-bottom: 16px; }
  .svc-block-content p strong { color: var(--ink); font-weight: 500; }
  
  
  .svc-tags { display: flex; flex-wrap: wrap; gap: 10px; }
  .svc-tag { font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); border: 2px solid var(--rule); padding: 10px 20px; transition: all .2s; }
  .svc-tag:hover { border-color: var(--red); color: var(--red); }
  .process-full { background: var(--cream); padding: 96px 0; }
  .process-full h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(24px,3vw,42px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 52px; padding-bottom: 22px; border-bottom: 1px solid var(--rule); }
  .process-steps-full { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--rule); }
  .psf { background: var(--white); padding: 52px 40px; transition: background .3s; }
  .psf:hover { background: var(--warm); }
  .psf-num { font-family: 'Tenor Sans', sans-serif; font-size: 64px; font-weight: 400; color: #CC2222; line-height: 1; margin-bottom: 20px; display: block; }
  .psf-title { font-family: 'Tenor Sans', sans-serif; font-size: 17px; font-weight: 400; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 14px; }
  .psf-body { font-size: 14.5px; font-weight: 400; color: var(--grey); line-height: 1.9; }
  .psf-body + .psf-body { margin-top: 14px; }
  @media (max-width: 900px) {
.services-intro-inner { grid-template-columns: 1fr; gap: 24px; }
.svc-block { padding: 64px 0; }
.svc-block-inner { grid-template-columns: 1fr; gap: 32px; }
.process-steps-full { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 500px) { .process-steps-full { grid-template-columns: 1fr; } }

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* work.php */
.work-intro { background: var(--white); padding: 72px 0; }
  .work-intro-inner { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: center; }
  .work-intro-inner h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.8vw,40px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); line-height: 1.1; }
  .work-intro-inner p { font-size: 15px; font-weight: 300; color: var(--grey); line-height: 1.95; }
  .work-intro-inner p strong { color: var(--ink); font-weight: 500; }
  .portfolio-section { background: var(--cream); padding: 80px 0; }
  .portfolio-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .portfolio-header h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); }
  .portfolio-header p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 14px; color: var(--grey); }
  
  
  .port-img {
position: absolute; inset: 0; background-size: cover; background-position: center;
transition: transform .5s ease;
  }
  .port-item:hover .port-img { transform: scale(1.05); }
  .port-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(42,42,42,.9) 0%, transparent 55%); opacity: 0; transition: opacity .35s; }
  .port-item:hover .port-overlay { opacity: 1; }
  .port-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 22px 26px; z-index: 2; transform: translateY(8px); transition: transform .35s; }
  .port-item:hover .port-info { transform: none; }
  
  
  .port-note { background: var(--char); padding: 48px 0; }
  .port-note-inner { display: flex; align-items: center; justify-content: space-between; gap: 48px; }
  .port-note-inner p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: clamp(17px,2vw,24px); font-weight: 300; color: rgba(255,255,255,.55); line-height: 1.55; max-width: 600px; }
  .port-note-inner p strong { color: var(--white); font-weight: 400; }
  .clients-section { background: var(--white); padding: 80px 0; }
  .clients-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .clients-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--rule); }
  .client-cell { background: var(--white); padding: 32px 24px; transition: background .25s; }
  .client-cell:hover { background: var(--cream); }
  .cc-name { font-family: 'Tenor Sans', sans-serif; font-size: 13px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink); margin-bottom: 4px; }
  .cc-type { font-size: 11px; font-weight: 300; color: var(--lgrey); letter-spacing: 0.08em; }
  .testi-section { background: var(--warm); padding: 80px 0; position: relative; z-index: 1; }
  .testi-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .testi-list { display: flex; flex-direction: column; }
  .tl-item { display: grid; grid-template-columns: 60px 1fr 220px; gap: 0 48px; padding: 34px 0; border-bottom: 1px solid var(--rule); align-items: start; transition: background .2s, padding .2s; }
  .tl-item:hover { background: var(--white); padding: 34px 20px; margin: 0 -20px; }
  .tl-num { font-family: 'Tenor Sans', sans-serif; font-size: 32px; font-weight: 400; color: var(--red); line-height: 1; padding-top: 4px; }
  .tl-body { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: clamp(15px,1.6vw,18px); font-weight: 300; color: var(--ink); line-height: 1.72; }
  .tl-meta { padding-top: 4px; }
  .tl-name { font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; color: var(--ink); display: block; margin-bottom: 3px; }
  .tl-role { font-family: 'Poppins', sans-serif; font-size: 9.5px; font-weight: 300; letter-spacing: 0.1em; color: var(--red); }
  @media (max-width: 900px) {
.work-intro-inner { grid-template-columns: 1fr; gap: 24px; }
.port-grid { grid-template-columns: 1fr 1fr; }
.clients-grid { grid-template-columns: 1fr 1fr; }
.portfolio-header { flex-direction: column; align-items: flex-start; gap: 8px; }
.tl-item { grid-template-columns: 1fr; gap: 12px; }
.tl-num { display: none; }
.tl-item:hover { margin: 0; padding: 30px 0; }
.port-note-inner { flex-direction: column; }
  }
  @media (max-width: 500px) { .port-grid { grid-template-columns: 1fr; } .clients-grid { grid-template-columns: 1fr; } }

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* useful-info.php */
.info-intro { background: var(--white); padding: 72px 0; }
  .info-intro-inner { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: center; }
  .info-intro-inner h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.8vw,40px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); line-height: 1.1; }
  .info-intro-inner h2 em { display: block; font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: .9em; font-weight: 300; color: var(--grey); margin-top: 6px; }
  .info-intro-inner p { font-size: 14.5px; font-weight: 300; color: var(--grey); line-height: 1.95; }
  .info-article { padding: 80px 0; }
  .info-article:nth-child(odd) { background: var(--cream); }
  .info-article:nth-child(even) { background: var(--white); }
  .ia-inner { display: grid; grid-template-columns: 240px 1fr; gap: 72px; align-items: start; }
  .ia-num { font-family: 'Tenor Sans', sans-serif; font-size: 56px; font-weight: 400; color: var(--red); line-height: 1; margin-bottom: 4px; }
  .ia-title { font-family: 'Tenor Sans', sans-serif; font-size: clamp(18px,2.2vw,28px); font-weight: 500; letter-spacing: 0.08em; color: var(--ink); line-height: 1.1; margin-bottom: 8px; }
  .ia-sub { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.38em; text-transform: uppercase; color: var(--red); }
  
  
  .ia-content p { font-size: 14px; font-weight: 400; color: var(--grey); line-height: 1.95; margin-bottom: 14px; }
  .ia-content p strong { color: var(--ink); font-weight: 500; }
  .info-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
  .info-table th { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.38em; text-transform: uppercase; color: var(--red); padding: 12px 16px; border-bottom: 2px solid var(--rule); text-align: left; }
  .info-table td { font-size: 13px; font-weight: 300; color: var(--grey); padding: 11px 16px; border-bottom: 1px solid var(--rule); }
  .info-table tr:hover td { background: var(--warm); color: var(--ink); }
  .news-section { background: var(--char); padding: 80px 0; }
  .news-section h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.5vw,36px); font-weight: 400; letter-spacing: 0.08em; color: var(--white); margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid var(--bdr); }
  .news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--bdr); }
  .news-card { background: var(--char); padding: 44px 40px; transition: background .3s; }
  .news-card:hover { background: var(--dark); }
  .nc-label { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.4em; text-transform: uppercase; color: var(--red); margin-bottom: 14px; display: block; }
  .nc-title { font-family: 'Tenor Sans', sans-serif; font-size: clamp(17px,2vw,24px); font-weight: 500; letter-spacing: 0.08em; color: var(--white); line-height: 1.15; margin-bottom: 14px; }
  .nc-body { font-size: 13.5px; font-weight: 300; color: rgba(255,255,255,.4); line-height: 1.85; }
  @media (max-width: 900px) {
.info-intro-inner { grid-template-columns: 1fr; gap: 24px; }
.info-article { padding: 64px 0; }
.ia-inner { grid-template-columns: 1fr; gap: 28px; }
.news-grid { grid-template-columns: 1fr; }
  }

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */


/* contact.php */
.contact-main { display: grid; grid-template-columns: 1fr 1fr; }
  .contact-details { background: var(--char); padding: 80px 64px 80px 48px; display: flex; flex-direction: column; justify-content: center; }
  .contact-details h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.8vw,40px); font-weight: 400; letter-spacing: 0.06em; color: var(--white); line-height: 1.1; margin-bottom: 22px; }
  .contact-details h2 em { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: .85em; font-weight: 300; color: rgba(255,255,255,.4); display: block; margin-top: 6px; }
  .contact-tagline { font-family: 'Poppins', sans-serif; font-size: 15px; font-weight: 300; color: rgba(255,255,255,.65); line-height: 1.85; margin-bottom: 44px; max-width: 100%; }
  .contact-block { margin-bottom: 32px; }
  .cb-label { font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.44em; text-transform: uppercase; color: var(--red); margin-bottom: 10px; display: block; }
  .cb-value { display: flex; flex-direction: column; gap: 4px; }
  .cb-value a { font-size: 14px; font-weight: 300; color: rgba(255,255,255,.65); text-decoration: none; letter-spacing: 0.04em; transition: color .2s; }
  .cb-value a:hover { color: var(--amber); }
  .cb-value span { font-size: 13px; font-weight: 300; color: rgba(255,255,255,.35); letter-spacing: 0.04em; line-height: 1.7; }
  .contact-form-wrap { background: var(--cream); padding: 80px 52px 80px 64px; display: flex; flex-direction: column; justify-content: center; }
  .contact-form-wrap h3 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(18px,2vw,28px); font-weight: 400; letter-spacing: 0.1em; color: var(--ink); margin-bottom: 32px; }
  .form-group { margin-bottom: 20px; }
  .form-group label { display: block; font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.4em; text-transform: uppercase; color: var(--grey); margin-bottom: 8px; }
  .form-group input, .form-group select, .form-group textarea {
width: 100%; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 300;
color: var(--ink); background: var(--white); border: 1px solid var(--rule);
padding: 13px 16px; outline: none; transition: border-color .2s; -webkit-appearance: none; border-radius: 0;
  }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--red); }
  .form-group textarea { height: 130px; resize: vertical; }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .form-note { font-size: 10px; font-weight: 300; color: var(--lgrey); margin-top: 12px; letter-spacing: 0.04em; }
  .social-strip { background: var(--white); padding: 44px 0; border-top: 1px solid var(--rule); }
  .social-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .social-inner p { font-family: 'Tenor Sans', sans-serif; font-style: italic; font-size: 16px; font-weight: 300; color: var(--grey); }
  .social-links { display: flex; gap: 12px; }
  .social-link { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--grey); text-decoration: none; border: 1px solid var(--rule); padding: 10px 18px; transition: all .25s; }
  .social-link:hover { border-color: var(--red); color: var(--red); }
  .map-section { width: 100%; line-height: 0; }
  @media (max-width: 900px) {
.contact-main { grid-template-columns: 1fr; }
.contact-details { padding: 64px 28px; }
.contact-form-wrap { padding: 52px 28px; }
.form-row { grid-template-columns: 1fr; }
.social-inner { flex-direction: column; text-align: center; }
  }

/* ── FONT HIERARCHY ────────────────────────────────────────────────────────── Tenor Sans → all h1, h2 headlines and titles (font-weight 400) Poppins 600 → subheadings, labels, buttons, nav Poppins 400 → body copy, descriptions, paragraphs ─────────────────────────────────────────────────────────────────────────── */
.ia-content h3 { font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.08em; color: var(--ink); margin: 24px 0 10px; }
.ia-content h3:first-child { margin-top: 0; }
.svc-block-title { font-family: 'Tenor Sans', sans-serif; font-size: clamp(20px,2.5vw,32px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); line-height: 1.1; margin-bottom: 10px; }
.svc-block-tag { font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 0.38em; text-transform: uppercase; color: var(--red); }
.svc-includes h4 { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.42em; text-transform: uppercase; color: var(--red); margin-bottom: 14px; }
.step-title { font-family: 'Tenor Sans', sans-serif; font-size: 18px; font-weight: 400; letter-spacing: 0.08em; color: var(--ink); margin-bottom: 5px; }
.step-tag { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.36em; text-transform: uppercase; color: var(--red); }


/* portal.php - split screen login */
/* Scoped to .portal-page. Earlier versions of this block carried an unscoped reset, a second :root and a body{background:var(--char);display:flex} that applied to every page on the site. Removed. */

.portal-page { min-height: 100vh; padding-top: 80px; display: flex; flex-direction: column; background: var(--white); }

/* ---- the split ---- */
.portal-split { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.portal-pane { min-width: 0; display: flex; flex-direction: column; padding: 48px 6% 28px; }
.portal-inner { width: 100%; max-width: 480px; margin: auto; }
.portal-art { min-width: 0; background: var(--cream) url('/assets/img/portal-side.jpg') center center / cover no-repeat; }

/* ---- notice ---- */
.portal-notice { background: var(--cream); border-left: 2px solid var(--amber); padding: 15px 18px; margin-bottom: 34px; }
.portal-notice p { font-size: 12.5px; font-weight: 300; color: var(--grey); line-height: 1.75; }
.portal-notice p strong { color: var(--ink); font-weight: 500; }
.portal-notice a { color: var(--red); text-decoration: none; border-bottom: 1px solid rgba(204,34,34,.3); }
.portal-notice a:hover { border-bottom-color: var(--red); }

/* ---- heading ---- */
.portal-inner h1 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(22px,2.4vw,30px); font-weight: 400; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 10px; }
.portal-intro { font-size: 13.5px; font-weight: 300; color: var(--grey); line-height: 1.8; margin-bottom: 30px; }

/* ---- form (shared .form-group lives in the CONTACT block above) ---- */
.portal-page .form-group { margin-bottom: 18px; }
.portal-page .form-group input { background: var(--cream); }
.portal-page .form-group input:focus { background: var(--white); }
.portal-page .form-group input:disabled { color: var(--lgrey); cursor: not-allowed; }
.portal-forgot { display: inline-block; margin-bottom: 26px; font-size: 12px; font-weight: 300; color: var(--red); text-decoration: none; border-bottom: 1px solid rgba(204,34,34,.3); }
.portal-forgot:hover { border-bottom-color: var(--red); }
.portal-submit { width: 100%; font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; background: var(--red); color: var(--white); padding: 16px; border: none; cursor: pointer; transition: background .25s; }
.portal-submit:hover { background: #B01C1C; }
.portal-submit:disabled { cursor: not-allowed; background: var(--sand); color: var(--grey); }
.portal-submit:disabled:hover { background: var(--sand); }

/* ---- help links ---- */
.portal-help { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 10px; }
.portal-help a { font-size: 12.5px; font-weight: 300; color: var(--grey); text-decoration: none; transition: color .2s; }
.portal-help a:hover { color: var(--red); }

/* ---- footer, bottom left of the form pane ---- */
.portal-foot { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; padding-top: 28px; font-size: 10.5px; font-weight: 300; letter-spacing: 0.04em; color: var(--lgrey); }
.portal-foot a { color: var(--grey); text-decoration: none; transition: color .2s; }
.portal-foot a:hover { color: var(--red); }

@media (max-width: 900px) {
  .portal-split { grid-template-columns: minmax(0,1fr); }
  .portal-art { display: none; }
  .portal-pane { padding: 40px 24px 24px; }
  .portal-inner { max-width: 480px; margin: 0 auto; }
  .portal-foot { justify-content: center; text-align: center; }
}
@media (max-width: 480px) {
  .portal-pane { padding: 32px 20px 20px; }
  .portal-notice { margin-bottom: 28px; }
}

/* API logo strip scroll animation */
@keyframes tt-scroll{0%{transform:translateX(0);}100%{transform:translateX(-25%);}}


/* Elektra Designs - proposed additions Load AFTER style.css. Only contains what is new or overridden; everything else still comes from your existing stylesheet.
*/

/* ── Accessibility ─────────────────────────────── */
.skip-link{position:fixed;left:-9999px;top:0;z-index:9999;background:var(--red);color:#fff;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:14px 22px;text-decoration:none;}
.skip-link:focus{left:0;outline:none;}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--red);outline-offset:3px;}
header .ham{background:none;border:none;}
[id]{scroll-margin-top:96px;}
@media(prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important;}}

/* ── Nav additions ─────────────────────────────── */
.crumbs{font-family:'Poppins',sans-serif;font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.4);margin-bottom:22px;}
.crumbs a{color:rgba(255,255,255,.6);text-decoration:none;}
.crumbs a:hover{color:var(--amber);}
.crumbs [aria-current]{color:var(--amber);}

/* ── Hero (image left, text right - real <img>, no background-image) ── */
.hero{padding-top:80px;height:auto;min-height:600px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;background:#fff;}
.hero-media{position:relative;min-width:0;min-height:600px;background:var(--sand);order:-1;}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-left{min-width:0;padding:72px 56px;}
.hero-h1{font-size:clamp(48px,6vw,92px);margin-bottom:24px;}
.hero-markets{font-family:'Poppins',sans-serif;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:34px;}

/* ── Proof strip ───────────────────────────────── */
.proof{background:#fff;border-top:1px solid var(--rule);padding:32px 48px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.proof-stats{display:flex;gap:56px;flex-wrap:wrap;}
.ps-fig{display:block;font-family:'Tenor Sans',sans-serif;font-size:34px;color:var(--red);line-height:1;}
.ps-lbl{display:block;font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--grey);margin-top:6px;}
.proof-logos{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.proof-logos-lbl{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--lgrey);}
.proof-logos-track{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:44px;}

/* ── Problem band (unwrap the nowrap) ──────────── */
.problem h2{white-space:normal;}
.problem p{max-width:720px;}

/* ── Featured case study ───────────────────────── */
.featured{background:var(--cream);padding:88px 0;}
.featured-inner{display:grid;grid-template-columns:1.2fr 1fr;background:#fff;}
.featured-media{position:relative;min-width:0;min-height:440px;}
.featured-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.featured-body{min-width:0;padding:56px 48px;display:flex;flex-direction:column;justify-content:center;}
.featured-cat{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:var(--red);margin-bottom:12px;}
.featured-body h3{font-family:'Tenor Sans',sans-serif;font-size:clamp(24px,2.6vw,34px);font-weight:400;letter-spacing:.05em;line-height:1.15;color:var(--ink);margin-bottom:16px;}
.featured-lede{font-size:14.5px;color:var(--grey);line-height:1.9;margin-bottom:28px;}
.featured-metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);margin-bottom:28px;}
.featured-metrics>div{background:#fff;padding:20px;}
.fm-fig{display:block;font-family:'Tenor Sans',sans-serif;font-size:30px;color:var(--red);line-height:1;}
.fm-lbl{display:block;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);margin-top:8px;}

/* ── Compact process (replaces the long duplicate) ── */
.process-header p{white-space:normal;}
.process-compact{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);list-style:none;}
.process-compact--three{grid-template-columns:repeat(3,1fr);background:var(--rule);}
.process-compact li{background:#fff;padding:36px 28px;}
.process-compact--three li{background:var(--cream);}
.pc-num{display:block;font-family:'Tenor Sans',sans-serif;font-size:44px;color:var(--red);line-height:1;margin-bottom:16px;}
.process-compact h3{font-family:'Tenor Sans',sans-serif;font-size:18px;font-weight:400;letter-spacing:.08em;color:var(--ink);margin-bottom:8px;}
.process-compact p{font-size:13.5px;color:var(--grey);line-height:1.8;}
.process-footer{justify-content:flex-end;}

/* ── Who this is for ───────────────────────────── */
.audience{background:var(--warm);padding:88px 0;}
.audience-header{display:grid;grid-template-columns:1fr 1.4fr;gap:72px;align-items:start;margin-bottom:44px;}
.audience-header h2{font-family:'Tenor Sans',sans-serif;font-size:clamp(26px,3.2vw,38px);font-weight:400;letter-spacing:.05em;line-height:1.1;color:var(--ink);}
.audience-header p{font-size:15px;color:var(--grey);line-height:1.95;}
.audience .sectors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);}
.audience .sector{background:var(--warm);padding:30px 26px;display:block;text-decoration:none;}
.audience .sector:hover{background:#fff;}
.pricing-note{margin-top:28px;background:#fff;border-left:3px solid var(--amber);padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;}
.pricing-note p{font-size:14px;color:var(--grey);line-height:1.8;max-width:640px;}
.pricing-note p strong{color:var(--ink);font-weight:500;}
.pricing-note--block{margin-top:24px;}
.pn-label{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:var(--red);margin-bottom:8px;}
.pn-figure{font-family:'Tenor Sans',sans-serif;font-size:26px;color:var(--ink);letter-spacing:.04em;}
.pn-body{font-size:13px;color:var(--grey);line-height:1.8;margin-top:6px;max-width:520px;}

/* ── Testimonials: three up, semantic markup ───── */
.testi-grid--three{grid-template-columns:repeat(3,1fr);}
.tc figcaption{display:block;}
.tc blockquote{margin:0;}

/* ── Split CTA with second conversion path ─────── */
.cta-split{background:var(--char);padding:88px 0;}
.cta-split-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center;}
.cta-split h2{font-family:'Tenor Sans',sans-serif;font-size:clamp(28px,4vw,46px);font-weight:300;color:#fff;line-height:1.25;margin-bottom:14px;}
.cta-split h2 strong{font-style:italic;font-size:.62em;display:block;letter-spacing:.08em;font-weight:400;}
.cta-lede{font-size:14px;font-weight:300;color:rgba(255,255,255,.45);line-height:1.85;max-width:480px;margin-bottom:28px;}
.cta-split .cta-btns{justify-content:flex-start;}
.cta-magnet{border:1px solid rgba(232,160,32,.3);padding:32px 30px;}
.cta-magnet-label{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:var(--amber);margin-bottom:14px;}
.cta-magnet h3{font-family:'Tenor Sans',sans-serif;font-size:22px;font-weight:400;letter-spacing:.06em;color:#fff;line-height:1.3;margin-bottom:12px;}
.cta-magnet p{font-size:13.5px;font-weight:300;color:rgba(255,255,255,.45);line-height:1.85;margin-bottom:20px;}
.btn-amber{display:inline-block;font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;background:var(--amber);color:var(--dark);padding:13px 28px;text-decoration:none;transition:background .2s;}
.btn-amber:hover{background:#d18f14;}

/* ── Service / sector shared blocks ────────────── */
.rule-heading{font-family:'Tenor Sans',sans-serif;font-size:clamp(24px,3vw,32px);font-weight:400;letter-spacing:.06em;color:var(--ink);padding-bottom:20px;border-bottom:1px solid var(--rule);margin-bottom:0;}
.svc-lead{background:#fff;padding:64px 0;}
.svc-lead-inner{display:grid;grid-template-columns:1fr 1.6fr;gap:72px;align-items:start;}
.svc-lead-inner p{font-size:15px;color:var(--grey);line-height:1.95;margin-bottom:16px;}
.svc-lead-inner p strong{color:var(--ink);font-weight:500;}
.answer-first{font-family:'Tenor Sans',sans-serif;font-size:20px;line-height:1.6;color:var(--ink);border-left:2px solid var(--red);padding-left:20px;}
.svc-includes h2{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:var(--red);margin-bottom:16px;}
.svc-includes{margin-top:32px;}
.svc-tags{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;list-style:none;}
.svc-runs{background:var(--warm);padding:72px 0;}
.svc-faq{background:#fff;padding:72px 0;}
.svc-faq-inner{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.faq{margin-top:8px;}
.faq details{border-top:1px solid var(--rule);padding:18px 0;}
.faq details:last-child{border-bottom:1px solid var(--rule);}
.faq summary{font-family:'Poppins',sans-serif;font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';color:var(--red);font-weight:400;font-size:18px;line-height:1;}
.faq details[open] summary::after{content:'\2013';}
.faq p{font-size:14px;color:var(--grey);line-height:1.9;margin-top:10px;}
.thumb-pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.thumb-pair img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.chip-row{display:flex;gap:10px;flex-wrap:wrap;}
.chip{font-family:'Poppins',sans-serif;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border:1px solid rgba(46,46,46,.15);padding:9px 16px;text-decoration:none;transition:all .2s;}
.chip:hover{border-color:var(--red);color:var(--red);}

/* ── Sector page ───────────────────────────────── */
.sector-work{background:var(--warm);padding:72px 0;}
.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;}
.case-card{background:#fff;display:block;text-decoration:none;}
.case-card img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.case-card-body{padding:24px 26px;}
.case-cat{font-family:'Poppins',sans-serif;font-size:8.5px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:var(--red);margin-bottom:6px;}
.case-card-body h3{font-family:'Tenor Sans',sans-serif;font-size:20px;font-weight:400;letter-spacing:.06em;color:var(--ink);}
.sector-foot{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}

/* ── Case study ────────────────────────────────── */
.case-hero{position:relative;height:520px;background:var(--sand);margin-top:80px;}
.case-hero img{width:100%;height:100%;object-fit:cover;}
.case-intro{background:#fff;padding:56px 0;}
.case-intro h1{font-family:'Tenor Sans',sans-serif;font-size:clamp(30px,4.4vw,52px);font-weight:400;letter-spacing:.04em;line-height:1.1;color:var(--ink);max-width:900px;margin-bottom:36px;}
.case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.case-meta>div{background:#fff;padding:20px 22px;}
.case-meta dt{font-family:'Poppins',sans-serif;font-size:8.5px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--lgrey);margin-bottom:8px;}
.case-meta dd{font-size:14px;color:var(--ink);}
.case-body{background:var(--cream);padding:72px 0;}
.case-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;}
.case-cols h2{font-family:'Tenor Sans',sans-serif;font-size:24px;font-weight:400;letter-spacing:.08em;color:var(--ink);margin-bottom:14px;}
.case-cols p{font-size:14.5px;color:var(--grey);line-height:1.95;}
.case-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:44px;}
.case-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.case-next{background:#fff;padding:56px 0;}
.case-next-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}
.case-next-link{font-family:'Tenor Sans',sans-serif;font-size:28px;letter-spacing:.05em;color:var(--ink);text-decoration:none;}
.case-next-link:hover{color:var(--red);}

/* ── Footer additions ──────────────────────────── */
.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;}
.f-markets{font-family:'Poppins',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);line-height:1.7;margin-top:0;max-width:none;text-align:right;flex-shrink:0;}

/* ── Responsive ────────────────────────────────── */
@media(max-width:1024px){
  .proof{padding:28px;}
  .svc-lead-inner,.svc-faq-inner,.audience-header{grid-template-columns:1fr;gap:32px;}
  .cta-split-inner{grid-template-columns:1fr;gap:40px;}
  .case-cols{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;min-height:0;}
  .hero-media{min-height:60vw;}
  .hero-left{padding:52px 28px;}
  .process-compact,.process-compact--three{grid-template-columns:1fr 1fr;}
  .audience .sectors-grid{grid-template-columns:1fr 1fr;}
  .testi-grid--three{grid-template-columns:1fr;}
  .featured-inner{grid-template-columns:1fr;}
  .featured-media{min-height:60vw;}
  .case-pair,.sector-foot,.case-gallery,.thumb-pair{grid-template-columns:1fr;}
  .case-meta{grid-template-columns:1fr 1fr;}
  .case-hero{height:52vw;}
}
@media(max-width:500px){
  .process-compact,.process-compact--three,.audience .sectors-grid,.svc-tags,.case-meta,.featured-metrics{grid-template-columns:1fr;}
  .proof-stats{gap:28px;}
}


/* footer markets responsive */
@media(max-width:1024px){
  .f-markets{text-align:left;flex-shrink:1;}
}
@media(max-width:500px){
  .f-social-bar{flex-direction:column;align-items:flex-start;gap:16px;}
  .f-markets{text-align:left;flex-shrink:1;}
}


/* MOBILE PASS - loads last so these win */

@media(max-width:900px){
  /* Inner-page hero (about / services / work / useful-info / contact) */
  .about-hero{grid-template-columns:1fr;min-height:0;padding-top:80px;}
  .about-hero-img{order:-1;min-height:58vw;}
  .about-hero-img::after{background:linear-gradient(to bottom,transparent 55%,rgba(59,59,59,.75) 100%);}
  .about-hero-content{padding:44px 28px 52px;}
  .about-hero-content h1{font-size:clamp(32px,8vw,54px);}
  .about-hero-content p{max-width:100%;}

  /* Homepage proof strip */
  .proof{padding:20px 28px;gap:20px;}
  .proof > div:first-child{padding:0 20px 0 0 !important;}

  /* Joe section */
  .joe-inner{grid-template-columns:1fr;gap:32px;}
  .joe-photo{aspect-ratio:4/3;}
  .joe-photo-wrap .hero-name-card{bottom:16px;right:16px;}

  /* Dark process block */
  .process-full > div{padding:0 28px !important;}
  .process-steps-full{grid-template-columns:1fr 1fr;}
  .psf{padding:36px 26px;}

  /* Testimonials */
  .testi-grid,.testi-grid--three{grid-template-columns:1fr;}
  .testi-header{flex-direction:column;align-items:flex-start;gap:10px;}

  /* Modals */
  .tc-modal{padding:16px;}
  .tc-modal-inner{padding:40px 26px;}
  #cs-modal > div{margin:24px auto !important;}
  #cs-modal > div > div:last-child{padding:32px 26px !important;}

  /* Footer */
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
}

@media(max-width:600px){
  .about-hero-content{padding:36px 20px 44px;}
  .process-steps-full{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:12px;}
  .f-legal{flex-wrap:wrap;gap:14px;}

  /* Full-width tap targets */
  .hero-ctas,.cta-btns{flex-direction:column;align-items:stretch;width:100%;}
  .hero-ctas .btn-red,.hero-ctas .btn-outline-red,
  .cta-btns .btn-white,.cta-btns .btn-ghost,
  .about-hero-content .btn-red,.about-hero-content .btn-outline-red{
    display:block;width:100%;text-align:center;box-sizing:border-box;
  }

  /* Proof strip - hide label, let logos use full width */
  .proof{padding:16px 20px;}
  .proof > div:first-child{display:none !important;}

  .process-full > div{padding:0 20px !important;}
  .psf{padding:32px 22px;}
  .tc-modal-inner{padding:32px 20px;}
}

/* Never allow sideways scroll */
html,body{overflow-x:hidden;}
img,svg,video,iframe{max-width:100%;}


/* CASE STUDY MODAL - Our Work */

.cs-modal{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.72);
          overflow-y:auto;padding:40px 24px;}
.cs-modal.open{display:block;}

.cs{background:#fff;max-width:1280px;margin:0 auto;position:relative;
    display:grid;grid-template-columns:1.1fr 1fr;
    box-shadow:0 30px 80px rgba(0,0,0,.28);}

.cs-close{position:absolute;top:18px;right:18px;z-index:5;width:40px;height:40px;
          border:none;background:rgba(255,255,255,.92);color:var(--ink);
          font-size:22px;line-height:1;cursor:pointer;transition:background .2s;}
.cs-close:hover{background:#fff;}
.cs-close:focus-visible{outline:2px solid var(--red);outline-offset:2px;}

/* Left - the work */
.cs-visual{background:var(--cream);padding:26px;display:flex;flex-direction:column;gap:14px;}
.cs-stage{position:relative;flex:1;min-height:360px;background:var(--warm);overflow:hidden;}
.cs-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
              opacity:0;transition:opacity .45s ease;}
.cs-stage img.on{opacity:1;}
.cs-caption{position:absolute;left:0;bottom:0;z-index:2;background:rgba(43,43,43,.82);color:#fff;
            font-family:'Poppins',sans-serif;font-size:10px;font-weight:500;
            letter-spacing:.16em;text-transform:uppercase;padding:9px 16px;}

.cs-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.cs-thumb{aspect-ratio:3/2;overflow:hidden;border:none;padding:0;cursor:pointer;
          background:var(--warm);outline:1.5px solid transparent;transition:outline-color .2s;}
.cs-thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35);transition:filter .25s;}
.cs-thumb[aria-current="true"]{outline-color:var(--red);}
.cs-thumb[aria-current="true"] img,.cs-thumb:hover img{filter:none;}
.cs-thumb:focus-visible{outline:2px solid var(--red);outline-offset:2px;}

/* Right - the story */
.cs-body{padding:56px 56px 56px 52px;overflow-y:auto;max-height:84vh;scroll-behavior:smooth;}
.cs-sector{font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.42em;
           text-transform:uppercase;color:var(--red);display:flex;align-items:center;
           gap:11px;margin-bottom:16px;}
.cs-sector::before{content:'';width:18px;height:1px;background:var(--red);}
.cs-title{font-family:'Tenor Sans',sans-serif;font-size:clamp(27px,3vw,38px);font-weight:400;
          letter-spacing:.03em;line-height:1.14;color:var(--ink);margin-bottom:9px;}
.cs-client{font-family:'Poppins',sans-serif;font-size:11px;font-weight:500;letter-spacing:.13em;
           text-transform:uppercase;color:var(--grey);margin-bottom:30px;}
.cs-lede{font-family:'Tenor Sans',sans-serif;font-style:italic;font-size:18px;line-height:1.65;
         color:var(--ink);border-left:2px solid var(--red);padding-left:20px;margin-bottom:28px;}

.cs-prose p{font-size:15.5px;line-height:1.9;color:#5C5C5C;margin-bottom:19px;}
.cs-prose h2,.cs-prose h3,.cs-h3{font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;
         letter-spacing:.24em;text-transform:uppercase;color:var(--ink);margin:32px 0 13px;}
.cs-prose ul,.cs-prose ol{margin:0 0 17px 20px;}
.cs-prose li{font-size:15.5px;line-height:1.85;color:#5C5C5C;margin-bottom:11px;padding-left:6px;}

.cs-prose a{color:var(--red);}

.cs-facts{border-top:1px solid var(--rule);margin-top:32px;padding-top:24px;
          display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;}
.cs-fact span{display:block;font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;
              letter-spacing:.28em;text-transform:uppercase;color:var(--lgrey);margin-bottom:6px;}
.cs-fact strong{font-family:'Tenor Sans',sans-serif;font-size:16px;font-weight:400;color:var(--ink);}

.cs-tags{display:flex;flex-wrap:wrap;gap:8px;}
.cs-tag{font-family:'Poppins',sans-serif;font-size:10px;font-weight:500;letter-spacing:.1em;
        text-transform:uppercase;color:var(--ink);border:1.5px solid var(--rule);padding:8px 15px;}

.cs-cta{margin-top:34px;padding-top:26px;border-top:1px solid var(--rule);
        display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.cs-next{font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;letter-spacing:.2em;
         text-transform:uppercase;color:var(--grey);background:none;border:none;
         cursor:pointer;padding:0;transition:color .2s;}
.cs-next:hover{color:var(--red);}
.cs-next:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

@media(max-width:900px){
  .cs-modal{padding:0;}
  .cs{grid-template-columns:1fr;box-shadow:none;}
  .cs-visual{padding:18px;}
  .cs-stage{flex:none;aspect-ratio:3/2;min-height:0;}
  .cs-body{padding:40px 28px;max-height:none;overflow:visible;}
  .cs-thumbs{grid-template-columns:repeat(4,1fr);gap:8px;}
  .cs-facts{grid-template-columns:1fr;}
}
@media(max-width:500px){
  .cs-visual{padding:14px;}
  .cs-body{padding:32px 20px;}
  .cs-cta .btn-red{width:100%;text-align:center;}
}

/* No images on the record - single readable column instead of an empty frame */
.cs--no-media{grid-template-columns:1fr;max-width:760px;}
.cs--no-media .cs-visual{display:none;}
.cs--no-media .cs-body{padding:64px 60px;max-height:86vh;}

/* Long-form portal copy */
.cs-prose > h3:first-child,.cs-prose > h2:first-child{margin-top:0;}
.cs-prose h2,.cs-prose h3,.cs-h3{margin:30px 0 12px;}
.cs-prose p + h2,.cs-prose p + h3,.cs-prose ul + h3,.cs-prose ol + h3{margin-top:34px;}
.cs-prose p:last-child{margin-bottom:0;}


@media(max-width:900px){
  .cs--no-media .cs-body{padding:40px 28px;}
}
@media(max-width:500px){
  .cs--no-media .cs-body{padding:32px 20px;}
}

/* LONG-FORM CASE STUDY COPY Joe writes at length, so the body needs real scanning anchors */

/* Section headings - proper anchors, not small-caps labels */
.cs-prose h2{
  font-family:'Tenor Sans',sans-serif;
  font-size:21px;font-weight:400;letter-spacing:.02em;text-transform:none;
  color:var(--ink);line-height:1.3;
  margin:44px 0 16px;padding-top:22px;
  border-top:1px solid var(--rule);
  position:relative;
}
.cs-prose h2::before{
  content:'';position:absolute;top:-1px;left:0;width:38px;height:2px;background:var(--red);
}
.cs-prose h2:first-child{margin-top:0;padding-top:0;border-top:none;}
.cs-prose h2:first-child::before{display:none;}

/* Sub-headings stay as small caps so the two levels read differently */
.cs-prose h3,.cs-h3{
  font-family:'Poppins',sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink);margin:30px 0 12px;
}
.cs-prose h4{
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;letter-spacing:.04em;
  color:var(--ink);margin:24px 0 10px;text-transform:none;
}

/* Opening paragraph carries a little more weight */
.cs-prose > p:first-of-type{font-size:16.5px;line-height:1.85;color:#4A4A4A;}

/* Lists - red markers, room to breathe */
.cs-prose ul{list-style:none;margin:0 0 22px;padding:0;}
.cs-prose ul li{position:relative;padding-left:22px;}
.cs-prose ul li::before{
  content:'';position:absolute;left:0;top:.72em;
  width:7px;height:1.5px;background:var(--red);
}
.cs-prose ol{margin:0 0 22px;padding-left:22px;}
.cs-prose ol li{padding-left:4px;}
.cs-prose ol li::marker{color:var(--red);font-weight:600;}

/* Emphasis */
.cs-prose strong{color:var(--ink);font-weight:600;}
.cs-prose em{font-family:'Tenor Sans',sans-serif;font-style:italic;color:var(--ink);}

/* A blockquote inside the body becomes a pull quote */
.cs-prose blockquote{
  margin:30px 0;padding:4px 0 4px 22px;border-left:2px solid var(--red);
  font-family:'Tenor Sans',sans-serif;font-style:italic;font-size:18px;
  line-height:1.65;color:var(--ink);
}
.cs-prose blockquote p{font-size:inherit;color:inherit;margin-bottom:0;font-style:inherit;}

/* Images inside the body */
.cs-prose img{width:100%;height:auto;margin:26px 0;}
.cs-prose hr{border:none;border-top:1px solid var(--rule);margin:36px 0;}

/* Reading progress for long entries */
.cs-progress{position:absolute;top:0;left:0;right:0;z-index:6;height:2px;background:rgba(46,46,46,.07);pointer-events:none;}
.cs-progress i{display:block;height:100%;width:0;background:var(--red);transition:width .1s linear;}

@media(max-width:900px){
  .cs-prose h2{font-size:19px;margin:34px 0 14px;padding-top:18px;}
  .cs-prose > p:first-of-type{font-size:15.5px;}
}

/* COLLAPSIBLE SECTIONS Built automatically from the <h2> headings in the portal body */

.cs-intro{margin-bottom:8px;}

.cs-sec{border-top:1px solid var(--rule);}
.cs-sec:last-of-type{border-bottom:1px solid var(--rule);}

.cs-sec > summary{
  list-style:none;cursor:pointer;position:relative;
  padding:20px 42px 20px 0;
  font-family:'Tenor Sans',sans-serif;font-size:19px;font-weight:400;
  letter-spacing:.02em;color:var(--ink);line-height:1.35;
  transition:color .2s;
}
.cs-sec > summary::-webkit-details-marker{display:none;}
.cs-sec > summary::marker{content:'';}
.cs-sec > summary:hover{color:var(--red);}
.cs-sec > summary:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

/* Chevron */
.cs-sec > summary::after{
  content:'';position:absolute;right:6px;top:50%;
  width:8px;height:8px;margin-top:-6px;
  border-right:1.5px solid var(--red);border-bottom:1.5px solid var(--red);
  transform:rotate(45deg);transition:transform .25s ease;
}
.cs-sec[open] > summary::after{transform:rotate(-135deg);margin-top:-2px;}

/* Red tick beside an open section */
.cs-sec > summary::before{
  content:'';position:absolute;left:-14px;top:50%;width:0;height:2px;
  background:var(--red);transform:translateY(-50%);transition:width .25s ease;
}
.cs-sec[open] > summary::before{width:8px;}

.cs-sec-body{padding:0 0 26px;animation:csFade .25s ease;}
.cs-sec-body > *:first-child{margin-top:0;}
.cs-sec-body > p:last-child,.cs-sec-body > ul:last-child{margin-bottom:0;}

@keyframes csFade{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* Headings inside a panel must not re-draw the section rule */
.cs-sec-body > h2:first-child,.cs-sec-body > h3:first-child,.cs-sec-body > h4:first-child{display:none;}
.cs-sec-body h3{margin-top:22px;}

.cs-toggle-all{
  display:inline-block;margin:0 0 6px;padding:0;
  background:none;border:none;cursor:pointer;
  font-family:'Poppins',sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--grey);
  transition:color .2s;
}
.cs-toggle-all:hover{color:var(--red);}
.cs-toggle-all:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

@media(prefers-reduced-motion:reduce){
  .cs-sec-body{animation:none;}
  .cs-sec > summary::after{transition:none;}
}
@media(max-width:900px){
  .cs-sec > summary{font-size:17px;padding:17px 36px 17px 0;}
}

/* PORTFOLIO CARDS Brand work is often logos on light grounds, so the artwork shows whole on a neutral ground and the caption sits in its own block. */

.port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}

.port-item{
  position:relative;overflow:hidden;aspect-ratio:auto;background:#fff;
  cursor:pointer;display:flex;flex-direction:column;
  border:1px solid var(--rule);
  transition:border-color .25s,box-shadow .25s,transform .25s;
}
.port-item:hover{
  border-color:rgba(204,34,34,.35);
  box-shadow:0 14px 34px rgba(0,0,0,.09);
  transform:translateY(-3px);
}
.port-item:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

/* Artwork - never cropped */
.port-img{
  position:relative;aspect-ratio:4/3;background-color:var(--cream);
  background-size:contain !important;
  background-repeat:no-repeat;
  background-position:center center;
  margin:0;transform:none !important;transition:none;
}

/* No scrim needed now the caption has its own space */
.port-overlay{display:none;}

/* Caption block */
.port-info{
  position:static;transform:none !important;
  padding:18px 20px 20px;border-top:1px solid var(--rule);
  background:#fff;
}
.port-cat{
  font-family:'Poppins',sans-serif;font-size:8.5px;font-weight:600;
  letter-spacing:.36em;text-transform:uppercase;color:var(--red);margin-bottom:7px;
}
.port-title{
  font-family:'Tenor Sans',sans-serif;font-size:16px;font-weight:400;
  letter-spacing:.02em;color:var(--ink);line-height:1.35;
  transition:color .2s;
}
.port-item:hover .port-title{color:var(--red);}

@media(max-width:900px){
  .port-grid{grid-template-columns:1fr 1fr;gap:18px;}
  .port-title{font-size:15px;}
}
@media(max-width:560px){
  .port-grid{grid-template-columns:1fr;gap:16px;}
}

/* OVERFLOW GUARDS Grid items default to min-width:auto, so a wide child stops the column shrinking and the text runs off instead of wrapping. */

.cs-visual,.cs-body{min-width:0;}
.cs-body,.cs-prose,.cs-intro,.cs-sec,.cs-sec-body{min-width:0;max-width:100%;}

/* Long words, URLs and pasted content must not force the column wider */
.cs-prose,.cs-prose p,.cs-prose li,.cs-prose h2,.cs-prose h3,.cs-prose h4,
.cs-sec > summary,.cs-lede,.cs-title{
  overflow-wrap:break-word;word-wrap:break-word;
}

/* Anything pasted in from a word processor */
.cs-prose *{max-width:100%;}
.cs-prose img{height:auto;}
.cs-prose pre{white-space:pre-wrap;overflow-x:auto;}
.cs-prose table{width:100%;display:block;overflow-x:auto;border-collapse:collapse;}

/* Editors often paste hard widths - ignore them inside the modal */
.cs-prose [style*="width"]{max-width:100% !important;}
.cs-prose [width]{max-width:100% !important;}

.cs-modal{overflow-x:hidden;}
.cs{max-width:min(1280px,100%);}
/* Keep the narrow reading column for records with no images - two classes so it wins regardless of rule order */
.cs.cs--no-media{max-width:min(760px,100%);}

/* COOKIE CONSENT BANNER Accept and Decline carry equal visual weight - a hidden or de-emphasised decline is not valid consent under UK GDPR / PECR. */

.ck{
  position:fixed;left:0;right:0;bottom:0;z-index:600;
  background:var(--char);border-top:2px solid var(--red);
  transform:translateY(100%);transition:transform .32s ease;
  box-shadow:0 -10px 40px rgba(0,0,0,.22);
}
.ck.in{transform:none;}

.ck-inner{
  max-width:1160px;margin:0 auto;padding:22px 48px;
  display:flex;align-items:center;justify-content:space-between;gap:40px;
}

.ck-text{
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:400;
  line-height:1.75;color:rgba(255,255,255,.72);margin:0;max-width:760px;
}
.ck-text a{color:var(--amber);text-decoration:underline;text-underline-offset:2px;}
.ck-text a:hover{color:#fff;}

.ck-actions{display:flex;gap:12px;flex-shrink:0;}

.ck-btn{
  font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  padding:14px 30px;cursor:pointer;transition:all .22s;
  border:1.5px solid transparent;min-height:44px;
}
.ck-accept{background:var(--red);color:#fff;border-color:var(--red);}
.ck-accept:hover{background:#fff;color:var(--red);}
.ck-decline{background:transparent;color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.35);}
.ck-decline:hover{border-color:#fff;color:#fff;}
.ck-btn:focus-visible{outline:2px solid var(--amber);outline-offset:3px;}

@media(max-width:860px){
  .ck-inner{flex-direction:column;align-items:stretch;gap:18px;padding:20px 28px;}
  .ck-text{max-width:100%;font-size:12.5px;}
  .ck-actions{gap:10px;}
  .ck-btn{flex:1;text-align:center;padding:14px 16px;}
}
@media(max-width:500px){
  .ck-inner{padding:18px 20px;}
}

/* POLICY PAGES */

.pol-hero{background:var(--char);padding:150px 0 60px;}
.pol-hero .lbl{color:var(--red);}
.pol-hero h1{
  font-family:'Tenor Sans',sans-serif;font-size:clamp(32px,5vw,58px);font-weight:400;
  letter-spacing:.04em;color:#fff;line-height:1.08;margin-bottom:14px;
}
.pol-hero p{font-size:13px;color:rgba(255,255,255,.5);letter-spacing:.04em;}

.pol-body{background:var(--white);padding:72px 0 96px;}
.pol-body .wrap{max-width:860px;}
.pol-body h2{
  font-family:'Tenor Sans',sans-serif;font-size:23px;font-weight:400;letter-spacing:.02em;
  color:var(--ink);margin:46px 0 16px;padding-top:24px;border-top:1px solid var(--rule);
  position:relative;
}
.pol-body h2::before{content:'';position:absolute;top:-1px;left:0;width:38px;height:2px;background:var(--red);}
.pol-body h2:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.pol-body h2:first-of-type::before{display:none;}
.pol-body h3{
  font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink);margin:28px 0 11px;
}
.pol-body p{font-size:15.5px;line-height:1.9;color:#5C5C5C;margin-bottom:18px;}
.pol-body ul{list-style:none;margin:0 0 22px;padding:0;}
.pol-body li{font-size:15.5px;line-height:1.85;color:#5C5C5C;margin-bottom:11px;position:relative;padding-left:22px;}
.pol-body li::before{content:'';position:absolute;left:0;top:.72em;width:7px;height:1.5px;background:var(--red);}
.pol-body a{color:var(--red);}
.pol-body strong{color:var(--ink);font-weight:600;}

.pol-table{width:100%;border-collapse:collapse;margin:0 0 26px;}
.pol-table th,.pol-table td{
  text-align:left;padding:13px 14px;border-bottom:1px solid var(--rule);
  font-size:14px;line-height:1.7;color:#5C5C5C;vertical-align:top;
}
.pol-table th{
  font-family:'Poppins',sans-serif;font-size:9px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ink);border-bottom:1.5px solid var(--ink);
}
.pol-note{
  background:var(--cream);border-left:2px solid var(--red);
  padding:20px 24px;margin:0 0 30px;
}
.pol-note p{margin:0;font-size:14.5px;}

@media(max-width:768px){
  .pol-hero{padding:120px 0 46px;}
  .pol-body{padding:52px 0 68px;}
  .pol-table{display:block;overflow-x:auto;}
}

/* Cookie settings link - matches the other footer legal links */
.f-cookie-btn{
  font-family:'Poppins',sans-serif;font-size:12px;font-weight:400;
  color:rgba(255,255,255,.5);background:none;border:none;padding:0;
  cursor:pointer;letter-spacing:.04em;transition:color .2s;
}
.f-cookie-btn:hover{color:#fff;}
.f-cookie-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

/* PASTED-STYLE NEUTRALISER Portal copy is written in a rich editor and often arrives carrying inline styles from Word or Google Docs. `word-break:break-all` is the damaging one: it splits ordinary words mid-syllable. These override inline styles, so the prose always wraps on spaces. */

.cs-prose,.cs-prose *,
.cs-lede,.cs-title,.cs-sec > summary{
  word-break:normal !important;
  line-break:auto !important;
  hyphens:manual !important;
  -webkit-hyphens:manual !important;
}

/* Still allow a genuinely unbreakable string (a long URL) to wrap rather than force the column wider */
.cs-prose,.cs-prose p,.cs-prose li,.cs-prose h2,.cs-prose h3,.cs-prose h4,
.cs-lede,.cs-title,.cs-sec > summary{
  overflow-wrap:break-word;
  word-wrap:break-word;
}

/* Pasted white-space values collapse or refuse to wrap - reset them, keeping <pre> deliberately preformatted */
.cs-prose *:not(pre):not(code){white-space:normal !important;}
.cs-prose pre{white-space:pre-wrap !important;}

/* A pasted wrapper div must not introduce its own column width */
.cs-prose > div{width:auto !important;}

/* INTRO SESSION BOOKER (contact.php) */
.bk-section { background: var(--cream); padding: 110px 0 120px; }
.bk-head { text-align: center; max-width: 640px; margin: 0 auto 48px; }
.bk-head h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(26px,3.2vw,38px); font-weight: 400; letter-spacing: .04em; color: var(--ink); margin: 14px 0 12px; }
.bk-head p { font-size: 14.5px; font-weight: 300; color: var(--grey); line-height: 1.9; }

.bk { max-width: 1100px; margin: 0 auto; background: var(--white); border: 1px solid var(--rule); display: grid; grid-template-columns: 310px minmax(0,1fr); }

/* ---- left rail ---- */
.bk-aside { min-width: 0; padding: 38px 34px; border-right: 1px solid var(--rule); background: var(--white); }
.bk-host { display: flex; align-items: center; gap: 13px; margin-bottom: 26px; }
.bk-avatar { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; background: var(--char); color: var(--white); font-family: 'Tenor Sans', sans-serif; font-size: 15px; letter-spacing: .06em; display: flex; align-items: center; justify-content: center; }
.bk-host-name { font-size: 13.5px; font-weight: 500; color: var(--ink); }
.bk-host-role { font-size: 11.5px; font-weight: 300; color: var(--grey); margin-top: 2px; line-height: 1.5; }
.bk-aside h3 { font-family: 'Tenor Sans', sans-serif; font-size: 23px; font-weight: 400; letter-spacing: .03em; color: var(--ink); margin-bottom: 18px; }
.bk-meta { display: flex; flex-direction: column; gap: 11px; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--rule); }
.bk-meta div { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; font-weight: 300; color: var(--grey); line-height: 1.6; }
.bk-meta b { flex: 0 0 auto; color: var(--red); font-weight: 500; }
.bk-aside p { font-size: 12.5px; font-weight: 300; color: var(--grey); line-height: 1.85; }
.bk-aside ul { list-style: none; margin-top: 14px; display: flex; flex-direction: column; gap: 9px; }
.bk-aside li { position: relative; padding-left: 16px; font-size: 12.5px; font-weight: 300; color: var(--grey); line-height: 1.7; }
.bk-aside li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; background: var(--red); }

/* ---- right panel ---- */
.bk-panel { min-width: 0; padding: 38px 34px; }
.bk-demo { display: flex; gap: 10px; align-items: flex-start; background: var(--cream); border-left: 2px solid var(--amber); padding: 12px 15px; margin-bottom: 26px; font-size: 12px; font-weight: 300; color: var(--grey); line-height: 1.7; }
.bk-demo b { color: var(--ink); font-weight: 500; }

.bk-pick { display: grid; grid-template-columns: minmax(0,1fr) 210px; gap: 30px; }

/* calendar */
.bk-cal { min-width: 0; }
.bk-cal-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.bk-cal-top strong { font-family: 'Tenor Sans', sans-serif; font-size: 16px; font-weight: 400; letter-spacing: .05em; color: var(--ink); }
.bk-nav { display: flex; gap: 6px; }
.bk-nav button { width: 32px; height: 32px; border: 1px solid var(--rule); background: var(--white); color: var(--ink); font-size: 14px; line-height: 1; cursor: pointer; transition: border-color .2s, color .2s; }
.bk-nav button:hover:not(:disabled) { border-color: var(--red); color: var(--red); }
.bk-nav button:disabled { opacity: .3; cursor: not-allowed; }

.bk-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 4px; }
.bk-dow { text-align: center; font-size: 9.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lgrey); padding-bottom: 8px; }
.bk-day { aspect-ratio: 1 / 1; min-width: 0; display: flex; align-items: center; justify-content: center; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 400; color: var(--ink); background: var(--cream); border: 1px solid transparent; cursor: pointer; transition: background .18s, color .18s, border-color .18s; }
.bk-day:hover:not(:disabled) { border-color: var(--red); color: var(--red); }
.bk-day--on { background: var(--red); border-color: var(--red); color: var(--white); font-weight: 500; }
.bk-day--on:hover { color: var(--white); }
.bk-day--off { background: transparent; color: var(--lgrey); cursor: not-allowed; }
.bk-day--blank { background: transparent; border: none; cursor: default; }

/* times */
.bk-times-col { min-width: 0; display: flex; flex-direction: column; }
.bk-pick .bk-times-col h4 { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin-bottom: 14px; line-height: 1.5; }
.bk-times { display: flex; flex-direction: column; gap: 7px; max-height: 310px; overflow-y: auto; }
.bk-times-empty { font-size: 12.5px; font-weight: 300; color: var(--grey); line-height: 1.8; }
.bk-slot { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; width: 100%; padding: 11px 13px; background: var(--white); border: 1px solid var(--rule); font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 400; color: var(--ink); cursor: pointer; text-align: left; transition: border-color .18s, background .18s, color .18s; }
.bk-slot:hover { border-color: var(--red); color: var(--red); }
.bk-slot-to { font-size: 10.5px; font-weight: 300; color: var(--lgrey); }
.bk-slot--on { background: var(--red); border-color: var(--red); color: var(--white); }
.bk-slot--on .bk-slot-to { color: rgba(255,255,255,.72); }

.bk-confirm-row { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--rule); }
.bk-btn { font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; background: var(--red); color: var(--white); padding: 15px 30px; border: none; cursor: pointer; transition: background .25s; }
.bk-btn:hover:not(:disabled) { background: #B01C1C; }
.bk-btn:disabled { background: var(--sand); color: var(--grey); cursor: not-allowed; }
.bk-link { background: none; border: none; padding: 0; font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 300; color: var(--grey); cursor: pointer; transition: color .2s; }
.bk-link:hover { color: var(--red); }

/* step 2 - details */
.bk-when { display: flex; align-items: center; gap: 10px; background: var(--cream); padding: 13px 16px; margin-bottom: 24px; font-size: 13px; font-weight: 400; color: var(--ink); }
.bk-when b { color: var(--red); font-weight: 500; }
.bk-step h4 { font-family: 'Tenor Sans', sans-serif; font-size: 20px; font-weight: 400; letter-spacing: .03em; color: var(--ink); margin-bottom: 20px; }
.bk-step .form-group textarea { min-height: 96px; }
.bk-actions { display: flex; align-items: center; gap: 20px; margin-top: 8px; }
.bk-error { background: rgba(204,34,34,.07); border-left: 2px solid var(--red); padding: 12px 15px; margin-bottom: 18px; font-size: 12.5px; font-weight: 300; color: var(--ink); }

/* step 3 - done */
.bk-done { text-align: center; padding: 26px 0 14px; }
.bk-tick { width: 54px; height: 54px; margin: 0 auto 22px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-size: 25px; line-height: 1; }
.bk-done h4 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(21px,2.4vw,27px); font-weight: 400; letter-spacing: .03em; color: var(--ink); margin-bottom: 14px; }
.bk-done p { font-size: 13.5px; font-weight: 300; color: var(--grey); line-height: 1.9; max-width: 430px; margin: 0 auto 10px; }
.bk-done strong { color: var(--ink); font-weight: 500; }
.bk-done p a, .bk-error a { color: var(--red); text-decoration: none; border-bottom: 1px solid rgba(204,34,34,.3); }
.bk-done p a:hover, .bk-error a:hover { border-bottom-color: var(--red); }
.bk-done-card { display: inline-flex; flex-direction: column; gap: 5px; background: var(--cream); padding: 17px 28px; margin: 20px 0 24px; }
.bk-done-card span { font-size: 13px; font-weight: 400; color: var(--ink); }
.bk-done-card small { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lgrey); }

/* Selected states must beat the hover rules above. .bk-day:hover:not(:disabled) is (0,3,0) because :not() counts its argument, so a plain .bk-day--on:hover loses and the chosen day renders red-on-red under the cursor. */
.bk-day--on:hover:not(:disabled) { background: var(--red); border-color: var(--red); color: var(--white); }
.bk-slot--on:hover { background: var(--red); border-color: var(--red); color: var(--white); }
.bk-slot--on:hover .bk-slot-to { color: rgba(255,255,255,.72); }

@media (max-width: 980px) {
  .bk { grid-template-columns: minmax(0,1fr); }
  .bk-aside { border-right: none; border-bottom: 1px solid var(--rule); }
}
@media (max-width: 720px) {
  .bk-section { padding: 70px 0 80px; }
  .bk-pick { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .bk-times { max-height: none; }
  .bk-aside, .bk-panel { padding: 28px 22px; }
  .bk-day { font-size: 12px; }
  .bk-actions { flex-direction: column; align-items: stretch; gap: 14px; }
  .bk-actions .bk-btn { width: 100%; }
}

/* Portal login error state */
.portal-notice--bad { border-left-color: var(--red); background: rgba(204,34,34,.05); }
.portal-notice--bad p strong { color: var(--red); }


.f-logo{height:60px;width:auto;object-fit:contain;object-position:left center;margin-bottom:10px;display:block;}

/* Contact form: honeypot and flash */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-flash{border-radius:4px;padding:14px 18px;margin-bottom:22px;font-size:14px;font-weight:300;line-height:1.7;}
.form-flash.ok{background:#EAF4EC;color:#1E5631;}
.form-flash.bad{background:#FBEAE9;color:#B3261E;}

/* Contact: book-or-message accordion
   details[name] gives exclusive opening natively; site.js closes the sibling
   where the browser does not support it. */
.ct-section { background: var(--cream); padding: 96px 0 104px; }
.ct-head { text-align: center; max-width: 620px; margin: 0 auto 36px; }
.ct-head h2 { font-family: 'Tenor Sans', sans-serif; font-size: clamp(26px,3.2vw,38px); font-weight: 400; letter-spacing: .02em; color: var(--ink); margin: 0 0 12px; }
.ct-head p { font-size: 14.5px; font-weight: 300; line-height: 1.85; color: var(--grey); }

.ct-stack { max-width: 1040px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.ct-panel { background: var(--white); border: 1px solid var(--rule); }
.ct-bar { list-style: none; display: flex; align-items: center; gap: 16px; padding: 20px 24px; cursor: pointer; min-height: 44px; transition: background .2s, color .2s; }
.ct-bar::-webkit-details-marker { display: none; }
.ct-bar:hover { background: var(--warm); }
.ct-panel[open] > .ct-bar { background: var(--char); color: var(--white); }
.ct-panel[open] > .ct-bar:hover { background: var(--char); }
.ct-ico { flex: 0 0 21px; width: 21px; height: 21px; stroke: var(--red); fill: none; stroke-width: 1.5; }
.ct-panel[open] .ct-ico { stroke: var(--amber); }
.ct-bar-t { flex: 1 1 auto; min-width: 0; }
.ct-bar-t strong { display: block; font-family: 'Tenor Sans', sans-serif; font-size: 20px; font-weight: 400; letter-spacing: .02em; }
.ct-bar-t span { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 300; color: var(--grey); }
.ct-panel[open] .ct-bar-t span { color: rgba(255,255,255,.72); }
.ct-sign { flex: 0 0 auto; position: relative; width: 15px; height: 15px; }
.ct-sign::before, .ct-sign::after { content: ''; position: absolute; left: 0; top: 7px; width: 15px; height: 1.5px; background: currentColor; }
.ct-sign::after { transform: rotate(90deg); transition: transform .22s; }
.ct-panel[open] .ct-sign::after { transform: rotate(0deg); }
.ct-body { border-top: 1px solid var(--rule); }
.ct-body .bk { border: none; max-width: none; }
.ct-body--form { padding: 28px 30px 30px; }

.ct-or { display: flex; align-items: center; gap: 16px; padding: 3px 2px; }
.ct-or span { flex: 1 1 auto; height: 1px; background: var(--rule); }
.ct-or em { flex: 0 0 auto; font-style: normal; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--grey); }

.ct-facts { max-width: 1040px; margin: 34px auto 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr)); gap: 24px; text-align: center; }
.ct-fact-l { display: block; font-size: 9.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--red); margin-bottom: 8px; }
.ct-facts a { display: block; font-size: 13px; font-weight: 300; color: var(--ink); text-decoration: none; }
.ct-facts a:hover { color: var(--red); }
.ct-facts p { font-size: 13px; font-weight: 300; line-height: 1.75; color: var(--grey); }

@media (max-width: 720px) {
  .ct-section { padding: 60px 0 70px; }
  .ct-bar { padding: 16px 18px; gap: 13px; }
  .ct-bar-t strong { font-size: 17px; }
  .ct-body--form { padding: 22px 18px 24px; }
  .ct-facts { margin-top: 24px; gap: 20px; }
}

/* ── ARROWS ────────────────────────────────────────────────────────────────
   Poppins carries no → glyph, so the text arrows above fall back to whatever
   font the visitor's OS supplies and land roughly 4px below the cap centre of
   the label, differently on every platform. Drawn here instead: a mask takes
   currentColor, and a box running baseline to cap height (0.7em in Poppins)
   centres the arrow on the uppercase text. Declared after the rules it
   replaces so it wins on source order, and behind @supports so a browser
   without masks keeps the glyph rather than showing a solid block.
   ───────────────────────────────────────────────────────────────────────── */
@supports (mask-image:none) or (-webkit-mask-image:none){
  .link-arrow,.affil-link,.award-link{align-items:baseline;}
  .tc-read-more.visible{display:inline-flex;align-items:baseline;gap:8px;}

  .link-arrow::after,.affil-link::after,.award-link::after,.tc-read-more::after{
    /* font-size:inherit matters: the rules above set 18px and 13px on these
       pseudo-elements for the old glyph, and .7em would resolve against that. */
    content:'';font-size:inherit;height:.7em;flex:0 0 auto;background:currentColor;
    -webkit-mask:var(--arrow) no-repeat center/contain;
            mask:var(--arrow) no-repeat center/contain;
  }
  .link-arrow::after{width:18px;}
  .affil-link::after,.award-link::after{width:14px;}
  .tc-read-more::after{width:13px;}
}
