/*
Theme Name: Roovio
Theme URI: https://roovio.app
Author: Roovio
Author URI: https://roovio.app
Description: Roovio marketing theme — trust-led travel brand. Currently ships the dynamic About page (content driven entirely by meta boxes), plus a reusable header and footer. Design system extracted from the Roovio Design System kit (General Sans type, deep-green + coral palette, soft rounded cards).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: roovio
*/

/* ============================================================
   Webfonts — General Sans (self-hosted)
   ============================================================ */
@font-face { font-family:"General Sans"; src:url("assets/fonts/GeneralSans-Light.otf") format("opentype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"General Sans"; src:url("assets/fonts/GeneralSans-Regular.otf") format("opentype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"General Sans"; src:url("assets/fonts/GeneralSans-Medium.otf") format("opentype"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"General Sans"; src:url("assets/fonts/GeneralSans-Semibold.otf") format("opentype"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"General Sans"; src:url("assets/fonts/GeneralSans-Bold.otf") format("opentype"); font-weight:700; font-style:normal; font-display:swap; }

/* ============================================================
   Design tokens — Roovio
   ============================================================ */
:root {
  /* Brand green */
  --green-950:#02160F; --green-900:#02301F; --green-800:#0A3D2A; --green-700:#154E39;
  --green-600:#1F5F48; --green-500:#2C7659; --green-400:#4F9579; --green-300:#86B9A4;
  --green-200:#BCDBCF; --green-100:#E2F0E9; --green-50:#F1F8F4;
  /* Coral */
  --coral-700:#D8542B; --coral-600:#ED6537; --coral-500:#FD7C50; --coral-400:#FE9572;
  --coral-300:#FFB59B; --coral-200:#FFD3C3; --coral-100:#FFE7DD; --coral-50:#FFF3EE;
  /* Vermillion */
  --vermillion-600:#CF2D26; --vermillion-500:#E73C34; --vermillion-100:#FBDAD8;
  /* Sunshine yellow */
  --yellow-500:#FDEB42; --yellow-400:#FCDE2A; --yellow-200:#FEF4A6; --yellow-100:#FEFAD2;
  /* Gold */
  --gold-600:#8C6500; --gold-500:#B07F00;
  /* Slate */
  --slate-700:#2E3B4A; --slate-600:#425368; --slate-400:#7C8A9B; --slate-200:#C7D0DA;
  /* Ink + neutral */
  --ink-900:#1A1A1A; --ink-800:#252525; --ink-700:#3A3A38;
  --neutral-500:#6E6E68; --neutral-400:#9A9A92; --neutral-300:#C9C8BF; --neutral-200:#E6E4DA; --neutral-100:#F0EFE8;
  /* Surfaces */
  --cream:#FDFAF1; --cream-deep:#F6F0E2; --paper:#FEFEFE; --white:#FFFFFF;

  /* Semantic aliases */
  --bg-page:var(--cream); --bg-page-alt:var(--cream-deep); --bg-inverse:var(--green-900);
  --surface-card:var(--white); --surface-sunken:var(--neutral-100);
  --text-primary:var(--ink-800); --text-heading:var(--green-900); --text-secondary:var(--slate-600);
  --text-muted:var(--neutral-500); --text-on-dark:var(--cream); --text-on-coral:var(--white); --text-link:var(--gold-500);
  --accent:var(--coral-500); --accent-hover:var(--coral-600); --accent-press:var(--coral-700); --accent-soft:var(--coral-100);
  --brand:var(--green-600); --brand-hover:var(--green-700); --brand-deep:var(--green-900);
  --highlight:var(--yellow-500);
  --border-subtle:var(--neutral-200); --border-strong:var(--neutral-300); --border-on-dark:rgba(255,255,255,0.16);
  --focus-ring:var(--coral-500);

  /* Typography */
  --font-sans:"General Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:var(--font-sans);
  --fw-light:300; --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  --text-display:4.5rem; --text-h1:3.75rem; --text-h2:2.5rem; --text-h3:1.75rem;
  --text-body-lg:2.25rem; --text-body-xl:1.5rem; --text-body:1.125rem; --text-body-sm:1rem;
  --text-caption:0.875rem; --text-eyebrow:0.8125rem;
  --lh-tight:1.1; --lh-heading:1.3; --lh-body:1.55; --lh-relaxed:1.7;
  --tracking-tight:-0.02em; --tracking-normal:0; --tracking-wide:0.08em; --tracking-eyebrow:0.28em;

  /* Spacing */
  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem;
  --space-20:5rem; --space-24:6rem; --space-32:8rem;
  /* Radius */
  --radius-xs:6px; --radius-sm:10px; --radius-md:14px; --radius-lg:16px; --radius-xl:24px; --radius-2xl:32px; --radius-pill:999px;
  /* Shadows */
  --shadow-xs:0 1px 2px rgba(2,48,32,0.06); --shadow-sm:0 2px 8px rgba(2,48,32,0.06);
  --shadow-md:0 8px 24px rgba(2,48,32,0.08); --shadow-lg:0 18px 48px rgba(2,48,32,0.10);
  --shadow-card:4px 6px 40px rgba(0,0,0,0.07); --shadow-coral:0 12px 28px rgba(253,124,80,0.30);
  /* Layout */
  --container-max:1200px; --container-wide:1320px; --container-narrow:60rem;
  --gutter:clamp(1.25rem,5vw,4rem);
  /* Motion */
  --ease-out:cubic-bezier(0.22,1,0.36,1); --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --dur-fast:140ms; --dur-med:240ms; --dur-slow:420ms;
}

/* ============================================================
   Base
   ============================================================ */
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; }
body {
  background:var(--bg-page); color:var(--text-primary);
  font-family:var(--font-sans); font-size:var(--text-body); line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
a { color:var(--text-link); -webkit-tap-highlight-color:transparent; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4 { font-family:var(--font-display); color:var(--text-heading); }
p { margin:0; }

/* Layout helpers */
.rv-container { max-width:var(--container-wide); margin:0 auto; padding:0 var(--gutter); }
.rv-section { padding:clamp(3.5rem,7vw,6rem) 0; }
.rv-section--alt { background:var(--cream-deep); }
.rv-eyebrow {
  display:inline-block; color:var(--green-600);
  font-weight:var(--fw-semibold); font-size:0.75rem;
  letter-spacing:var(--tracking-eyebrow); text-transform:uppercase;
}
.rv-section__head { max-width:42rem; margin-bottom:2.5rem; }
.rv-section__head--center { margin-left:auto; margin-right:auto; text-align:center; }
.rv-section__head h2 {
  margin:0.9rem 0 0; font-weight:700; letter-spacing:-0.025em;
  font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.12; color:var(--text-heading);
}
.rv-section__head p {
  margin:0.85rem 0 0; max-width:38rem; font-size:1.0625rem;
  line-height:1.55; color:var(--text-secondary);
}
.rv-section__head--center p { margin-left:auto; margin-right:auto; }

/* ============================================================
   Buttons
   ============================================================ */
.rv-btn {
  --_bg:var(--coral-500); --_fg:var(--text-on-coral); --_bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:0.5em;
  font-family:var(--font-sans); font-weight:var(--fw-semibold);
  border:1.5px solid var(--_bd); background:var(--_bg); color:var(--_fg);
  border-radius:var(--radius-pill); cursor:pointer; text-decoration:none;
  line-height:1; white-space:nowrap; font-size:1rem; padding:0.7rem 1.25rem;
  transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-med) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
}
.rv-btn:focus-visible { outline:none; box-shadow:0 0 0 3px var(--cream),0 0 0 5px var(--focus-ring); }
.rv-btn--sm { font-size:0.875rem; padding:0.5rem 0.9rem; }
.rv-btn--lg { font-size:1.0625rem; padding:0.9rem 1.6rem; }
.rv-btn .rv-icon { width:1.15em; height:1.15em; }
.rv-btn--primary { --_bg:var(--coral-500); --_fg:var(--text-on-coral); box-shadow:var(--shadow-coral); }
.rv-btn--primary:hover { --_bg:var(--coral-600); transform:translateY(-1px); }
.rv-btn--primary:active { --_bg:var(--coral-700); transform:translateY(0) scale(0.985); box-shadow:var(--shadow-sm); }
.rv-btn--secondary { --_bg:var(--green-600); --_fg:var(--cream); }
.rv-btn--secondary:hover { --_bg:var(--green-700); transform:translateY(-1px); }
.rv-btn--outline { --_bg:transparent; --_fg:var(--green-700); --_bd:var(--green-600); }
.rv-btn--outline:hover { --_bg:var(--green-50); }
.rv-btn--ghost { --_bg:transparent; --_fg:var(--green-700); --_bd:transparent; box-shadow:none; }
.rv-btn--ghost:hover { --_bg:rgba(31,95,72,0.08); }

/* Base icon: sized in em so the parent font-size controls it (matches design-system RvIcons). */
.rv-icon { display:inline-block; vertical-align:middle; flex:none; width:1em; height:1em; }

/* ============================================================
   Header / Nav
   ============================================================ */
.rv-nav {
  position:sticky; top:0; z-index:50; background:transparent;
  border-bottom:1px solid transparent;
  transition:background var(--dur-med) var(--ease-out),backdrop-filter var(--dur-med) var(--ease-out),border-color var(--dur-med) var(--ease-out);
}
.rv-nav.is-scrolled {
  background:rgba(253,250,241,0.85);
  -webkit-backdrop-filter:saturate(140%) blur(10px); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--border-subtle);
}
.rv-nav__inner {
  max-width:var(--container-wide); margin:0 auto;
  padding:0.9rem var(--gutter); display:flex; align-items:center; gap:1.5rem;
}
.rv-nav__brand { display:inline-flex; align-items:center; }
.rv-nav__brand img { height:30px; width:auto; }
.rv-nav__links { display:flex; gap:1.6rem; margin-left:1.5rem; list-style:none; padding:0; margin-top:0; margin-bottom:0; }
.rv-nav__links a { color:var(--text-primary); text-decoration:none; font-weight:500; font-size:0.98rem; transition:color var(--dur-fast) var(--ease-out); }
.rv-nav__links a:hover { color:var(--green-600); }
.rv-nav__actions { margin-left:auto; display:flex; align-items:center; gap:0.7rem; }
.rv-nav__toggle { display:none; background:none; border:0; color:var(--green-900); cursor:pointer; padding:0.4rem; line-height:0; }
.rv-nav__toggle .rv-icon { width:1.6rem; height:1.6rem; }

/* ============================================================
   Hero (Section 1)
   ============================================================ */
.ab-hero { position:relative; min-height:min(86vh,720px); display:flex; align-items:flex-end; overflow:hidden; }
.ab-hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.ab-hero__scrim { position:absolute; inset:0;
  background:linear-gradient(to top,rgba(2,21,14,0.92) 0%,rgba(2,48,31,0.55) 38%,rgba(2,48,31,0.08) 70%,rgba(2,48,31,0.18) 100%); }
.ab-hero__inner { position:relative; width:100%; max-width:var(--container-wide); margin:0 auto;
  padding:0 var(--gutter) clamp(2.5rem,5vw,4.5rem); }
.ab-hero__content { max-width:44rem; }
.ab-hero h1 { margin:0; font-weight:700; letter-spacing:-0.03em; font-size:clamp(2.6rem,5.6vw,4.5rem);
  line-height:1.02; color:#fff; text-shadow:0 2px 30px rgba(0,0,0,0.25); }
.ab-hero__sub { margin:1.4rem 0 0; max-width:38rem; font-size:clamp(1.1rem,1.6vw,1.3rem); line-height:1.5; color:rgba(255,255,255,0.92); }
.ab-hero__chips { display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.6rem; }
.ab-chip { display:inline-flex; align-items:center; gap:0.45rem; background:rgba(255,255,255,0.16);
  border:1px solid rgba(255,255,255,0.28); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#fff; font-size:0.9rem; font-weight:600; padding:0.45rem 0.9rem; border-radius:var(--radius-pill); }
.ab-chip .rv-icon { width:1rem; height:1rem; }
.ab-hero__cta { margin-top:2rem; display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap; }
.ab-hero__link { color:#fff; font-weight:600; font-size:1.05rem; text-decoration:none; display:inline-flex;
  align-items:center; gap:0.4rem; border-bottom:2px solid rgba(255,255,255,0.5); padding-bottom:2px; }

/* ============================================================
   Manifesto (Section 2)
   ============================================================ */
.ab-manifesto { padding:clamp(4rem,8vw,7rem) 0; }
.ab-manifesto__inner { max-width:var(--container-narrow); margin:0 auto; padding:0 var(--gutter); }
.ab-manifesto h2 { margin:1rem 0 0; font-weight:700; letter-spacing:-0.025em;
  font-size:clamp(2rem,4.2vw,3.1rem); line-height:1.1; color:var(--text-heading); max-width:20ch; }
.ab-manifesto__intro { margin:1.6rem 0 0; font-size:clamp(1.15rem,1.7vw,1.4rem); line-height:1.55; color:var(--text-secondary); }
.ab-manifesto__stance { margin:1.3rem 0 0; font-size:1.2rem; line-height:1.55; color:var(--text-primary); font-weight:500; }
.hl-coral { color:var(--coral-500); }
.hl-green { color:var(--green-700); font-weight:700; }

/* ============================================================
   How it works (Section 3)
   ============================================================ */
.ab-how__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.5rem); }
.ab-step { position:relative; background:var(--white); border-radius:var(--radius-lg);
  padding:2rem 1.75rem; border:1px solid var(--border-subtle); box-shadow:var(--shadow-sm); }
.ab-step__top { display:flex; align-items:center; gap:0.9rem; margin-bottom:1rem; }
.ab-step__icon { width:3rem; height:3rem; flex:none; border-radius:var(--radius-md); background:var(--green-600);
  color:var(--cream); display:flex; align-items:center; justify-content:center; }
.ab-step__icon .rv-icon { width:1.5rem; height:1.5rem; }
.ab-step__num { font-size:0.78rem; font-weight:700; letter-spacing:0.12em; color:var(--text-muted); }
.ab-step h3 { margin:0 0 0.5rem; font-size:1.3rem; font-weight:700; color:var(--text-heading); line-height:1.2; }
.ab-step p { font-size:1.05rem; line-height:1.5; color:var(--text-secondary); }

/* ============================================================
   Pillars (Section 4)
   ============================================================ */
.ab-pillars__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1rem,2vw,1.5rem); }
.ab-pillar { background:var(--white); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  padding:1.9rem; box-shadow:var(--shadow-sm); display:flex; gap:1.1rem; align-items:flex-start; }
.ab-pillar__icon { width:3.2rem; height:3.2rem; flex:none; border-radius:var(--radius-md); background:var(--coral-100);
  color:var(--coral-600); display:flex; align-items:center; justify-content:center; }
.ab-pillar__icon .rv-icon { width:1.6rem; height:1.6rem; }
.ab-pillar h3 { margin:0.2rem 0 0.45rem; font-size:1.25rem; font-weight:700; color:var(--text-heading); }
.ab-pillar p { margin:0; font-size:1.02rem; line-height:1.5; color:var(--text-secondary); }

/* ============================================================
   Story (Section 5)
   ============================================================ */
.ab-story__grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
.ab-story h2 { margin:1rem 0 0; font-weight:700; letter-spacing:-0.025em; font-size:clamp(1.9rem,3.6vw,2.6rem);
  line-height:1.12; color:var(--text-heading); max-width:18ch; }
.ab-story__body p { margin:1.5rem 0 0; font-size:1.15rem; line-height:1.6; color:var(--text-secondary); }
.ab-story__media { position:relative; }
.ab-story__img { aspect-ratio:4/5; border-radius:var(--radius-2xl); background-size:cover; background-position:center; box-shadow:var(--shadow-lg); }
.ab-story__card { position:absolute; left:-1.25rem; bottom:1.5rem; background:var(--white);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:0.9rem 1.1rem; max-width:14rem; }
.ab-story__card-title { font-weight:700; color:var(--text-heading); font-size:1rem; }
.ab-story__card-text { font-size:0.9rem; color:var(--text-secondary); line-height:1.35; }

/* ============================================================
   Proof (Section 6)
   ============================================================ */
.ab-proof__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.5rem); align-items:start; }
.ab-proof__item { display:flex; flex-direction:column; gap:0.85rem; }
.ab-itinerary { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform var(--dur-med) var(--ease-out),box-shadow var(--dur-med) var(--ease-out); }
.ab-itinerary:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }

/* Creator header — people before place */
.ab-itinerary__creator { display:flex; align-items:center; gap:0.65rem; padding:0.85rem 1rem; }
.ab-itinerary__avatar { width:38px; height:38px; flex:none; border-radius:var(--radius-pill);
  background:var(--green-100); color:var(--green-700); display:flex; align-items:center; justify-content:center;
  font-weight:600; font-size:0.85rem; background-size:cover; background-position:center; }
.ab-itinerary__avatar.is-ring { box-shadow:0 0 0 2.5px var(--white),0 0 0 4.5px var(--coral-500); }
.ab-itinerary__cmeta { display:flex; flex-direction:column; gap:1px; min-width:0; }
.ab-itinerary__creator-name { font-weight:600; font-size:0.95rem; color:var(--text-heading); line-height:1.2; }
.ab-itinerary__creator-persona { font-size:0.78rem; color:var(--coral-600); font-weight:500; }
.ab-itinerary__follow { margin-left:auto; flex:none; border:1.5px solid var(--green-600); background:transparent;
  color:var(--green-700); font-family:inherit; font-weight:600; font-size:0.8rem; cursor:pointer;
  padding:0.4rem 0.85rem; border-radius:var(--radius-pill); line-height:1;
  transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out); }
.ab-itinerary__follow:hover { background:var(--green-50); }
.ab-itinerary__follow[data-following="true"] { background:var(--green-600); color:var(--cream); }
.ab-itinerary__follow[data-following="true"]:hover { background:var(--green-700); }

/* Media */
.ab-itinerary__media { position:relative; aspect-ratio:3/2; background:var(--green-100); overflow:hidden; }
.ab-itinerary__img { position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform var(--dur-slow) var(--ease-out); }
.ab-itinerary:hover .ab-itinerary__img { transform:scale(1.04); }
.ab-itinerary__save { position:absolute; top:0.6rem; right:0.6rem; width:34px; height:34px;
  display:flex; align-items:center; justify-content:center; border:0; border-radius:var(--radius-pill);
  background:var(--white); color:var(--green-700); box-shadow:var(--shadow-sm); cursor:pointer;
  transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out); }
.ab-itinerary__save:hover { background:var(--green-50); transform:translateY(-1px); }
.ab-itinerary__save .rv-icon { width:1.05rem; height:1.05rem; }
.ab-itinerary__save[aria-pressed="true"] { color:var(--coral-500); }
.ab-itinerary__save[aria-pressed="true"] .rv-icon { fill:none; stroke:var(--coral-500); }
.ab-itinerary__loc { position:absolute; left:0.7rem; bottom:0.7rem; display:inline-flex; align-items:center; gap:0.3em;
  background:rgba(2,48,32,0.62); color:#fff; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  font-size:0.8rem; font-weight:500; padding:0.35em 0.7em; border-radius:var(--radius-pill); }
.ab-itinerary__loc .rv-icon { width:0.95em; height:0.95em; color:#fff; }

/* Body */
.ab-itinerary__body { padding:0.85rem 1rem 1.05rem; display:flex; flex-direction:column; gap:0.55rem; }
.ab-itinerary__title { margin:0; font-size:1.1rem; font-weight:700; color:var(--text-heading);
  letter-spacing:-0.01em; line-height:1.3; }
.ab-itinerary__row { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.ab-itinerary__rating { display:inline-flex; align-items:center; gap:0.45em; }
.ab-itinerary__stars { display:inline-flex; gap:1px; line-height:0; }
.ab-star { width:15px; height:15px; display:block; }
.ab-star.is-full { color:var(--coral-500); }
.ab-star.is-empty { color:var(--neutral-300); }
.ab-itinerary__rval { font-weight:600; color:var(--text-heading); font-size:0.9rem; }
.ab-itinerary__rcount { color:var(--text-muted); font-size:0.82rem; }
.ab-itinerary__days { font-size:0.82rem; color:var(--text-muted); white-space:nowrap; }
.ab-itinerary__tags { display:flex; flex-wrap:wrap; gap:0.4rem; }
.ab-itinerary__tag { font-size:0.78rem; font-weight:500; color:var(--green-700); background:var(--green-50);
  border:1px solid var(--green-100); padding:0.25em 0.6em; border-radius:var(--radius-pill); }
.ab-proof__note { margin:0; padding:0 0.4rem; font-size:0.98rem; line-height:1.45; color:var(--text-secondary); font-style:italic; }

/* ============================================================
   Belief (Section 7)
   ============================================================ */
.ab-belief { padding:clamp(2rem,4vw,3.5rem) var(--gutter); }
.ab-belief__inner { max-width:var(--container-max); margin:0 auto; background:var(--green-900); color:var(--cream);
  border-radius:var(--radius-2xl); box-shadow:var(--shadow-lg); padding:clamp(3rem,6vw,5rem) clamp(1.5rem,5vw,4rem); text-align:center; }
.ab-belief__icon .rv-icon { width:2.6rem; height:2.6rem; color:var(--yellow-500); margin-bottom:1rem; }
.ab-belief__quote { margin:0 auto; max-width:30ch; font-weight:700; letter-spacing:-0.02em;
  font-size:clamp(1.8rem,3.8vw,2.9rem); line-height:1.18; color:var(--cream); }
.ab-belief__quote .hl { color:var(--yellow-500); }
.ab-belief__attr { margin:1.75rem auto 0; font-size:1rem; color:var(--green-300); font-weight:600; letter-spacing:0.04em; }

/* ============================================================
   Values (Section 8)
   ============================================================ */
.ab-values__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,1.8vw,1.4rem); }
.ab-value { background:var(--white); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  padding:1.75rem; box-shadow:var(--shadow-xs); }
.ab-value__icon { width:3rem; height:3rem; border-radius:var(--radius-md); background:var(--green-100);
  color:var(--green-700); display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.ab-value__icon .rv-icon { width:1.5rem; height:1.5rem; }
.ab-value h3 { margin:0 0 0.45rem; font-size:1.2rem; font-weight:700; color:var(--text-heading); }
.ab-value p { margin:0; font-size:1rem; line-height:1.5; color:var(--text-secondary); }

/* ============================================================
   Team (Section 9)
   ============================================================ */
.ab-team__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,1.8vw,1.4rem); }
.ab-team-card { background:var(--white); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  padding:1.75rem; text-align:center; box-shadow:var(--shadow-xs); }
.ab-team-card__avatar { width:72px; height:72px; border-radius:var(--radius-pill); margin:0 auto 1rem;
  background:var(--green-200); color:var(--green-800); display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:1.4rem; background-size:cover; background-position:center; }
.ab-team-card__name { font-weight:700; font-size:1.1rem; color:var(--text-heading); }
.ab-team-card__role { font-size:0.95rem; color:var(--coral-600); font-weight:600; margin-top:0.15rem; }
.ab-team-card p { margin:0.7rem 0 0; font-size:0.95rem; line-height:1.45; color:var(--text-secondary); }

/* ============================================================
   Press (Section 10)
   ============================================================ */
.ab-press { padding:clamp(2.5rem,5vw,4rem) 0; }
.ab-press__head { text-align:center; margin-bottom:1.75rem; }
.ab-press__logos { display:flex; flex-wrap:wrap; gap:clamp(1.5rem,4vw,3.5rem); justify-content:center; align-items:center; opacity:0.55; }
.ab-press__logo { height:1.9rem; min-width:7rem; display:flex; align-items:center; justify-content:center; padding:0 1rem; }
.ab-press__logo img { max-height:1.9rem; width:auto; filter:grayscale(1); }
.ab-press__logo--ph { border-radius:var(--radius-sm); border:1.5px dashed var(--border-strong); color:var(--text-muted);
  font-size:0.8rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; }
.ab-press__ratings { margin:1.75rem 0 0; text-align:center; font-size:1rem; color:var(--text-secondary); }
.ab-press__ratings b { color:var(--text-heading); }

/* ============================================================
   CTA (Section 11)
   ============================================================ */
.ab-cta { padding:clamp(4rem,8vw,7rem) var(--gutter); text-align:center; }
.ab-cta__inner { max-width:50rem; margin:0 auto; }
.ab-cta h2 { margin:0 auto; font-weight:700; letter-spacing:-0.03em; font-size:clamp(2.2rem,4.6vw,3.4rem);
  line-height:1.06; color:var(--text-heading); max-width:16ch; }
.ab-cta__btns { margin-top:2rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.ab-cta__note { margin:1.5rem 0 0; font-size:1.02rem; color:var(--text-muted); }

/* ============================================================
   Sticky join bar (Section 12)
   ============================================================ */
.rv-sticky { position:fixed; left:0; right:0; bottom:0; z-index:80; transform:translateY(120%);
  transition:transform var(--dur-med) var(--ease-out); }
.rv-sticky.is-visible { transform:translateY(0); }
.rv-sticky__inner { max-width:var(--container-wide); margin:0 auto; padding:0.7rem var(--gutter); }
.rv-sticky__bar { background:var(--green-900); color:var(--cream); border-radius:var(--radius-pill);
  box-shadow:var(--shadow-lg); padding:0.6rem 0.7rem 0.6rem 1.4rem; display:flex; align-items:center;
  gap:1rem; justify-content:space-between; }
.rv-sticky__left { display:flex; align-items:center; gap:0.9rem; min-width:0; }
.rv-sticky__left img { height:22px; width:auto; }
.rv-sticky__msg { font-size:0.98rem; color:var(--green-100); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ============================================================
   Footer (Section 13)
   ============================================================ */
.rv-footer { background:var(--green-950); color:var(--green-100); padding-top:clamp(2.5rem,5vw,4rem); }
.rv-footer__cols { display:grid; grid-template-columns:1.4fr repeat(3,1fr) 1.3fr; gap:2rem; padding-bottom:2.5rem; }
.rv-footer__brand img { height:30px; width:auto; }
.rv-footer__tag { margin:1rem 0 1.25rem; max-width:18rem; line-height:1.5; color:var(--green-200); font-size:0.95rem; }
.rv-footer__social { display:flex; gap:0.6rem; }
.rv-footer__social a { width:2.4rem; height:2.4rem; border-radius:var(--radius-pill); border:1px solid var(--border-on-dark);
  color:var(--cream); display:flex; align-items:center; justify-content:center; text-decoration:none; }
.rv-footer__social .rv-icon { width:1.1rem; height:1.1rem; }
.rv-footer h4 { margin:0 0 0.9rem; font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--green-300); }
.rv-footer ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.6rem; }
.rv-footer ul a { color:var(--green-100); text-decoration:none; font-size:0.95rem; }
.rv-footer ul a:hover { color:var(--cream); }
.rv-footer__apps { display:flex; flex-direction:column; gap:0.7rem; }
.rv-footer__app { display:inline-flex; align-items:center; gap:0.6rem; background:rgba(255,255,255,0.08);
  border:1px solid var(--border-on-dark); color:var(--cream); padding:0.55rem 1rem; border-radius:var(--radius-md); text-decoration:none; }
.rv-footer__app .rv-icon { width:1.3rem; height:1.3rem; }
.rv-footer__app small { display:block; font-size:0.62rem; opacity:0.75; }
.rv-footer__app strong { display:block; font-size:0.95rem; font-weight:700; }
.rv-footer__bar { border-top:1px solid var(--border-on-dark); padding:1.5rem 0; display:flex;
  justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:0.85rem; color:var(--green-300); }
.rv-footer__bar a { color:var(--green-200); text-decoration:none; }
.rv-footer__legal { display:flex; gap:1.5rem; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1080px) {
  .ab-values__grid,.ab-team__grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .ab-pillars__grid,.ab-how__grid,.ab-proof__grid,.ab-story__grid { grid-template-columns:1fr; }
  .rv-footer__cols { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .rv-nav__links { display:none; }
  .rv-nav__links.is-open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:var(--cream); padding:1rem var(--gutter); margin-left:0; border-bottom:1px solid var(--border-subtle); gap:1rem; }
  .rv-nav__toggle { display:inline-flex; }
  .ab-values__grid,.ab-team__grid,.rv-footer__cols { grid-template-columns:1fr; }
  .rv-sticky__msg { display:none; }
}
