/* =========================
   css/fstyle.css (FULL) - FINAL + ULTRA "SHARP" (REAL CUT SPLIT)
   ========================= */
:root{
  --ink: #0b0c10;
  --muted: rgba(11,12,16,.62);
  --paper: #fffdf9;
  --paper2:#f6f8fb;

  --red: #e1061a;
  --red2:#ff2a3d;

  --surface: rgba(255,255,255,.78);

  --shadow1: 0 18px 48px rgba(2,6,23,.08);
  --shadow2: 0 40px 120px rgba(2,6,23,.12);

  --pill: 999px;
  --container: 1120px;
  --pad: clamp(3.6rem, 5.8vw, 6rem);
  --ring: 0 0 0 4px rgba(225,6,26,.16);

  /* dark hero */
  --hero-text: rgba(255,255,255,.92);
  --hero-muted: rgba(255,255,255,.70);
  --hero-stroke: rgba(255,255,255,.14);
  --hero-shadow1: 0 18px 60px rgba(0,0,0,.35);
  --hero-shadow2: 0 36px 110px rgba(0,0,0,.55);
}

* , *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  min-height:100vh;
  font-family:"Poppins", system-ui, -apple-system, Segoe UI, sans-serif;
  color:var(--ink);
  background: linear-gradient(180deg, var(--paper), var(--paper2));
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; }
p{ margin:0 0 1rem; color:var(--muted); line-height:1.75; }
h1,h2,h3{ margin:0 0 .55rem; letter-spacing:-.02em; }
:focus-visible{ outline:none; box-shadow: var(--ring); border-radius: 12px; }

.container{
  width:min(var(--container), 100% - 2.5rem);
  margin-inline:auto;
  position:relative;
  z-index:2;
}

/* =========================
   BACKGROUND
   ========================= */
.bg{ position:fixed; inset:0; pointer-events:none; z-index:0; }

.bg-paper{
  position:absolute; inset:0;
  background:
    radial-gradient(1000px 520px at 14% 10%, rgba(225,6,26,.10), transparent 60%),
    radial-gradient(900px 520px at 86% 12%, rgba(0,0,0,.05), transparent 62%),
    radial-gradient(900px 700px at 56% 90%, rgba(225,6,26,.06), transparent 62%);
  filter: blur(6px);
  opacity:.95;
}

.bg-blades .blade{
  position:absolute;
  width: 520px;
  height: 44px;
  border-radius: 16px;
  opacity:.26;
  background: linear-gradient(90deg, rgba(225,6,26,.18), rgba(225,6,26,.05), rgba(0,0,0,.05));
  clip-path: polygon(0 0, 95% 0, 100% 50%, 95% 100%, 0 100%, 5% 50%);
  filter: drop-shadow(0 20px 50px rgba(2,6,23,.10));
  animation: bladeFloat 11s ease-in-out infinite;
}
.bg-blades .b1{ left:-160px; top: 16vh; transform: rotate(-12deg); }
.bg-blades .b2{ right:-200px; top: 10vh; transform: rotate(14deg); animation-delay:-2s; opacity:.20; }
.bg-blades .b3{ left: 12%; bottom: 10vh; transform: rotate(-6deg); width: 620px; animation-delay:-4s; opacity:.18; }

@keyframes bladeFloat{
  0%,100%{ transform: translateY(0) rotate(var(--r, -10deg)); }
  50%{ transform: translateY(-18px) rotate(var(--r, -10deg)); }
}

.bg-grain{
  position:absolute; inset:0;
  opacity:.06;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* =========================
   SCROLL PROGRESS
   ========================= */
.scroll-progress{
  position:fixed; top:0; left:0;
  height:3px; width:0%;
  background: linear-gradient(90deg, var(--red), rgba(225,6,26,.45));
  z-index:999;
  box-shadow: 0 10px 22px rgba(225,6,26,.16);
}

/* =========================
   HEADER / NAV
   ========================= */
.header{
  position:sticky; top:0; z-index:50;
  background: rgba(255,255,255,.74);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(15, 23, 42, .08);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: .6rem 0;
  gap: 1.2rem;
}
.brand-logo{ height: 28px; width:auto; display:block; }

.main-nav ul{
  display:flex; align-items:center; gap: 1.6rem;
  list-style:none; margin:0; padding:0;
}
.main-nav a{
  font-size:.9rem;
  color: rgba(11,12,16,.72);
  position:relative;
  padding:.35rem .2rem;
}
.main-nav a::after{
  content:"";
  position:absolute; left:0; bottom:-8px;
  width:0; height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, var(--red), rgba(225,6,26,.35));
  transition: width .22s ease;
  opacity:.9;
}
.main-nav a:hover::after{ width:100%; }

.nav-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  min-height: 42px;
  padding: .62rem 2.45rem;
  border-radius: var(--pill);
  border: 2px solid rgba(15, 23, 42, .14);
  background: rgba(255,255,255,.92);
  box-shadow: 0 16px 36px rgba(2,6,23,.12);
  font-size:.94rem;
  font-weight:800;
  position:relative;
  overflow:hidden;
}
.main-nav .nav-cta::after{ display:none; }
.nav-cta::before{
  content:"";
  position:absolute; inset:-50%;
  background: linear-gradient(90deg, rgba(225,6,26,.22), transparent 60%);
  transform: rotate(10deg);
  opacity:.35;
}

.nav-toggle{
  display:none;
  border:none;
  background: rgba(255,255,255,.86);
  border:1px solid rgba(15, 23, 42, .10);
  border-radius: var(--pill);
  padding:.45rem .6rem;
  cursor:pointer;
  box-shadow: var(--shadow1);
}
.nav-toggle span{
  display:block;
  width: 22px; height: 2px;
  margin: 4px 0;
  border-radius:999px;
  background: rgba(11,12,16,.9);
}

/* =========================
   HERO (DARK + VIDEO)
   ========================= */
.hero.hero-dark{
  min-height: auto;
  padding-top: clamp(3.2rem, 5.2vw, 5rem);
  padding-bottom: clamp(1.6rem, 3vw, 2.8rem);
  position:relative;
  z-index:2;
  overflow:hidden;
  color: var(--hero-text);
}

.hero-media{ position:absolute; inset:0; z-index:1; background:#0b0c10; }
.hero-media video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform: scale(1.03);
  filter: contrast(1.08) saturate(1.08);
}

.hero-overlay{
  position:absolute; inset:0; z-index:2;
  background:
    radial-gradient(1100px 560px at 16% 16%, rgba(225,6,26,.26), transparent 62%),
    radial-gradient(1000px 560px at 86% 14%, rgba(0,0,0,.46), transparent 70%),
    radial-gradient(900px 650px at 60% 92%, rgba(225,6,26,.16), transparent 62%),
    linear-gradient(180deg, rgba(0,0,0,.82), rgba(0,0,0,.70));
}

.hero-grid{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 2.3rem;
  align-items:center;
}

/* Topline */
.hero-topline{
  display:flex; flex-wrap:wrap;
  gap:.7rem .9rem;
  align-items:center;
  margin-bottom: 1rem;
}
.dk-pill{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.5rem .8rem;
  border-radius: var(--pill);
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  box-shadow: var(--hero-shadow1);
  font-size:.82rem;
  color: rgba(255,255,255,.88);
}
.dk-city{ font-weight:800; color: rgba(255,255,255,.92); }
.dk-flag{
  width: 18px; height: 12px;
  border-radius: 3px;
  background:
    linear-gradient(#fff 0 0) 38% 0/2px 100%,
    linear-gradient(#fff 0 0) 0 52%/100% 2px,
    var(--red);
  background-repeat:no-repeat;
  box-shadow: 0 8px 18px rgba(225,6,26,.18);
}
.hero-mini{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.82rem;
  color: rgba(255,255,255,.72);
}
.mini-dot{
  width: 8px; height:8px;
  border-radius:999px;
  background: var(--red);
  box-shadow: 0 10px 22px rgba(225,6,26,.25);
}

.hero-title{
  font-size: clamp(2.9rem, 4.8vw, 4.25rem);
  line-height: 1.05;
  color: rgba(255,255,255,.96);
}

/* =========================
   ULTRA "SHARP" (REAL CUT SPLIT)
   Requires data-text="Sharp"
   ========================= */
.sharp-word{
  position: relative;
  display: inline-block;
  padding: 0 .18em 0 .16em;
  margin: 0 .04em;
  font-weight: 950;
  letter-spacing: -0.02em;
  line-height: 1;

  color: transparent;
  background-image:
    linear-gradient(135deg,
      rgba(255,255,255,.98),
      rgba(255,255,255,.78) 38%,
      rgba(255,42,61,.96) 80%
    ),
    linear-gradient(135deg,
      transparent 0 46%,
      rgba(255,255,255,.95) 49%,
      rgba(255,42,61,.45) 51%,
      rgba(255,255,255,.35) 53%,
      transparent 56% 100%
    );
  background-size: 100% 100%, 240% 240%;
  background-position: 0 0, -120% 40%;
  background-repeat: no-repeat;

  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-stroke: 1px rgba(255,255,255,.10);
  filter: drop-shadow(0 12px 30px rgba(0,0,0,.34));

  animation: fractureGlint 4.6s cubic-bezier(.2,.8,.2,1) infinite;
}

.sharp-word::before{
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: rgba(255,255,255,.92);
  transform: translate(-1px,-2px);
  opacity: .90;
  clip-path: polygon(0 0, 100% 0, 100% 56%, 0 46%);
  text-shadow:
    0 10px 26px rgba(0,0,0,.28),
    0 0 18px rgba(255,255,255,.10);
  mix-blend-mode: screen;
  pointer-events: none;
}

.sharp-word::after{
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: rgba(255,42,61,.90);
  transform: translate(2px,2px);
  opacity: .78;
  clip-path: polygon(0 56%, 100% 46%, 100% 100%, 0 100%);
  text-shadow:
    0 14px 30px rgba(0,0,0,.34),
    0 0 18px rgba(255,42,61,.12);
  mix-blend-mode: screen;
  pointer-events: none;
}

/* razor underline */
.sharp-word{
  --bladeY: -0.18em;
}
.sharp-word{
  text-shadow:none;
}
.sharp-word{
  /* nothing */
}

/* underline as separate pseudo-element (using box-shadow on an extra span isn't allowed),
   so we use a tiny background via text-decoration-like trick: */
.sharp-word{
  background-image:
    linear-gradient(135deg,
      rgba(255,255,255,.98),
      rgba(255,255,255,.78) 38%,
      rgba(255,42,61,.96) 80%
    ),
    linear-gradient(135deg,
      transparent 0 46%,
      rgba(255,255,255,.95) 49%,
      rgba(255,42,61,.45) 51%,
      rgba(255,255,255,.35) 53%,
      transparent 56% 100%
    ),
    linear-gradient(90deg,
      rgba(255,42,61,0),
      rgba(255,42,61,.75),
      rgba(255,255,255,.55),
      rgba(255,42,61,.70),
      rgba(255,42,61,0)
    );
  background-size: 100% 100%, 240% 240%, 140% 0.38em;
  background-position: 0 0, -120% 40%, 50% calc(100% + 0.18em);
  background-repeat: no-repeat;
}

@keyframes fractureGlint{
  0%   { background-position: 0 0, -140% 40%, 50% calc(100% + 0.18em); }
  55%  { background-position: 0 0,  40% 40%, 50% calc(100% + 0.18em); }
  100% { background-position: 0 0, 220% 40%, 50% calc(100% + 0.18em); }
}

.hero-title:hover .sharp-word{
  animation-duration: 2.6s;
  filter: drop-shadow(0 18px 42px rgba(0,0,0,.42));
}
.hero-title:hover .sharp-word::before{ opacity: .98; transform: translate(-2px,-3px); }
.hero-title:hover .sharp-word::after { opacity: .86; transform: translate(3px,3px); }

/* ========================= */

.hero-subtitle{
  margin-top: 1rem;
  margin-bottom: 1.35rem;
  font-size: clamp(1.05rem, 1.2vw, 1.18rem);
  color: var(--hero-muted);
  max-width: 520px;
}

.hero-ctas{
  display:flex; flex-wrap:wrap;
  gap:.9rem;
  margin-bottom: 1.05rem;
}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  border-radius: var(--pill);
  padding: .95rem 1.55rem;
  font-size:.92rem;
  font-weight: 900;
  cursor:pointer;
  border: 1px solid transparent;
  position:relative;
  overflow:hidden;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
  user-select:none;
}
.btn-primary{
  background: linear-gradient(135deg, var(--red), var(--red2));
  color: #fff;
  box-shadow: 0 26px 70px rgba(225,6,26,.22), 0 18px 45px rgba(0,0,0,.28);
}
.btn-primary:hover{
  transform: translateY(-3px);
  box-shadow: 0 40px 120px rgba(225,6,26,.25), 0 28px 85px rgba(0,0,0,.38);
}
.btn-ghost{
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.35);
  color: rgba(255,255,255,.92);
  box-shadow: var(--hero-shadow1);
}
.btn-ghost:hover{
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.50);
  box-shadow: var(--hero-shadow2);
}
.btn-block{ width:100%; }

.btn-sheen{
  position:absolute; inset:-40%;
  background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.38), transparent 60%);
  transform: translateX(-46%) rotate(14deg);
  transition: transform .55s ease;
  pointer-events:none;
}
.btn-primary:hover .btn-sheen{ transform: translateX(46%) rotate(14deg); }

/* Proof */
.hero-proof{
  display:flex; align-items:center; gap: 1rem;
  flex-wrap:wrap;
  padding: .85rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  box-shadow: var(--hero-shadow1);
  width: fit-content;
  max-width: 100%;
}
.proof-item{ display:grid; gap:.12rem; }
.proof-k{ font-weight: 900; color: rgba(255,255,255,.92); letter-spacing:-.02em; }
.proof-l{ font-size: .82rem; color: rgba(255,255,255,.62); }
.proof-cut{
  width: 12px; height: 18px;
  background: linear-gradient(180deg, rgba(225,6,26,.45), rgba(225,6,26,.10));
  clip-path: polygon(0 0, 100% 35%, 100% 65%, 0 100%);
  opacity:.75;
}

/* Right card */
.sharp-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 1.2rem;
  backdrop-filter: blur(16px);
  box-shadow: var(--hero-shadow2);
  position:relative;
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sharp-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 46px 140px rgba(0,0,0,.55);
  border-color: rgba(255,255,255,.22);
}

/* blade cut hover */
.bladecut::after{
  content:"";
  position:absolute; inset:-40%;
  background: linear-gradient(120deg,transparent 45%,rgba(255,255,255,.25) 50%,transparent 55%);
  transform: translateX(-60%) rotate(12deg);
  transition: transform .7s ease;
  pointer-events:none;
  mix-blend-mode: overlay;
}
.bladecut:hover::after{ transform: translateX(60%) rotate(12deg); }

.sc-head{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap: .8rem;
  font-weight: 800;
  margin-bottom: .55rem;
}
.sc-head-left{
  letter-spacing:.06em;
  text-transform: uppercase;
  font-size:.82rem;
  color: rgba(255,255,255,.88);
}

.sc-sub{
  color: rgba(255,255,255,.68);
  font-size:.90rem;
  margin: 0 0 .95rem;
}

/* 2 columns compare */
.sc-compare{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}
.sc-col{
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  padding: .85rem;
  text-align:center;
}
.sc-pill{
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform: uppercase;
  font-weight: 900;
  display:inline-flex;
  padding:.20rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.70);
  margin-bottom: .65rem;
}
.sc-pill.good{
  background: rgba(225,6,26,.16);
  border-color: rgba(225,6,26,.35);
  color: rgba(255,255,255,.92);
}

.sc-mark{
  background:#fff;
  border-radius: 12px;
  padding:.7rem;
  height: 66px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.sc-mark img{
  max-height: 44px;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display:block;
}
.sc-col.before .sc-mark{
  padding:0;
}
.sc-col.before .sc-mark img{
  max-height:none;
  transform: scale(2.08);
  transform-origin: center 52%;
}
.sc-mark.sharp{
  box-shadow: 0 0 0 2px rgba(225,6,26,.25);
}
.after-slice{
  position:absolute;
  right:-6px; top:-6px;
  width: 18px; height: 18px;
  background: var(--red);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.sc-meta{
  margin-top: .55rem;
  font-size: .78rem;
  color: rgba(255,255,255,.68);
}

.sc-cta{ margin-top: .95rem; }

/* trust bar */
.hero-bottom{ padding-top: 1.25rem; }
.trustbar{
  border-radius: 20px;
  padding: 1rem 1.1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.2rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(14px);
  box-shadow: var(--hero-shadow1);
}
.trustbar p{ margin:0; font-size: .9rem; color: rgba(255,255,255,.78); }
.trust-logos{ display:flex; flex-wrap:wrap; gap:.6rem; }
.trust-logo{
  font-size: .82rem;
  padding: .35rem .75rem;
  border-radius: var(--pill);
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.78);
}

/* =========================
   SECTIONS / CARDS
   ========================= */
.section{ padding: var(--pad) 0; position:relative; z-index:2; }
.section-alt{
  background: linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,.92));
  border-top: 1px solid rgba(15, 23, 42, .06);
  border-bottom: 1px solid rgba(15, 23, 42, .06);
  backdrop-filter: blur(12px);
}

.section-head{
  max-width: 860px;
  margin: 0 auto 2.6rem;
  text-align:center;
}
.section-head h2{
  font-size: clamp(2rem, 2.9vw, 2.65rem);
  display:inline-block;
  position:relative;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.section-head h2::after{
  content:"";
  display:block;
  width: 140px;
  height: 14px;
  margin: .55rem auto 0;
  background: linear-gradient(90deg, rgba(225,6,26,.35), transparent 70%);
  clip-path: polygon(0 70%, 100% 0, 100% 55%, 0 100%);
  opacity:.95;
}

.grid-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.8rem;
}

.card{
  background: var(--surface);
  border: 1px solid rgba(15,23,42,.12);
  box-shadow: var(--shadow1);
  backdrop-filter: blur(14px);
  padding: 1.75rem 1.85rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position:relative;
  overflow:hidden;
  border-radius: 22px;
}
.card:hover{
  transform: translateY(-7px);
  box-shadow: var(--shadow2);
  border-color: rgba(225,6,26,.22);
}

.card-sub{ color: rgba(11,12,16,.64); }
.price{ font-weight:900; color: rgba(11,12,16,.92); margin: .65rem 0 .85rem; }
.list{ list-style:none; padding:0; margin:0 0 .6rem; display:grid; gap:.35rem; color: rgba(11,12,16,.70); font-size:.92rem; }
.tiny{ font-size:.84rem; color: rgba(11,12,16,.60); }

.featured{ border-color: rgba(225,6,26,.24); transform: translateY(-2px); }
.featured-tag{
  position:absolute;
  right: 1.25rem;
  top: 1.05rem;
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  padding:.22rem .65rem;
  border-radius: var(--pill);
  background: rgba(225,6,26,.08);
  border: 1px solid rgba(225,6,26,.22);
  color: rgba(11,12,16,.86);
  font-weight: 900;
}

/* Services (section-specific) */
.services-section{
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.services-section::before{
  content:"";
  position:absolute;
  inset: 8% -6% auto;
  height: 360px;
  pointer-events:none;
  z-index:1;
  background:
    radial-gradient(820px 300px at 14% 24%, rgba(225,6,26,.16), transparent 74%),
    radial-gradient(760px 280px at 92% 16%, rgba(11,12,16,.11), transparent 76%);
}
.services-section::after{
  content:"";
  position:absolute;
  left: -8%;
  right: -8%;
  bottom: 8%;
  height: 86px;
  pointer-events:none;
  z-index:1;
  opacity:.72;
  background:
    repeating-linear-gradient(-12deg, rgba(225,6,26,.18) 0 16px, rgba(225,6,26,0) 16px 36px),
    linear-gradient(90deg, rgba(225,6,26,0), rgba(225,6,26,.2), rgba(225,6,26,0));
  clip-path: polygon(0 72%, 100% 12%, 100% 100%, 0 100%);
}
#services .services-head{
  margin-bottom: 3rem;
}
#services .services-head h2{
  text-transform: uppercase;
  letter-spacing: .06em;
}
#services .services-head h2::after{
  width: 220px;
  height: 12px;
  margin-top: .65rem;
  background: linear-gradient(90deg, rgba(225,6,26,.55), rgba(225,6,26,0));
  clip-path: polygon(0 72%, 100% 0, 100% 42%, 0 100%);
}
#services .services-grid{
  grid-template-columns: minmax(0,.95fr) minmax(0,1.12fr) minmax(0,.95fr);
  gap: 1.2rem;
  align-items: stretch;
}
#services .service-card{
  --svc-accent: rgba(225,6,26,.25);
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.45rem;
  min-height:100%;
  padding: 2rem 1.6rem 1.35rem;
  border-radius: 0;
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
  border: 1px solid rgba(15,23,42,.15);
  background:
    linear-gradient(145deg, rgba(255,255,255,.97), rgba(246,249,253,.91)),
    linear-gradient(90deg, var(--svc-accent), transparent 62%);
  box-shadow: 0 20px 58px rgba(2,6,23,.1);
  transform-origin: center;
  transition: transform .28s cubic-bezier(.22,.7,.2,1), box-shadow .28s ease, border-color .28s ease;
}
#services .service-card::after{
  content: attr(data-service);
  position:absolute;
  right: .9rem;
  top: .45rem;
  font-size: clamp(2.35rem, 4vw, 3rem);
  font-weight: 900;
  letter-spacing: -.05em;
  line-height: 1;
  color: rgba(11,12,16,.09);
  pointer-events:none;
}
#services .tier-essential{
  --svc-accent: rgba(225,6,26,.16);
  transform: translateY(18px) rotate(-1.1deg);
}
#services .tier-identity{
  --svc-accent: rgba(225,6,26,.34);
  transform: translateY(-8px);
  border-color: rgba(225,6,26,.34);
  box-shadow: 0 36px 92px rgba(225,6,26,.2), 0 20px 54px rgba(2,6,23,.12);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,246,248,.9)),
    linear-gradient(90deg, var(--svc-accent), transparent 64%);
}
#services .tier-strategy{
  --svc-accent: rgba(11,12,16,.15);
  transform: translateY(18px) rotate(1.1deg);
}
#services .service-card h3{
  margin-bottom: .14rem;
}
#services .service-kicker{
  align-self:flex-start;
  margin: 0 0 .2rem;
  padding: .25rem .58rem;
  border-radius: var(--pill);
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.85);
  font-size:.68rem;
  font-weight: 900;
  letter-spacing:.12em;
  text-transform: uppercase;
  color: rgba(11,12,16,.62);
}
#services .service-card .card-sub{
  margin-bottom: .2rem;
  max-width: 28ch;
}
#services .service-card .price{
  margin: .25rem 0 .7rem;
  font-size: clamp(1.55rem, 2.35vw, 2.05rem);
  line-height: 1;
  letter-spacing:-.03em;
}
#services .tier-identity .price{
  color: var(--red);
}
#services .service-list{
  margin: 0;
  display:grid;
  gap:.48rem;
}
#services .service-list li{
  position:relative;
  padding-left: 1.25rem;
}
#services .service-list li::before{
  content:"";
  position:absolute;
  left: 0;
  top: .52rem;
  width: .62rem;
  height: .62rem;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  background: linear-gradient(135deg, rgba(225,6,26,.95), rgba(225,6,26,.4));
  box-shadow: 0 7px 16px rgba(225,6,26,.22);
}
#services .service-card .tiny{
  margin-top: auto;
  padding-top: .8rem;
  border-top: 1px dashed rgba(15,23,42,.2);
  font-weight: 700;
  color: rgba(11,12,16,.66);
}
#services .service-card .featured-tag{
  top: .92rem;
  left: .85rem;
  right: auto;
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, rgba(225,6,26,.96), rgba(255,42,61,.92));
  box-shadow: 0 16px 38px rgba(225,6,26,.3);
  transform: rotate(-4deg);
  transform-origin: center;
}
#services .service-card:hover{
  transform: translateY(-12px) rotate(0);
  border-color: rgba(225,6,26,.26);
  box-shadow: 0 30px 84px rgba(2,6,23,.15);
}
#services .tier-identity:hover{
  transform: translateY(-16px) scale(1.01);
  box-shadow: 0 42px 120px rgba(225,6,26,.25), 0 28px 78px rgba(2,6,23,.16);
}

/* Portfolio */
#portfolio{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,252,246,.92), rgba(246,248,252,.96));
}
#portfolio::before{
  content:"";
  position:absolute;
  inset: -14% auto auto -12%;
  width: 420px;
  height: 420px;
  pointer-events:none;
  z-index:1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(225,6,26,.14), rgba(225,6,26,0) 70%);
}
#portfolio::after{
  content:"";
  position:absolute;
  inset: auto -12% 4% auto;
  width: 520px;
  height: 220px;
  pointer-events:none;
  z-index:1;
  transform: rotate(-8deg);
  background:
    repeating-linear-gradient(90deg, rgba(11,12,16,.08) 0 12px, rgba(11,12,16,0) 12px 24px);
  opacity:.4;
}
#portfolio .container{
  z-index:2;
}
#portfolio .section-head{
  margin-bottom: 2.4rem;
}
#portfolio .section-head p{
  max-width: 720px;
  margin-inline:auto;
  color: rgba(11,12,16,.66);
}
#portfolio .portfolio-stage{
  display:grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: minmax(120px, auto);
  gap: 1rem;
  align-items:start;
}
#portfolio .work-hero{
  grid-column: 1 / span 8;
  grid-row: 1 / span 2;
  position:relative;
  border-radius: 26px;
  padding: 1.4rem 1.4rem 1.3rem;
  border: 2px solid rgba(11,12,16,.82);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(252,248,241,.96));
  color: rgba(11,12,16,.9);
  box-shadow:
    10px 10px 0 rgba(11,12,16,.14),
    0 24px 60px rgba(2,6,23,.12);
  overflow:hidden;
  transition: transform .22s ease, box-shadow .22s ease;
}
#portfolio .work-hero::before{
  content:"";
  position:absolute;
  left: 22px;
  top: -12px;
  width: 120px;
  height: 28px;
  border-radius: 6px;
  transform: rotate(-3deg);
  background: rgba(225,6,26,.18);
  border: 1px solid rgba(225,6,26,.3);
}
#portfolio .work-hero::after{
  content:"";
  position:absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 7px;
  background: linear-gradient(90deg, #111 0 22%, #e1061a 22% 54%, #111 54% 100%);
  opacity:.9;
}
#portfolio .work-hero-head{
  display:flex;
  justify-content:space-between;
  gap:.8rem;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:.5rem;
}
#portfolio .work-chip{
  margin:0;
  padding:.32rem .68rem;
  border-radius: 999px;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight: 900;
  background: #10131a;
  color: #fff;
}
#portfolio .work-meta-line{
  margin:0;
  font-size:.75rem;
  color: rgba(11,12,16,.56);
  letter-spacing:.03em;
}
#portfolio .work-hero h3{
  margin-bottom:.42rem;
  font-size: clamp(1.5rem, 2.4vw, 2.05rem);
  color: rgba(11,12,16,.95);
}
#portfolio .work-lead{
  margin: 0 0 .95rem;
  max-width: 58ch;
  color: rgba(11,12,16,.68);
}
#portfolio .focus-compare{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  gap: .72rem;
  align-items:stretch;
  margin-bottom: .95rem;
}
#portfolio .focus-panel{
  position:relative;
  border-radius: 16px;
  padding: .72rem;
  border: 1.5px solid rgba(11,12,16,.2);
  background: rgba(255,255,255,.9);
  display:grid;
  gap:.38rem;
}
#portfolio .before-panel{
  background:
    linear-gradient(145deg, rgba(245,247,250,.98), rgba(255,255,255,.92));
}
#portfolio .after-panel{
  background:
    linear-gradient(145deg, rgba(255,247,248,.98), rgba(255,255,255,.93));
  border-color: rgba(225,6,26,.34);
  box-shadow: inset 0 0 0 1px rgba(225,6,26,.12);
}
#portfolio .focus-label{
  display:inline-flex;
  width: fit-content;
  font-size:.62rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight: 900;
  border-radius: 999px;
  padding: .2rem .55rem;
  border: 1px solid rgba(11,12,16,.2);
  color: rgba(11,12,16,.68);
  background: rgba(255,255,255,.88);
}
#portfolio .after-panel .focus-label{
  background: #e1061a;
  border-color: rgba(225,6,26,.9);
  color:#fff;
}
#portfolio .focus-mark{
  min-height: 96px;
  border-radius: 12px;
  border: 1.5px solid rgba(11,12,16,.16);
  background: rgba(255,255,255,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.6rem;
  position:relative;
  overflow:hidden;
}
#portfolio .focus-mark img{
  max-width: 100%;
  max-height: 62px;
  width:auto;
  height:auto;
  object-fit: contain;
  display:block;
}
#portfolio .before-panel .focus-mark img{
  max-height: 70px;
  transform: translateY(4px);
  transform-origin: center;
  opacity:.72;
  filter: grayscale(.15);
}
#portfolio .after-panel .focus-mark{
  border-color: rgba(225,6,26,.34);
  box-shadow: 0 10px 24px rgba(225,6,26,.14);
}
#portfolio .after-panel .focus-mark img.focus-after-img{
  max-height: 76px;
  transform: translateY(4px) scale(1.18);
  transform-origin: center;
}
#portfolio .focus-spark{
  position:absolute;
  right:-5px;
  top:-5px;
  width: 18px;
  height: 18px;
  background: #e1061a;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
#portfolio .focus-note{
  margin:0;
  font-size:.79rem;
  color: rgba(11,12,16,.62);
}
#portfolio .focus-divider{
  width: 46px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: #111;
  color:#fff;
  box-shadow: 0 12px 30px rgba(2,6,23,.2);
}
#portfolio .focus-divider span{
  font-size: 1.02rem;
  line-height:1;
}
#portfolio .impact-strip{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:.58rem;
  margin-bottom:.82rem;
}
#portfolio .impact-item{
  padding:.62rem .65rem;
  border-radius: 13px;
  border: 1px solid rgba(11,12,16,.18);
  background: rgba(255,255,255,.84);
  display:grid;
  gap:.1rem;
}
#portfolio .impact-item b{
  font-size:.77rem;
  color: rgba(11,12,16,.9);
}
#portfolio .impact-item span{
  font-size:.74rem;
  color: rgba(11,12,16,.62);
}
#portfolio .hero-tags{
  margin-top:.15rem;
}
#portfolio .work-tile{
  --tile-accent: rgba(225,6,26,.56);
  --tile-tilt: 0deg;
  position:relative;
  border-radius: 20px;
  padding: 1.05rem 1.05rem .96rem;
  border: 2px solid rgba(11,12,16,.78);
  background: rgba(255,255,255,.96);
  box-shadow:
    8px 8px 0 rgba(11,12,16,.13),
    0 16px 40px rgba(2,6,23,.08);
  display:grid;
  gap:.56rem;
  transform: rotate(var(--tile-tilt));
  transition: transform .2s ease, box-shadow .2s ease;
}
#portfolio .work-tile::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:6px;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(90deg, var(--tile-accent), rgba(11,12,16,.85));
}
#portfolio .work-tile::after{
  content:"";
  position:absolute;
  right:12px;
  top:10px;
  width:14px;
  height:14px;
  border-radius:50%;
  border: 2px solid rgba(11,12,16,.78);
  background:#fff;
}
#portfolio .tile-bright{
  grid-column: 9 / -1;
  grid-row: 1;
  --tile-accent: rgba(225,6,26,.84);
  --tile-tilt: 1.1deg;
}
#portfolio .tile-flux{
  grid-column: 9 / -1;
  grid-row: 2;
  --tile-accent: rgba(11,12,16,.78);
  --tile-tilt: -1.1deg;
}
#portfolio .tile-aurora,
#portfolio .tile-nordictech,
#portfolio .tile-harbor{
  grid-column: span 4;
}
#portfolio .tile-aurora{
  grid-row: 3;
  --tile-accent: rgba(225,6,26,.72);
  --tile-tilt: -.7deg;
}
#portfolio .tile-nordictech{
  grid-row: 3;
  --tile-accent: rgba(15,23,42,.7);
  --tile-tilt: .75deg;
}
#portfolio .tile-harbor{
  grid-row: 3;
  --tile-accent: rgba(40,68,105,.74);
  --tile-tilt: -.45deg;
}
#portfolio .tile-coffee{
  grid-column: 1 / -1;
  grid-row: 4;
  --tile-accent: rgba(89,55,34,.72);
  --tile-tilt: -.25deg;
}
#portfolio .tile-doctorlab{
  grid-column: 9 / -1;
  grid-row: 2;
  --tile-accent: rgba(19,108,120,.8);
  --tile-tilt: .3deg;
}
#portfolio .tile-id{
  margin:0;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight: 900;
  color: rgba(11,12,16,.53);
}
#portfolio .tile-sector{
  margin:0;
  font-size:.78rem;
  color: rgba(11,12,16,.62);
}
#portfolio .tile-mark{
  min-height: 78px;
  border-radius: 12px;
  border: 1.5px solid rgba(11,12,16,.22);
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(243,247,253,.9));
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  font-size: clamp(1.6rem, 3vw, 2rem);
  letter-spacing:.02em;
  color: rgba(11,12,16,.86);
}
#portfolio .tile-mark img{
  max-width: 100%;
  max-height: 56px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
#portfolio .mark-bright{
  color: rgba(225,6,26,.92);
}
#portfolio .mark-flux{
  color: rgba(11,12,16,.88);
}
#portfolio .mark-aurora{
  color: rgba(225,6,26,.9);
  font-family: "Times New Roman", serif;
  font-style: italic;
}
#portfolio .mark-nordictech{
  letter-spacing:.06em;
  border-color: rgba(255,255,255,.28);
  background: #000;
  padding-inline: .35rem .85rem;
}
#portfolio .mark-nordictech picture{
  display:block;
  width:100%;
}
#portfolio .mark-nordictech img{
  width: 89%;
  max-width: 89%;
  max-height: none;
  height: auto;
  object-fit: contain;
  margin-inline: auto;
}
#portfolio .mark-harbor{
  color: rgba(35,66,106,.9);
}
#portfolio .mark-harbor img{
  max-height: 76px;
}
#portfolio .mark-coffee{
  border-color: rgba(89,55,34,.28);
  background:
    radial-gradient(130% 140% at 4% 2%, rgba(89,55,34,.14), rgba(255,255,255,.98) 72%);
}
#portfolio .mark-coffee img{
  max-height: 64px;
}
#portfolio .mark-doctorlab{
  border-color: rgba(19,108,120,.28);
  background:
    radial-gradient(130% 140% at 4% 2%, rgba(19,108,120,.16), rgba(255,255,255,.98) 72%);
}
#portfolio .mark-doctorlab img{
  max-height: 66px;
}
#portfolio .tile-copy{
  margin:0;
  color: rgba(11,12,16,.65);
  font-size:.9rem;
  line-height:1.6;
}
#portfolio .work-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  list-style:none;
  margin:.05rem 0 0;
  padding:0;
}
#portfolio .work-tags li{
  font-size:.74rem;
  padding:.26rem .64rem;
  border-radius: 999px;
  border: 1px solid rgba(11,12,16,.16);
  background: rgba(255,255,255,.92);
  color: rgba(11,12,16,.7);
}
#portfolio .work-hero .work-tags li{
  background: rgba(11,12,16,.06);
}
#portfolio .work-hero:hover{
  transform: translateY(-6px) rotate(-.2deg);
  box-shadow:
    12px 12px 0 rgba(11,12,16,.15),
    0 28px 70px rgba(2,6,23,.15);
}
#portfolio .work-tile:hover{
  transform: translateY(-8px) rotate(0deg);
  box-shadow:
    12px 12px 0 rgba(11,12,16,.16),
    0 24px 60px rgba(2,6,23,.13);
}

/* Process */
.steps{
  list-style:none; padding:0; margin:0;
  display:grid; gap: 1.1rem;
  max-width: 980px;
  margin-inline:auto;
}
.step{
  display:grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items:flex-start;
  padding: 1.25rem 1.35rem;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(15,23,42,.12);
  box-shadow: var(--shadow1);
  backdrop-filter: blur(14px);
  border-radius: 22px;
}
.no{
  width: 38px; height:38px;
  border-radius: 999px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(15, 23, 42, .12);
  font-weight: 900;
  font-size:.82rem;
  box-shadow: var(--shadow1);
  color: rgba(11,12,16,.86);
}

/* About */
.about{
  display:grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr);
  gap: 2.4rem;
  align-items:start;
}
.bullets{
  list-style: disc;
  padding-left: 1.2rem;
  color: rgba(11,12,16,.70);
  font-size:.94rem;
  display:grid; gap:.35rem;
  margin: 1rem 0;
}
.badge-row{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.3rem; }
.badge{
  font-size:.8rem;
  padding:.28rem .75rem;
  border-radius: var(--pill);
  border: 1px solid rgba(15, 23, 42, .10);
  background: rgba(255,255,255,.88);
  color: rgba(11,12,16,.72);
}
.about-stats{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.stat{
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(15,23,42,.12);
  box-shadow: var(--shadow1);
  border-radius: 20px;
  padding: 1.05rem 1.15rem;
}
.stat-k{
  display:block;
  font-size: 1.55rem;
  font-weight: 900;
  color: rgba(11,12,16,.92);
  margin-bottom:.1rem;
}
.stat-l{ display:block; font-size:.86rem; color: rgba(11,12,16,.62); }

/* FAQ */
.faq{
  max-width: 780px;
  margin: 0 auto;
  display:grid;
  gap: .8rem;
}
.faq-item{
  border-radius: 20px;
  padding: .65rem .95rem;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(15,23,42,.12);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow1);
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding: .52rem .45rem;
  font-weight: 900;
  color: rgba(11,12,16,.92);
  display:flex;
  justify-content: space-between;
  align-items:center;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item p{ margin:.35rem .45rem .9rem; color: rgba(11,12,16,.66); }

/* Contact */
.contact{
  width:min(1320px, 100% - 2rem);
  margin-inline:auto;
  display:grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
  align-items:start;
}
.contact-intro{
  max-width: none;
}
.contact-intro h2{
  text-transform: uppercase;
  letter-spacing: .06em;
}
.contact-kicker{
  margin: 0 0 .42rem;
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:900;
  color: rgba(11,12,16,.5);
}
.contact-combo{
  border: 2px solid rgba(11,12,16,.82);
  background:
    linear-gradient(160deg, rgba(255,255,255,.96), rgba(247,250,255,.92));
  box-shadow:
    10px 10px 0 rgba(11,12,16,.14),
    0 24px 56px rgba(2,6,23,.12);
  padding: .9rem;
}
.contact-chooser{
  display:grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items:center;
  gap:.58rem;
  margin:0 0 .62rem;
}
.contact-chooser-item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 44px;
  padding:.46rem .62rem;
  border-radius: 12px;
  border: 1px solid rgba(11,12,16,.22);
  background: rgba(255,255,255,.93);
  color: rgba(11,12,16,.92);
  font-size:.85rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:900;
  box-shadow: 0 10px 22px rgba(2,6,23,.08);
}
.contact-chooser-item.chooser-call{
  border-color: rgba(170,0,20,.34);
  background: linear-gradient(90deg, rgba(255,246,248,.96), rgba(255,231,235,.95));
  color: rgba(150,0,18,.96);
}
.contact-chooser-or{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 2px solid rgba(170,0,19,.42);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,236,239,.96));
  color: rgba(150,0,18,.98);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:900;
  box-shadow: 0 10px 24px rgba(170,0,19,.18);
}
.contact-panels{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:.8rem;
  align-items:stretch;
}
.contact-panel{
  display:grid;
  grid-template-rows: 1fr;
  position:relative;
  inset:auto;
  pointer-events:auto;
  opacity:1;
  transform:none;
  transition:none;
  height:100%;
}
.contact-form{
  margin:0;
  padding: 1.1rem 1.05rem 1rem;
  border-radius: 15px;
  border: 1px solid rgba(11,12,16,.12);
  background: rgba(255,255,255,.88);
}
.contact-form .field{ margin-bottom: .86rem; }
.panel-call{
  padding: 0;
  border: 0;
  background: none;
  display:block;
}
.call-card{
  margin-top:0;
  padding: 1.14rem 1.05rem 1rem;
  border-radius: 15px;
  border: 1px solid rgba(225,6,26,.26);
  background:
    radial-gradient(130% 140% at 3% 4%, rgba(225,6,26,.13), rgba(255,255,255,.95) 72%);
  display:flex;
  flex-direction:column;
  height:100%;
}
.call-chip{
  margin:0 0 .62rem;
  display:inline-flex;
  padding:.24rem .58rem;
  border-radius:999px;
  border: 1px solid rgba(225,6,26,.34);
  background: rgba(225,6,26,.1);
  color: rgba(136,0,16,.92);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:900;
}
.call-card h3{
  margin: 0 0 .5rem;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height:1.35;
  color: rgba(11,12,16,.94);
}
.call-copy{
  margin:0 0 .8rem;
  color: rgba(11,12,16,.66);
  font-size:.92rem;
  line-height:1.6;
}
.call-slots{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:.42rem;
  margin-bottom:.85rem;
}
.call-slots span{
  text-align:center;
  border-radius: 10px;
  border: 1px solid rgba(11,12,16,.14);
  background: rgba(255,255,255,.86);
  padding:.32rem .2rem;
  font-size:.72rem;
  font-weight:800;
  color: rgba(11,12,16,.7);
}
.call-list{
  list-style:none;
  margin:0 0 .9rem;
  padding:0;
  display:grid;
  gap:.46rem;
}
.call-list li{
  position:relative;
  padding:.45rem .58rem .45rem 1.55rem;
  border-radius: 10px;
  border: 1px dashed rgba(11,12,16,.17);
  background: rgba(255,255,255,.78);
  color: rgba(11,12,16,.72);
  font-size:.9rem;
  line-height:1.45;
}
.call-list li::before{
  content:"+";
  position:absolute;
  left:.58rem;
  top:.36rem;
  color: rgba(225,6,26,.86);
  font-weight:900;
}
.calendly-inline-widget{
  width:100%;
}
.field{ margin-bottom: 1rem; }
.two{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
label{
  display:block;
  margin-bottom:.28rem;
  font-size:.88rem;
  color: rgba(11,12,16,.86);
  font-weight: 800;
}
input, textarea, select{
  width:100%;
  padding: .72rem .82rem;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, .14);
  background: rgba(255,255,255,.92);
  color: rgba(11,12,16,.90);
  font-family:inherit;
  font-size:.95rem;
  transition: box-shadow .15s ease, border-color .15s ease, transform .12s ease;
}
input:focus, textarea:focus, select:focus{
  border-color: rgba(225,6,26,.32);
  box-shadow: var(--ring);
  transform: translateY(-1px);
}
textarea{ resize: vertical; }
.form-note{ margin-top: .9rem; font-size: .9rem; color: rgba(11,12,16,.62); }

/* Footer */
.footer{
  padding: 1.8rem 0 2rem;
  border-top: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.70);
  backdrop-filter: blur(12px);
  position:relative;
  z-index:2;
}
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
}
.foot-logo{ height: 24px; width:auto; display:block; margin-bottom:.35rem; }
.foot-left p{ margin:0; font-size:.9rem; color: rgba(11,12,16,.62); }
.foot-right{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  align-items:flex-end;
  font-size:.9rem;
  color: rgba(11,12,16,.62);
}
.foot-right a{ color: rgba(11,12,16,.80); font-weight:700; }
.foot-right a:hover{ color: var(--red); }

/* Reveal + Spotlight */
.reveal{
  opacity:0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible{ opacity:1; transform: translateY(0); }

.spotlight{ position:relative; overflow:hidden; }
.spotlight::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(650px circle at var(--mx, 50%) var(--my, 50%),
    rgba(225,6,26,.12), transparent 45%);
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events:none;
}
.spotlight:hover::before{ opacity:1; }

/* Responsive */
@media (max-width: 900px){
  .hero.hero-dark{
    padding-top: 2.8rem;
    padding-bottom: 1.25rem;
  }
  .hero-grid{ gap: 1.7rem; }
  .hero-bottom{ padding-top: .9rem; }
  .hero-grid{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  #portfolio .portfolio-stage{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .95rem; }
  #portfolio .work-hero{
    grid-column: 1 / -1;
    grid-row: auto;
  }
  #portfolio .tile-bright,
  #portfolio .tile-flux{
    grid-column: span 1;
    grid-row: auto;
  }
  #portfolio .tile-aurora,
  #portfolio .tile-nordictech{
    grid-column: span 1;
    grid-row: auto;
  }
  #portfolio .tile-harbor{
    grid-column: 1 / -1;
    grid-row: auto;
  }
  #portfolio .tile-coffee{
    grid-column: 1 / -1;
    grid-row: auto;
  }
  #portfolio .tile-doctorlab{
    grid-column: 1 / -1;
    grid-row: auto;
  }
  #portfolio .focus-compare{ grid-template-columns: 1fr auto 1fr; }
  #portfolio .impact-strip{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #portfolio .work-hero:hover,
  #portfolio .work-tile:hover{ transform: translateY(-5px) rotate(0deg); }
  #services .services-grid{ grid-template-columns: 1fr; gap: 1rem; }
  #services .service-card,
  #services .tier-essential,
  #services .tier-identity,
  #services .tier-strategy{ transform: none; }
  #services .service-card:hover,
  #services .tier-identity:hover{ transform: translateY(-8px); }
  .about{ grid-template-columns: 1fr; }
  .contact{
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
  .contact-panels{
    grid-template-columns: 1fr;
    gap:.7rem;
  }
  .call-slots{ grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .trustbar{ flex-direction:column; align-items:flex-start; }
  .sc-compare{ grid-template-columns: 1fr; }
}
@media (max-width: 720px){
  .nav-toggle{ display:inline-flex; }
  .main-nav{
    position:fixed;
    inset: 3.8rem 1.25rem auto 1.25rem;
    padding: .35rem .2rem .45rem;
    border-radius: 18px;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(15, 23, 42, .10);
    backdrop-filter: blur(16px);
    transform-origin: top;
    transform: translateY(-8px) scale(.98);
    opacity:0;
    pointer-events:none;
    transition: opacity .18s ease, transform .18s ease;
    box-shadow: var(--shadow2);
  }
  .main-nav.open{
    opacity:1;
    pointer-events:auto;
    transform: translateY(0) scale(1);
  }
  .main-nav ul{ flex-direction:column; align-items:flex-start; gap:.65rem; }
  .hero-ctas{ flex-direction:column; }
  .hero-ctas .btn{ width:100%; }
  #portfolio .work-hero{
    padding: 1.2rem 1rem 1rem;
    border-radius: 24px;
  }
  #portfolio .portfolio-stage{ grid-template-columns: 1fr; gap: .85rem; }
  #portfolio .tile-bright,
  #portfolio .tile-flux,
  #portfolio .tile-aurora,
  #portfolio .tile-nordictech,
  #portfolio .tile-harbor,
  #portfolio .tile-coffee,
  #portfolio .tile-doctorlab{
    grid-column: 1 / -1;
  }
  #portfolio .focus-compare{ grid-template-columns: 1fr; gap: .56rem; }
  #portfolio .focus-divider{
    width: 38px;
    height: 38px;
    margin-inline:auto;
  }
  #portfolio .focus-mark{ min-height: 84px; }
  #portfolio .after-panel .focus-mark img.focus-after-img{
    max-height: 72px;
    transform: translateY(1px) scale(1.14);
  }
  #portfolio .before-panel .focus-mark img{
    max-height: 68px;
    transform: translateY(3px);
  }
  #portfolio .impact-strip{ grid-template-columns: 1fr; }
  #portfolio .work-hero h3{ font-size: 1.32rem; }
  #portfolio .work-tile{
    padding: .95rem .9rem .85rem;
    border-radius: 18px;
    --tile-tilt: 0deg;
    transform: none;
  }
  #portfolio .tile-mark{ min-height: 62px; }
  #portfolio .mark-harbor img{
    max-height: 72px;
  }
  #portfolio .mark-coffee img{
    max-height: 56px;
  }
  #portfolio .mark-nordictech{
    padding-inline: .25rem .68rem;
  }
  #portfolio .mark-nordictech img{
    width: 87%;
    max-width: 87%;
  }
  #services .service-card .featured-tag{
    position: static;
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 .35rem;
  }
  #services .service-card{
    padding: 1.55rem 1.2rem 1.15rem;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
  }
  #services .service-card::after{ font-size: 2.35rem; top: .35rem; }
  #services .services-head{ margin-bottom: 1.9rem; }
  .contact-combo{ padding: .82rem; }
  .contact-chooser{
    gap:.42rem;
    margin:0 0 .55rem;
  }
  .contact-chooser-item{
    min-height: 38px;
    font-size:.72rem;
    letter-spacing:.1em;
    padding:.36rem .46rem;
  }
  .contact-chooser-or{
    width: 36px;
    height: 36px;
    font-size:.66rem;
  }
  .contact-form,
  .call-card{
    padding:.92rem .85rem .85rem;
  }
  .call-slots{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-3{ grid-template-columns: 1fr; }
  .about-stats{ grid-template-columns: 1fr; }
  .two{ grid-template-columns: 1fr; }
  .footer-inner{ flex-direction:column; align-items:flex-start; }
  .foot-right{ align-items:flex-start; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .spotlight::before{ display:none !important; }
  .bladecut::after{ display:none !important; }
  .sharp-word{ animation:none !important; }
}

/* Hero: lift the Case Snapshot card a bit */
.hero-visual { 
  margin-top: -14px; 
}

@media (max-width: 900px){
  .hero-visual { margin-top: 0; } /* mobile: no lift */
}
