/* ==========================================================================
   Bendex Print, Copy & Graphic Center
   ========================================================================== */

:root{
  /* Brand — drawn from the Bendex logo (blue swoosh / red swoosh / yellow) */
  --navy:      #0B2545;
  --navy-800:  #123159;
  --navy-700:  #1B3F6E;
  --blue:      #1D4E9B;
  --blue-600:  #2C63BC;
  --red:       #D62828;
  --red-600:   #E63A3A;
  --yellow:    #FFC300;
  --yellow-300:#FFD84D;

  --ink:       #101B2D;
  --body:      #4A5568;
  --muted:     #7A879B;
  --line:      #E3E8EF;
  --line-soft: #EEF1F6;
  --tint:      #F6F8FB;
  --cream:     #F7F0DE;
  --paper:     #FFFFFF;

  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;

  --shadow-sm: 0 1px 2px rgba(16,27,45,.06), 0 2px 6px rgba(16,27,45,.05);
  --shadow:    0 4px 12px rgba(16,27,45,.07), 0 12px 32px rgba(16,27,45,.07);
  --shadow-lg: 0 8px 24px rgba(16,27,45,.10), 0 28px 64px rgba(16,27,45,.12);

  --wrap: 1200px;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --ease: cubic-bezier(.4,.14,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:104px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  color:var(--body);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4{ color:var(--ink); font-weight:800; letter-spacing:-.025em; line-height:1.12; margin:0; }
p{ margin:0 0 1em; }
a{ color:var(--blue); text-decoration:none; }
a:hover{ color:var(--blue-600); }
img,svg,iframe{ max-width:100%; }
ul,ol{ margin:0; padding:0; list-style:none; }

:focus-visible{ outline:3px solid var(--blue-600); outline-offset:3px; border-radius:4px; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--navy); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-sm) 0; font-weight:600;
}
.skip:focus{ left:0; color:#fff; }

/* inline icon default */
.i{ width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ==========================================================================
   Top bar
   ========================================================================== */
.topbar{ background:var(--navy); color:#B9C7DC; font-size:13.5px; }
.topbar__in{ display:flex; align-items:center; gap:14px; min-height:40px; }
.topbar__item{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.topbar__item .i{ width:15px; height:15px; color:var(--yellow); }
.topbar__sep{ width:1px; height:14px; background:rgba(255,255,255,.16); }
.topbar__cta{
  margin-left:auto; display:inline-flex; align-items:center; gap:7px;
  color:#fff; font-weight:700; letter-spacing:.01em;
}
.topbar__cta .i{ width:15px; height:15px; color:var(--yellow); }
.topbar__cta:hover{ color:var(--yellow); }

/* ==========================================================================
   Header
   ========================================================================== */
.hdr{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.hdr.is-stuck{ border-bottom-color:var(--line); box-shadow:0 2px 20px rgba(16,27,45,.06); }
.hdr__in{ display:flex; align-items:center; gap:24px; min-height:74px; }

.brand{ display:inline-flex; align-items:center; gap:12px; color:var(--ink); flex:none;
  --lg-blue:#2B3A8C; --lg-red:#C62828; --lg-halo:#FFFFFF; --lg-ink:#15213A; }
.brand__logo{ width:112px; height:auto; flex:none; display:block; }
.brand__txt{ display:flex; flex-direction:column; line-height:1.15; max-width:11ch; }
.brand__txt em{ font-style:normal; font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }

.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav > a{
  color:var(--ink); font-weight:600; font-size:15px; padding:9px 14px; border-radius:var(--r-sm);
  transition:background .18s var(--ease), color .18s var(--ease);
}
.nav > a:not(.btn):hover{ background:var(--tint); color:var(--blue); }
.nav__cta{ margin-left:10px; }

.burger{
  display:none; margin-left:auto; width:44px; height:44px; border:1px solid var(--line);
  background:var(--paper); border-radius:var(--r-sm); cursor:pointer;
  flex-direction:column; justify-content:center; align-items:center; gap:5px; padding:0;
}
.burger span{ display:block; width:19px; height:2px; background:var(--ink); border-radius:2px; transition:transform .25s var(--ease), opacity .2s; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  --btn-bg:var(--blue); --btn-fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--btn-bg); color:var(--btn-fg);
  font-family:inherit; font-size:15px; font-weight:700; letter-spacing:-.005em;
  padding:13px 24px; border:0; border-radius:var(--r-sm); cursor:pointer;
  transition:transform .16s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
  box-shadow:var(--shadow-sm); white-space:nowrap; text-align:center;
}
.btn:hover{ color:var(--btn-fg); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn:active{ transform:translateY(0); }

.btn--primary{ --btn-bg:var(--red); }
.btn--primary:hover{ --btn-bg:var(--red-600); }
.btn--yellow{ --btn-bg:var(--yellow); --btn-fg:var(--navy); }
.btn--yellow:hover{ --btn-bg:var(--yellow-300); }
.btn--ghost{
  --btn-bg:transparent; --btn-fg:#fff;
  border:1.5px solid rgba(255,255,255,.32); box-shadow:none; backdrop-filter:blur(4px);
}
.btn--ghost:hover{ --btn-bg:rgba(255,255,255,.1); border-color:rgba(255,255,255,.5); box-shadow:none; }
.btn--sm{ padding:10px 18px; font-size:14.5px; }
.btn--lg{ padding:16px 30px; font-size:16.5px; }
.btn--block{ display:flex; width:100%; }

/* ==========================================================================
   Shared section furniture
   ========================================================================== */
.sec{ padding:96px 0; background:var(--yellow); }
.sec--tint{ background:var(--cream); }
.sec--flush{ padding-bottom:0; }
.sec--dark{ background:var(--navy); color:#C3D0E2; position:relative; overflow:hidden; }
.sec--dark::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(900px 420px at 88% -10%, rgba(29,78,155,.55), transparent 65%),
    radial-gradient(700px 380px at 4% 110%, rgba(214,40,40,.24), transparent 62%);
  pointer-events:none;
}
.sec--dark > *{ position:relative; }
.sec--dark h2,.sec--dark h3{ color:#fff; }

.sec__head{ max-width:760px; margin-bottom:52px; }
.sec__title{ font-size:clamp(30px, 4vw, 44px); margin-bottom:14px; }
.sec__sub{ font-size:18px; color:var(--body); margin:0; }
.sec__sub--light{ color:#B4C4DA; }

.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:12.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--red); margin:0 0 16px;
}
.eyebrow--light{ color:var(--yellow); }
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px color-mix(in srgb, currentColor 18%, transparent); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(165deg, #0B2545 0%, #123159 48%, #0E2B50 100%);
  color:#C6D3E5;
  padding:84px 0 0;
}
.hero::before{
  content:''; position:absolute; inset:0; opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(1000px 600px at 30% 20%, #000 20%, transparent 78%);
  -webkit-mask-image:radial-gradient(1000px 600px at 30% 20%, #000 20%, transparent 78%);
}
.hero__glow{
  position:absolute; width:760px; height:760px; right:-190px; top:-320px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,195,0,.20), rgba(214,40,40,.13) 42%, transparent 68%);
  filter:blur(10px);
}
.hero__in{
  position:relative; display:grid; grid-template-columns:1.35fr .95fr; gap:64px; align-items:center;
  padding-bottom:88px;
}

.hero h1{
  color:#fff; font-size:clamp(11px, 1.62vw, 23px); font-weight:900;
  letter-spacing:-.035em; line-height:1.15; margin:0 0 22px;
  white-space:nowrap;
}
.hero .hl{
  background:linear-gradient(105deg, var(--yellow) 0%, var(--yellow-300) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lede{ font-size:19px; line-height:1.65; color:#B6C6DC; max-width:56ch; margin:0 0 32px; }

.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:36px; }

.hero__pills{ display:flex; flex-wrap:wrap; gap:10px; }
.hero__pills li{
  font-size:13.5px; font-weight:600; color:#CBD9EC;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.13);
  padding:7px 14px; border-radius:100px; backdrop-filter:blur(4px);
}

/* quick-contact card */
.hero__card{
  background:var(--paper); border-radius:var(--r-lg); padding:32px;
  box-shadow:var(--shadow-lg); color:var(--body);
  border-top:5px solid var(--yellow);
}
.qc__head{ margin-bottom:22px; }
.qc__badge{
  display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.11em; text-transform:uppercase;
  color:var(--red); background:rgba(214,40,40,.09); padding:5px 11px; border-radius:6px; margin-bottom:12px;
}
.qc__head h2{ font-size:25px; }
.qc__steps{ display:grid; gap:14px; margin-bottom:26px; }
.qc__steps li{ display:flex; align-items:center; gap:13px; font-size:15.5px; font-weight:500; color:var(--ink); }
.qc__steps span{
  flex:none; width:29px; height:29px; border-radius:50%;
  background:var(--navy); color:#fff; font-size:13.5px; font-weight:800;
  display:grid; place-items:center;
}
.qc__alt{ font-size:14px; text-align:center; color:var(--muted); margin:16px 0 0; }
.qc__alt a{ font-weight:700; }

/* marquee */
.marquee{
  position:relative; border-top:1px solid rgba(255,255,255,.1);
  background:rgba(0,0,0,.16); overflow:hidden; padding:15px 0;
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee__track{
  display:flex; gap:26px; width:max-content;
  animation:slide 46s linear infinite;
  font-size:13.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#8FA6C4;
  white-space:nowrap;
}
.marquee__track span:nth-child(even){ color:var(--yellow); }
@keyframes slide{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ==========================================================================
   Service finder + cards
   ========================================================================== */
.finder{ margin-bottom:34px; }
.finder__box{
  position:relative; display:flex; align-items:center; gap:12px;
  max-width:620px; background:var(--paper);
  border:1.5px solid var(--line); border-radius:100px; padding:0 18px;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.finder__box:focus-within{ border-color:var(--blue); box-shadow:0 0 0 4px rgba(29,78,155,.11); }
.finder__box .i{ color:var(--muted); width:20px; height:20px; }
.finder__box input{
  flex:1; border:0; outline:0; background:none; font-family:inherit; font-size:16px;
  color:var(--ink); padding:15px 0;
}
.finder__box input::placeholder{ color:var(--muted); }
.finder__clear{
  border:0; background:var(--line-soft); color:var(--body); width:26px; height:26px; border-radius:50%;
  font-size:19px; line-height:1; cursor:pointer; display:grid; place-items:center; padding:0;
}
.finder__clear:hover{ background:var(--line); }
.finder__count{ font-size:14px; color:var(--muted); margin:12px 2px 0; min-height:1em; }

.grid--svc{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }

.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 24px 24px; position:relative; overflow:hidden;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);
}
.card::after{
  content:''; position:absolute; left:0; top:0; width:100%; height:3px;
  background:linear-gradient(90deg, var(--blue), var(--red) 55%, var(--yellow));
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.card:hover::after{ transform:scaleX(1); }

.card__ico{
  width:44px; height:44px; border-radius:11px; display:grid; place-items:center;
  background:linear-gradient(140deg, rgba(29,78,155,.11), rgba(214,40,40,.09));
  color:var(--navy); margin-bottom:15px;
}
.card__ico svg{ width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.card h3{ font-size:18px; margin-bottom:13px; letter-spacing:-.02em; }

.tags{ display:flex; flex-wrap:wrap; gap:6px; }
.tags li{
  font-size:12.5px; font-weight:500; color:var(--body);
  background:var(--tint); border:1px solid var(--line-soft);
  padding:4px 10px; border-radius:6px; line-height:1.45;
}
.tags li.is-hit{ background:rgba(255,195,0,.22); border-color:rgba(255,195,0,.5); color:var(--ink); font-weight:600; }

.card.is-out{ display:none; }
.empty{
  text-align:center; font-size:16.5px; color:var(--body);
  background:var(--tint); border:1px dashed var(--line); border-radius:var(--r); padding:40px 24px; margin:0;
}

/* ==========================================================================
   Split feature (wide format)
   ========================================================================== */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split__copy .sec__title{ margin-bottom:16px; }

.stats{ display:flex; gap:34px; margin:30px 0 32px; flex-wrap:wrap; }
.stat b{ display:block; font-size:34px; font-weight:900; color:var(--yellow); letter-spacing:-.03em; line-height:1.1; }
.stat span{ font-size:13.5px; color:#9FB2CC; }

.split__panels{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.panel{
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.11);
  border-radius:var(--r); padding:22px 20px; backdrop-filter:blur(6px);
  transition:background .22s var(--ease), transform .22s var(--ease);
}
.panel:hover{ background:rgba(255,255,255,.09); transform:translateY(-3px); }
.panel h3{ font-size:15px; margin-bottom:11px; letter-spacing:.02em; }
.panel ul{ display:grid; gap:6px; }
.panel li{ font-size:14px; color:#AEC0D8; padding-left:16px; position:relative; }
.panel li::before{
  content:''; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--yellow);
}

/* ==========================================================================
   Steps
   ========================================================================== */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:s; }
.step{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:28px 24px; position:relative;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.step:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.step__n{
  display:block; font-size:13px; font-weight:900; letter-spacing:.1em;
  color:var(--red); margin-bottom:12px;
}
.step h3{ font-size:18px; margin-bottom:9px; }
.step p{ font-size:15px; margin:0; }

/* ==========================================================================
   Quote form
   ========================================================================== */
.quote{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }

.contactlist{ display:grid; gap:20px; margin-top:34px; }
.contactlist li{ display:flex; gap:14px; align-items:flex-start; }
.contactlist .i{
  width:38px; height:38px; padding:9px; border-radius:10px; flex:none;
  background:var(--tint); color:var(--blue); border:1px solid var(--line-soft);
}
.contactlist b{ display:block; font-size:12.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-bottom:2px; }
.contactlist div{ font-size:16px; color:var(--ink); line-height:1.5; }
.contactlist a{ font-weight:600; }

.form{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:34px; box-shadow:var(--shadow);
}
.row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:18px; display:flex; flex-direction:column; }
.field label{
  font-size:14px; font-weight:700; color:var(--ink); margin-bottom:7px;
}
.field label span[aria-hidden]{ color:var(--red); }
.field .opt{ font-weight:500; color:var(--muted); font-size:12.5px; letter-spacing:.02em; }

.field input,.field select,.field textarea{
  font-family:inherit; font-size:16px; color:var(--ink);
  background:var(--paper); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:12px 14px; width:100%; transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.field textarea{ resize:vertical; min-height:110px; line-height:1.6; }
.field select{
  appearance:none; cursor:pointer; padding-right:40px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A879B' stroke-width='2' stroke-linecap='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 13px center; background-size:17px;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0; border-color:var(--blue); box-shadow:0 0 0 4px rgba(29,78,155,.11);
}
.field input::placeholder,.field textarea::placeholder{ color:#A6B1C2; }

.field.is-bad input,.field.is-bad select,.field.is-bad textarea{ border-color:var(--red); }
.field.is-bad input:focus,.field.is-bad select:focus,.field.is-bad textarea:focus{ box-shadow:0 0 0 4px rgba(214,40,40,.12); }
.err{ font-size:13px; color:var(--red); margin:6px 0 0; font-weight:600; display:none; }
.field.is-bad .err{ display:block; }

.form__note{ font-size:13.5px; color:var(--muted); text-align:center; margin:16px 0 0; line-height:1.55; }
.form__ok{
  font-size:15px; font-weight:600; color:#12694A; background:#E7F7EF;
  border:1px solid #B7E4CE; border-radius:var(--r-sm); padding:13px 16px; margin:16px 0 0; text-align:center;
}

/* ==========================================================================
   About
   ========================================================================== */
.about{ display:grid; grid-template-columns:1.25fr .75fr; gap:64px; align-items:center; }
.prose{ font-size:17.5px; line-height:1.72; }
.sig{ margin-top:26px; padding-left:18px; border-left:3px solid var(--yellow); }
.sig b{ display:block; font-size:17px; color:var(--ink); }
.sig span{ font-size:14px; color:var(--muted); }

.about__quote blockquote{
  margin:0; background:var(--navy); color:#fff; border-radius:var(--r-lg);
  padding:44px 36px; position:relative; overflow:hidden; box-shadow:var(--shadow-lg);
}
.about__quote blockquote::before{
  content:'"'; position:absolute; top:-34px; right:14px;
  font-size:170px; font-weight:900; color:rgba(255,195,0,.16); line-height:1;
}
.about__quote p{
  position:relative; font-size:28px; font-weight:900; letter-spacing:-.03em; line-height:1.25; margin:0;
}
.about__quote span{ display:block; margin-top:14px; font-size:inherit; font-weight:900; color:var(--yellow); letter-spacing:-.03em; }

/* ==========================================================================
   Contact + map
   ========================================================================== */
.contact{ display:grid; grid-template-columns:1fr 1.15fr; gap:52px; align-items:start; padding-bottom:96px; }
.contact__info{ display:grid; grid-template-columns:1fr 1fr; gap:30px 26px; }
.info h3{ font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red); margin-bottom:9px; }
.info p{ font-size:16px; color:var(--ink); margin:0; line-height:1.65; }
.link{ font-weight:700; font-size:15px; display:inline-block; margin-top:8px; }

.contact__map{
  border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow); background:var(--tint);
}
.contact__map iframe{ display:block; width:100%; height:420px; border:0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.ftr{ background:var(--navy); color:#96A9C4; padding:64px 0 0; }
.ftr__in{ display:grid; grid-template-columns:2fr 1fr 1fr 1.25fr; gap:44px; padding-bottom:48px; }
.brand--ftr{ --lg-halo:#0B2545; --lg-ink:#8FA3C0; }
.brand--ftr .brand__txt em{ color:#7E93B1; }
.ftr__brand p{ font-size:15px; margin:18px 0 0; max-width:34ch; line-height:1.65; }
.ftr__tag{ color:var(--yellow) !important; font-weight:800; letter-spacing:-.01em; font-size:16px !important; margin-top:12px !important; }

.ftr__col h4{ color:#fff; font-size:13px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; margin-bottom:16px; }
.ftr__col a{ display:block; color:#96A9C4; font-size:15px; padding:5px 0; transition:color .18s var(--ease), transform .18s var(--ease); }
.ftr__col a:hover{ color:var(--yellow); transform:translateX(3px); }
.ftr__addr{ display:block; font-size:15px; margin-top:12px; line-height:1.6; color:#7E93B1; }

.ftr__base{
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1); padding-block:22px; font-size:13.5px; color:#7E93B1;
}
.ftr__base p{ margin:0; }

/* ==========================================================================
   Mobile call FAB
   ========================================================================== */
.callfab{
  display:none; position:fixed; left:16px; right:16px; bottom:16px; z-index:90;
  background:var(--red); color:#fff; font-weight:800; font-size:16.5px;
  align-items:center; justify-content:center; gap:10px;
  padding:15px; border-radius:12px; box-shadow:0 8px 26px rgba(214,40,40,.42);
}
.callfab .i{ width:20px; height:20px; }

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1080px){
  .grid--svc{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .ftr__in{ grid-template-columns:1fr 1fr; gap:38px; }
}

@media (max-width:900px){
  html{ scroll-padding-top:80px; }
  .hero__in{ grid-template-columns:1fr; gap:44px; padding-bottom:64px; }
  .hero h1{ font-size:clamp(9px, 3.2vw, 30px); }
  .hero{ padding-top:56px; }
  .split,.quote,.about,.contact{ grid-template-columns:1fr; gap:40px; }
  .contact{ padding-bottom:72px; }
  .sec{ padding:72px 0; }

  .nav{
    position:fixed; inset:114px 0 auto; margin:0;
    flex-direction:column; align-items:stretch; gap:2px;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:14px 24px 26px; box-shadow:var(--shadow-lg);
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .22s var(--ease), transform .22s var(--ease);
    max-height:calc(100dvh - 114px); overflow-y:auto;
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav > a{ padding:14px 12px; font-size:17px; border-bottom:1px solid var(--line-soft); border-radius:0; }
  .nav__cta{ margin:16px 0 0; border-bottom:0 !important; }
  .burger{ display:flex; }

  .topbar__item--hide{ display:none; }
  .callfab{ display:flex; }
  body{ padding-bottom:78px; }
  .ftr{ padding-bottom:0; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .wrap{ padding-inline:18px; }
  .topbar__item{ font-size:12px; }
  .topbar__item:first-child{ overflow:hidden; text-overflow:ellipsis; }
  .topbar__sep{ display:none; }
  .grid--svc,.steps,.split__panels,.contact__info{ grid-template-columns:1fr; }
  .row{ grid-template-columns:1fr; gap:0; }
  .form,.hero__card{ padding:24px 20px; }
  .hero__cta .btn{ width:100%; }
  .sec{ padding:60px 0; }
  .sec__head{ margin-bottom:36px; }
  .about__quote blockquote{ padding:34px 26px; }
  .about__quote p{ font-size:23px; }
  .contact__map iframe{ height:300px; }
  .ftr__in{ grid-template-columns:1fr; gap:32px; }
  .ftr__base{ justify-content:center; text-align:center; }
  .stats{ gap:24px; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}

@media print{
  .topbar,.hdr,.callfab,.marquee,.contact__map,.form{ display:none !important; }
  body{ color:#000; }
  .sec{ padding:20px 0; }
}
