:root{
  --ink:        #0B0B0C;
  --ink-soft:   #6E6E73;
  --ink-muted:  #A1A1A6;
  --bg:         #FFFFFF;
  --surface:    #F4F4F5;
  --border:     #E7E7E9;
  --white:      #FFFFFF;

  --radius-pill: 999px;
  --radius-card: 24px;
  --radius-input:16px;

  --shadow-soft: 0 12px 40px rgba(0,0,0,.06);
  --shadow-input:0 8px 30px rgba(0,0,0,.10);

  --maxw: 1140px;
}

*{ box-sizing:border-box; }

body{
  font-family:'Manrope', system-ui, sans-serif;
  color:var(--ink);
  background:#d96232;
  -webkit-font-smoothing:antialiased;
}

.maxw{ max-width:var(--maxw); }

a{ text-decoration:none; color:var(--ink); }

h1, .h1-scale{
  font-size:clamp(2.75rem, 6vw, 5rem);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-0.02em;
  margin-bottom:1.25rem;
}

.section-h2, .statement-h2{
  font-size:clamp(2rem, 4.5vw, 3.25rem);
  font-weight:700;
  line-height:1.1;
  letter-spacing:-0.01em;
}

.section-h3{
  font-size:clamp(1.5rem, 3vw, 2rem);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-0.01em;
}

.lead-sub{
  font-size:1.125rem;
  font-weight:500;
  line-height:1.5;
  color: #0e0e0e;
  max-width:640px;
}
.lead-sub-2{
  font-size:1rem;
  font-weight:500;
  line-height:1.55;
  color: #0e0e0e;
  max-width:640px;
}

.body-copy{
  font-size:1rem;
  font-weight:400;
  line-height:1.6;
  color:var(--ink-soft);
  max-width:640px;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--surface); border-radius:var(--radius-pill);
  padding:.35rem .8rem; font-size:.72rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink);
}

/* Buttons */
.btn-pill{ border-radius:var(--radius-pill) !important; font-weight:600; padding:.75rem 1.5rem; transition:transform .15s ease, opacity .15s ease; }
.btn-dark{ background:var(--ink); color:var(--white) !important; border:1px solid var(--ink); }
.btn-dark:hover{ opacity:.88; transform:translateY(-1px); }
.btn-outline-ink{ background:var(--white); color:var(--ink) !important; border:1px solid var(--border); }
.btn-outline-ink:hover{ border-color:var(--ink); transform:translateY(-1px); }

/* Header / Nav */
.site-header{background:#97aec7; border-bottom:1px solid transparent; }
.nav-link{ color:var(--ink-soft) !important; font-weight:500; padding:.5rem 0 !important; margin:0 .75rem; }
.nav-link.active{ color:var(--ink) !important; font-weight:700; }
.nav-link:hover{ color:var(--ink) !important; }

/* Location switcher */
.location-switcher{ position:relative; }
.location-switcher-btn{
  display:flex; align-items:center; gap:.4rem;
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-pill); padding:.5rem 1rem;
  font-size:.85rem; font-weight:600; color:var(--ink); cursor:pointer;
}
.location-switcher-panel{
  position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%);
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-card);
  box-shadow:var(--shadow-soft); padding:1.25rem; width:280px; max-height:360px; overflow-y:auto;
  z-index:1000;
}
@media (max-width:991px){
  .location-switcher-panel{ left:0; transform:none; width:100%; }
}
.location-group{ margin-bottom:.75rem; }
.location-group-label{ font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:.35rem; }
.location-option{ display:block; padding:.3rem 0; font-size:.9rem; color:var(--ink-soft); }
.location-option-sub{ padding-left:.9rem; font-size:.85rem; }
.location-option.active{ color:var(--ink); font-weight:700; }
.location-option:hover{ color:var(--ink); }

/* Hero */
.hero{ padding-top:clamp(4rem, 8vw, 7rem); padding-bottom:2.5rem; }
.rating-badge{ font-size:.85rem; background:var(--surface); border-radius:var(--radius-pill); padding:.4rem 1rem; }
.rating-dot{ color:var(--ink); }

/* Hero showcase card */
.hero-card{
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-soft);
  padding:clamp(1.5rem, 4vw, 3rem);
  margin-bottom:clamp(3rem, 6vw, 5rem);
  position:relative;
  background:
    radial-gradient(120% 120% at 20% 30%, #F6C9E8 0%, transparent 55%),
    radial-gradient(120% 120% at 85% 70%, #B9E08A 0%, transparent 50%),
    linear-gradient(120deg, #EFA9D8 0%, #E86BB8 35%, #CDE3A8 100%);
}
.hero-card-chip{
  display:inline-block; background:rgba(255,255,255,.35); color:#fff;
  border-radius:var(--radius-pill); padding:.35rem .9rem; font-size:.75rem; font-weight:600;
  margin-bottom:1.25rem; backdrop-filter:blur(4px);
}
.hero-process-card{
  background:var(--white); border-radius:var(--radius-input); box-shadow:var(--shadow-input);
  padding:1.5rem 1.75rem; max-width:640px; margin:0 auto;
}
.hero-process-row{ display:flex; align-items:flex-start; gap:1rem; padding:.5rem 0; }
.hero-process-card hr{ border-color:var(--border); margin:.25rem 0; }
.step-num{
  flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:var(--ink); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:700;
}
.step-title{ font-weight:700; margin-bottom:.15rem; }
.step-desc{ color:var(--ink-soft); font-size:.9rem; margin-bottom:0; }
.hero-card-footnote{ text-align:center; color:rgba(255,255,255,.9); font-size:.9rem; margin-top:1.25rem; margin-bottom:0; }
.hero-card-footnote a{ color:#fff; text-decoration:underline; }

/* Where We Operate strip (honest stand-in for the logo cloud — no fabricated client logos) */
.operates-strip{ padding-bottom:clamp(3rem, 6vw, 5rem); text-align:center; }
.operates-row{ display:flex; justify-content:center; flex-wrap:wrap; gap:.75rem; }
.operates-pill{
  display:inline-flex; align-items:center; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-pill); padding:.5rem 1.25rem; font-weight:600; font-size:.9rem;
  color:var(--ink-soft); filter:grayscale(1); opacity:.7; transition:opacity .15s ease, color .15s ease;
}
.operates-pill:hover{ opacity:1; color:var(--ink); }

/* Sections */
.section-pad{ padding:clamp(3rem, 6vw, 5rem) 0; }
.section-pad .section-h2{ max-width:26ch; }
.section-pad .body-copy{ max-width:60ch; }
.section-pad > .section-h2.text-center, .section-pad > .body-copy.text-center{ margin-left:auto; margin-right:auto; }

.who-card{
  background:var(--surface); border-radius:var(--radius-card); padding:2rem;
}
.who-card-title{ font-weight:700; font-size:1.25rem; margin-bottom:.75rem; }
.link-arrow{ display:inline-block; font-weight:600; color:var(--ink); margin-top:.75rem; }
.link-arrow:hover{ text-decoration:underline; }

.diff-table, .addon-table{ border-collapse:separate; border-spacing:0; }
.diff-table th, .diff-table td, .addon-table th, .addon-table td{
  border:1px solid var(--border); padding:1rem; font-size:.95rem; color:var(--ink-soft);
}
.diff-table th{ font-weight:700; color:var(--ink); background:var(--surface); }
.diff-table .highlight, .diff-table th.highlight{ color:var(--ink); font-weight:600; background:var(--surface); }

.statement-block{ max-width:30ch; }
.text-muted-ink{ color:var(--ink-muted); }

.feature-list{ list-style:none; padding:0; max-width:640px; margin:0 auto; }
.feature-list li{
  padding:.75rem 0 .75rem 1.75rem; border-bottom:1px solid var(--border);
  position:relative; color:var(--ink-soft);
}
.feature-list li::before{
  content:"✓"; position:absolute; left:0; color:var(--ink); font-weight:700;
}

.pricing-callout{ text-align:center; background:var(--surface); border-radius:var(--radius-card); padding:2.5rem; }
.price-figure{ font-size:clamp(2rem, 4vw, 2.75rem); font-weight:800; margin:.5rem 0; }

.page-hero{ padding-top:clamp(3rem, 6vw, 5rem); padding-bottom:1rem; }

.case-study-placeholder{
  max-width:640px; background:var(--surface); border-radius:var(--radius-card);
  padding:clamp(2rem, 4vw, 3rem);
}

.contact-form{ max-width:720px; }
.form-control, .form-select{ border-radius:var(--radius-input); border-color:var(--border); padding:.65rem 1rem; }
.form-control:focus, .form-select:focus{ border-color:var(--ink); box-shadow:none; }
.form-label{ font-weight:600; font-size:.9rem; }

/* Footer */
.site-footer{ border-top:1px solid var(--border); }
.footer-heading{ font-weight:700; font-size:.85rem; margin-bottom:.75rem; }
.site-footer a{ display:block; color:var(--ink-soft); font-size:.9rem; margin-bottom:.5rem; }
.site-footer a:hover{ color:var(--ink); }
.footer-bottom{ border-top:1px solid var(--border); font-size:.85rem; }

.text-ink-soft{ color:var(--ink-soft) !important; }
.text-ink-muted{  color: #111111 !important;}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
