/* =========================================================================
   WALLIS - shared brand stylesheet
   Palette per brand guidelines: red #EF4E4C, black, white, maroon #5C1138.
   Web fonts chosen by the client: Playfair Display (titles) + Inter (body).
   Both are self-hosted variable fonts, Latin subset (from Google Fonts, OFL).
   ========================================================================= */
/* Titles - Playfair Display, upright + italic (italic carries the em emphasis).
   Its lightest weight is 400, so the 300 used on big headings renders as 400. */
@font-face{
  font-family:"Playfair Display";
  src:url("playfair-display.woff2") format("woff2");
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Playfair Display";
  src:url("playfair-display-italic.woff2") format("woff2");
  font-weight:400 700;
  font-style:italic;
  font-display:swap;
}
/* Body text - Inter */
@font-face{
  font-family:"Inter";
  src:url("inter.woff2") format("woff2");
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}
:root{
  --black:#0E0F10; --black-2:#171314; --white:#FFFFFF; --paper:#FFFFFF; --paper-2:#F7F3F1;
  --ink:#161412; --ink-soft:#6b6560;
  --red:#EF4E4C; --red-deep:#D63B39; --maroon:#5C1138;
  --line:rgba(22,20,18,.14); --line-d:rgba(255,255,255,.16);
  --max:1200px;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;   /* titles */
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;   /* body */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums}
a{color:inherit}
/* no single word stranded on the last line (client rule) */
h1,h2,h3,h4,p{text-wrap:pretty}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.eyebrow{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.98rem;color:var(--red)}

/* TOP BAR */
.topbar{position:fixed;top:0;left:0;right:0;z-index:80;transition:background .35s ease,box-shadow .35s ease}
.topbar.scrolled{background:rgba(14,15,16,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:92px;max-width:none;padding:0 40px}
.wordmark{display:inline-flex;align-items:center;text-decoration:none;line-height:0}
.wordmark img{height:62px;width:auto;display:block;transition:opacity .2s ease}
.wordmark:hover img{opacity:.85}
.menu-btn{display:flex;align-items:center;gap:12px;background:none;border:0;cursor:pointer;color:#fff;font-family:var(--sans);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.18em}
.menu-btn .bars{display:inline-flex;flex-direction:column;gap:5px;width:26px;align-items:flex-end}
.menu-btn .bars i{display:block;height:2px;background:#fff;width:100%;transition:width .25s ease,background .25s ease}
.menu-btn:hover .bars i:nth-child(2){width:65%}
.menu-btn:hover .bars i{background:var(--red)}

/* OVERLAY MENU */
/* Side panel: slides in from the right over a dimmed page. The .overlay is
   the full-screen scrim (click it to close); .panel holds the menu. */
.overlay{position:fixed;inset:0;z-index:90;background:rgba(14,15,16,.45);opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease}
.overlay.open{opacity:1;visibility:visible}
.overlay .panel{position:absolute;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--paper);color:var(--ink);display:flex;flex-direction:column;padding:96px 48px 40px;overflow-y:auto;box-shadow:-24px 0 60px rgba(14,15,16,.18);transform:translateX(100%);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.overlay.open .panel{transform:none}
.overlay .close{position:absolute;top:34px;right:40px;background:none;border:0;color:var(--ink);font-family:var(--sans);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;cursor:pointer}
.overlay .close:hover{color:var(--red)}
.overlay nav{display:flex;flex-direction:column;gap:6px}
.overlay nav a{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.25;text-decoration:none;color:var(--ink);transition:color .25s ease,padding-left .25s ease;width:fit-content}
.overlay nav a:hover,.overlay nav a.on{color:var(--red)}
.overlay nav a:hover{padding-left:10px}
.overlay .ov-foot{margin-top:auto;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;font-size:.92rem;color:var(--ink-soft)}
.overlay .ov-foot a{text-decoration:none}.overlay .ov-foot a:hover{color:var(--red)}
.overlay.open nav a{animation:menuIn .55s cubic-bezier(.2,.7,.2,1) both}
.overlay.open nav a:nth-child(1){animation-delay:.12s}
.overlay.open nav a:nth-child(2){animation-delay:.17s}
.overlay.open nav a:nth-child(3){animation-delay:.22s}
.overlay.open nav a:nth-child(4){animation-delay:.27s}
.overlay.open .ov-foot{animation:menuIn .55s cubic-bezier(.2,.7,.2,1) .34s both}
@keyframes menuIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}

/* HERO (home) */
.hero{position:relative;height:100vh;min-height:620px;background:var(--black);overflow:hidden;display:flex;align-items:flex-end}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--black)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,15,16,.30) 0%,rgba(14,15,16,.12) 34%,rgba(14,15,16,.55) 78%,rgba(14,15,16,.85) 100%),radial-gradient(70% 55% at 50% 40%,transparent 0%,rgba(14,15,16,.30) 82%,rgba(14,15,16,.6) 100%);pointer-events:none}
.hero .wrap{position:relative;z-index:3;width:100%;padding-bottom:54px;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,4vw,3.05rem);line-height:1.06;margin:0;max-width:18ch;color:var(--white)}
.hero h1 em{font-style:italic;color:var(--red)}
.scroll-cue{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.6);font-family:var(--sans);font-size:.74rem;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap}
.scroll-cue .ch{width:18px;height:18px;border-right:1.5px solid var(--red);border-bottom:1.5px solid var(--red);transform:rotate(45deg);animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(4px,4px)}}

/* PAGE HERO (interior) */
.page-hero{background:var(--black) center/cover no-repeat;color:var(--white);position:relative;overflow:hidden;
  /* one height for every interior page, text sitting low in the block */
  display:flex;align-items:flex-end;min-height:clamp(480px,70vh,660px);padding:140px 0 72px}
/* photo heroes: <section class="page-hero has-img" style="background-image:url(assets/hero-x.jpg)">
   (inline so the path resolves from the page, not from this stylesheet) */
.page-hero.has-img::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,15,16,.78) 0%,rgba(14,15,16,.45) 55%,rgba(14,15,16,.15) 100%),linear-gradient(180deg,rgba(14,15,16,.45) 0%,rgba(14,15,16,0) 35%,rgba(14,15,16,.6) 100%)}
.page-hero.has-img::after{display:none}
.page-hero::after{content:"";position:absolute;width:560px;height:560px;right:-160px;top:-180px;border-radius:50%;background:radial-gradient(closest-side,rgba(239,78,76,.20),transparent);pointer-events:none}
.page-hero .wrap{position:relative;z-index:2;width:100%}
.page-hero .eyebrow{color:var(--red);display:inline-block;margin-bottom:18px}
.page-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5.2vw,4rem);line-height:1.04;margin:0;max-width:16ch;color:var(--white)}
.page-hero h1 em{font-style:italic;color:var(--red)}
.page-hero p{color:rgba(255,255,255,.72);max-width:58ch;margin:22px 0 0;font-size:1.05rem}

/* SECTIONS */
section{position:relative;scroll-margin-top:60px}
.pad{padding:92px 0}
.pad-lg{padding:116px 0}

.section-head{margin:0 0 50px}
.section-head.center{text-align:center;max-width:760px;margin-left:auto;margin-right:auto}
.section-head .eyebrow{color:var(--red)}
.section-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.8vw,2.7rem);margin:14px 0 0;color:var(--ink)}
.section-head h2 em{font-style:italic;color:var(--red)}
.section-head p{color:var(--ink-soft);margin:16px 0 0}

/* prose */
.prose{max-width:720px}
.prose .lead-in{font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.3;color:var(--ink);margin:0 0 32px}
.prose .lead-in em{font-style:italic;color:var(--red)}
@media(max-width:760px){.br-d{display:none}}
.prose p{color:var(--ink-soft);margin:0 0 22px;font-size:1.08rem}
.prose p strong{color:var(--ink);font-weight:600}

/* statement (home) */
.statement{text-align:left}
.statement h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.95rem,4.4vw,3.4rem);line-height:1.1;color:var(--ink);margin:0;max-width:17ch}
.statement h2 .sep{color:var(--red);font-weight:300;margin:0 .12em}
.statement .body{max-width:640px;margin:40px 0 0}
.statement .body p{color:var(--ink-soft);margin:0 0 20px;font-size:1.08rem}
.statement .body p strong{color:var(--ink);font-weight:600}

/* RED band */
.band{background:var(--red);color:var(--white)}
.band .inner{max-width:920px;margin:0 auto;text-align:center}
.band .eyebrow{color:var(--white);display:inline-block;margin-bottom:26px}
.band h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.65rem,3.7vw,2.6rem);line-height:1.22;margin:0;color:var(--white)}
.band h2 em{font-style:italic;color:var(--maroon)}
.band .sub{color:rgba(255,255,255,.94);max-width:600px;margin:28px auto 0}

/* pillars */
.pillars .head{max-width:var(--max);margin:0 auto 70px;text-align:center}
.pillars h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.8vw,2.7rem);margin:14px 0 0;color:var(--ink)}
.pillar{display:grid;grid-template-columns:190px minmax(0,620px);gap:28px;align-items:start;padding:54px 0;border-top:1px solid var(--line)}
.pillar:last-child{border-bottom:1px solid var(--line)}
.pillar h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.12;margin:0}
.pillar p{color:var(--ink-soft);margin:0;font-size:1.04rem}

/* services list */
.services .head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;margin-bottom:30px}
.services h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.8vw,2.7rem);margin:14px 0 0;color:var(--ink)}
.srow{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:26px 6px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);transition:padding .3s ease,color .3s ease}
.srow:last-child{border-bottom:1px solid var(--line)}
.srow .st{font-family:var(--serif);font-weight:400;font-size:clamp(1.2rem,2.2vw,1.6rem)}
.srow .sa{font-size:1.3rem;color:var(--red);opacity:0;transform:translateX(-8px);transition:.3s}
.srow:hover{padding-left:20px;color:var(--red)}
.srow:hover .sa{opacity:1;transform:none}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);padding-top:44px}
.stats .s b{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,3.3rem);color:var(--red);display:block;line-height:1}
.stats .s span{color:var(--ink-soft);font-size:.98rem;margin-top:10px;display:block}

/* clients (dark) */
.clients{background:var(--black);color:var(--white)}
.clients .head{text-align:center;max-width:760px;margin:0 auto 56px}
.clients .eyebrow{color:var(--red)}
.clients h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.8vw,2.7rem);margin:14px 0 18px;color:var(--white)}
.clients h2 em{font-style:italic;color:var(--red)}
.clients .head p{color:rgba(255,255,255,.66)}
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.logos span{background:var(--black);display:flex;align-items:center;justify-content:center;height:118px;font-family:var(--serif);font-size:1.15rem;color:var(--white);text-align:center;padding:10px;transition:.25s}
.logos span:hover{background:var(--red);color:var(--white)}
.clients .more{text-align:center;margin-top:40px}

/* sectors grid */
.sectors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.sectors-grid .s{padding:26px 8px;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:baseline}
.sectors-grid .s .n{font-family:var(--serif);color:var(--red);font-size:1rem;width:34px;flex:none}
.sectors-grid .s b{font-family:var(--serif);font-weight:400;font-size:1.3rem}
.sectors-grid .s p{margin:4px 0 0;color:var(--ink-soft);font-size:.92rem}

/* markets */
.markets .head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:36px}
.markets h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.8vw,2.6rem);margin:14px 0 0;color:var(--ink)}
.mk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.mk-grid span{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.7rem);color:var(--ink);padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px}
.mk-grid span::before{content:"\2726";color:var(--red);font-size:.7em;flex:none}
.markets .note{color:var(--ink-soft);max-width:62ch;margin:30px 0 0;font-size:1.04rem}

/* contact */
.contact-l .grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-l .info .block{border-top:1px solid var(--line);padding:18px 0}
.contact-l .info .block:first-child{border-top:0;padding-top:0}
.contact-l .info .lab{font-family:var(--sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:var(--red);margin-bottom:8px}
.contact-l .info .big{font-family:var(--serif);font-size:1.4rem;color:var(--ink);text-decoration:none;display:block}
.contact-l .info a.big:hover{color:var(--red)}
form .field{margin-bottom:18px}
form label{display:block;font-family:var(--sans);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin:0 0 7px;color:var(--ink-soft)}
form input,form textarea{width:100%;padding:13px 15px;border:1px solid var(--line);background:#fff;color:var(--ink);font-family:var(--sans);font-size:.96rem}
form input:focus,form textarea:focus{outline:none;border-color:var(--red)}
form textarea{min-height:120px;resize:vertical}
form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{display:none;margin-top:16px;padding:14px 16px;font-size:.95rem;border:1px solid var(--line)}
.form-msg.show{display:block}
.form-msg.ok{border-color:var(--red);color:var(--ink)}
.form-msg.err{border-color:#b3261e;color:#b3261e}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--red);color:var(--white);border:0;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;padding:15px 28px;justify-content:center;transition:background .2s,transform .2s ease,box-shadow .2s ease;text-decoration:none}
.btn:hover{background:var(--red-deep);transform:translateY(-2px);box-shadow:0 10px 24px rgba(239,78,76,.28)}
.btn:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}
.btn.full{width:100%}
.map-lnk{display:inline-block;margin-top:12px;font-family:var(--sans);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;text-decoration:none;color:var(--red)}
.map-lnk:hover{color:var(--ink)}


/* link */
.lnk{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:700;font-size:.92rem;text-transform:uppercase;letter-spacing:.16em;text-decoration:none;color:var(--red);padding-bottom:6px;border-bottom:1px solid var(--red)}
.lnk:hover{gap:18px}
.lnk.on-dark,.lnk.on-red{color:var(--white);border-color:var(--white)}

/* CTA (red) */
.cta{background:var(--red);color:var(--white);text-align:center}
.cta .eyebrow{color:var(--white);display:inline-block;margin-bottom:26px}
.cta h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5.6vw,4.3rem);line-height:1.03;margin:0 0 32px;color:var(--white)}
.cta h2 em{font-style:italic;color:var(--maroon)}

/* footer */
.foot{background:var(--black-2);color:var(--white);padding:90px 0 40px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px}
.foot .bm{margin:0 0 16px;line-height:0}
.foot .bm img{height:46px;width:auto;display:block}
.foot p,.foot a{color:rgba(255,255,255,.66);font-size:1.02rem}
.foot h4{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:.86rem;color:var(--red);margin:0 0 18px}
.foot a{display:block;text-decoration:none;margin-bottom:10px}
.foot a:hover{color:var(--white)}
.foot .bottom{border-top:1px solid var(--line-d);margin-top:60px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.9rem;color:rgba(255,255,255,.5)}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.srow.rv{transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),padding .3s ease,color .3s ease}

/* polish */
::selection{background:var(--red);color:var(--white)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .overlay.open nav a,.overlay.open .ov-foot{animation:none}
  .overlay .panel{transition:none}
  .scroll-cue .ch{animation:none}
  .btn:hover{transform:none}
}

@media(max-width:900px){
  .wrap{padding:0 24px}.topbar .wrap{padding:0 24px}
  .pad,.pad-lg{padding:64px 0}
  .page-hero{min-height:clamp(400px,62vh,560px);padding:118px 0 48px}
  .pillar{grid-template-columns:1fr;gap:14px;padding:40px 0}
  .logos{grid-template-columns:repeat(3,1fr)}
  .mk-grid,.sectors-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr;gap:24px}
  .foot-grid{grid-template-columns:1fr;gap:34px}
  .contact-l .grid{grid-template-columns:1fr;gap:36px}
  .hero .wrap{flex-direction:column;align-items:flex-start}.scroll-cue{display:none}
}
@media(max-width:560px){.logos,.mk-grid,.sectors-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.wordmark img{height:48px}.overlay .panel{padding:88px 28px 32px}.overlay .close{right:24px}
  /* save mobile data: swap the hero video for its poster still */
  .hero-video{display:none}
  .hero{background:#0E0F10 center/cover no-repeat url("hero-poster.jpg")}
}

/* =========================================================================
   Additions for the Reshma feedback round
   ========================================================================= */

/* hero supporting copy */
.hero .hsub{font-family:var(--serif);font-weight:300;font-size:clamp(1rem,1.7vw,1.32rem);line-height:1.34;color:rgba(255,255,255,.9);margin:20px 0 0;max-width:36ch}
.hero .hstrap{font-family:var(--sans);font-size:.88rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin:14px 0 0}

/* service rows that are not links (Our services) */
.srow.static{cursor:default}
.srow.static .sa{display:none}
.srow.static:hover{padding-left:6px;color:var(--ink)}

/* home services: two columns of four, filled column by column */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:56px;border-bottom:1px solid var(--line)}
.svc-grid .srow{grid-template-columns:1fr}
.svc-grid .srow:last-child{border-bottom:0}

/* home: how-we-work carousel. Swap in the brand colours here. */
.approach-car{--car-pink:#F7D4D0;--car-blue:#CFE0EE;--car-yellow:#F6E6A8;position:relative;overflow:hidden;color:var(--ink)}
.car-track{display:flex;transition:transform .7s cubic-bezier(.2,.7,.2,1);touch-action:pan-y}
.car-slide{flex:0 0 100%;min-height:clamp(460px,64vh,600px);display:flex;align-items:center;position:relative;padding:80px 0 128px}
.car-slide .wrap{position:relative;z-index:2;width:100%}
.car-slide h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;margin:0;max-width:14ch;color:var(--white)}
.car-slide h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.1;margin:0 0 22px;max-width:18ch;color:var(--ink)}
.car-slide p{max-width:62ch;font-size:1.1rem;margin:0;color:rgba(22,20,18,.82)}
.s-video{background:radial-gradient(60% 80% at 80% 20%,rgba(239,78,76,.22),transparent 70%),var(--black)}
.car-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.s-video::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,15,16,.7) 0%,rgba(14,15,16,.25) 60%,rgba(14,15,16,.1) 100%)}
.s-pink{background:var(--car-pink)}.s-blue{background:var(--car-blue)}.s-yellow{background:var(--car-yellow)}
.car-ctrl{position:absolute;left:0;right:0;bottom:44px;z-index:3;color:var(--ink);transition:color .4s ease}
.approach-car.on-dark .car-ctrl{color:var(--white)}
.car-ctrl .wrap{display:flex;align-items:center;gap:18px}
.car-btn{width:48px;height:48px;border-radius:50%;border:1px solid currentColor;background:none;color:inherit;font-size:1.1rem;cursor:pointer;display:grid;place-items:center;transition:background .25s ease,border-color .25s ease,color .25s ease}
.car-btn:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.car-dots{display:flex;gap:10px;align-items:center}
.car-dots button{width:10px;height:10px;border-radius:5px;border:0;padding:0;color:inherit;background:currentColor;opacity:.35;cursor:pointer;transition:width .3s ease,opacity .3s ease}
.car-dots button[aria-current="true"]{opacity:1;width:28px}
@media(max-width:760px){.car-slide{padding:64px 0 116px}.car-ctrl{bottom:36px}}
@media(prefers-reduced-motion:reduce){.car-track{transition:none}}
@media(max-width:760px){.svc-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}}

/* case study grid */
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
/* Case study cards flip on hover: the front is the image with the title, the
   back is plain red with the details. Add the photo to a card with
   <div class="cc-front" style="background-image:url(assets/case-x.jpg)">. */
.case-card{display:block;text-decoration:none;color:var(--white);height:440px;perspective:1600px}
.cc-inner{position:relative;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.case-card:hover .cc-inner,.case-card:focus-visible .cc-inner{transform:rotateY(180deg)}
.cc-front,.cc-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;overflow:hidden}
.cc-front{justify-content:flex-end;padding:38px;background:var(--black) center/cover no-repeat}
.cc-front:not([style])::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 85% 10%,rgba(239,78,76,.28),transparent 70%),linear-gradient(160deg,var(--black-2),var(--black))}
.cc-front::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,15,16,0) 45%,rgba(14,15,16,.82) 100%)}
.cc-front h3{position:relative;z-index:1}
.cc-back{transform:rotateY(180deg);background:var(--red);padding:38px;gap:14px}
.case-card .cn{font-family:var(--sans);font-size:.8rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.case-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.45rem,2.8vw,2.05rem);line-height:1.1;margin:0;color:var(--white)}
.case-card p{color:rgba(255,255,255,.92);margin:0;font-size:1.04rem}
.case-card .go{margin-top:auto;font-family:var(--sans);font-size:.86rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--white);display:inline-flex;gap:10px;transition:gap .3s ease}
.case-card:hover .go{gap:18px}
/* touch screens can't hover: no flip, the details sit over the image instead */
@media(hover:none){
  .cc-inner{transform:none!important}
  .cc-front h3{display:none}
  .cc-back{transform:none;background:linear-gradient(180deg,rgba(14,15,16,0) 30%,rgba(14,15,16,.9) 70%);justify-content:flex-end}
  .case-card .go{margin-top:6px}
}
@media(prefers-reduced-motion:reduce){
  .cc-inner{transition:none}
}

/* case study detail page */
.cs-meta{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0}
.cs-meta span{font-family:var(--sans);font-size:.84rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 15px;border-radius:100px;color:var(--white);border:1px solid rgba(255,255,255,.34)}
/* case study body: Brief + Approach on the left, Results in a side column */
.cs-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:72px;align-items:start}
.cs-sec+.cs-sec{margin-top:48px}
.cs-grid h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;margin:0 0 18px;color:var(--ink)}
.cs-sec p{color:var(--ink-soft);font-size:1.08rem;margin:0 0 18px}
.cs-results{background:var(--paper-2);border-top:3px solid var(--red);padding:36px 34px 38px;position:sticky;top:120px}
.cs-results h2{color:var(--red)}
.cs-results p{color:var(--ink-soft);font-size:1.04rem;margin:0 0 18px}
.cs-results .cs-quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.1vw,1.55rem);line-height:1.3;color:var(--ink);margin:0}
@media(max-width:900px){.cs-grid{grid-template-columns:1fr;gap:48px}.cs-results{position:static}}
.back-lnk{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.16em;text-decoration:none;color:var(--red)}
.back-lnk:hover{gap:16px}

@media(max-width:760px){
  .cases{grid-template-columns:1fr}
  .case-card{height:380px}
  .cc-front,.cc-back{padding:28px 26px}
}





.cases.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.cases.three{grid-template-columns:1fr}}
