/* ============================================================================
   Givore Studio — services landing (standalone; studio subdomain, noindex)
   Self-contained: no dependency on main.css. Brand tokens mirrored from the
   Givore design language, pushed to a Committed deep-green strategy so the
   studio reads as its own premium entity, distinct from the cream app site.
   ========================================================================== */

:root {
  --green:        #275D2B;
  --green-deep:   #1E4A22;
  --green-900:    #143318;   /* hero floor */
  --wa:           #25D366;   /* WhatsApp brand green — the one CTA colour */
  --wa-deep:      #1eb457;
  --wa-ink:       #0a2c14;
  --cream:        #F5EFE2;
  --soft:         #FAF6EC;
  --ochre:        #A85A2C;   /* single accent, used once (the "1" stat) — deepened for ≥3:1 on cream */
  --ink:          #1F2421;
  --ink-2:        #3D4540;
  --ink-3:        #6B7570;
  --line:         #E4DCCB;
  --on-green:     #F5EFE2;
  --on-green-2:   rgba(245, 239, 226, .80);
  --radius:       16px;
  --radius-lg:    24px;
  --radius-pill:  9999px;
  --shadow-card:  0 2px 6px rgba(20, 30, 18, .05), 0 14px 34px rgba(20, 30, 18, .08);
  --shadow-phone: 0 22px 48px rgba(15, 30, 15, .30);
  --ease:         cubic-bezier(.16, 1, .3, 1);
  --maxw:         1160px;
}

*, *::before, *::after { box-sizing: border-box; }
html.gs { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html.gs { scroll-behavior: auto; } }

.gs body, body {
  margin: 0;
  font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

.gs-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ink); color: var(--cream);
  padding: 10px 16px; border-radius: 0 0 var(--radius) 0; z-index: 100;
}
.gs-skip:focus { left: 0; }

:where(a, button, .gs-btn):focus-visible {
  outline: 3px solid var(--wa);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ── Type helpers ─────────────────────────────────────────────────────── */
.gs-h2 {
  font-family: "Chivo", sans-serif;
  font-weight: 900;
  font-size: clamp(1.7rem, 1.1rem + 2.4vw, 2.55rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin: 0 0 .6rem;
  text-wrap: balance;
}
.gs-lead {
  font-size: clamp(1.06rem, 1rem + .4vw, 1.24rem);
  color: var(--ink-2);
  max-width: 60ch;
  margin: 0;
  text-wrap: pretty;
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.gs-btn {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: "Nunito Sans", sans-serif;
  font-weight: 800; font-size: 1rem; line-height: 1;
  padding: .95em 1.5em;
  border-radius: var(--radius-pill);
  border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: transform .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.gs-btn .gs-ic { width: 1.25em; height: 1.25em; flex: none; }
.gs-btn--lg { font-size: 1.08rem; padding: 1.05em 1.9em; }

.gs-btn--wa {
  background: var(--wa); color: var(--wa-ink);
  box-shadow: 0 10px 24px rgba(37, 211, 102, .30);
}
.gs-btn--wa:hover { background: var(--wa-deep); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(37, 211, 102, .38); }
.gs-btn--wa:active { transform: translateY(0); }

.gs-btn--ghost {
  background: transparent; color: var(--on-green);
  border-color: rgba(245, 239, 226, .45);
}
.gs-btn--ghost:hover { background: rgba(245, 239, 226, .12); border-color: rgba(245, 239, 226, .8); }

/* ── Top bar (sits on the green hero → seamless) ──────────────────────── */
.gs-top {
  background: var(--green-deep);
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: clamp(1rem, 2.5vw, 1.6rem) clamp(1.1rem, 4vw, 3rem);
  max-width: 100%;
}
.gs-wordmark {
  display: inline-flex; align-items: center; gap: .55ch;
  text-decoration: none; color: var(--on-green);
}
.gs-wordmark__mark { height: 1.85rem; width: auto; display: block; flex: none; }
.gs-wordmark--foot .gs-wordmark__mark { height: 1.55rem; }
.gs-wordmark__name { font-family: "Chivo", sans-serif; font-weight: 900; font-size: 1.4rem; letter-spacing: -0.02em; }
.gs-wordmark__tag {
  font-weight: 700; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase;
  padding: .28em .6em; border: 1.25px solid rgba(245, 239, 226, .5); border-radius: var(--radius-pill);
  color: var(--on-green-2);
}
.gs-top__right { display: flex; align-items: center; gap: clamp(.7rem, 2vw, 1.3rem); }
.gs-top__cta .gs-ic { color: var(--wa); }

/* ── Hero ─────────────────────────────────────────────────────────────── */
.gs-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: radial-gradient(120% 100% at 85% 0%, var(--green) 0%, var(--green-deep) 45%, var(--green-900) 100%);
  color: var(--on-green);
  padding: clamp(2.2rem, 5vw, 4.5rem) clamp(1.1rem, 4vw, 3rem) clamp(3.5rem, 8vw, 6rem);
}
.gs-hero::before {  /* AI-art accent only: faint Monet wash */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("/images/monet-style/found-things-city-1600.webp") center 30% / cover no-repeat;
  opacity: .12; mix-blend-mode: luminosity;
}
.gs-hero__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center;
}
.gs-hero__h1 {
  font-family: "Chivo", sans-serif; font-weight: 900;
  font-size: clamp(2.05rem, 1.2rem + 3.6vw, 3.55rem);
  line-height: 1.045; letter-spacing: -0.035em; margin: 0 0 1.1rem;
  text-wrap: balance;
}
.gs-hero__sub {
  font-size: clamp(1.08rem, 1rem + .55vw, 1.32rem);
  color: var(--on-green-2); max-width: 46ch; margin: 0 0 1.8rem;
  text-wrap: pretty;
}
.gs-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; }
.gs-hero__seecase {
  font-weight: 800; color: var(--on-green); text-decoration: none;
  border-bottom: 1.5px solid rgba(245, 239, 226, .35); padding-bottom: 2px;
  transition: border-color .2s var(--ease);
}
.gs-hero__seecase:hover { border-color: var(--on-green); }
.gs-reassure {
  margin: 1.4rem 0 0; font-size: .95rem; color: var(--on-green-2); max-width: 44ch;
}

/* phone cluster */
.gs-hero__visual { display: flex; justify-content: center; }
.gs-phones { display: flex; align-items: flex-end; justify-content: center; }
.gs-phone {
  background: #101208; border-radius: 30px; padding: 7px;
  box-shadow: var(--shadow-phone); margin: 0; flex: none;
}
.gs-phone img { border-radius: 23px; width: 100%; height: auto; }
.gs-hero .gs-phone { width: clamp(128px, 24vw, 198px); }
.gs-phone--l { transform: rotate(-6deg) translateY(14px); z-index: 1; margin-right: clamp(-30px, -3vw, -18px); }
.gs-phone--c { transform: translateY(-8px) scale(1.05); z-index: 3; }
.gs-phone--r { transform: rotate(6deg) translateY(14px); z-index: 1; margin-left: clamp(-30px, -3vw, -18px); }

/* ── Founder ──────────────────────────────────────────────────────────── */
.gs-founder { background: var(--cream); padding: clamp(2.6rem, 6vw, 4.5rem) clamp(1.1rem, 4vw, 3rem); }
.gs-founder__inner {
  max-width: 900px; margin: 0 auto;
  display: flex; gap: clamp(1.4rem, 4vw, 2.6rem); align-items: center;
}
.gs-avatar {
  position: relative; flex: none;
  width: clamp(96px, 20vw, 156px); aspect-ratio: 1;
  border-radius: 50%; overflow: hidden;
  background: linear-gradient(150deg, var(--green) 0%, var(--green-900) 100%);
  box-shadow: 0 12px 30px rgba(20, 30, 18, .22);
  display: grid; place-items: center;
}
.gs-avatar__mono {
  font-family: "Chivo", sans-serif; font-weight: 900;
  font-size: clamp(2.4rem, 8vw, 4rem); color: var(--on-green);
}
.gs-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-founder__name { font-family: "Chivo", sans-serif; font-weight: 900; font-size: 1.5rem; letter-spacing: -0.02em; margin: 0; }
.gs-founder__role { font-weight: 700; color: var(--green); margin: .2rem 0 .9rem; }
.gs-founder__bio { margin: 0; color: var(--ink-2); max-width: 56ch; }

/* ── Proof / case ─────────────────────────────────────────────────────── */
.gs-proof { background: var(--soft); padding: clamp(3rem, 7vw, 5.5rem) clamp(1.1rem, 4vw, 3rem); }
.gs-proof__inner { max-width: var(--maxw); margin: 0 auto; }
.gs-proof__head { max-width: 62ch; margin-bottom: clamp(2rem, 5vw, 3rem); }
.gs-shots {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: clamp(10px, 2vw, 22px);
}
.gs-phone--sm { width: clamp(116px, 17vw, 164px); border-radius: 24px; padding: 6px; }
.gs-phone--sm img { border-radius: 19px; }
.gs-shots__cap { text-align: center; color: var(--ink-3); font-size: .92rem; margin: 1.1rem 0 0; }

.gs-stats {
  margin: clamp(2.4rem, 5vw, 3.4rem) 0 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px;
  background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden;
}
.gs-stat { background: var(--cream); padding: clamp(1.4rem, 3vw, 2rem) 1.2rem; text-align: center; }
.gs-stat__num {
  font-family: "Chivo", sans-serif; font-weight: 900;
  font-size: clamp(1.9rem, 1.2rem + 2.4vw, 2.9rem); line-height: 1; color: var(--green);
  letter-spacing: -0.02em;
}
.gs-stat__num--sm { font-size: clamp(1.15rem, .9rem + 1vw, 1.5rem); }
.gs-stat__label { margin: .5rem 0 0; font-size: .92rem; color: var(--ink-2); font-weight: 600; }
.gs-stat--accent .gs-stat__num { color: var(--ochre); }

/* ── Services ─────────────────────────────────────────────────────────── */
.gs-services { background: var(--cream); padding: clamp(3rem, 7vw, 5.5rem) clamp(1.1rem, 4vw, 3rem); }
.gs-services__inner { max-width: var(--maxw); margin: 0 auto; }
.gs-services__head { max-width: 60ch; margin-bottom: clamp(1.8rem, 4vw, 2.6rem); }
.gs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(258px, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.gs-card {
  background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3vw, 2.1rem);
  box-shadow: var(--shadow-card);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.gs-card:hover { transform: translateY(-4px); box-shadow: 0 6px 14px rgba(20,30,18,.07), 0 22px 44px rgba(20,30,18,.12); }
.gs-card__mark {
  display: inline-grid; place-items: center;
  width: 52px; height: 52px; border-radius: 14px;
  background: rgba(39, 93, 43, .1); color: var(--green);
  font-family: "Chivo", sans-serif; font-weight: 900; font-size: 1.35rem;
  margin-bottom: 1.1rem;
}
.gs-card__title { font-family: "Chivo", sans-serif; font-weight: 700; font-size: 1.28rem; letter-spacing: -0.02em; margin: 0 0 .5rem; }
.gs-card__desc { margin: 0; color: var(--ink-2); }

/* ── Final CTA ────────────────────────────────────────────────────────── */
.gs-final {
  background: radial-gradient(120% 130% at 15% 0%, var(--green) 0%, var(--green-deep) 50%, var(--green-900) 100%);
  color: var(--on-green); text-align: center;
  padding: clamp(3.2rem, 8vw, 6rem) clamp(1.1rem, 4vw, 3rem);
}
.gs-final__inner { max-width: 40ch; margin: 0 auto; }
.gs-final__h {
  font-family: "Chivo", sans-serif; font-weight: 900;
  font-size: clamp(1.8rem, 1.2rem + 2.8vw, 2.9rem); line-height: 1.08; letter-spacing: -0.03em;
  margin: 0 0 1.8rem; text-wrap: balance;
}
.gs-final__phone { margin: 1.5rem 0 0; color: var(--on-green-2); font-size: .98rem; }
.gs-final__phone a { color: var(--on-green); font-weight: 800; text-decoration: none; border-bottom: 1.5px solid rgba(245,239,226,.4); }
.gs-final__phone a:hover { border-color: var(--on-green); }

/* ── Footer ───────────────────────────────────────────────────────────── */
.gs-foot { background: var(--green-900); color: var(--on-green-2); padding: clamp(2.2rem, 5vw, 3.2rem) clamp(1.1rem, 4vw, 3rem); }
.gs-foot__inner { max-width: var(--maxw); margin: 0 auto; display: flex; flex-direction: column; gap: .7rem; }
.gs-wordmark--foot .gs-wordmark__name { font-size: 1.2rem; }
.gs-foot__note { margin: 0; max-width: 52ch; }
.gs-foot__meta { margin: 0; font-size: .9rem; }
.gs-foot__meta a { color: var(--on-green); font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(245,239,226,.35); }
.gs-foot__meta a:hover { border-color: var(--on-green); }

/* ── Sticky mobile CTA ────────────────────────────────────────────────── */
.gs-sticky {
  position: fixed; left: 50%; bottom: 16px; z-index: 50;
  display: none; align-items: center; gap: .6em;
  padding: .9em 1.5em; border-radius: var(--radius-pill);
  background: var(--wa); color: var(--wa-ink); font-family: "Nunito Sans", sans-serif; font-weight: 800;
  text-decoration: none; box-shadow: 0 12px 28px rgba(15, 30, 15, .35);
  transform: translateX(-50%) translateY(160%);
  transition: transform .4s var(--ease);
}
.gs-sticky .gs-ic { width: 1.3em; height: 1.3em; }
body.gs-show-sticky .gs-sticky { transform: translateX(-50%) translateY(0); }

/* ── Motion / reveals ─────────────────────────────────────────────────── */
html.js [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
html.js [data-reveal].is-in { opacity: 1; transform: none; }
.gs-hero__sub { transition-delay: .06s; }
.gs-hero__actions { transition-delay: .12s; }
.gs-reassure { transition-delay: .18s; }
@media (prefers-reduced-motion: reduce) {
  html.js [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .gs-btn, .gs-card, .gs-sticky { transition: none !important; }
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .gs-hero__inner { grid-template-columns: 1fr; }
  .gs-hero__visual { order: 2; margin-top: 2.2rem; }
  .gs-hero__copy { order: 1; }
  .gs-hero .gs-phone { width: clamp(120px, 30vw, 190px); }
}
@media (max-width: 768px) {
  .gs-sticky { display: inline-flex; }
  .gs-top__cta { display: none; }  /* sticky covers the CTA on mobile */
}
@media (max-width: 560px) {
  .gs-founder__inner { flex-direction: column; text-align: center; }
  .gs-founder__bio { max-width: none; }
  .gs-wordmark__tag { display: none; }
}

/* ── Grouped services (expanded menu) ─────────────────────────────────── */
.gs-group { margin-top: clamp(2rem, 4vw, 2.8rem); }
.gs-group:first-of-type { margin-top: clamp(1.4rem, 3vw, 2rem); }
.gs-group__title {
  font-family: "Chivo", sans-serif; font-weight: 700; font-size: 1.02rem;
  letter-spacing: .01em; color: var(--green);
  margin: 0 0 1rem; padding-bottom: .55rem; border-bottom: 1px solid var(--line);
}
.gs-svc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(272px, 1fr)); gap: clamp(.8rem, 1.6vw, 1.1rem); }
.gs-svc {
  display: flex; gap: 1rem; align-items: flex-start;
  background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.15rem 1.25rem;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.gs-svc:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); border-color: #d8cdb4; }
.gs-svc__ic {
  flex: none; width: 46px; height: 46px; border-radius: 13px;
  display: grid; place-items: center;
  background: rgba(39, 93, 43, .09); color: var(--green);
  transition: background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.gs-svc__ic .gs-ic { width: 24px; height: 24px; }
.gs-svc:hover .gs-svc__ic { background: var(--green); color: var(--soft); transform: rotate(-4deg) scale(1.06); }
.gs-svc__title { font-family: "Chivo", sans-serif; font-weight: 700; font-size: 1.06rem; letter-spacing: -0.01em; margin: 0 0 .25rem; }
.gs-svc__desc { margin: 0; font-size: .95rem; color: var(--ink-2); line-height: 1.5; }

/* ── Extra motion: subtle phone float + vivid stats ───────────────────── */
@media (prefers-reduced-motion: no-preference) {
  .gs-phones { animation: gsFloat 6s ease-in-out infinite; }
  .gs-stat__num.is-counting { animation: gsPop .5s var(--ease) both; }
}
@keyframes gsFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes gsPop { 0% { transform: scale(.92); opacity: .4; } 100% { transform: scale(1); opacity: 1; } }
.gs-stat__num { display: inline-block; transition: color .3s var(--ease); }
.gs-stat { transition: transform .3s var(--ease); }
.gs-stat:hover { transform: translateY(-2px); }
.gs-stat:hover .gs-stat__num { color: var(--green-deep); }
.gs-stat--accent:hover .gs-stat__num { color: #8f4a22; }

/* ── Custom icon masks (themeable from icons.png) ─────────────────────── */
.gs-svc__ic .gs-mask {
  display: block; width: 26px; height: 26px;
  background-color: currentColor;
  -webkit-mask: var(--m) center / contain no-repeat;
          mask: var(--m) center / contain no-repeat;
}

/* ── Compact language selector (current + peek + …, expand on hover/tap) ─ */
.gs-lang { position: relative; }
.gs-lang__btn {
  display: inline-flex; align-items: center; gap: .35rem;
  background: rgba(245, 239, 226, .1); border: 0; cursor: pointer;
  border-radius: var(--radius-pill); padding: .36rem .72rem;
  font-family: "Nunito Sans", sans-serif; font-weight: 800; font-size: .82rem; letter-spacing: .03em;
  color: var(--on-green); transition: background-color .2s var(--ease);
}
.gs-lang__btn:hover { background: rgba(245, 239, 226, .18); }
.gs-lang__peek { color: var(--on-green-2); }
.gs-lang__more { color: var(--on-green-2); letter-spacing: 0; }
.gs-lang__menu {
  position: absolute; top: calc(100% + .5rem); right: 0; z-index: 60;
  min-width: 176px; margin: 0; padding: .35rem; list-style: none;
  background: var(--soft); color: var(--ink);
  border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 14px 34px rgba(20, 30, 18, .18);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.gs-lang:hover .gs-lang__menu,
.gs-lang:focus-within .gs-lang__menu,
.gs-lang.is-open .gs-lang__menu { opacity: 1; visibility: visible; transform: none; }
.gs-lang__opt {
  display: flex; align-items: center; gap: .6rem;
  padding: .5rem .6rem; border-radius: 10px; text-decoration: none;
  font-weight: 700; font-size: .9rem; color: var(--ink-2);
  transition: background-color .15s var(--ease), color .15s var(--ease);
}
.gs-lang__opt:hover,
.gs-lang__opt:focus-visible { background: var(--green); color: var(--on-green); }
.gs-lang__opt.is-active { background: rgba(39, 93, 43, .1); color: var(--green); font-weight: 800; }
.gs-lang__code { font-weight: 800; width: 1.9em; flex: none; }
.gs-lang__name { opacity: .92; }

/* ── Portfolio / strengths ────────────────────────────────────────────── */
.gs-port { background: var(--cream); padding: clamp(2.6rem, 6vw, 4.5rem) clamp(1.1rem, 4vw, 3rem); }
.gs-port__inner { max-width: var(--maxw); margin: 0 auto; }
.gs-port__head { max-width: 62ch; margin-bottom: clamp(1.8rem, 4vw, 2.6rem); }
.gs-port__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.gs-port__item {
  background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: clamp(1.4rem, 2.5vw, 1.85rem);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.gs-port__item:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.gs-port__item .gs-svc__ic { margin-bottom: 1rem; }
.gs-port__item:hover .gs-svc__ic { background: var(--green); color: var(--soft); transform: rotate(-4deg) scale(1.06); }

/* ── Referral / recommendation (reward panel) ─────────────────────────── */
.gs-ref { background: var(--cream); padding: clamp(1rem, 3vw, 2rem) clamp(1.1rem, 4vw, 3rem) clamp(2.8rem, 6vw, 4.2rem); }
.gs-ref__inner { max-width: 900px; margin: 0 auto; }
.gs-ref__panel {
  display: grid; grid-template-columns: minmax(148px, auto) 1fr;
  gap: clamp(1.3rem, 3.5vw, 2.6rem); align-items: center;
  background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3.5vw, 2.4rem);
  box-shadow: var(--shadow-card);
}
.gs-ref__figure {
  align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: .35rem;
  background: radial-gradient(130% 130% at 25% 15%, var(--green) 0%, var(--green-900) 100%);
  color: var(--on-green); border-radius: var(--radius);
  padding: clamp(1.3rem, 3vw, 1.9rem) clamp(1.2rem, 3vw, 1.7rem);
}
.gs-ref__badge {
  font-family: "Chivo", sans-serif; font-weight: 900; letter-spacing: -0.02em;
  font-size: clamp(1.35rem, 1rem + 1.6vw, 1.9rem); line-height: 1.05;
}
.gs-ref__figlabel { font-size: .82rem; color: var(--on-green-2); max-width: 15ch; line-height: 1.3; }
.gs-ref__content { text-align: left; }
.gs-ref__title { font-family: "Chivo", sans-serif; font-weight: 900; font-size: clamp(1.35rem, 1rem + 1.5vw, 1.9rem); letter-spacing: -0.02em; margin: 0 0 .55rem; text-wrap: balance; }
.gs-ref__body { color: var(--ink-2); max-width: 52ch; margin: 0 0 1.4rem; }
@media (max-width: 620px) {
  .gs-ref__panel { grid-template-columns: 1fr; text-align: center; }
  .gs-ref__content { text-align: center; }
  .gs-ref__body { margin-left: auto; margin-right: auto; }
}

/* ── Outline button (secondary WhatsApp action) ───────────────────────── */
.gs-btn--outline { background: transparent; color: var(--green); border-color: var(--green); }
.gs-btn--outline .gs-ic { color: var(--wa); }
.gs-btn--outline:hover { background: var(--green); color: var(--soft); transform: translateY(-2px); }
.gs-btn--outline:hover .gs-ic { color: var(--soft); }

/* rhythm: alternate services onto soft-white (sits between cream portfolio + cream referral) */
.gs-services { background: var(--soft); }

/* ── FAQ (dark, sits above the footer; native <details> = crawlable, no-JS) */
.gs-faq { background: var(--green-900); padding: clamp(2.8rem, 6vw, 4.8rem) clamp(1.1rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.gs-faq__inner { max-width: 760px; margin: 0 auto; }
.gs-faq .gs-h2 { color: var(--on-green); margin-bottom: clamp(1.4rem, 3vw, 2rem); }
.gs-faq__list { display: flex; flex-direction: column; gap: .7rem; }
.gs-faq__item {
  background: rgba(245, 239, 226, .05); border: 1px solid rgba(245, 239, 226, .14);
  border-radius: var(--radius); overflow: hidden;
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
}
.gs-faq__item:hover { border-color: rgba(245, 239, 226, .3); }
.gs-faq__item[open] { background: rgba(245, 239, 226, .07); }
.gs-faq__q {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  cursor: pointer; list-style: none;
  padding: clamp(1rem, 2.2vw, 1.25rem) clamp(1.1rem, 2.5vw, 1.5rem);
  font-family: "Chivo", sans-serif; font-weight: 700; font-size: clamp(1rem, .95rem + .3vw, 1.12rem);
  letter-spacing: -0.01em; color: var(--on-green);
}
.gs-faq__q::-webkit-details-marker { display: none; }
.gs-faq__q:focus-visible { outline: 3px solid var(--wa); outline-offset: -3px; border-radius: var(--radius); }
.gs-faq__mark { position: relative; flex: none; width: 18px; height: 18px; }
.gs-faq__mark::before, .gs-faq__mark::after {
  content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  background: var(--wa); border-radius: 2px;
}
.gs-faq__mark::before { width: 14px; height: 2px; }
.gs-faq__mark::after { width: 2px; height: 14px; transition: transform .25s var(--ease), opacity .25s var(--ease); }
.gs-faq__item[open] .gs-faq__mark::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.gs-faq__a { padding: 0 clamp(1.1rem, 2.5vw, 1.5rem) clamp(1.1rem, 2.2vw, 1.3rem); }
.gs-faq__a p { margin: 0; color: var(--on-green-2); max-width: 64ch; }
@media (prefers-reduced-motion: reduce) { .gs-faq__mark::after { transition: none; } }

/* portfolio: clean 3-up on desktop (6 strengths = 2 rows) */
@media (min-width: 900px) { .gs-port__grid { grid-template-columns: repeat(3, 1fr); } }
/* hairline between the dark FAQ and the dark footer */
.gs-foot { border-top: 1px solid rgba(245, 239, 226, .1); }
