@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-stretch:75% 100%;font-display:swap;src:url('fonts/bricolage-grotesque.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/inter.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
  :root{
    /* light base */
    --paper:#f4f1ea;
    --paper-2:#ece7dd;
    --card:#ffffff;
    --ink:#16150f;
    --ink-2:#3c3a31;
    --muted:#6f6c62;
    --muted-2:#98948a;
    --line:rgba(22,21,15,.14);
    --line-2:rgba(22,21,15,.07);
    /* dark blocks */
    --black:#0e0e10;
    --black-2:#141416;
    --bone:#f4f1ea;
    --bone-dim:#c7c3ba;
    --smoke:#9a968c;
    --smoke-2:#726f66;
    --dline:rgba(244,241,234,.13);
    --dline-2:rgba(244,241,234,.07);
    /* accent */
    --red:#d51321;
    --red-2:#f22a34;
    --red-deep:#a30d18;
    --shadow:0 30px 60px -32px rgba(22,21,15,.4);
    --ease:cubic-bezier(.22,.61,.36,1);
    --disp:'Bricolage Grotesque',system-ui,sans-serif;
    --sans:'Inter',system-ui,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3,h4{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;line-height:1.02}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  ::selection{background:var(--red);color:#fff}
  .wrap{width:min(1240px,90vw);margin-inline:auto;position:relative}

  .eye{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:.7rem}
  .eye::before{content:"";width:30px;height:2px;background:var(--red);display:inline-block}
  .eye.on-dark{color:var(--red-2)}

  /* buttons */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--sans);font-weight:600;font-size:.97rem;padding:1.02rem 1.7rem;border-radius:11px;cursor:pointer;border:1px solid transparent;transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;white-space:nowrap}
  .btn svg{width:17px;height:17px}
  .btn-red{background:var(--red);color:#fff;box-shadow:0 10px 22px -10px rgba(213,19,33,.6)}
  .btn-red:hover{background:var(--red-2);transform:translateY(-3px);box-shadow:0 16px 30px -10px rgba(213,19,33,.7)}
  .btn-line{border-color:var(--line);color:var(--ink);background:transparent}
  .btn-line:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-3px)}
  .btn-linedark{border-color:rgba(244,241,234,.28);color:var(--bone);background:transparent}
  .btn-linedark:hover{border-color:var(--bone);background:var(--bone);color:var(--ink);transform:translateY(-3px)}

  /* logo */
  .logo{display:flex;align-items:center;gap:.75rem}
  .logo .emblem{width:46px;height:46px;flex:none}
  .logo .txt{display:flex;flex-direction:column;line-height:1}
  .logo .txt .n{font-family:var(--disp);font-weight:800;font-size:1.32rem;letter-spacing:-.02em;color:var(--ink);transition:color .3s}
  .logo .txt .n b{color:var(--red);font-weight:800}
  .logo .txt .s{font-family:var(--sans);font-size:.56rem;font-weight:600;letter-spacing:.26em;color:var(--muted);text-transform:uppercase;margin-top:5px;transition:color .3s}

  /* ---------- top bar ---------- */
  .topbar{background:var(--black);border-bottom:1px solid var(--dline-2);font-size:.78rem}
  .topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;color:var(--smoke)}
  .topbar .tb-r{display:flex;gap:1.4rem;align-items:center}
  .topbar a{color:var(--bone);font-weight:600}
  @media(max-width:720px){.topbar .tb-hide{display:none}}

  /* ---------- nav (light text over hero, dark when solid) ---------- */
  header.nav{position:sticky;top:0;z-index:50;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}
  .nav .logo .txt .n{color:var(--bone)}
  .nav .logo .txt .s{color:var(--bone-dim)}
  nav.links{display:flex;gap:2rem;align-items:center;font-weight:500;font-size:.95rem;color:var(--bone-dim)}
  nav.links a{position:relative;padding:.3rem 0;transition:color .2s}
  nav.links a:hover{color:var(--bone)}
  nav.links a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--red);transition:width .25s var(--ease)}
  nav.links a:hover::after{width:100%}
  .nav-r{display:flex;align-items:center;gap:1.3rem}
  .nav-phone{font-family:var(--disp);font-weight:700;font-size:1.05rem;white-space:nowrap;display:flex;align-items:center;gap:.5rem;color:var(--bone);transition:color .3s}
  .nav-phone svg{width:16px;height:16px;stroke:var(--red-2)}
  .burger{display:none;background:none;border:1px solid rgba(244,241,234,.3);padding:.55rem;cursor:pointer}
  .burger svg{width:22px;height:22px;stroke:var(--bone)}
  /* solid state */
  header.nav.solid{background:rgba(244,241,234,.9);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--line-2)}
  header.nav.solid .logo .txt .n{color:var(--ink)}
  header.nav.solid .logo .txt .s{color:var(--muted)}
  header.nav.solid nav.links{color:var(--ink-2)}
  header.nav.solid nav.links a:hover{color:var(--ink)}
  header.nav.solid .nav-phone{color:var(--ink)}
  header.nav.solid .burger{border-color:var(--line)}
  header.nav.solid .burger svg{stroke:var(--ink)}
  @media(max-width:980px){nav.links,.nav-r .btn,.nav-phone{display:none}.burger{display:block}}

  .mmenu{position:fixed;inset:0;z-index:90;background:var(--black);display:none;flex-direction:column;padding:1.1rem 8vw}
  .mmenu.open{display:flex}
  .mmenu .top{display:flex;justify-content:space-between;align-items:center}
  .mmenu .logo .txt .n{color:var(--bone)}
  .mmenu .close{background:none;border:1px solid var(--dline);padding:.55rem;cursor:pointer}
  .mmenu .close svg{width:22px;height:22px;stroke:var(--bone)}
  .mmenu nav{display:flex;flex-direction:column;margin-top:2.6rem}
  .mmenu nav a{font-family:var(--disp);font-weight:700;font-size:2rem;padding:.8rem 0;border-bottom:1px solid var(--dline-2);color:var(--bone)}
  .mmenu nav a span{color:var(--red-2);font-size:.9rem;margin-right:1rem;font-family:var(--sans);font-weight:600}
  .mmenu .m-act{margin-top:auto;display:flex;flex-direction:column;gap:.8rem;padding-bottom:1.6rem}

  /* ---------- hero (split panel) ---------- */
  .hero{position:relative;overflow:hidden;margin-top:-82px;padding-top:82px;background:var(--black);color:var(--bone)}
  .hero-split{display:grid;grid-template-columns:1.02fr .98fr;min-height:92vh}
  .hero-left{position:relative;display:flex;align-items:center;padding:3rem clamp(2rem,4vw,3.6rem) 3rem max(6vw,calc((100vw - 1240px)/2))}
  .hero-left::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:4px;background:var(--red)}
  .hero-left-in{width:100%;max-width:560px}
  .hero-right{position:relative;overflow:hidden;background:var(--black-2)}
  .hero-right img{width:100%;height:100%;object-fit:cover;object-position:center 44%}
  .hero-right::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--black) 0%,rgba(14,14,16,.12) 20%,transparent 44%);pointer-events:none}
  .hero-badge{position:absolute;left:0;bottom:1.8rem;background:var(--red);color:#fff;padding:.7rem 1.1rem;display:flex;align-items:center;gap:.55rem;z-index:2}
  .hero-badge .bst{font-size:.95rem}
  .hero-badge b{font-family:var(--disp);font-weight:800;font-size:1.2rem}
  .hero-badge span{font-size:.72rem;opacity:.92}
  .hero .eye{margin-bottom:1.5rem;color:var(--red-2)}
  .hero h1{font-size:clamp(2.5rem,4.3vw,4.3rem);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--bone)}
  .hero h1 .r{color:var(--red-2)}
  .hero .lead{font-size:1.14rem;color:var(--bone-dim);max-width:44ch;margin-top:1.5rem;line-height:1.55}
  .hero-cta{display:flex;gap:.9rem;margin-top:2rem;flex-wrap:wrap}
  .hero-strip{margin-top:2.4rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;padding-top:1.6rem;border-top:1px solid var(--dline)}
  .hs{display:flex;flex-direction:column;gap:.2rem}
  .hs .n{font-family:var(--disp);font-weight:800;font-size:1.5rem;line-height:1;color:var(--bone)}
  .hs .n .st{color:var(--red-2);font-size:1rem;letter-spacing:1px}
  .hs .l{font-size:.76rem;color:var(--smoke)}
  .hs.div{width:1px;align-self:stretch;background:var(--dline);gap:0}
  @media(max-width:900px){.hero-split{grid-template-columns:1fr}.hero-right{height:46vh;order:-1}.hero-right::after{background:linear-gradient(0deg,var(--black) 0%,transparent 45%)}.hero-left{padding:2.6rem 6vw 3.2rem}.hero-left::before{display:none}}
  @media(max-width:560px){.hs.div{display:none}.hero-strip{gap:1.4rem}}

  /* ---------- ticker ---------- */
  .ticker{background:var(--red);color:#fff;overflow:hidden;padding:.7rem 0}
  .tick-track{display:flex;gap:2.6rem;width:max-content;animation:tk 32s linear infinite}
  .ticker:hover .tick-track{animation-play-state:paused}
  @keyframes tk{to{transform:translateX(-50%)}}
  .tk{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--disp);font-weight:600;font-size:1rem;white-space:nowrap}
  .tk .st{opacity:.6;font-size:.7rem}

  /* ---------- intro (light) ---------- */
  .intro{padding:6rem 0 5rem}
  .intro .grid{display:grid;grid-template-columns:1.35fr .95fr;gap:4rem;align-items:center}
  .intro h2{font-size:clamp(1.9rem,3.8vw,3.1rem);margin-top:1.2rem;line-height:1.04}
  .intro h2 em{font-style:normal;color:var(--red)}
  .intro p{color:var(--muted);font-size:1.08rem;margin-top:1.3rem;max-width:52ch}
  .intro .sign{margin-top:1.9rem;display:flex;align-items:center;gap:1rem;font-size:.82rem;color:var(--ink-2)}
  .intro .sign .b{width:38px;height:2px;background:var(--red)}
  .intro-media{position:relative}
  .intro-media .ph{position:relative;overflow:hidden;aspect-ratio:4/5;clip-path:polygon(0 0,100% 0,100% 88%,86% 100%,0 100%);box-shadow:var(--shadow)}
  .intro-media .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
  .intro-media:hover .ph img{transform:scale(1.06)}
  .intro-media .tagbox{position:absolute;left:-22px;bottom:32px;background:var(--red);color:#fff;padding:1rem 1.3rem;box-shadow:0 20px 40px -18px rgba(213,19,33,.55)}
  .intro-media .tagbox .big{font-family:var(--disp);font-weight:800;font-size:2rem;line-height:1}
  .intro-media .tagbox .sm{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-top:.35rem;opacity:.92}
  @media(max-width:860px){.intro .grid{grid-template-columns:1fr;gap:3rem}.intro-media{max-width:420px}}

  /* ---------- services (light, alt) ---------- */
  .svc{background:var(--paper-2);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:5.5rem 0}
  .svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3rem;flex-wrap:wrap}
  .svc-head h2{font-size:clamp(2rem,4.2vw,3.4rem);margin-top:1rem}
  .svc-head p{color:var(--muted);max-width:36ch;font-size:.98rem}
  .svc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:start}
  .svc-preview{position:sticky;top:110px;aspect-ratio:5/6;overflow:hidden;background:var(--black-2);box-shadow:var(--shadow)}
  .svc-preview .frame{position:absolute;inset:0}
  .svc-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .6s var(--ease),transform 1.4s var(--ease)}
  .svc-preview img.on{opacity:1;transform:scale(1)}
  .svc-preview::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,10,12,.85));pointer-events:none}
  .svc-preview .cap{position:absolute;left:0;bottom:0;padding:1.4rem;z-index:2;font-size:.82rem;color:var(--bone-dim)}
  .svc-preview .cap b{display:block;font-family:var(--disp);font-weight:700;font-size:1.2rem;color:var(--bone);margin-bottom:.2rem}
  .svc-preview .cnr{position:absolute;top:0;right:0;width:42px;height:42px;background:var(--red);clip-path:polygon(100% 0,0 0,100% 100%);z-index:2}
  .idx-row{display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:center;padding:1.7rem .4rem;border-top:1px solid var(--line);cursor:pointer;transition:padding .3s var(--ease),background .3s}
  .idx-row:last-child{border-bottom:1px solid var(--line)}
  .idx-row .num{font-family:var(--disp);font-weight:600;font-size:1rem;color:var(--muted-2);transition:color .3s}
  .idx-row .main .t{font-family:var(--disp);font-weight:800;font-size:1.65rem;letter-spacing:-.02em;transition:transform .35s var(--ease),color .3s;line-height:1.02;color:var(--ink)}
  .idx-row .main .d{color:var(--muted);font-size:.92rem;margin-top:.45rem;max-width:48ch;transition:color .3s}
  .idx-row .arr{color:var(--muted-2);transition:color .3s,transform .35s var(--ease);opacity:0}
  .idx-row .arr svg{width:22px;height:22px;stroke:currentColor}
  .idx-row.active{background:linear-gradient(90deg,rgba(213,19,33,.08),transparent 70%);padding-left:1.4rem}
  .idx-row.active .num{color:var(--red)}
  .idx-row.active .main .t{transform:translateX(6px)}
  .idx-row.active .arr{color:var(--red);opacity:1}
  .svc-foot{margin-top:2.6rem;display:flex;justify-content:center}
  @media(max-width:860px){.svc-grid{grid-template-columns:1fr}.svc-preview{display:none}.idx-row .main .t{font-size:1.4rem}}

  /* ---------- feature band (dark image) ---------- */
  .band{position:relative;min-height:56vh;display:flex;align-items:center;overflow:hidden;background:var(--black)}
  .band-img{position:absolute;inset:0;z-index:0}
  .band-img img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
  .band-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--black) 8%,rgba(14,14,16,.55) 48%,rgba(14,14,16,.15) 100%)}
  .band .wrap{padding:4.5rem 0;z-index:2}
  .band h2{font-size:clamp(2.1rem,4.8vw,4rem);max-width:18ch;margin-top:1.2rem;line-height:1.02;color:var(--bone)}
  .band h2 em{font-style:normal;color:var(--red-2)}
  .band p{color:var(--bone-dim);font-size:1.1rem;max-width:46ch;margin-top:1.4rem}
  .band .btn{margin-top:2rem}
  @media(max-width:700px){.band-img::after{background:linear-gradient(180deg,rgba(14,14,16,.4),rgba(14,14,16,.85))}}

  /* ---------- why (light) ---------- */
  .why{padding:6rem 0}
  .why .grid{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center}
  .why h2{font-size:clamp(2rem,4vw,3.2rem);margin-top:1rem}
  .why h2 em{font-style:normal;color:var(--red)}
  .why-list{margin-top:1.8rem;display:flex;flex-direction:column}
  .wl{display:flex;gap:1.2rem;padding:1.4rem 0;border-top:1px solid var(--line)}
  .wl:last-child{border-bottom:1px solid var(--line)}
  .wl .k{font-family:var(--disp);font-weight:700;color:var(--red);font-size:1rem;flex:none;width:26px;padding-top:.1rem}
  .wl h4{font-family:var(--disp);font-weight:700;font-size:1.15rem;margin-bottom:.3rem}
  .wl p{color:var(--muted);font-size:.94rem}
  .grate{position:relative;background:var(--card);border:1px solid var(--line);padding:2.2rem;box-shadow:var(--shadow)}
  .grate .top{display:flex;align-items:center;gap:1.1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
  .grate .top .num{font-family:var(--disp);font-weight:800;font-size:3.4rem;line-height:.9}
  .grate .top .st{color:var(--red);letter-spacing:2px;font-size:1.05rem}
  .grate .top .sub{font-size:.82rem;color:var(--muted);margin-top:.35rem}
  .grate .top .glogo{margin-left:auto;font-family:var(--disp);font-weight:700;font-size:1.05rem}
  .grate .top .glogo b:nth-child(1){color:#4285F4}.grate .top .glogo b:nth-child(2){color:#EA4335}.grate .top .glogo b:nth-child(3){color:#FBBC05}.grate .top .glogo b:nth-child(4){color:#4285F4}.grate .top .glogo b:nth-child(5){color:#34A853}.grate .top .glogo b:nth-child(6){color:#EA4335}
  .grate q{display:block;font-size:1.02rem;line-height:1.6;color:var(--ink-2);margin:1.5rem 0 1rem;quotes:none}
  .grate q::before,.grate q::after{content:""}
  .grate .by{font-size:.82rem;color:var(--muted)}
  .grate .by b{color:var(--ink);font-weight:600}
  .grate .scnr{position:absolute;bottom:0;right:0;width:36px;height:36px;background:var(--red);clip-path:polygon(100% 0,0 100%,100% 100%)}
  @media(max-width:860px){.why .grid{grid-template-columns:1fr;gap:3rem}}

  /* ---------- stats (RED band) ---------- */
  .stats{padding:4.4rem 0;background:var(--red);color:#fff}
  .stats .row{display:grid;grid-template-columns:repeat(4,1fr)}
  .scell{padding:0 1.6rem;border-left:1px solid rgba(255,255,255,.25)}
  .scell:first-child{border-left:0;padding-left:0}
  .scell .n{font-family:var(--disp);font-weight:800;font-size:clamp(2.4rem,5vw,3.6rem);line-height:.95;letter-spacing:-.03em;color:#fff}
  .scell .l{font-size:.82rem;color:rgba(255,255,255,.82);margin-top:.7rem}
  @media(max-width:720px){.stats .row{grid-template-columns:1fr 1fr;gap:2.4rem 0}.scell:nth-child(3){border-left:0;padding-left:0}}

  /* ---------- gallery (light) ---------- */
  .gal{padding:6rem 0}
  .gal-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-bottom:2.6rem}
  .gal-head h2{font-size:clamp(2rem,4vw,3.2rem);margin-top:1rem}
  .gal-head a{font-weight:600;font-size:.9rem;color:var(--ink-2);display:inline-flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--red);padding-bottom:.25rem}
  .gal-head a svg{width:15px;height:15px;stroke:var(--red)}
  .gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
  .gcell{position:relative;overflow:hidden;background:var(--paper-2)}
  .gcell img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .5s;filter:grayscale(.12)}
  .gcell:hover img{transform:scale(1.07);filter:grayscale(0)}
  .gcell::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(10,10,12,.82));transition:opacity .4s}
  .gcell .gc{position:absolute;left:0;bottom:0;padding:1rem 1.1rem;z-index:2;font-size:.74rem;color:var(--bone-dim)}
  .gcell .gc b{display:block;font-family:var(--disp);font-weight:700;font-size:.98rem;color:var(--bone);margin-bottom:.15rem}
  .gcell.w2{grid-column:span 2}
  .gcell.h2{grid-row:span 2}
  @media(max-width:820px){.gal-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gcell.w2{grid-column:span 2}.gcell.h2{grid-row:span 1}}

  /* ---------- reviews (light alt) ---------- */
  .rev{background:var(--paper-2);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:6rem 0}
  .rev-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.4rem;margin-bottom:3rem}
  .rev-top h2{font-size:clamp(2rem,4vw,3.2rem);margin-top:1rem}
  .rev-score{display:flex;align-items:center;gap:1rem}
  .rev-score .big{font-family:var(--disp);font-weight:800;font-size:3.2rem;line-height:1}
  .rev-score .meta .st{color:var(--red);letter-spacing:2px;font-size:1.05rem}
  .rev-score .meta .g{font-size:.8rem;color:var(--muted);margin-top:.3rem}
  .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
  .rcell{padding:2.2rem 2rem 2.2rem 0;border-right:1px solid var(--line)}
  .rcell:last-child{border-right:0}
  .rcell:not(:first-child){padding-left:2rem}
  .rcell .st{color:var(--red);letter-spacing:1px;font-size:.9rem}
  .rcell q{display:block;font-size:1rem;line-height:1.6;margin:1rem 0 1.6rem;color:var(--ink-2);quotes:none}
  .rcell q::before,.rcell q::after{content:""}
  .rcell .who{display:flex;align-items:center;gap:.8rem}
  .rcell .av{width:40px;height:40px;background:var(--red);display:grid;place-items:center;font-family:var(--disp);font-weight:700;color:#fff;font-size:.9rem;flex:none;border-radius:50%}
  .rcell .nm{font-weight:600;font-size:.94rem}
  .rcell .mt{font-size:.74rem;color:var(--muted-2);margin-top:.15rem}
  @media(max-width:820px){.rev-grid{grid-template-columns:1fr}.rcell{padding:1.8rem 0;border-right:0;border-bottom:1px solid var(--line)}.rcell:not(:first-child){padding-left:0}.rcell:last-child{border-bottom:0}}

  /* ---------- faq (light) ---------- */
  .faq{padding:6rem 0}
  .faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3.5rem;align-items:start}
  .faq h2{font-size:clamp(2rem,3.8vw,3rem);margin-top:1rem;position:sticky;top:120px}
  .qa{border-top:1px solid var(--line)}
  .qa:last-child{border-bottom:1px solid var(--line)}
  .qa summary{list-style:none;cursor:pointer;padding:1.5rem .2rem;display:flex;justify-content:space-between;align-items:center;gap:1.4rem;font-family:var(--disp);font-weight:700;font-size:1.18rem;transition:color .2s}
  .qa summary:hover{color:var(--red)}
  .qa summary::-webkit-details-marker{display:none}
  .qa summary .pm{position:relative;width:20px;height:20px;flex:none}
  .qa summary .pm::before,.qa summary .pm::after{content:"";position:absolute;background:var(--red);transition:transform .3s var(--ease)}
  .qa summary .pm::before{left:0;right:0;top:9px;height:2px}
  .qa summary .pm::after{top:0;bottom:0;left:9px;width:2px}
  .qa[open] summary .pm::after{transform:scaleY(0)}
  .qa .a{padding:0 .2rem 1.6rem;color:var(--muted);font-size:.98rem;max-width:62ch}
  @media(max-width:820px){.faq .grid{grid-template-columns:1fr;gap:1.6rem}.faq h2{position:static}}

  /* ---------- contact (light, dark card) ---------- */
  .contact{position:relative;overflow:hidden;background:var(--paper-2);border-top:1px solid var(--line-2)}
  .contact::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 90% at 85% 8%,rgba(213,19,33,.1),transparent 60%);z-index:0}
  .contact .wrap{padding:6rem 0;z-index:2}
  .contact .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:4rem;align-items:center}
  .contact .eye{margin-bottom:1.1rem}
  .contact h2{font-size:clamp(2.3rem,5vw,4rem);line-height:1}
  .contact h2 em{font-style:normal;color:var(--red)}
  .contact .lead{color:var(--muted);font-size:1.12rem;margin-top:1.3rem;max-width:44ch}
  .contact-cta{display:flex;gap:.9rem;margin-top:2rem;flex-wrap:wrap}
  .icard{background:var(--black);border:1px solid var(--dline);box-shadow:var(--shadow)}
  .irow{display:flex;gap:1.1rem;align-items:flex-start;padding:1.3rem 1.5rem;border-bottom:1px solid var(--dline-2)}
  .irow:last-child{border-bottom:0}
  .irow .ic{width:40px;height:40px;flex:none;background:rgba(213,19,33,.16);border:1px solid rgba(213,19,33,.4);display:grid;place-items:center}
  .irow .ic svg{width:19px;height:19px;stroke:var(--red-2)}
  .irow .k{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--smoke)}
  .irow .v{font-family:var(--disp);font-weight:600;font-size:1.05rem;margin-top:.25rem;color:var(--bone)}
  .irow .v a{color:var(--bone)}
  @media(max-width:860px){.contact .grid{grid-template-columns:1fr;gap:2.6rem}}

  /* ---------- footer (dark) ---------- */
  footer{background:var(--black);border-top:3px solid var(--red);padding:3.6rem 0 2rem}
  footer .logo .txt .n{color:var(--bone)}
  footer .logo .txt .s{color:var(--bone-dim)}
  .ftop{display:grid;grid-template-columns:1.6fr 1fr 1.1fr;gap:2rem;padding-bottom:2.6rem;border-bottom:1px solid var(--dline-2)}
  .ftop h5{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--smoke-2);margin-bottom:1.1rem}
  .ftop a,.ftop p{display:block;color:var(--smoke);font-size:.9rem;padding:.3rem 0;transition:color .2s}
  .ftop a:hover{color:var(--red-2)}
  .fbrand p{max-width:34ch;margin-top:1rem}
  .fbot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.6rem;font-size:.78rem;color:var(--smoke-2);flex-wrap:wrap}
  .fbot .demo{color:var(--bone-dim)}
  @media(max-width:720px){.ftop{grid-template-columns:1fr 1fr}}
  @media(max-width:460px){.ftop{grid-template-columns:1fr}}

  /* sticky mobile */
  .scall{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;background:var(--black);border-top:1px solid var(--dline)}
  .scall a{flex:1;text-align:center;padding:1rem;font-weight:600;font-size:.95rem;color:var(--bone)}
  .scall .c{background:var(--red);color:#fff}
  @media(max-width:600px){.scall{display:flex}body{padding-bottom:56px}}

  /* reveal */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.tick-track{animation:none}.reveal{opacity:1;transform:none;transition:none}*{scroll-behavior:auto}}

  /* enquiry form */
  .enquiry{margin-top:1.8rem;display:grid;gap:.9rem}
  .enquiry .frow{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
  .enquiry .lb{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;display:block}
  .enquiry input,.enquiry textarea{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--card);border:1px solid var(--line);padding:.85rem .95rem;transition:border-color .2s,box-shadow .2s}
  .enquiry input::placeholder,.enquiry textarea::placeholder{color:var(--muted-2)}
  .enquiry input:focus,.enquiry textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(213,19,33,.14)}
  .enquiry textarea{min-height:108px;resize:vertical}
  .enquiry .btn{margin-top:.3rem;justify-self:start}
  .enquiry .fnote{font-size:.78rem;color:var(--muted)}
  .enquiry .fnote a{color:var(--red);font-weight:600}
  .form-done{display:none;margin-top:1.8rem;padding:1.4rem 1.3rem;border:1px solid rgba(213,19,33,.4);background:rgba(213,19,33,.06);color:var(--ink)}
  .form-done.on{display:block}
  .form-done b{font-family:var(--disp);font-size:1.1rem}
  @media(max-width:520px){.enquiry .frow{grid-template-columns:1fr}}
  /* map */
  .map-strip{position:relative;z-index:2;margin-top:4rem;border-top:1px solid var(--line)}
  .map-facade{display:flex;align-items:center;gap:1.4rem;min-height:240px;padding:2rem clamp(1.5rem,6vw,4rem);position:relative;overflow:hidden;color:var(--ink);background:linear-gradient(rgba(233,237,232,.92),rgba(233,237,232,.92)),repeating-linear-gradient(0deg,#d6ddd4 0 1px,transparent 1px 42px),repeating-linear-gradient(90deg,#d6ddd4 0 1px,transparent 1px 42px),#e9ede8;transition:filter .3s}
  .map-facade::before{content:"";position:absolute;inset:0;background:linear-gradient(118deg,transparent 44%,rgba(213,19,33,.08) 46% 53%,transparent 55%)}
  .map-facade:hover{filter:brightness(1.03)}
  .map-pin{width:56px;height:56px;flex:none;border-radius:50%;background:var(--red);display:grid;place-items:center;box-shadow:0 12px 26px -8px rgba(213,19,33,.65);position:relative;z-index:1}
  .map-pin svg{width:26px;height:26px;stroke:#fff}
  .map-info{position:relative;z-index:1}
  .map-info b{font-family:var(--disp);font-weight:700;font-size:1.12rem;display:block;line-height:1.2}
  .map-info span{color:var(--red);font-weight:600;font-size:.9rem;display:inline-block;margin-top:.4rem}


  /* ========== services page ========== */
  .page-hero{position:relative;background:var(--black);color:var(--bone);margin-top:-82px;padding:82px 0 0;overflow:hidden}
  .page-hero::after{content:"";position:absolute;left:0;top:82px;bottom:0;width:5px;background:var(--red)}
  .page-hero .wrap{padding:3.4rem 0 3.8rem}
  .page-hero .crumb{font-size:.82rem;color:var(--smoke);margin-bottom:1.4rem}
  .page-hero .crumb a{color:var(--bone-dim)}
  .page-hero .crumb a:hover{color:var(--red-2)}
  .page-hero h1{font-size:clamp(2.4rem,5vw,4rem);color:var(--bone);max-width:18ch;line-height:1}
  .page-hero h1 em{font-style:normal;color:var(--red-2)}
  .page-hero .lead{color:var(--bone-dim);font-size:1.14rem;max-width:54ch;margin-top:1.4rem;line-height:1.55}
  .sd{padding:5.5rem 0}
  .sd-row{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding:3.5rem 0;border-top:1px solid var(--line)}
  .sd-row:first-child{border-top:0;padding-top:0}
  .sd-media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);box-shadow:var(--shadow)}
  .sd-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
  .sd-media:hover img{transform:scale(1.05)}
  .sd-media .n{position:absolute;top:0;left:0;background:var(--red);color:#fff;font-family:var(--disp);font-weight:800;font-size:1rem;padding:.45rem .85rem;letter-spacing:.02em}
  .sd-row:nth-child(even) .sd-media{order:2}
  .sd-body .eye{margin-bottom:.9rem}
  .sd-body h2{font-size:clamp(1.7rem,3vw,2.4rem)}
  .sd-body>p{color:var(--muted);font-size:1.03rem;margin-top:1rem;max-width:46ch}
  .sd-list{margin-top:1.5rem;display:grid;gap:.75rem;padding:0}
  .sd-list li{list-style:none;display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2);font-size:.96rem}
  .sd-list li svg{width:18px;height:18px;stroke:var(--red);flex:none;margin-top:.15rem}
  .ctaband{background:var(--red);color:#fff;padding:4.2rem 0}
  .ctaband .in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
  .ctaband h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.8rem);max-width:20ch;line-height:1.05}
  .ctaband .btn-white{background:#fff;color:var(--red)}
  .ctaband .btn-white:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
  @media(max-width:820px){.sd-row{grid-template-columns:1fr;gap:1.8rem;padding:2.8rem 0}.sd-row:nth-child(even) .sd-media{order:0}}

  /* ========== whatsapp button ========== */
  .btn-wa{background:#25D366;color:#052e16;box-shadow:0 10px 22px -10px rgba(37,211,102,.5)}
  .btn-wa svg{width:19px;height:19px}
  .btn-wa:hover{background:#1ebe5b;transform:translateY(-3px)}

  /* ========== blog ========== */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;padding:4.5rem 0 5.5rem}
  .bcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
  .bcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .bcard-img{aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
  .bcard-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
  .bcard:hover .bcard-img img{transform:scale(1.05)}
  .bcard-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
  .bcard .cat{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
  .bcard h2{font-size:1.28rem;margin:.6rem 0 .5rem;line-height:1.14}
  .bcard p{color:var(--muted);font-size:.94rem;flex:1}
  .bcard .bmeta{margin-top:1.2rem;font-size:.78rem;color:var(--muted-2);display:flex;align-items:center;gap:.6rem}
  .bcard .rd{margin-left:auto;color:var(--red);font-weight:600}
  @media(max-width:900px){.blog-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:620px){.blog-grid{grid-template-columns:1fr}}

  /* article */
  .article-hero{position:relative;background:var(--black);color:var(--bone);margin-top:-82px;padding:82px 0 0;overflow:hidden}
  .article-hero::after{content:"";position:absolute;left:0;top:82px;bottom:0;width:5px;background:var(--red)}
  .article-hero .wrap{max-width:820px;padding:3rem 0 0}
  .article-hero .crumb{font-size:.82rem;color:var(--smoke);margin-bottom:1.2rem}
  .article-hero .crumb a{color:var(--bone-dim)}
  .article-hero .crumb a:hover{color:var(--red-2)}
  .article-hero .cat{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red-2)}
  .article-hero h1{font-size:clamp(2rem,4.2vw,3.1rem);color:var(--bone);margin:1rem 0;line-height:1.06}
  .article-hero .ameta{display:flex;gap:1.2rem;align-items:center;color:var(--bone-dim);font-size:.85rem;padding-bottom:2.6rem}
  .article-cover{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
  .article{max-width:720px;margin:0 auto;padding:3.5rem 6vw}
  .article>p{font-size:1.08rem;line-height:1.75;color:var(--ink-2);margin:0 0 1.3rem}
  .article h2{font-size:1.7rem;margin:2.4rem 0 1rem}
  .article h3{font-size:1.25rem;margin:1.8rem 0 .7rem}
  .article ul,.article ol{margin:0 0 1.4rem 1.1rem;display:grid;gap:.55rem}
  .article li{font-size:1.05rem;line-height:1.6;color:var(--ink-2)}
  .article strong{color:var(--ink)}
  .article .lead-p{font-size:1.2rem;color:var(--ink);line-height:1.6}
  .article .callout{background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--red);padding:1.3rem 1.5rem;margin:1.8rem 0}
  .article .callout p{margin:0;color:var(--ink-2)}
  .article-faq{max-width:720px;margin:0 auto;padding:0 6vw 4rem}
  .article-faq h2{font-size:1.7rem;margin-bottom:.6rem}
  @media(min-width:721px){.article,.article-faq{padding-left:0;padding-right:0}}
  .form-err{display:none;margin-top:1rem;color:var(--red-deep);font-weight:500;font-size:.92rem}
  .form-err.on{display:block}
  .form-err a{color:var(--red);font-weight:600;border-bottom:1px solid var(--red)}
  .fbot .demo a{color:var(--bone);border-bottom:1px solid var(--red)}
  .fbot .demo a:hover{color:var(--red-2)}
  .btn-light{background:var(--bone);color:var(--ink);font-weight:700}
  .btn-light:hover{background:#fff;color:var(--ink);transform:translateY(-3px);box-shadow:0 14px 30px -12px rgba(0,0,0,.55)}
  .logo .txt{display:none}
  .logo .emblem{width:56px;height:56px}
  .hero-cta .btn{min-width:210px}
  @media(max-width:480px){.hero-cta{flex-direction:column}.hero-cta .btn{width:100%;min-width:0}}
  .logo .emblem{width:auto;height:34px}
  .nav .logo{color:var(--bone)}
  header.nav.solid .logo{color:var(--ink)}
  .mmenu .logo{color:var(--bone)}
  footer .logo{color:var(--bone)}
  .logo-img{height:40px;width:auto;display:block}
  .logo-fb{display:none;font-family:var(--disp);font-weight:800;font-size:1.35rem;letter-spacing:-.01em;color:currentColor}
  header.nav.solid{background:rgba(14,14,16,.9)}
  header.nav.solid .logo{color:var(--bone)}
  header.nav.solid nav.links{color:var(--bone-dim)}
  header.nav.solid nav.links a:hover{color:var(--bone)}
  header.nav.solid .nav-phone{color:var(--bone)}
  header.nav.solid .burger{border-color:var(--dline)}
  header.nav.solid .burger svg{stroke:var(--bone)}
  .logo-img{height:46px;width:122px;object-fit:cover;object-position:center 48%;display:block}
  .logo-img{height:36px;width:auto;object-fit:contain;object-position:left center}
  @media(max-width:600px){.logo-img{height:32px}}
