/* =========================================================
   BRIDGE POINT — Design System
   Connecting Your Business to Smarter Growth
   ========================================================= */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

/* ---------- Tokens ---------- */
:root{
  /* Brand colors, drawn from the logo */
  --green-950:#0A2419;
  --green-900:#0E2E20;
  --green-800:#123B2C;
  --green-700:#1B4E3A;
  --green-100:#E4EEE8;

  --orange-600:#D94A18;
  --orange-500:#F15A22;
  --orange-400:#FF7A3D;
  --orange-100:#FFE7DA;

  --cream-50:#FAF7F1;
  --cream-100:#F3EEE3;
  --paper:#FFFFFF;

  --ink-900:#16241D;
  --ink-600:#4A5951;
  --ink-400:#7C8A82;

  /* Type */
  --font-display:'Sora', sans-serif;
  --font-body:'Inter', sans-serif;

  /* Scale */
  --step--1: clamp(0.83rem, 0.8rem + 0.1vw, 0.9rem);
  --step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --step-1:  clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
  --step-2:  clamp(1.6rem, 1.4rem + 0.9vw, 2.1rem);
  --step-3:  clamp(2.1rem, 1.7rem + 1.8vw, 3rem);
  --step-4:  clamp(2.7rem, 2rem + 3.2vw, 4.4rem);
  --step-5:  clamp(3.4rem, 2.3rem + 5vw, 6rem);

  /* Layout */
  --container: 1200px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  /* Motion */
  --ease: cubic-bezier(.22,.85,.35,1);
  --dur-fast: .2s;
  --dur-med: .45s;

  /* Shadows */
  --shadow-sm: 0 2px 10px rgba(10,36,25,.06);
  --shadow-md: 0 12px 30px rgba(10,36,25,.10);
  --shadow-lg: 0 24px 60px rgba(10,36,25,.16);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd{ margin:0; }
ul, ol{ margin:0; padding:0; list-style:none; }
img, picture, svg, video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
input, textarea, select, button{ font-family:inherit; }

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

/* ---------- Base ---------- */
body{
  font-family:var(--font-body);
  font-size:var(--step-0);
  color:var(--ink-900);
  background:var(--cream-50);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--green-800);
  line-height:1.08;
  letter-spacing:-.01em;
  overflow-wrap:break-word;
}

h1{ font-size:var(--step-5); font-weight:800; }
h2{ font-size:var(--step-3); font-weight:700; }
h3{ font-size:var(--step-2); font-weight:700; }
h4{ font-size:var(--step-1); font-weight:600; }

p{ color:var(--ink-600); }
p.lede{ font-size:var(--step-1); color:var(--ink-600); }

::selection{ background:var(--orange-500); color:#fff; }

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

/* ---------- Layout helpers ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.section{
  padding-block: clamp(3.5rem, 6vw, 7rem);
  position:relative;
}

.section--tight{ padding-block: clamp(2.5rem, 4vw, 4.5rem); }

.section--dark{
  background:var(--green-900);
  color:var(--cream-50);
}
.section--dark h2, .section--dark h3, .section--dark h4{ color:#fff; }
.section--dark p{ color:rgba(250,247,241,.75); }

.section--cream{ background:var(--cream-100); }

.grid{ display:grid; gap:var(--gutter); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }

@media (max-width:900px){
  .grid-3, .grid-4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  .grid-2, .grid-3, .grid-4{ grid-template-columns:1fr; }
}

.flex{ display:flex; align-items:center; }
.flex-between{ display:flex; align-items:center; justify-content:space-between; }
.flex-col{ display:flex; flex-direction:column; }
.gap-sm{ gap:.6rem; } .gap-md{ gap:1.2rem; } .gap-lg{ gap:2.5rem; }

/* ---------- Eyebrow (arc-underlined label) ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-display);
  font-size:var(--step--1);
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange-500);
  position:relative;
  padding-bottom:.6rem;
}
.eyebrow::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:64px; height:10px;
  background:
    radial-gradient(circle at 4px 4px, var(--orange-500) 2.4px, transparent 2.6px) 0 0/8px 8px repeat-x;
  opacity:.9;
}
.section--dark .eyebrow{ color:var(--orange-400); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.95rem 1.7rem;
  border-radius:var(--radius-pill);
  font-family:var(--font-display);
  font-weight:600;
  font-size:var(--step--1);
  letter-spacing:.01em;
  border:2px solid transparent;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn--primary{
  background:linear-gradient(135deg, var(--orange-400), var(--orange-600));
  color:#fff;
  box-shadow:0 10px 24px rgba(241,90,34,.32);
}
.btn--primary:hover{ box-shadow:0 14px 30px rgba(241,90,34,.42); }

.btn--ghost{
  background:transparent;
  border-color:rgba(18,59,44,.25);
  color:var(--green-800);
}
.btn--ghost:hover{ border-color:var(--green-800); background:rgba(18,59,44,.05); }

.section--dark .btn--ghost{
  border-color:rgba(255,255,255,.35);
  color:#fff;
}
.section--dark .btn--ghost:hover{ background:rgba(255,255,255,.08); border-color:#fff; }

.btn--block{ width:100%; }
.btn--sm{ padding:.7rem 1.3rem; font-size:.82rem; }

/* ---------- Navigation ---------- */
.nav{
  position:sticky;
  top:0;
  z-index:100;
  background:var(--cream-50);
  border-bottom:1px solid rgba(18,59,44,.08);
}
.nav .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:.8rem;
}
.nav__brand{ display:flex; align-items:center; gap:.6rem; }
.nav__brand img{ height:70px; width:auto; }
.nav__links{
  display:flex;
  align-items:center;
  gap:2rem;
}
.nav__links a{
  font-family:var(--font-display);
  font-weight:600;
  font-size:.95rem;
  color:var(--green-800);
  position:relative;
  padding-block:.3rem;
}
.nav__links a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-2px;
  height:2px;
  background:var(--orange-500);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform var(--dur-med) var(--ease);
}
.nav__links a:hover::after,
.nav__links a[aria-current="page"]::after{
  transform:scaleX(1);
  transform-origin:left;
}
.nav__links a[aria-current="page"]{ color:var(--orange-500); }

.nav__actions{ display:flex; align-items:center; gap:1rem; }

.nav__burger{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  padding:.4rem;
}
.nav__burger span{
  width:24px; height:2px; background:var(--green-800); border-radius:2px;
  transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}
.nav__burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2){ opacity:0; }
.nav__burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:860px){
  .nav__burger{ display:flex; }
  .nav__links{
    position:fixed;
    inset:64px 0 0 0;
    background:var(--cream-50);
    flex-direction:column;
    justify-content:flex-start;
    padding:2rem var(--gutter);
    gap:1.5rem;
    transform:translateX(100%);
    transition:transform var(--dur-med) var(--ease);
  }
  .nav__links.is-open{ transform:translateX(0); }
  .nav__actions .btn{ display:none; }
  .nav__links .btn{ display:inline-flex; margin-top:1rem; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding-block: clamp(3rem, 7vw, 6rem);
}
.hero__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:center;
}
@media (max-width:900px){
  .hero__grid{ grid-template-columns:1fr; }
}
.hero h1{ margin-block:1rem; }
.hero .lede{ max-width:46ch; }
.hero__cta{ display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap; }

.hero__art{ position:relative; }

.badge-float{
  position:absolute;
  background:var(--paper);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  padding:1rem 1.3rem;
  display:flex;
  align-items:center;
  gap:.8rem;
  font-family:var(--font-display);
}

/* ---------- Stat strip ---------- */
.stat-strip{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(1.5rem, 4vw, 3.5rem);
  padding-block:2rem;
  border-top:1px solid rgba(18,59,44,.1);
  border-bottom:1px solid rgba(18,59,44,.1);
}
.stat{ min-width:120px; }
.stat strong{
  display:block;
  font-family:var(--font-display);
  font-weight:800;
  font-size:var(--step-4);
  color:var(--green-800);
  line-height:1;
  letter-spacing:-.01em;
}
.stat span{ font-size:var(--step--1); color:var(--ink-400); }

.section--dark .stat strong{ color:#fff; }
.section--dark .stat span{ color:rgba(250,247,241,.65); }

/* ---------- Cards ---------- */
.card{
  background:var(--paper);
  border-radius:var(--radius-md);
  padding:2rem;
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur-med) var(--ease), box-shadow var(--dur-med) var(--ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }

.card__icon{
  width:52px; height:52px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.2rem;
  background:var(--green-800);
  color:#fff;
}
.card__icon svg{ width:24px; height:24px; }
.card__icon--orange{ background:var(--orange-500); }

.card h4{ margin-bottom:.5rem; }

/* pill-style skill row (for skill list from flyer) */
.skill-row{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(18,59,44,.08);
}
.skill-row:last-child{ border-bottom:none; }
.skill-row__icon{
  width:40px; height:40px;
  flex:none;
  border-radius:10px;
  background:var(--green-100);
  color:var(--green-800);
  display:flex; align-items:center; justify-content:center;
  font-weight:700;
}
.skill-row h4{ font-size:1rem; margin:0; }

/* ---------- Arc divider (signature motif) ---------- */
.arc-divider{
  width:100%;
  height:56px;
  display:block;
}

/* ---------- Timeline / process (Earn / Learn / Grow) ---------- */
.process{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gutter);
  position:relative;
}
@media (max-width:760px){ .process{ grid-template-columns:1fr; } }

.process__item{
  background:var(--green-900);
  color:#fff;
  border-radius:var(--radius-md);
  padding:2rem;
  position:relative;
}
.process__item h3{ color:#fff; }
.process__item p{ color:rgba(250,247,241,.72); }
.process__icon{
  width:56px;height:56px;border-radius:50%;
  background:var(--orange-500);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.2rem;
}

/* ---------- Testimonial / community ---------- */
.quote-card{
  background:var(--cream-100);
  border-left:4px solid var(--orange-500);
  border-radius:var(--radius-sm);
  padding:1.6rem 2rem;
}
.quote-card p{ font-style:italic; color:var(--ink-900); }
.quote-card__by{ margin-top:1rem; font-family:var(--font-display); font-weight:600; color:var(--green-800); font-style:normal; }

/* ---------- Filter buttons ---------- */
.filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  justify-content:center;
}
.filter-btn{
  padding:.6rem 1.3rem;
  border-radius:var(--radius-pill);
  border:1.5px solid rgba(18,59,44,.18);
  background:var(--paper);
  color:var(--green-800);
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
  transition:all var(--dur-fast) var(--ease);
}
.filter-btn:hover{ border-color:var(--orange-500); color:var(--orange-500); }
.filter-btn.is-active{
  background:var(--green-800);
  border-color:var(--green-800);
  color:#fff;
}

/* ---------- Service card ---------- */
.service-card{
  background:var(--paper);
  border-radius:var(--radius-md);
  padding:2rem;
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur-med) var(--ease), box-shadow var(--dur-med) var(--ease);
  display:flex;
  flex-direction:column;
  height:100%;
}
.service-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.service-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:1.2rem;
}
.service-card__num{
  font-family:var(--font-display);
  font-weight:700;
  color:var(--orange-100);
  font-size:var(--step-2);
}
.service-card p{ flex:1; }
.service-card__tag{
  align-self:flex-start;
  margin-top:1rem;
}

/* ---------- Accordion (FAQ) ---------- */
.accordion{ display:flex; flex-direction:column; gap:1rem; }
.accordion__item{
  background:var(--paper);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.accordion__trigger{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.4rem 1.6rem;
  background:none;
  border:none;
  text-align:left;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.02rem;
  color:var(--green-800);
}
.accordion__icon{
  flex:none;
  width:32px; height:32px;
  border-radius:50%;
  background:var(--green-100);
  color:var(--green-800);
  display:flex; align-items:center; justify-content:center;
  transition:transform var(--dur-med) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  position:relative;
}
.accordion__icon::before, .accordion__icon::after{
  content:"";
  position:absolute;
  background:currentColor;
  border-radius:2px;
}
.accordion__icon::before{ width:12px; height:2px; }
.accordion__icon::after{ width:2px; height:12px; transition:transform var(--dur-fast) var(--ease); }

.accordion__item.is-open .accordion__trigger{ color:var(--orange-500); }
.accordion__item.is-open .accordion__icon{ background:var(--orange-500); color:#fff; }
.accordion__item.is-open .accordion__icon::after{ transform:scaleY(0); }

.accordion__panel{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--dur-med) var(--ease);
}
.accordion__item.is-open .accordion__panel{ max-height:300px; }
.accordion__panel-inner{
  padding:0 1.6rem 1.4rem;
  color:var(--ink-600);
}

/* ---------- Portfolio card ---------- */
.portfolio-card{
  background:var(--paper);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur-med) var(--ease), box-shadow var(--dur-med) var(--ease);
}
.portfolio-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }

.portfolio-card__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.portfolio-card__media svg{ width:70%; height:70%; }

.portfolio-card__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,36,25,0) 40%, rgba(10,36,25,.85) 100%);
  display:flex;
  align-items:flex-end;
  padding:1.2rem;
  opacity:0;
  transition:opacity var(--dur-med) var(--ease);
}
.portfolio-card:hover .portfolio-card__overlay{ opacity:1; }
.portfolio-card__overlay span{
  color:#fff;
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
  display:flex;
  align-items:center;
  gap:.4rem;
}

.portfolio-card__body{ padding:1.6rem; }
.portfolio-card__tag-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.7rem;
}
.portfolio-card__result{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.8rem;
  color:var(--orange-500);
}

/* ---------- Contact page ---------- */
.contact-info-card{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.5rem;
  background:var(--paper);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
}
.contact-info-card:hover{ box-shadow:var(--shadow-md); }
.contact-info-card__icon{
  flex:none;
  width:48px; height:48px;
  border-radius:12px;
  background:var(--green-800);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.contact-info-card__icon--wa{ background:#25D366; }
.contact-info-card__icon--orange{ background:var(--orange-500); }
.contact-info-card h4{ margin-bottom:.2rem; font-size:1rem; }
.contact-info-card p{ margin:0; font-size:.9rem; }
.contact-info-card a.contact-info-card__link{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--orange-500);
  font-size:.9rem;
}

.contact-panel{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:clamp(1.75rem, 3vw, 2.75rem);
  box-shadow:var(--shadow-md);
}

.form-success{
  display:none;
  align-items:center;
  gap:.7rem;
  background:var(--green-100);
  color:var(--green-800);
  border-radius:var(--radius-sm);
  padding:1rem 1.2rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:.9rem;
  margin-bottom:1.4rem;
}
.form-success.is-visible{ display:flex; }

.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
@media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }

/* ---------- Portfolio carousel ---------- */
.pf-carousel{ position:relative; }
.pf-carousel__stage{
  position:relative;
  min-height:460px;
}
.pf-slide{
  display:none;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(1.5rem, 3vw, 3rem);
  align-items:center;
  background:var(--paper);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  padding:clamp(1.25rem, 2.5vw, 1.75rem);
}
.pf-slide.is-active{
  display:grid;
  animation:pfFade .45s var(--ease);
}
@keyframes pfFade{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:translateY(0); }
}
.pf-slide__media{
  border-radius:var(--radius-md);
  overflow:hidden;
  aspect-ratio:4/3;
}
.pf-slide__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.pf-slide__body{ padding:.5rem 1rem .5rem 0; }
.pf-slide__tag-row{
  display:flex; align-items:center; gap:.8rem; margin-bottom:.8rem; flex-wrap:wrap;
}
.pf-slide__result{
  font-family:var(--font-display); font-weight:700; font-size:.8rem; color:var(--orange-500);
}
.pf-slide__body h3{ margin-bottom:.7rem; }

@media (max-width:760px){
  .pf-slide{ grid-template-columns:1fr; }
  .pf-carousel__stage{ min-height:auto; }
}

.carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  margin-top:1.75rem;
}
.carousel-arrow{
  width:48px; height:48px;
  border-radius:50%;
  background:var(--paper);
  border:1.5px solid rgba(18,59,44,.15);
  color:var(--green-800);
  display:flex; align-items:center; justify-content:center;
  transition:all var(--dur-fast) var(--ease);
  flex:none;
}
.carousel-arrow:hover{ background:var(--green-800); border-color:var(--green-800); color:#fff; transform:translateY(-2px); }
.carousel-arrow svg{ width:20px; height:20px; }

.carousel-dots{ display:flex; align-items:center; gap:.5rem; }
.carousel-dot{
  width:9px; height:9px;
  border-radius:50%;
  background:rgba(18,59,44,.2);
  border:none;
  padding:0;
  transition:all var(--dur-fast) var(--ease);
}
.carousel-dot.is-active{ background:var(--orange-500); width:24px; border-radius:5px; }

.carousel-counter{
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
  color:var(--ink-400);
  min-width:52px;
  text-align:center;
}

/* ---------- Testimonial carousel ---------- */
.tm-carousel{ max-width:760px; margin-inline:auto; position:relative; }
.tm-slide{
  display:none;
  text-align:center;
  padding:0 clamp(0rem, 4vw, 2rem);
}
.tm-slide.is-active{ display:block; animation:pfFade .45s var(--ease); }
.tm-slide__avatar{
  width:84px; height:84px;
  border-radius:50%;
  margin:0 auto 1.2rem;
  overflow:hidden;
  border:3px solid var(--orange-100);
  box-shadow:var(--shadow-sm);
}
.tm-slide__avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.tm-slide blockquote{
  font-family:var(--font-display);
  font-size:var(--step-1);
  font-weight:500;
  color:var(--green-800);
  line-height:1.5;
  margin:0 0 1.2rem;
  font-style:normal;
}
.tm-slide__name{ font-family:var(--font-display); font-weight:700; color:var(--ink-900); }
.tm-slide__role{ font-size:.85rem; color:var(--ink-400); }
.tm-stars{ color:var(--orange-500); letter-spacing:.15em; margin-bottom:1rem; font-size:1rem; }

/* ---------- Forms ---------- */
.field{ display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.2rem; }
.field label{ font-family:var(--font-display); font-weight:600; font-size:.9rem; color:var(--green-800); }
.field input, .field textarea, .field select{
  padding:.85rem 1rem;
  border-radius:var(--radius-sm);
  border:1.5px solid rgba(18,59,44,.18);
  background:#fff;
  color:var(--ink-900);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-color:var(--orange-500);
  box-shadow:0 0 0 4px var(--orange-100);
  outline:none;
}
.field textarea{ resize:vertical; min-height:120px; }

.form-note{ font-size:.85rem; color:var(--ink-400); }

/* ---------- Footer ---------- */
.footer{
  background:var(--green-950);
  color:rgba(250,247,241,.7);
  padding-block: clamp(3rem, 5vw, 5rem) 2rem;
}
.footer h4{ color:#fff; font-size:1rem; margin-bottom:1rem; }
.footer a{ color:rgba(250,247,241,.7); transition:color var(--dur-fast); overflow-wrap:break-word; }
.footer a:hover{ color:var(--orange-400); }
.footer__grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  gap:2.5rem;
}
@media (max-width:760px){
  .footer__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width:520px){
  .footer__grid{ grid-template-columns:minmax(0,1fr); }
}
.footer__brand img{ height:32px; margin-bottom:1rem; }
.footer__bottom{
  margin-top:3rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  font-size:.85rem;
}
.social-row{ display:flex; gap:.8rem; }
.social-row a{
  width:38px; height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{ background:var(--orange-500); color:#fff; }

/* Light variant — for use on white/cream cards (e.g. team cards) */
.social-row--light a{
  width:34px; height:34px;
  background:var(--green-100);
  color:var(--green-800);
}
.social-row--light a svg{ width:16px; height:16px; }
.social-row--light a:hover{ background:var(--orange-500); color:#fff; }

/* ---------- Team card ---------- */
.team-card{
  background:var(--paper);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur-med) var(--ease), box-shadow var(--dur-med) var(--ease);
  display:flex;
  flex-direction:column;
}
.team-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.team-card__photo{
  aspect-ratio:4/4.5;
  overflow:hidden;
}
.team-card__photo img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform var(--dur-med) var(--ease);
}
.team-card:hover .team-card__photo img{ transform:scale(1.05); }

/* For source photos that are already cropped too tight (no headroom) —
   show the full image instead of cover-cropping it even tighter */
.team-card__photo--contain{ background:var(--cream-100); }
.team-card__photo--contain img{ object-fit:contain; }

.team-card__body{
  padding:1.4rem 1.4rem 1.6rem;
  text-align:center;
}
.team-card__body h4{ margin-bottom:.4rem; }
.team-card__role{ margin-bottom:.7rem; }
.team-card__skills{
  color:var(--ink-400);
  margin-bottom:1rem;
}
.team-card .social-row--light{ justify-content:center; }

/* ---------- WhatsApp floating CTA ---------- */
.wa-float{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  z-index:90;
  width:60px; height:60px;
  border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px rgba(37,211,102,.4);
  animation:pulse 2.6s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ box-shadow:0 12px 28px rgba(37,211,102,.4); }
  50%{ box-shadow:0 12px 38px rgba(37,211,102,.65); }
}

/* ---------- Reveal-on-scroll ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }

/* ---------- Page header (inner pages) ---------- */
.page-header{
  background:var(--green-900);
  color:#fff;
  padding-block: clamp(3.5rem, 6vw, 5.5rem) clamp(2.5rem, 4vw, 4rem);
  position:relative;
  overflow:hidden;
}
.page-header h1{ color:#fff; font-size:var(--step-4); }
.page-header .eyebrow{ color:var(--orange-400); }
.page-header p{ color:rgba(250,247,241,.75); max-width:60ch; }
.breadcrumb{
  display:flex; gap:.5rem; align-items:center;
  font-size:.85rem; color:rgba(250,247,241,.6);
  margin-bottom:1.2rem;
}
.breadcrumb a{ color:rgba(250,247,241,.85); }

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.mt-sm{ margin-top:1rem; } .mt-md{ margin-top:2rem; } .mt-lg{ margin-top:3.5rem; }
.max-w-content{ max-width:62ch; }
.small{ font-size:var(--step--1); }
.pill-tag{
  display:inline-block;
  padding:.35rem .9rem;
  border-radius:var(--radius-pill);
  background:var(--green-100);
  color:var(--green-800);
  font-size:.78rem;
  font-weight:600;
  font-family:var(--font-display);
}

/* ---------- Site additions: agency repositioning ---------- */

/* Checkbox field row (consent) */
.field-check{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin-bottom:1.2rem;
}
.field-check input[type="checkbox"]{
  margin-top:.25rem;
  width:18px; height:18px;
  flex:none;
  accent-color:var(--orange-500);
}
.field-check label{ font-size:.88rem; color:var(--ink-600); }

/* Media that fills its container (video inside pf-slide / team / etc.) */
.media-fit{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  background:var(--green-950);
}

/* Document / PDF preview tile (used where no image thumbnail exists) */
.doc-tile{
  width:100%; height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  background:var(--green-800);
  color:#fff;
  text-align:center;
  padding:1.5rem;
}
.doc-tile svg{ width:44px; height:44px; }
.doc-tile span{ font-family:var(--font-display); font-weight:600; font-size:.85rem; }

/* Client logo / trust strip */
.logo-strip{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(1.5rem, 4vw, 3rem);
}
.logo-strip__item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  padding:1rem 1.4rem;
  border-radius:var(--radius-md);
  border:1.5px dashed rgba(18,59,44,.2);
  color:var(--ink-400);
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
  text-align:center;
}

/* Placeholder note banner */
.placeholder-note{
  display:inline-block;
  background:var(--orange-100);
  color:var(--orange-600);
  border-radius:var(--radius-sm);
  padding:.3rem .8rem;
  font-size:.78rem;
  font-weight:600;
  font-family:var(--font-display);
}

/* Focus-area strip (home page — qualitative, not numeric stats) */
.focus-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.25rem;
}
@media (max-width:760px){ .focus-strip{ grid-template-columns:repeat(2,1fr); } }
.focus-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:.6rem;
  padding:1.5rem 1rem;
}
.focus-item .card__icon{ margin-bottom:0; }
.focus-item strong{
  font-family:var(--font-display);
  font-size:.92rem;
  color:var(--green-800);
}
.section--dark .focus-item strong{ color:#fff; }