/* WebGħalKulħadd - shared design system for every page. Page-only rules stay inline on each page. */
/* ============================================================
   WebGħalKulħadd - shared design system
   Anti-slop notes:
   - background is warm paper, never #fff
   - one primary (navy ink) + one accent (red), amber only for star motif
   - depth from hairline borders + tonal layers, no default fuzzy shadows
   - deliberate radius scale (0 for structure, 4px for controls, 8px cards)
   - no glass everywhere (one restrained frosted nav), no orbs, no dot grid
   - no sparkle/emoji icons, no em dashes in copy
   ============================================================ */

/* ---- Theme tokens. The page eases from cream to navy as dark sections (data-theme navy/ink) scroll in; site.js sets the body class. ---- */
:root{
  --bg:#FAF7F1;          /* warm paper */
  --surface:#F3EFE6;
  --ink:#14202C;         /* navy ink */
  --muted:#4C5A66;
  --accent:#D62828;      /* brand red */
  --amber:#E8B23A;       /* star motif only */
  --line:rgba(20,32,44,.14);
  --line-strong:rgba(20,32,44,.28);
  --sel:#14202C;
  --sel-ink:#FAF7F1;
  --space-s:16px; --space-m:32px; --space-l:64px; --space-xl:96px;
}
body.theme-navy,body.theme-ink{
  --bg:#14202C;
  --surface:#1C2E3E;
  --ink:#FAF7F1;
  --muted:#9FB1C0;
  --accent:#D62828;
  --line:rgba(250,247,241,.15);
  --line-strong:rgba(250,247,241,.32);
  --sel:#D62828;
  --sel-ink:#FAF7F1;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
::selection{background:var(--sel);color:var(--sel-ink)}

body{
  font-family:"Montserrat",system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.55;
  overflow-x:hidden;
  transition:background-color .5s ease, color .5s ease;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
section{position:relative}
main{display:block}
img{max-width:100%;display:block}

/* skip link (a11y) */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:4px;z-index:200;font-weight:700}
.skip:focus{left:12px;top:12px}

/* focus visibility (a11y) - never removed */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:2px
}

h1,h2,h3{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;line-height:.98;letter-spacing:-.015em}
.serif{font-family:"Clash Display","Montserrat",sans-serif;letter-spacing:0}

/* eyebrow label, red dash motif */
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--accent);display:inline-block}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:"Montserrat";font-weight:700;font-size:.92rem;letter-spacing:.01em;
  padding:16px 26px;border-radius:4px;cursor:pointer;border:2px solid transparent;
  text-decoration:none;transition:background-color .25s ease,color .25s ease,border-color .25s ease;
  will-change:transform;min-height:48px;
}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--ink);color:var(--bg)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.btn .arrow{transition:transform .25s ease}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------- top nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;
  transition:background-color .5s ease,border-color .35s ease,padding .35s ease;
}
.nav.scrolled{padding:12px 28px;border-color:var(--line)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand-mark{
  width:34px;height:34px;border-radius:6px;background:var(--ink);color:var(--bg);
  display:grid;place-items:center;font-family:"Clash Display";font-weight:700;font-size:1.05rem;position:relative;
  transition:background-color .5s ease,color .5s ease;flex:0 0 auto;
}
.brand-mark::after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.brand-name{font-family:"Clash Display";font-weight:600;font-size:1.06rem;letter-spacing:-.01em}
.logo{height:30px;width:auto;display:block}
.nav .logo{height:46px;transition:height .35s ease}
.nav.scrolled .logo{height:38px}
.logo-light{display:none}
body.theme-navy .logo-light,body.theme-ink .logo-light{display:block}
body.theme-navy .logo-dark,body.theme-ink .logo-dark{display:none}
.foot-brand .logo{height:58px;margin-left:-10px}
.nav-links{display:flex;align-items:center;gap:34px;margin-left:28px;flex-wrap:nowrap}
.nav-links a{color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:500;opacity:.82;transition:opacity .2s}
.nav-links a:hover,.nav-links a[aria-current="page"]{opacity:1}
.nav-links a[aria-current="page"]{border-bottom:2px solid var(--accent);padding-bottom:2px}
.nav-cta{padding:11px 20px;font-size:.85rem;min-height:auto}

/* hamburger (real mobile nav - fixes the previous dead-end) */
.nav-toggle{
  display:none;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:4px;
  background:transparent;cursor:pointer;position:relative;color:var(--ink)
}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:50%;top:50%;width:20px;height:2px;background:currentColor;
  transform:translate(-50%,-50%);transition:transform .3s ease,opacity .2s ease
}
.nav-toggle span::before{transform:translate(-50%,-8px)}
.nav-toggle span::after{transform:translate(-50%,6px)}
body.menu-open .nav-toggle span{background:transparent}
body.menu-open .nav-toggle span::before{transform:translate(-50%,-50%) rotate(45deg)}
body.menu-open .nav-toggle span::after{transform:translate(-50%,-50%) rotate(-45deg)}

@media(max-width:1180px){
  .nav-toggle{display:block}
  .nav-links{
    position:fixed;inset:0;flex-direction:column;justify-content:center;gap:26px;
    background:var(--bg);padding:100px 28px 40px;
    transform:translateY(-100%);opacity:0;pointer-events:none;
    transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s ease;z-index:80;
  }
  .nav-links a{font-size:1.5rem;opacity:1;font-family:"Clash Display";font-weight:500}
  .nav-links a[aria-current="page"]{border:0;color:var(--accent)}
  .nav-cta{margin-top:8px;font-size:1rem;padding:16px 26px}
  body.menu-open .nav-links{transform:translateY(0);opacity:1;pointer-events:auto}
  body.menu-open{overflow:hidden}
}

/* progress line */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--accent);z-index:95}

/* ---------- HERO (home) ---------- */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:140px 0 86px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:56px;align-items:center;width:100%}
.hero-copy{grid-column:1 / span 7}
.hero-anchor{grid-column:8 / span 5}
@media(max-width:1000px){.hero-grid{grid-template-columns:1fr;gap:44px}.hero-copy,.hero-anchor{grid-column:auto}}
.hero h1{font-size:clamp(2.6rem,6.6vw,6.1rem);line-height:.94;margin:20px 0 0;text-wrap:balance}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln > span{display:inline-block;will-change:transform}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-sub{font-size:1.1rem;color:var(--muted);max-width:42ch;margin-top:22px;line-height:1.5;text-wrap:balance}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.hero-actions .btn{min-height:52px}

/* reassurance microcopy, sits quietly under the CTAs */
.hero-note{margin-top:18px;font-size:.92rem;line-height:1.45;color:var(--muted);max-width:38ch}
.hero-note strong{font-weight:600;color:var(--ink)}

/* framed preview mockup */
.hero-kicker{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.02rem;color:var(--ink);margin-bottom:16px;letter-spacing:-.01em}
.hero-kicker em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;color:var(--accent)}
.mock-stage{perspective:1600px}
.mock{
  transform:rotateY(-8deg) rotateX(3deg) rotate(-1deg);transform-style:preserve-3d;
  border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;background:#FFFFFF;
  box-shadow:0 40px 70px -34px rgba(20,32,44,.42),0 4px 12px -6px rgba(20,32,44,.18);
  will-change:transform;
}
.mock-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.mock-dots{display:flex;gap:5px;flex:0 0 auto}
.mock-dots i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);display:block}
.mock-url{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:4px 9px;font-size:.62rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mock-body{padding:16px 18px 20px;color:#14202C}
.mock-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.mock-nav b{font-family:"Clash Display","Montserrat",sans-serif;font-size:.72rem;letter-spacing:.02em}
.mock-nav u{display:flex;gap:9px;text-decoration:none}
.mock-nav u i{display:block;width:22px;height:4px;border-radius:2px;background:var(--line-strong)}
.mock-hero{margin-top:16px}
.mock-hero h4{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.28rem;line-height:1.02;letter-spacing:-.02em}
.mock-hero h4 em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;color:var(--accent)}
.mock-hero p{font-size:.6rem;color:var(--muted);margin-top:7px;line-height:1.5;max-width:26ch}
.mock-hero .pill{display:inline-block;margin-top:11px;background:var(--accent);color:#fff;font-size:.56rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 11px;border-radius:3px}
.mock-photo{margin-top:16px;height:92px;border-radius:6px;border:1px solid var(--line);background:linear-gradient(160deg,#E9E1D2,#DCD2BF)}
.mock-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.mock-cards div{border:1px solid var(--line);border-radius:5px;padding:9px 8px}
.mock-cards i{display:block;width:60%;height:4px;border-radius:2px;background:var(--accent);opacity:.6}
.mock-cards s{display:block;text-decoration:none;height:3px;border-radius:2px;background:var(--line-strong);margin-top:6px}
.mock-cards s:last-child{width:70%;margin-top:4px}
@media(max-width:1000px){.mock{transform:none}.mock-stage{max-width:520px}}
.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:60px}
.hero-proof div{padding:18px 26px 0 0;border-left:1px solid var(--line);padding-left:22px}
.hero-proof div:first-child{border-left:0;padding-left:0}
.hero-proof b{display:block;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.hero-proof span{display:block;margin-top:7px;font-size:.88rem;color:var(--muted);line-height:1.4}
@media(max-width:920px){.hero-proof{grid-template-columns:1fr;margin-top:40px;gap:2px}.hero-proof div{border-left:0;padding-left:0;padding-top:16px}}

/* scroll cue */
.cue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.cue .rail{width:1px;height:40px;background:var(--line-strong);position:relative;overflow:hidden}
.cue .rail::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:railDrop 2.4s ease-in-out infinite}
@keyframes railDrop{0%{transform:translateY(-100%)}60%,100%{transform:translateY(250%)}}

/* ---------- inner page hero ---------- */
.page-hero{padding:170px 0 60px}
.page-hero h1{font-size:clamp(2.6rem,6.5vw,5.4rem);margin:20px 0 0;max-width:16ch}
.page-hero h1 em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;font-weight:400;color:var(--accent)}
.page-hero .lead{color:var(--muted);font-size:1.15rem;max-width:52ch;margin-top:22px}

/* breadcrumbs */
.crumbs{font-size:.8rem;color:var(--muted);letter-spacing:.02em;margin-bottom:6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}
.crumbs a:hover{color:var(--ink);border-color:var(--line-strong)}
.crumbs .sep{opacity:.5}
.crumbs [aria-current]{color:var(--ink)}

/* ---------- marquee band ---------- */
.marquee{padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;gap:44px;will-change:transform}
.marquee span{font-family:"Clash Display";font-weight:600;font-size:1.9rem;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:44px}
.marquee span::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block}
.marquee .dim{color:var(--muted)}

/* ---------- section shell ---------- */
.sec{padding:120px 0}
.sec-sm{padding:80px 0}
.sec-head{max-width:56ch;margin-bottom:60px}
.sec-head h2{font-size:clamp(2.1rem,4.6vw,3.6rem);margin:18px 0 0}
.sec-head p{color:var(--muted);font-size:1.08rem;margin-top:16px}
/* reveals: each block slides up and fades in as it scrolls into view (site.js adds .is-in, with a small stagger) */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.js .reveal.is-in{opacity:1;transform:none}
/* homepage and landing hero: the headline lines rise in, then the rest follows (first view of the visit only) */
@keyframes lnUp{from{transform:translateY(115%)}to{transform:none}}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
html.js:not(.hero-seen) .hero h1 .ln > span{animation:lnUp 1.1s cubic-bezier(.16,1,.3,1) both}
html.js:not(.hero-seen) .hero h1 .ln:nth-child(2) > span{animation-delay:.09s}
html.js:not(.hero-seen) .hero h1 .ln:nth-child(3) > span{animation-delay:.18s}
html.js:not(.hero-seen) :is(.hero-sub,.hero-actions,.hero-anchor){animation:heroIn .9s cubic-bezier(.16,1,.3,1) both}
html.js:not(.hero-seen) .hero-sub{animation-delay:.3s}
html.js:not(.hero-seen) .hero-actions{animation-delay:.4s}
html.js:not(.hero-seen) .hero-anchor{animation-delay:.5s}
@media(prefers-reduced-motion:reduce){.hero h1 .ln > span,.hero-sub,.hero-actions,.hero-anchor{animation:none!important}}

/* ---------- statement ---------- */
.statement .wrap{max-width:1000px}
.statement blockquote{font-family:"Clash Display";font-weight:500;font-size:clamp(1.8rem,4.4vw,3.3rem);line-height:1.12;letter-spacing:-.02em}
.statement blockquote b{color:var(--accent);font-weight:600}
.statement .attrib{margin-top:34px;color:var(--muted);font-size:.98rem;display:flex;align-items:center;gap:14px}
.statement .attrib::before{content:"";width:40px;height:1px;background:var(--line-strong)}

/* ---------- services rows ---------- */
.svc{border-top:1px solid var(--line)}
.svc-row{
  display:grid;grid-template-columns:auto 1.1fr 1.3fr;gap:40px;align-items:baseline;
  padding:42px 0;border-bottom:1px solid var(--line);position:relative;
}
.svc-row:nth-child(even){grid-template-columns:auto 1.3fr 1.1fr}
.svc-row:nth-child(even) .svc-copy{order:3}
.svc-num{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.6rem;color:var(--accent);line-height:1}
.svc-row h3{font-size:clamp(1.7rem,3.4vw,2.7rem)}
.svc-row .svc-mt{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-family:"Montserrat";font-weight:700;margin-bottom:14px}
.svc-copy{color:var(--muted);font-size:1.04rem;max-width:44ch}
.svc-copy .tag{display:inline-block;margin-top:16px;font-weight:600;color:var(--ink);font-size:.9rem;border-bottom:2px solid var(--accent);padding-bottom:2px}
@media(max-width:820px){
  .svc-row,.svc-row:nth-child(even){grid-template-columns:auto 1fr;gap:8px 22px}
  .svc-copy,.svc-row:nth-child(even) .svc-copy{order:0;grid-column:2}
}

/* ---------- detailed service blocks (services.html) ---------- */
.svc-detail{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:40px;margin-bottom:26px;transition:background-color .5s ease}
.svc-detail .top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.svc-detail h3{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.svc-detail .idx{font-family:"Clash Display","Montserrat",sans-serif;color:var(--accent);font-size:2rem}
.svc-detail p{color:var(--muted);font-size:1.05rem;margin-top:14px;max-width:60ch}
.svc-detail .incl{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.svc-detail .incl span{font-size:.82rem;font-weight:600;color:var(--ink);border:1px solid var(--line-strong);border-radius:4px;padding:7px 12px}

/* ---------- approach timeline ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.step{padding:40px 30px;background:var(--surface);position:relative;transition:background-color .5s ease}
.step .n{font-family:"Clash Display";font-weight:700;font-size:3.4rem;color:var(--accent);line-height:.9}
.step h3{font-size:1.24rem;margin:20px 0 12px}
.step p{color:var(--muted);font-size:.98rem;line-height:1.5}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- work: pinned horizontal (home) ---------- */
.work-pin{height:100vh;overflow:hidden;display:flex;align-items:center}
.work-track{display:flex;gap:34px;padding:0 28px;will-change:transform}
.work-card{
  flex:0 0 clamp(300px,42vw,560px);height:66vh;border:1px solid var(--line-strong);border-radius:8px;
  background:var(--surface);padding:34px;display:flex;flex-direction:column;justify-content:space-between;
  transition:background-color .5s ease,border-color .5s ease;position:relative;overflow:hidden;text-decoration:none;color:inherit;
}
.work-card .wc-top{display:flex;align-items:center;justify-content:space-between}
.work-card .wc-cat{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700}
.work-card .wc-idx{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.3rem;color:var(--muted)}
.work-card h3{font-size:clamp(1.9rem,3vw,2.8rem);align-self:flex-start;margin-top:auto}
.work-card .wc-desc{color:var(--muted);font-size:1rem;margin-top:14px;max-width:34ch}
.wc-frame{position:absolute;inset:auto -1px -1px -1px;height:44%;background:var(--bg);border-top:1px solid var(--line-strong);opacity:.5}
.wc-frame::before{content:"";position:absolute;top:14px;left:20px;right:20px;height:8px;background:var(--line-strong);border-radius:3px}
.wc-frame::after{content:"";position:absolute;top:34px;left:20px;width:46%;height:8px;background:var(--accent);opacity:.55;border-radius:3px}
.work-note{max-width:52ch;margin-top:34px;color:var(--muted);font-size:.95rem}
@media(max-width:700px){.work-pin{height:auto;padding:40px 0}.work-track{flex-direction:column;transform:none!important}.work-card{flex:none;width:100%;height:auto;min-height:360px}}

/* ---------- work grid (work.html) ---------- */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.work-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.work-grid{grid-template-columns:1fr}}
.wg-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);transition:border-color .25s ease,background-color .5s ease;display:flex;flex-direction:column}
.wg-card:hover{border-color:var(--line-strong)}
.wg-shot{aspect-ratio:16/10;background:linear-gradient(180deg,var(--surface),var(--bg));position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.wg-shot .ph{position:absolute;inset:0;display:grid;place-items:center;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.wg-shot .ph span{border:1px dashed var(--line-strong);padding:8px 12px;border-radius:4px}
.wg-shot img{width:100%;height:100%;object-fit:cover}
.wg-body{padding:22px 22px 26px}
.wg-body .cat{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700}
.wg-body h3{font-size:1.4rem;margin:8px 0 0}
.wg-body p{color:var(--muted);font-size:.95rem;margin-top:10px}
.wg-body .live{display:inline-block;margin-top:14px;font-size:.85rem;font-weight:700;color:var(--accent);text-decoration:none;border-bottom:2px solid transparent}
.wg-body .live:hover{border-color:var(--accent)}
.wg-tag{display:inline-block;margin-top:14px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-strong);border-radius:3px;padding:4px 8px}

/* ---------- trust band ---------- */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.trust > div{padding:38px 28px;background:var(--surface);transition:background-color .5s ease}
.trust .big{font-family:"Clash Display";font-weight:700;font-size:2.5rem;line-height:1;color:var(--ink)}
.trust .big em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;color:var(--accent)}
.trust p{color:var(--muted);font-size:.94rem;margin-top:12px}
@media(max-width:860px){.trust{grid-template-columns:1fr 1fr}}

/* ---------- pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
@media(max-width:900px){.price-grid{grid-template-columns:1fr}}
.price-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:34px;display:flex;flex-direction:column;transition:background-color .5s ease,border-color .25s ease}
.price-card.feature{border-color:var(--accent)}
.price-card .pc-tag{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:700;min-height:16px}
.price-card h3{font-size:1.7rem;margin:12px 0 6px}
.price-card .desc{color:var(--muted);font-size:.95rem;min-height:44px}
.price-card .amount{font-family:"Clash Display";font-weight:700;font-size:2.6rem;margin:20px 0 4px;line-height:1}
.price-card .amount small{font-size:.9rem;color:var(--muted);font-weight:500;font-family:"Montserrat"}
.price-card .from{font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.price-list{list-style:none;margin:22px 0;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.price-list li{font-size:.94rem;color:var(--ink);display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.price-list li::before{content:"";width:14px;height:2px;background:var(--accent);margin-top:11px}
.price-card .btn{margin-top:auto;justify-content:center;width:100%}

/* ---------- FAQ accordion (visible, matches schema) ---------- */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;position:relative;font-family:"Clash Display";font-weight:500;font-size:clamp(1.15rem,2.4vw,1.5rem);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:4px;top:50%;width:14px;height:2px;background:var(--accent);transition:transform .3s ease}
.faq summary::before{content:"";position:absolute;right:4px;top:50%;width:14px;height:2px;background:var(--accent);transform:rotate(90deg);transition:transform .3s ease}
.faq details[open] summary::before{transform:rotate(0)}
.faq p{color:var(--muted);font-size:1.02rem;padding:0 40px 24px 0;max-width:64ch}

/* ---------- about: the two sides of the team ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:50px}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}}
.founder{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);transition:background-color .5s ease}
.portrait{height:340px;background:linear-gradient(180deg,var(--surface),var(--bg));display:grid;place-items:center;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait .ph{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line-strong);padding:9px 14px;border-radius:4px}
.founder-body{padding:26px}
.founder-body h3{font-size:1.5rem}
.founder-body .role{color:var(--accent);font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;margin-top:6px}
.founder-body p{color:var(--muted);margin-top:14px;font-size:.98rem}

/* prose story */
.prose{max-width:68ch}
.prose p{color:var(--muted);font-size:1.08rem;margin-bottom:20px}
.prose p b{color:var(--ink);font-weight:600}

/* ---------- contact ---------- */
.cta-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:start}
@media(max-width:900px){.cta-inner{grid-template-columns:1fr;gap:40px}}
.cta h2{font-size:clamp(2.4rem,6vw,5rem);line-height:.98}
.cta h2 em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;color:var(--accent)}
.cta p{color:var(--muted);font-size:1.1rem;margin-top:20px;max-width:40ch}
.cta-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.contact-list{list-style:none;margin-top:34px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.contact-list li{background:var(--surface);padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;transition:background-color .5s ease}
.contact-list .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.contact-list a,.contact-list .v{color:var(--ink);text-decoration:none;font-weight:600;font-size:.98rem}
.contact-list a:hover{color:var(--accent)}
.form{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:30px;transition:background-color .5s ease}
.field{margin-bottom:16px}
.field label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input,.field textarea{
  width:100%;background:var(--bg);border:1px solid var(--line-strong);border-radius:4px;
  padding:13px 14px;font-family:"Montserrat";font-size:.96rem;color:var(--ink);transition:border-color .2s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.form-note{font-size:.8rem;color:var(--muted);margin-top:6px}
.confirm{display:none;text-align:center;padding:20px 0}
.confirm.show{display:block}
.confirm .tick{width:54px;height:54px;border-radius:50%;border:2px solid var(--accent);display:grid;place-items:center;margin:0 auto 16px}
.confirm .tick svg{width:26px;height:26px;stroke:var(--accent)}
.confirm h3{font-size:1.4rem}
.confirm p{color:var(--muted);margin-top:8px}

/* ---------- footer ---------- */
footer{padding:80px 0 40px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}
.foot-brand p{color:var(--muted);max-width:32ch;margin-top:16px;font-size:.96rem}
.foot-col h4{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-family:"Montserrat";font-weight:700}
.foot-col a{display:block;color:var(--ink);text-decoration:none;opacity:.78;margin-bottom:11px;font-size:.95rem;transition:opacity .2s}
.foot-col a:hover{opacity:1}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}
.foot-bottom a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:88;display:none;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--bg) 90%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);gap:10px;
}
.sticky-cta a{flex:1;justify-content:center;padding:14px;min-height:48px}
@media(max-width:720px){.sticky-cta{display:flex}body{padding-bottom:76px}}

/* ---------- cookie consent ---------- */
.cookie{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:99;max-width:520px;margin:0 auto;
  background:var(--ink);color:var(--bg);border-radius:8px;padding:20px 22px;
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;
  box-shadow:0 12px 40px rgba(10,20,30,.28);
}
.cookie p{font-size:.86rem;flex:1;min-width:200px;line-height:1.45}
.cookie p a{color:var(--accent);font-weight:600}
.cookie .c-actions{display:flex;gap:10px}
.cookie button{font-family:"Montserrat";font-weight:700;font-size:.82rem;padding:10px 16px;border-radius:4px;cursor:pointer;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--bg)}
.cookie button.accept{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:720px){.cookie{bottom:78px}}

/* ---------- custom cursor ---------- */
.cursor{position:fixed;top:0;left:0;width:34px;height:34px;border:1.5px solid var(--accent);border-radius:50%;pointer-events:none;z-index:200;transform:translate(-50%,-50%);transition:width .2s,height .2s,background-color .2s,opacity .2s;mix-blend-mode:difference;opacity:0}
.cursor.hot{width:56px;height:56px;background:var(--accent)}
@media(hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- 404 ---------- */
.err{min-height:100vh;display:flex;align-items:center;text-align:center}
.err .code{font-family:"Clash Display";font-weight:700;font-size:clamp(6rem,22vw,16rem);line-height:.85;color:var(--ink)}
.err .code em{font-family:"Clash Display","Montserrat",sans-serif;font-style:normal;color:var(--accent)}
.err h1{font-size:clamp(1.6rem,4vw,2.6rem);margin:24px 0 14px}
.err p{color:var(--muted);max-width:44ch;margin:0 auto 30px;font-size:1.05rem}
.err .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- first-load intro: a site building itself ---------- */
.intro{position:fixed;inset:0;z-index:300;background:var(--bg);display:grid;place-items:center;overflow:hidden;cursor:pointer}
.intro-stage{position:relative;width:min(560px,86vw);will-change:transform,opacity}
.intro-frame{
  position:relative;border:1px solid var(--line-strong);border-radius:10px;background:#FFFFFF;overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(20,32,44,.34);
  clip-path:inset(48% 0 48% 0);animation:frameOpen .85s cubic-bezier(.16,1,.3,1) .15s forwards
}
.intro-bar{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line);background:var(--surface)}
.intro-dots{display:flex;gap:5px}
.intro-dots i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);opacity:0;animation:dotIn .4s ease .75s forwards}
.intro-dots i:nth-child(2){animation-delay:.82s}
.intro-dots i:nth-child(3){animation-delay:.89s}
.intro-url{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:5px 10px;font-size:.66rem;letter-spacing:.05em;color:var(--muted);white-space:nowrap;overflow:hidden}
.intro-url span{display:inline-block;clip-path:inset(0 100% 0 0);animation:typeIn .7s steps(18,end) .9s forwards}
.intro-canvas{position:relative;height:clamp(200px,30vw,250px)}
.intro-skel{position:absolute;inset:0;padding:26px 30px;display:flex;flex-direction:column;gap:12px;animation:skelOut .55s ease 1.95s forwards}
.intro-skel b,.intro-skel u{display:block;border-radius:3px;background:var(--line-strong);opacity:0;transform:translateY(8px) scaleX(.96);transform-origin:left;animation:skelIn .5s cubic-bezier(.16,1,.3,1) forwards}
.intro-skel b{height:16px;width:64%;background:var(--ink);opacity:0;animation-delay:1.1s}
.intro-skel u:nth-of-type(1){height:8px;width:82%;animation-delay:1.24s}
.intro-skel u:nth-of-type(2){height:8px;width:54%;animation-delay:1.32s}
.intro-skel-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.intro-skel-row s{display:block;text-decoration:none;height:44px;border:1px solid var(--line);border-radius:5px;opacity:0;transform:translateY(10px);animation:skelIn .5s cubic-bezier(.16,1,.3,1) forwards}
.intro-skel-row s:nth-child(1){animation-delay:1.46s}
.intro-skel-row s:nth-child(2){animation-delay:1.54s}
.intro-skel-row s:nth-child(3){animation-delay:1.62s}
.intro-reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}
.intro-word{width:min(300px,52vw);height:auto;clip-path:inset(0 100% 0 0);opacity:0;animation:wordWipe .95s cubic-bezier(.22,.61,.36,1) 2.2s forwards}
.intro-tag{display:flex;align-items:center;gap:11px;font-size:.66rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);opacity:0;animation:tagIn .8s ease 2.75s forwards}
.intro-tag::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}
.intro-rule{height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;margin-top:18px;animation:ruleIn .9s cubic-bezier(.16,1,.3,1) 2.35s forwards}
.intro-hint{position:absolute;left:0;right:0;bottom:-34px;text-align:center;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);opacity:0;animation:tagIn .7s ease 3s forwards}
body.intro-out .intro{animation:sheetFade .9s cubic-bezier(.4,0,.2,1) forwards}
body.intro-out .intro-stage{animation:stageOut .9s cubic-bezier(.4,0,.2,1) forwards}
body.intro-lock{overflow:hidden}
body.intro-lock main,body.intro-lock .nav{opacity:0}
body.intro-out main,body.intro-out .nav{animation:contentIn 1.05s cubic-bezier(.22,.61,.36,1) forwards}
body.intro-done .intro{display:none}
@keyframes frameOpen{to{clip-path:inset(0 0 0 0)}}
@keyframes dotIn{to{opacity:1}}
@keyframes typeIn{to{clip-path:inset(0 0 0 0)}}
@keyframes skelIn{to{opacity:1;transform:none}}
@keyframes skelOut{to{opacity:0;transform:translateY(-6px)}}
@keyframes wordWipe{0%{opacity:0;clip-path:inset(0 100% 0 0)}14%{opacity:1}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes tagIn{to{opacity:1}}
@keyframes ruleIn{to{transform:scaleX(1)}}
@keyframes sheetFade{to{opacity:0;visibility:hidden}}
@keyframes stageOut{to{opacity:0;transform:scale(1.5)}}
@keyframes contentIn{0%{opacity:0;transform:scale(1.012)}to{opacity:1;transform:none}}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important}
  .cue .rail::after{animation:none}
  .marquee-track{transform:none!important}
  .nav-links{transition:none}
  .intro{display:none}
}


/* ---------- tune-up, Oct 2026 ---------- */
/* header CTA: same solid red as the hero CTA (it was inheriting the nav link dimming) */
.nav-links a.nav-cta,.nav-links a.nav-cta:hover{opacity:1;color:#fff}
/* header order: brand, links, language switch */
.nav-links{order:2;margin-left:auto}
.nav-tools{order:3;display:flex;align-items:center;gap:10px;margin-left:24px;position:relative;z-index:85}
.lang{display:flex;border:1px solid var(--line-strong);border-radius:4px;overflow:hidden}
.lang button{appearance:none;border:0;background:transparent;color:var(--muted);font-family:"Montserrat";font-weight:700;font-size:.72rem;letter-spacing:.12em;min-width:44px;height:44px;padding:0 10px;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.lang button:hover{color:var(--ink)}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.lang button:focus-visible{outline-offset:-3px}
@media(max-width:1180px){.nav-tools{margin-left:auto}}
@media(min-width:1181px) and (max-width:1320px){.nav-links{gap:18px}.nav-links a{font-size:.86rem}.nav-tools{margin-left:14px}}
/* text links: one treatment everywhere, never browser blue, arrow stays with its label */
main p a:not(.btn),.txt-link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:text-decoration-color .2s ease;white-space:nowrap}
main p a:not(.btn):hover,.txt-link:hover{text-decoration-color:currentColor}
.txt-link{display:inline-flex;align-items:baseline;gap:6px;margin-top:14px;font-size:.92rem}
.txt-link .arrow{transition:transform .25s ease}
.txt-link:hover .arrow{transform:translateX(3px)}
.foot-bottom a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.foot-bottom a:hover{color:var(--ink)}
/* visible placeholders for facts we still need from the owner */
.ph-inline{display:inline;background:color-mix(in srgb,var(--accent) 13%,transparent);color:inherit;padding:.05em .35em;border-radius:3px;font-family:"Montserrat",sans-serif;font-style:normal;font-size:.82em;font-weight:600;letter-spacing:0;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.svc-copy .svc-txt{display:block}
@media(prefers-reduced-motion:reduce){.lang button,.txt-link .arrow,.btn .arrow{transition:none}}





/* magic:start ---------- highlighter, duo badge, lightbox ---------- */
/* hand-drawn marker under one key phrase per page, drawn once when it scrolls into view */
.hl{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8.5c30-4.5 62-6 98-5.2 34 .7 66 2.6 98 4.6' fill='none' stroke='%23D62828' stroke-width='3.2' stroke-linecap='round' opacity='.85'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:0 100%;background-size:0% .42em;padding-bottom:.08em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .9s cubic-bezier(.65,0,.35,1) .15s}
.hl-on .hl{background-size:100% .42em}
@media(prefers-reduced-motion:reduce){.hl{transition:none;background-size:100% .42em}}

/* "you'll talk to the people doing the work" badge next to the main actions */
.duo{display:flex;align-items:center;gap:12px;margin-top:22px}
.duo-faces{display:flex;flex:none}
.duo-faces > *{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
  font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:.95rem;border:2px solid var(--bg);transition:border-color .5s ease}
.duo-faces > * + *{margin-left:-10px}
.duo-faces img{width:100%;height:100%;object-fit:cover}
.duo-a{background:var(--ink);color:var(--bg)}
.duo-b{background:var(--accent);color:#fff}
.duo-txt{font-size:.92rem;color:var(--muted);line-height:1.4}
.duo-txt b{color:var(--ink);font-weight:600}
/* magic:end */

/* close:start ---------- promises, example scorecard, shorter form ---------- */
.promises{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:start;
  border-top:1px solid var(--line);padding-top:clamp(36px,5vw,56px)}
@media(max-width:860px){.promises{grid-template-columns:1fr}}
.pr-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-top:16px;max-width:16ch}
.pr-head p{color:var(--muted);margin-top:14px;max-width:36ch;font-size:1rem}
.pr-list{list-style:none;counter-reset:pr}
.pr-list li{counter-increment:pr;display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:4px 14px;padding:16px 0;border-bottom:1px solid var(--line)}
.pr-list li:first-child{padding-top:0}
.pr-list li::before{content:counter(pr,decimal-leading-zero);grid-row:span 2;font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;color:var(--accent);font-size:1.05rem;line-height:1.5}
.pr-list b{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.12rem;letter-spacing:-.01em}
.pr-list span{color:var(--muted);font-size:.96rem;line-height:1.5}

.sc-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,80px);align-items:center}
@media(max-width:860px){.sc-wrap{grid-template-columns:1fr}}
.sc-copy h2{font-size:clamp(1.8rem,3.6vw,2.8rem);margin-top:16px;max-width:15ch}
.sc-copy p{color:var(--muted);margin-top:16px;max-width:40ch}
.sc-copy .sc-note{font-size:.86rem;border-left:0;padding:8px 12px;background:var(--surface);border-radius:4px;display:inline-block;max-width:none}
.sc-card{margin:0;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);overflow:hidden;transition:background-color .5s ease}
.sc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface)}
.sc-top b{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.05rem}
.sc-top span{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.sc-rows{list-style:none}
.sc-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:11px 20px;border-bottom:1px solid var(--line)}
.sc-k{font-weight:600;font-size:.94rem}
.sc-rows small{grid-column:1;color:var(--muted);font-size:.84rem}
.sc-v{grid-row:span 2;align-self:center;display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.sc-v::before{content:"";width:10px;height:10px;flex:none}
.sc-v.ok{color:#2E6B4F}.sc-v.ok::before{border-radius:50%;background:#2E6B4F}
.sc-v.warn{color:#9A5B00}.sc-v.warn::before{background:#C98A1B;transform:rotate(45deg)}
.sc-v.miss{color:var(--accent)}.sc-v.miss::before{background:transparent;border:2px solid var(--accent);border-radius:2px}
.sc-v.na{color:var(--muted)}.sc-v.na::before{height:2px;background:var(--muted)}
.sc-first{display:grid;gap:4px;padding:16px 20px;background:color-mix(in srgb,var(--accent) 7%,var(--bg))}
.sc-first b{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.sc-first span{font-size:.95rem;line-height:1.5}

.more-fields{margin:4px 0 22px;border-top:1px solid var(--line);padding-top:6px}
.more-fields > summary{list-style:none;cursor:pointer;padding:12px 0;font-weight:700;font-size:.9rem;color:var(--ink);display:flex;align-items:center;gap:10px;min-height:44px}
.more-fields > summary::-webkit-details-marker{display:none}
.more-fields > summary::before{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);font-weight:600;transition:transform .25s ease}
.more-fields[open] > summary::before{content:"\2212"}
.more-fields > summary small{font-weight:500;color:var(--muted);font-size:.82rem}
/* close:end */


/* polish:start ---------- small UX polish, Oct 2026 ---------- */
html{-webkit-tap-highlight-color:transparent;interpolate-size:allow-keywords}
/* anchors land below the fixed header instead of under it */
[id]{scroll-margin-top:100px}
/* no lonely last words in headings and paragraphs */
h1,h2,h3{text-wrap:balance}
p,li,figcaption{text-wrap:pretty}
/* buttons answer the press */
.btn:active{filter:brightness(.9)}
.btn-ghost:active{filter:none;background:color-mix(in srgb,var(--ink) 88%,transparent);color:var(--bg)}
/* header links: an underline that draws in, the current page keeps it */
@media(min-width:1181px){
  .nav-links a:not(.btn){position:relative;padding-bottom:0;border-bottom:0}
  .nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--accent);
    transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.16,1,.3,1)}
  .nav-links a:not(.btn):hover::after,.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
  .nav-links a[aria-current="page"]{border-bottom:0;padding-bottom:0}
}
/* mobile menu: links settle in one after another */
@keyframes menuIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1180px){
  body.menu-open .nav-links > a{animation:menuIn .42s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i,0) * 45ms + 80ms)}
}
/* FAQ answers open smoothly where the browser supports it, and fade in everywhere */
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .32s cubic-bezier(.16,1,.3,1),content-visibility .32s allow-discrete}
.faq details[open]::details-content{block-size:auto}
@keyframes faqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.faq details[open] > p{animation:faqIn .3s ease both}
.faq summary{transition:color .2s ease}
.faq summary:hover{color:var(--accent)}
/* forms: say what's wrong next to the field, mark required ones */
.field:has(input[required]) > label::after{content:" *";color:var(--accent)}
.field input.is-err,.field textarea.is-err{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--bg))}
.field .field-err{display:block;font-size:.8rem;font-weight:600;color:color-mix(in srgb,var(--accent) 72%,var(--ink));margin-top:6px}
.field input:focus,.field textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
/* sticky mobile bar: appears once you've scrolled past the top, steps aside near the forms and footer */
.sticky-cta{transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .32s ease}
.sticky-cta.is-away{transform:translateY(110%);opacity:0;pointer-events:none}
/* images fade in as they arrive instead of popping */
img.fade-in{opacity:0;transition:opacity .45s ease}
img.fade-in.is-loaded{opacity:1}
/* comfier tap targets in the footer on phones */
@media(max-width:760px){
  .foot-col a{padding:7px 0;margin-bottom:2px}
  .foot-bottom span a{display:inline-block;padding:8px 0}
}
/* hide the page for the split second it takes to switch to Maltese, so English doesn't flash */
html.mt-pending body{visibility:hidden}
@media(prefers-reduced-motion:reduce){
  body.menu-open .nav-links > a,.faq details[open] > p{animation:none}
  .faq details::details-content,.sticky-cta,img.fade-in{transition:none}
  img.fade-in{opacity:1}
}
/* home + landing hero (index.html, free-check.html) */
.hero{padding:118px 0 56px}
/* hero scene: search -> top result -> the call lands */
.scene{position:relative;max-width:520px;margin-inline:auto;padding:46px 0 26px}
.scene::before{content:"";position:absolute;inset:16% 4% 4% 18%;border:1px solid var(--line);background:var(--surface);border-radius:28px}
.scene .phone-stage{position:relative;max-width:318px;margin:0 6% 0 auto}
.g-search,.g-card{position:absolute;z-index:3;background:#FFFFFF;color:#14202C;border:1px solid rgba(20,32,44,.16);
  box-shadow:0 22px 40px -24px rgba(20,32,44,.45),0 2px 6px -3px rgba(20,32,44,.18)}
.g-search{top:0;left:0;width:min(300px,74%);display:flex;align-items:center;gap:10px;border-radius:999px;padding:12px 18px;font-size:.9rem;font-weight:500}
.g-search img{width:auto;height:18px;flex:0 0 auto}
.g-q{white-space:nowrap;overflow:hidden}
.g-caret{width:1.5px;height:1.05em;background:#14202C;flex:0 0 auto;margin-left:-8px;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.g-card{left:-2%;bottom:20%;width:min(272px,70%);border-radius:14px;padding:14px 16px 15px;transform-origin:20% 100%;
  opacity:0;transform:translateY(14px) scale(.96) rotate(-1.5deg);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.g-card.on{opacity:1;transform:rotate(-1.5deg)}
.g-k{display:block;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#4C5A66}
.g-name{display:block;font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.18rem;letter-spacing:-.01em;margin-top:6px;line-height:1.1}
.g-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.78rem;color:#4C5A66;margin-top:5px}
#gCat{transition:opacity .25s ease}
.g-open{color:#1E7A46;font-weight:600}
.g-acts{display:flex;gap:6px;margin-top:12px}
.g-acts span{flex:1;text-align:center;border:1px solid rgba(20,32,44,.2);border-radius:999px;padding:6px 0;font-size:.72rem;font-weight:600;color:#14202C;transition:background-color .25s ease,color .25s ease,transform .25s cubic-bezier(.16,1,.3,1)}
.g-acts .g-call{background:var(--accent);border-color:var(--accent);color:#fff}
.g-call.press{transform:scale(.92)}
.hero-anchor{width:100%;max-width:520px;justify-self:center}
.hero-anchor .ph-cap{margin:14px 6% 0 auto;width:318px;max-width:88%}
@media(max-width:1000px){
  .scene{max-width:400px;padding-top:58px}
  .scene .phone-stage{max-width:250px;margin-right:0}
  .g-card{left:0;bottom:16%}
  .hero-anchor{max-width:400px}
  .hero-anchor .ph-cap{width:250px;margin-right:0}
}
@media(prefers-reduced-motion:reduce){.g-card{opacity:1;transform:rotate(-1.5deg);transition:none}.g-caret{animation:none}}
/* hero scene, Oct 19: one readable result with a big Call button (the phone is gone) */
.scene{max-width:440px;padding:0}
.scene::before{display:none}
.g-search,.g-card{position:relative;left:auto;top:auto;bottom:auto}
.g-search{width:100%;font-size:1.05rem;padding:15px 22px}
.g-search img{height:20px}
.g-card{width:100%;margin-top:16px;padding:24px 24px 22px;border-radius:12px;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}
.g-card.on{transform:none}
.g-k{font-size:.85rem!important}
.g-name{font-size:1.9rem;margin-top:8px}
.g-meta{font-size:1rem;margin-top:8px}
.g-acts{gap:8px;margin-top:20px}
.g-acts span{padding:12px 0;font-size:.95rem}
.g-acts .g-call{flex:1.7;font-size:1.05rem;font-weight:700}
.hero-anchor .ph-cap{width:auto;max-width:none;margin:16px 0 0;text-align:left}
@media(max-width:1000px){.scene{max-width:440px;padding-top:0}.g-card{left:auto;bottom:auto}.hero-anchor{max-width:440px}.hero-anchor .ph-cap{width:auto}}
@media(prefers-reduced-motion:reduce){.g-card{transform:none}}
@media(max-width:480px){.g-card{padding:20px 18px 18px}.g-name{font-size:1.6rem}.g-acts{gap:6px}.g-acts span{font-size:.82rem;padding:11px 0}.g-acts .g-call{flex:1.3;font-size:.95rem}}
/* polish:end */


/* fixes:start ---------- audit fixes, Oct 2026 ---------- */
/* small red text: a darker red on light backgrounds, a lighter one on dark, so it always reads (4.5:1+) */
:root{--accent-text:#B42121}
body.theme-navy,body.theme-ink,.sx-stage,.way.pick{--accent-text:#FAF7F1}
body .sx-card .cat,body .way.pick .wtag,body .wa-k,body .form-k,body .founder-body .role,body .cb .win s,body .pan.live .pan-lab,body .care-list s,body .sc-first b,body .price-card .pc-tag,body .case-tag.live{color:var(--accent-text)}
body .case-tag.live{border-color:var(--accent-text)}
/* red buttons on navy sections: the brand red keeps white text readable */
body.theme-navy .btn-primary{background:#D62828}
body.theme-navy .btn-primary:hover{background:var(--ink);color:var(--bg)}
/* nothing smaller than 11px */
.strip s,.way .flag,.cb s,.care-list s,.pan-lab,.cmp-side small,.sx-card .cat,.sx-tags span,.menu-grid .q,.work-card .wc-cat,.case-copy .cat,.wg-body .cat,.shot-note,.cmp-side-lab,.face-ph,.wc-idx{font-size:max(.7rem,11px)}
.orb-node{font-size:clamp(.7rem,1.25vw,.84rem)}
/* iPhones zoom into any field under 16px */
.field input,.field textarea,.field select{font-size:16px}
/* the logo link is only as wide as the logo */
.nav > .brand{flex:0 0 auto}
/* footer headings are real headings now (h2), same look */
.foot-col .foot-h{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-family:"Montserrat";font-weight:700;line-height:1.4}
/* menu links on phones: 48px tall tap rows */
@media(max-width:1180px){.nav-links > a:not(.btn){min-height:48px;display:flex;align-items:center}}
/* hero buttons on pages that had none above the fold */
.pg-acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
/* review card hero: the drawn card while the real photo is on its way */
.rc-art{position:relative;height:440px;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;transition:background-color .5s ease}
.rc-art .nfc-stand{left:50%;margin-left:calc(var(--w) / -2)}
@media(max-width:560px){.rc-art{height:330px}}
/* home work cards: real screenshots */
.wc-frame.has-shot{opacity:1;background:var(--surface);overflow:hidden}
.wc-frame.has-shot::before,.wc-frame.has-shot::after{display:none}
.wc-frame.has-shot img{width:100%;height:100%;object-fit:cover;object-position:top center}
/* long text links may wrap; the arrow stays glued to the last word */
main p a.txt-link,.txt-link{white-space:normal}
.txt-link .arrow{white-space:nowrap}
/* fixes:end */

/* ---------- service pages: one drawn example in the hero (Oct 19) ---------- */
.svc-head .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);column-gap:clamp(36px,5vw,72px);align-items:center}
.svc-head .wrap > *{grid-column:1}
.svc-head .wrap > .svc-art{grid-column:2;grid-row:1 / span 6;align-self:center}
.svc-head h1{font-size:clamp(2.6rem,5.4vw,4.8rem)}
@media(max-width:1000px){.svc-head .wrap{grid-template-columns:minmax(0,1fr)}.svc-head .wrap > .svc-art{grid-column:1;grid-row:auto;margin-top:44px;max-width:420px}}
.svc-art{position:relative;width:100%;max-width:440px;justify-self:center;color:#14202C}
.svc-art figcaption.art-cap{margin-top:14px;font-size:.86rem;color:var(--muted);text-align:center}
.art-card{background:#fff;border:1px solid rgba(20,32,44,.14);border-radius:12px;padding:22px;box-shadow:0 30px 50px -34px rgba(20,32,44,.45)}
.art-card small{display:block;font-size:.84rem;color:#4C5A66}
.svc-art .red{background:#D62828!important;border-color:#D62828!important;color:#fff!important}
.stars{color:#E8B23A;letter-spacing:.06em}
.art-chip{display:inline-block;margin-top:14px;font-size:.86rem;font-weight:600;border:1px solid var(--line-strong);border-radius:999px;padding:7px 14px}
/* phone */
.art-phone{width:min(300px,100%);margin:0 auto;border:9px solid #14202C;border-radius:36px;background:#14202C;box-shadow:0 34px 60px -36px rgba(20,32,44,.6)}
.art-scr{background:#FAF7F1;border-radius:27px;overflow:hidden;min-height:520px;display:flex;flex-direction:column}
.aw-bar{display:flex;justify-content:space-between;align-items:center;padding:20px 18px 14px;border-bottom:1px solid rgba(20,32,44,.12)}
.aw-bar b{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.05rem}
.aw-menu{display:grid;gap:4px}.aw-menu i{display:block;width:18px;height:2px;background:#14202C}
.aw-hero{padding:26px 18px 20px}
.aw-hero h4{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.65rem;line-height:1.05;letter-spacing:-.01em}
.aw-hero p{font-size:.92rem;color:#4C5A66;margin:12px 0 18px}
.aw-btn{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:0 16px;margin:0 8px 8px 0;border:1.5px solid rgba(20,32,44,.25);border-radius:6px;font-weight:700;font-size:.92rem;background:#fff}
.aw-btn.big{display:flex;width:100%;margin:0 0 10px;min-height:52px;font-size:1rem}
.aw-row{margin-top:auto;display:flex;justify-content:space-between;gap:10px;padding:16px 18px;border-top:1px solid rgba(20,32,44,.12);font-size:.84rem;font-weight:600}
.acb{padding:22px 18px}
.acb-book{margin-top:10px;border:1px solid rgba(20,32,44,.14);border-radius:8px;padding:14px;background:#fff}
.acb-book b{font-size:.95rem}
.acb-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.acb-slots span{text-align:center;font-size:.84rem;font-weight:600;padding:8px 0;border:1px solid rgba(20,32,44,.18);border-radius:5px}
.acb-slots .on{background:#14202C;color:#FAF7F1;border-color:#14202C}
/* google listing */
.ag-photos{display:grid;grid-template-columns:2fr 1fr 1fr;gap:5px;height:120px;margin:-8px -8px 16px;border-radius:8px;overflow:hidden}
.ag-photos span:nth-child(1){background:linear-gradient(150deg,#E8B23A,#C98A1B)}
.ag-photos span:nth-child(2){background:linear-gradient(150deg,#D62828,#9E1C1C)}
.ag-photos span:nth-child(3){background:linear-gradient(150deg,#1C2E3E,#14202C)}
.ag-name{display:block;font-family:"Clash Display","Montserrat",sans-serif;font-size:1.7rem;font-weight:600}
.ag-rate,.ag-meta,.ag-open{display:block;font-size:.95rem;margin-top:6px;color:#4C5A66}
.ag-open{color:#1E7A46;font-weight:600}
.ag-acts{display:flex;gap:8px;margin-top:18px}
.ag-acts span,.aa-cta span:last-child{flex:1;text-align:center;border:1.5px solid rgba(20,32,44,.2);border-radius:999px;padding:11px 0;font-weight:700;font-size:.92rem}
/* ad */
.aa-top{display:flex;gap:12px;align-items:center}
.aa-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#14202C;color:#FAF7F1;font-weight:700;font-size:.9rem;flex:none}
.aa-top b{font-size:1rem}
.aa-txt{font-size:.95rem;margin:14px 0}
.aa-img{height:170px;border-radius:8px;background:linear-gradient(160deg,#E8B23A,#D62828);display:flex;align-items:flex-end;padding:16px}
.aa-img span{font-family:"Clash Display","Montserrat",sans-serif;font-weight:600;font-size:1.35rem;color:#fff;line-height:1.1}
.aa-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:.88rem;font-weight:600}
.aa-cta span:last-child{flex:none;padding:10px 16px}
/* social plan */
.as-head b,.ah-head b,.am-head b{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.2rem;font-weight:600}
.as-list,.ah-list,.am-list{list-style:none;margin:16px 0 0;padding:0}
.as-list li{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid rgba(20,32,44,.1);font-size:.92rem}
.as-list .d{font-weight:700;color:#4C5A66;font-size:.84rem}
.as-list .s{font-size:.8rem;font-weight:700;padding:4px 9px;border-radius:999px;background:#F3EFE6}
.as-list .s.done{background:#14202C;color:#FAF7F1}
/* photos */
.ap{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ap-shot{margin:0;background:#fff;padding:10px 10px 12px;border:1px solid rgba(20,32,44,.12);border-radius:6px;box-shadow:0 24px 40px -30px rgba(20,32,44,.5)}
.ap-shot.a1{grid-column:1 / span 2}
.ap-img{display:grid;place-items:center;height:130px;border-radius:4px;background:#F3EFE6}
.ap-shot.a1 .ap-img{height:190px;background:#EADFCB}
.ap-img svg{width:44%;height:auto;max-height:80%}
.ap-shot figcaption{font-size:.88rem;font-weight:600;margin-top:9px}
/* brand sheet */
.ab-mark{display:flex;gap:14px;align-items:center}
.ab-logo{display:grid;place-items:center;width:56px;height:56px;border-radius:10px;background:#D62828;color:#fff;font-family:"Clash Display","Montserrat",sans-serif;font-weight:700;font-size:1.3rem;flex:none}
.ab-mark b{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.4rem}
.ab-sw{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:18px}
.ab-sw span{height:70px;border-radius:6px;display:flex;align-items:flex-end;padding:7px;color:#fff;border:1px solid rgba(20,32,44,.12)}
.ab-sw i{font-style:normal;font-size:.8rem;font-weight:700}
.ab-type{display:flex;gap:16px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid rgba(20,32,44,.1)}
.ab-type b{font-family:"Clash Display","Montserrat",sans-serif;font-size:2.6rem;line-height:1}
.ab-type span{font-size:.9rem;color:#4C5A66}
.ab-uses{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.ab-uses span{font-size:.84rem;font-weight:600;border:1px solid rgba(20,32,44,.18);border-radius:999px;padding:5px 11px}
/* cards */
.abc{position:relative;height:340px}
.abc-card{position:absolute;width:82%;aspect-ratio:85/55;border-radius:8px;padding:22px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 30px 50px -30px rgba(20,32,44,.55)}
.abc-card.back{right:0;top:0;background:#FAF7F1;border:1px solid rgba(20,32,44,.14);transform:rotate(4deg);gap:4px;font-size:.92rem}
.abc-card.back b{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.2rem}
.abc-card .qr{position:absolute;right:18px;bottom:18px;width:46px;height:46px;background:repeating-linear-gradient(90deg,#14202C 0 5px,transparent 5px 9px),repeating-linear-gradient(0deg,#14202C 0 5px,transparent 5px 9px);background-blend-mode:multiply;border-radius:3px;opacity:.85}
.abc-card.front{left:0;bottom:0;background:#14202C;color:#FAF7F1;transform:rotate(-5deg);align-items:flex-start;gap:8px}
.abc-card.front b{font-family:"Clash Display","Montserrat",sans-serif;font-size:1.5rem}
.abc-card.front small{color:rgba(250,247,241,.8);font-size:.88rem}
/* reel */
.art-reel{width:min(280px,100%);aspect-ratio:9/16;margin:0 auto;border-radius:18px;background:linear-gradient(170deg,#D62828,#9E1C1C 70%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:18px;box-shadow:0 34px 60px -36px rgba(20,32,44,.6)}
.ar-top{display:flex;gap:10px;align-items:center;font-size:.95rem}
.ar-top .aa-logo{background:#FAF7F1;color:#14202C;width:36px;height:36px}
.ar-k{display:block;font-size:.9rem;font-weight:600;opacity:.9}
.ar-mid b{display:block;font-family:"Clash Display","Montserrat",sans-serif;font-size:2.4rem;line-height:1;margin-top:6px}
.ar-bar{display:block;height:3px;background:rgba(255,255,255,.3);margin-top:16px;border-radius:2px;overflow:hidden}
.ar-bar i{display:block;width:66%;height:100%;background:#fff}
.ar-bot{display:flex;align-items:center;gap:10px;font-size:.84rem;font-weight:600}
.ar-play{width:0;height:0;border-left:12px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
/* care report */
.ah-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid rgba(20,32,44,.1);font-size:.95rem;font-weight:600}
.ah-list small{display:inline;font-weight:500}
.art-ok{width:20px;height:20px;border-radius:50%;background:#1E7A46;position:relative}
.art-ok::after{content:"";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
/* plan */
.am-list{counter-reset:none}
.am-list li{display:grid;grid-template-columns:5.2rem minmax(0,1fr);gap:12px;padding:13px 0;border-top:1px solid rgba(20,32,44,.1);font-size:.95rem}
.am-list .m{font-weight:700;color:#D62828}
.am-foot{display:grid;gap:6px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(20,32,44,.1);font-size:.88rem;color:#4C5A66}

/* form fields and buttons use the site font, never the browser default */
input,textarea,select,button{font-family:inherit}
