/* =========================================================================
   WALLIS - shared brand stylesheet
   Palette (client updates, 18 + 22 Oct 2026): beige #F7F3F1 takes the place of white,
   burgundy #381825 takes the place of black; light red #FF3A43 and maroon
   #5C1138 are unchanged. Neutral shading over photos/video stays neutral.
   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{
  --wine:#381825; --wine-deep:#2A1019;                /* burgundy: every former black surface */
  --white:#FFFFFF; --paper:#F7F3F1; --paper-2:#EEE5DF; /* beige page; deeper beige for panels on it */
  --heading:var(--wine);                               /* headings were near-black */
  --ink:#161412; --ink-soft:#6b6560;
  --red:#FF3A43; --red-deep:#E62A33; --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(56,24,37,.95);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(--heading);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(--heading);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(--wine);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(--wine)}
.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(2.07rem,calc(4vw + 2.7px),3.22rem);line-height:1.1;margin:0;max-width:24ch;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(--wine) 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(255,58,67,.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(--heading)}
.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(--heading);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(--heading);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(--heading)}
.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;color:var(--heading)}
.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(--heading)}
.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(--heading);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 (home): white, so the logos' own white backgrounds disappear (client request) */
.clients{background:var(--white);color:var(--ink);overflow:hidden}
.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(--heading)}
.clients h2 em{font-style:italic;color:var(--red)}
.clients .head p{color:var(--ink-soft)}
/* logos roll in a continuous loop; edges fade; pauses on hover */
.logo-marquee{overflow:hidden;padding:8px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.logo-track{display:flex;width:max-content;animation:logo-roll 48s linear infinite}
.logo-marquee:hover .logo-track{animation-play-state:paused}
.logo-set{display:flex;align-items:center;gap:80px;margin:0;padding:0 80px 0 0;list-style:none}
.logo-set li{flex:none;display:flex;align-items:center}
.logo-set img{display:block;width:var(--w);height:auto;max-width:none}
@keyframes logo-roll{to{transform:translateX(-50%)}}
@media(max-width:760px){.logo-set{gap:52px;padding-right:52px}.logo-set img{width:calc(var(--w) * .78)}}
/* reduced motion: a still, centred grid of the logos */
@media(prefers-reduced-motion:reduce){.logo-track{animation:none;width:auto}.logo-set{flex-wrap:wrap;justify-content:center;gap:36px 56px;max-width:var(--max);margin:0 auto;padding:0 40px}.logo-set[aria-hidden]{display:none}.logo-marquee{-webkit-mask-image:none;mask-image:none}}
.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(--heading);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(255,58,67,.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(--wine);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:52px;width:auto;display:block}   /* client's secondary 'W' mark */
.foot p,.foot a{color:rgba(255,255,255,.82);font-size:1.02rem}
.foot h4{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:.86rem;color:var(--white);margin:0 0 18px}
.foot a{display:block;text-decoration:none;margin-bottom:10px}
.foot a:hover{color:var(--white)}
/* social icon (Instagram only until LinkedIn is live) */
.social{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;margin:6px 0 0;border-radius:50%;border:1px solid currentColor;transition:background .25s ease,color .25s ease,border-color .25s ease}
.social svg{width:20px;height:20px;display:block}
.foot .social{color:var(--white)}.foot .social:hover{background:var(--white);color:var(--wine);border-color:var(--white)}
.overlay .ov-foot .social{color:var(--heading)}.overlay .ov-foot .social:hover{background:var(--heading);color:var(--paper);border-color:var(--heading)}
.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,.72)}

/* 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}
  .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){.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}
  /* phones play the video too (a portrait cut, chosen in the page script); the still sits
     behind it in case video can't play, e.g. iPhone Low Power Mode */
  .hero{background:#381825 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(--heading)}

/* Our Services page: nine cards matching the client's reference design. Icons sit in a
   fixed 104x84 box (natural shape inside) so every title starts at the same point. */
.services .wrap{max-width:1520px}
.svc-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.svc-card{background:rgba(255,255,255,.72);border:1px solid rgba(22,20,18,.10);padding:38px 36px 42px}
.svc-top{display:flex;align-items:center;gap:26px;margin:0 0 30px}
.svc-top img{width:104px;height:84px;object-fit:contain;object-position:left center;flex:none}
.svc-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.7vw,1.65rem);line-height:1.14;margin:0;color:var(--heading)}
.svc-card p{margin:0;color:#4a4542;font-size:1.04rem;line-height:1.55}
/* titles may use part of the right padding; the one very long title is set 10% smaller so it
   keeps the reference's two lines on common laptop widths */
.svc-card h3{margin-right:-14px}.svc-card h3.svc-long{font-size:clamp(1.125rem,1.53vw,1.485rem)}
@media(min-width:1340px){.svc-card h3.svc-long{white-space:nowrap}}
@media(max-width:1100px){.svc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.svc-cards{grid-template-columns:1fr}.svc-card{padding:30px 26px 32px}.svc-top{gap:22px;margin-bottom:22px}.svc-top img{width:86px;height:70px}}

/* home: how-we-work carousel */
.approach-car{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(255,58,67,.22),transparent 70%),var(--wine)}
.car-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
/* phones (data) and reduced motion: a still from the cubes video instead of playing it */
@media(max-width:560px),(prefers-reduced-motion:reduce){.car-video{display:none}.s-video{background:var(--wine) url("cubes-poster.jpg") center/cover no-repeat}}
.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%)}
/* slides 2-4: the client's background images (22 Oct), white text over a dark fade on the text side */
.s-photo{background:var(--wine) center/cover no-repeat}
.s-photo-1{background-image:url("carousel-1.jpg")}.s-photo-2{background-image:url("carousel-2.jpg")}.s-photo-3{background-image:url("carousel-3.jpg")}
.s-photo::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,8,14,.74) 0%,rgba(20,8,14,.42) 55%,rgba(20,8,14,.12) 100%)}
/* dark slides (the video and the photo slides) use white text and controls */
.car-slide.is-dark h3{color:var(--white)}.car-slide.is-dark p{color:rgba(255,255,255,.9)}
.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}}

/* case study grid */
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
/* Case study cards: the photo with the title; on hover the red details panel
   swipes up over it, its text fades in just behind, and the photo eases in a
   little. Add the photo to a card with
   <div class="cc-front" style="background-image:url(assets/case-x.jpg)">. */
.case-card{display:block;position:relative;overflow:hidden;text-decoration:none;color:var(--white);height:440px;background:var(--wine)}
.cc-inner{position:relative;height:100%}
.cc-front,.cc-back{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden}
.cc-front{justify-content:flex-end;padding:38px;background:var(--wine) center/cover no-repeat;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.cc-front:not(.has-photo)::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 85% 10%,rgba(255,58,67,.28),transparent 70%),linear-gradient(160deg,var(--wine-deep),var(--wine))}
.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;transition:opacity .3s ease}
.cc-back{background:var(--red);padding:38px;gap:14px;transform:translateY(101%);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cc-back>*{opacity:0;transform:translateY(14px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.case-card:hover .cc-front,.case-card:focus-visible .cc-front{transform:scale(1.04)}
.case-card:hover .cc-front h3,.case-card:focus-visible .cc-front h3{opacity:0}
.case-card:hover .cc-back,.case-card:focus-visible .cc-back{transform:none}
.case-card:hover .cc-back>*,.case-card:focus-visible .cc-back>*{opacity:1;transform:none;transition-delay:.16s}
.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,opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.case-card:hover .go{gap:18px}
/* touch screens can't hover: the details sit over the image instead */
@media(hover:none){
  .cc-front h3{display:none}
  .cc-back{transform:none;background:linear-gradient(180deg,rgba(14,15,16,.15) 0%,rgba(14,15,16,.6) 35%,rgba(14,15,16,.9) 70%);justify-content:flex-end}
  .cc-back>*{opacity:1;transform:none}
  .case-card .go{margin-top:6px}
}
@media(prefers-reduced-motion:reduce){
  .cc-front,.cc-front h3,.cc-back,.cc-back>*,.case-card .go{transition:none}
  .case-card:hover .cc-front,.case-card:focus-visible .cc-front{transform:none}
}

/* OUR WORK page (client reference): beige header, then full-width rows that alternate
   photo / text; the text panel turns dark red on hover */
.top-solid .topbar{background:rgba(56,24,37,.95)}   /* beige header: keep the white logo on dark red */
.work-head{padding:184px 0 64px}
.work-head .wrap{max-width:none;padding:0 6vw;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:48px;align-items:center}
.work-head .eyebrow{display:inline-block;margin-bottom:14px}
.work-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,6.8vw,6.2rem);line-height:1;margin:0;color:var(--heading)}
.wh-intro{margin:0;color:var(--ink);font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.55;max-width:44ch}
.case-rows{display:grid;gap:10px}
.case-row{display:grid;grid-template-columns:minmax(0,62fr) minmax(0,38fr);min-height:clamp(400px,33vw,580px);text-decoration:none;color:var(--ink)}
.case-row:nth-child(even){grid-template-columns:minmax(0,40fr) minmax(0,60fr)}
.case-row:nth-child(even) .cr-img{order:2}
.case-row:nth-child(even) .cr-panel{padding-left:6vw}
.cr-img{position:relative;overflow:hidden;background:var(--wine)}
.cr-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.case-row:hover .cr-img img{transform:scale(1.04)}
.cr-ph{background:radial-gradient(70% 80% at 30% 30%,rgba(255,58,67,.35),transparent 70%),linear-gradient(160deg,var(--wine),var(--wine-deep))}
.cr-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,4vw,72px);background:var(--paper);transition:background .4s ease}
.cr-panel *{transition:color .4s ease,border-color .4s ease,gap .3s ease}
.cr-num{display:flex;align-items:center;gap:16px;font-family:var(--sans);font-size:clamp(.78rem,1vw,.95rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:18px}
.cr-num::after{content:"";flex:0 0 clamp(90px,11vw,170px);height:1px;background:currentColor;opacity:.45}
.cr-client{font-family:var(--sans);font-weight:500;font-size:clamp(1.1rem,1.6vw,1.5rem);line-height:1.3;margin:0 0 16px;color:var(--ink)}
.cr-big{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,4.4vw,4.6rem);line-height:1.02;letter-spacing:-.01em;margin:0;color:var(--heading)}
.cr-sub{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.7vw,2.7rem);line-height:1.1;margin:4px 0 0;color:var(--heading)}
.cr-svc{list-style:none;margin:28px 0 0;padding:0;font-size:clamp(.98rem,1.2vw,1.15rem);line-height:1.5;letter-spacing:.01em;color:var(--ink)}
.cr-go{display:inline-flex;align-items:center;gap:14px;align-self:flex-start;margin-top:30px;padding-bottom:6px;border-bottom:1px solid var(--red);font-size:clamp(.98rem,1.2vw,1.15rem);color:var(--ink)}
.case-row:hover .cr-panel,.case-row:focus-visible .cr-panel{background:var(--wine)}
.case-row:hover .cr-panel *,.case-row:focus-visible .cr-panel *{color:var(--white)}
.case-row:hover .cr-go,.case-row:focus-visible .cr-go{gap:20px;border-color:var(--white)}
@media(max-width:900px){
  .work-head{padding:140px 0 44px}.work-head .wrap{grid-template-columns:1fr;gap:20px;align-items:start}
  .case-row,.case-row:nth-child(even){grid-template-columns:1fr;min-height:0}
  .case-row:nth-child(even) .cr-img{order:0}
  .case-row:nth-child(even) .cr-panel{padding-left:clamp(32px,4vw,72px)}
  .work-head .wrap{padding:0 24px}
  .cr-img{aspect-ratio:16/10}
}
/* photos with a credit caption bottom-right (Alserkal Avenue): crop from that corner so it stays visible */
@media(prefers-reduced-motion:reduce){.cr-img img{transition:none}.case-row:hover .cr-img img{transform: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(--heading)}
.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(--heading);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}
.img-credit{margin:28px 0 0;font-family:var(--sans);font-size:.82rem;font-style:italic;color:var(--ink-soft)}

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





