/*
  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);
}
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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   INDEX.HTML
   ════════════════════════════════════ */
/* ── 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/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-title { font-family: 'Tenor Sans', sans-serif; font-size: 18px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink); margin-bottom: 5px; }
.step-tag { font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.36em; text-transform: uppercase; color: var(--red); }
.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/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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   ABOUT.HTML
   ════════════════════════════════════ */
.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/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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   SERVICES.HTML
   ════════════════════════════════════ */
.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-title { font-family: 'Tenor Sans', sans-serif; font-size: clamp(20px,2.5vw,32px); font-weight: 500; letter-spacing: 0.08em; color: var(--ink); line-height: 1.1; margin-bottom: 10px; }
  .svc-block-tag { font-family: 'Poppins', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 0.42em; text-transform: uppercase; color: var(--red); }
  .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-includes { margin-top: 28px; }
  .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; }
  .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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   WORK.HTML
   ════════════════════════════════════ */
.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-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2px; }
  .port-item { position: relative; overflow: hidden; aspect-ratio: 4/3; background: var(--sand); cursor: default; }
  .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-cat { font-family: 'Poppins', sans-serif; font-size: 8.5px; font-weight: 600; letter-spacing: 0.4em; text-transform: uppercase; color: var(--red); margin-bottom: 5px; }
  .port-title { font-family: 'Tenor Sans', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 0.1em; color: var(--white); }
  .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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   USEFUL-INFO.HTML
   ════════════════════════════════════ */
.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 h3 { font-family: 'Tenor Sans', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink); margin: 24px 0 10px; }
  .ia-content h3:first-child { margin-top: 0; }
  .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
   ─────────────────────────────────────────────────────────────────────────── */
.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); }


/* ════════════════════════════════════
   CONTACT.HTML
   ════════════════════════════════════ */
.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.HTML - 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/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%);}}