/* ========== Design tokens (light theme) ========== */
:root{
  --bg: #f7f4ec;        /* soft cream */
  --card: #ffffff;      /* cards/frames */
  --text: #1f2328;      /* deep ink */
  --sub: #6b7280;       /* muted gray */
  --accent: #ffd646;    /* sunny yellow */
  --border: rgba(31,35,40,0.12);
  --shadow: 0 8px 24px rgba(31,35,40,.08);

  --radius: 14px;
  --radius-lg: 20px;
  --maxw: 1120px;
  --header-h: 64px;

  /* intro hero vars */
  --intro-bg: #f7f4ec;
  --intro-ink: #1f2328;
  --intro-sub: #6b7280;
  --intro-accent: #ffd646;
}

/* ===== Base ===== */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
section{scroll-margin-top: calc(var(--header-h) + 16px);}

/* Containers & sections */
.container{max-width:var(--maxw); margin:0 auto; padding:0 20px}
.section{padding:56px 0}
.section-tight{padding:28px 0}
.section h2 { margin:0 0 8px; /* font-size:28px; */ }
.section-title{
  text-align:center;
  font-size:40px;
  letter-spacing:.06em;
  margin:0 0 28px;
  font-weight:800;     /* single source of truth */
}
.hint,.sub{color:var(--sub)}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:20; height:var(--header-h);
  display:flex; align-items:center;
  backdrop-filter:saturate(140%) blur(8px);
  background:rgba(255,255,255,0.72);
  border-bottom:1px solid #e9e4d9;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; width:100%}
.brand{color:var(--text); text-decoration:none; font-weight:700; letter-spacing:.2px}
.site-nav{display:flex; gap:18px; align-items:center}
.site-nav a{color:#6b7280; text-decoration:none}
.site-nav a:hover{color:var(--text)}

/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 16px; border-radius:999px; text-decoration:none; font-weight:600;
  border:1px solid transparent; transition:transform .06s ease;
}
.btn:active{transform:translateY(1px)}
.btn-accent{background:var(--accent); color:#111}
.btn-ghost{border-color:var(--border); color:var(--text); background:transparent}

/* ===== Mobile sticky CTA ===== */
.mobile-cta{
  position:fixed; left:50%; transform:translateX(-50%); bottom:12px; z-index:40;
  display:none; padding:12px 18px; border-radius:999px;
  background:var(--accent); color:#111; text-decoration:none; box-shadow:var(--shadow);
}

/* ===== Hero (legacy grid bits kept if you reuse) ===== */
.hero{padding-top:72px}
.hero-grid{display:grid; gap:28px}
.hero h1{margin:0; font-size:36px; line-height:1.15}
.cta-row{display:flex; gap:10px; margin-top:16px}
.hero-media .frame-9x16{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  background:var(--card);
  aspect-ratio:9/16; overflow:hidden;
}
.placeholder{height:100%; display:grid; place-items:center; color:var(--sub); text-align:center}
.placeholder small{opacity:.8}

/* ===== Carousel (kept) ===== */
.carousel{position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin-top:10px}
.viewport{
  position:relative; overflow:hidden; outline:none;
  border-radius:var(--radius-lg); border:1px solid var(--border); background:var(--card);
  box-shadow:var(--shadow); aspect-ratio:9/16;
}
.slide{position:absolute; inset:0; display:block; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.slide.is-active{opacity:1; pointer-events:auto}
.media{width:100%; height:100%; object-fit:cover; display:block; background:#0b0e14}
.overlay{position:absolute; display:flex; gap:6px}
.overlay.top-left{left:10px; top:10px}
.overlay.bottom-right{right:10px; bottom:10px}
.badge{font-size:12px; padding:6px 8px; border-radius:10px; background:rgba(255,255,255,.9); color:var(--text); border:1px solid #e5e1d6}
.cbtn{width:44px; height:44px; border-radius:999px; border:1px solid var(--border); background:rgba(0,0,0,.05); color:var(--text); display:grid; place-items:center; cursor:pointer;}
.cbtn:hover{background:rgba(0,0,0,.08)}
.cbtn:active{transform:translateY(1px)}
.dots{display:flex; gap:8px; justify-content:center; margin-top:10px}
.dot{width:8px; height:8px; border-radius:999px; background:rgba(31,35,40,.20); border:1px solid #e5e1d6; cursor:pointer;}
.dot.is-active{background:var(--accent); border-color:transparent}

/* ===== Contact + Footer ===== */
.contact{display:grid; gap:10px; text-align:center}
.site-footer{border-top:1px solid #e9e4d9; padding:18px 0; margin-top:24px; background:rgba(0,0,0,0.04)}
.footer-inner{display:flex; align-items:center; justify-content:space-between}
.site-footer a{color:#6b7280; text-decoration:none}
.site-footer a:hover{color:var(--text)}

/* ===== Intro hero (light) ===== */
.intro-hero{background:var(--intro-bg); color:var(--intro-ink); padding:72px 0 64px; border-bottom:1px solid #e9e4d9;}
.intro-wrap{text-align:center; position:relative;}
.intro-toprow{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; color:var(--intro-sub); font-size:14px;}
.intro-eyebrow{letter-spacing:.12em; text-transform:uppercase;}
.intro-year{letter-spacing:.08em;}
.avatar-arc{
  --size: 420px;
  width: var(--size);
  height: calc(var(--size) / 2);
  margin: 0 auto 32px;
  border-top-left-radius: calc(var(--size) / 2);
  border-top-right-radius: calc(var(--size) / 2);
  overflow:hidden;
  border: 8px solid var(--intro-bg);
  box-shadow: 0 28px 56px rgba(0,0,0,.18);
  position: relative; background:#ddd;
}
.avatar-arc img{width:100%; height:200%; object-fit:cover; transform:translateY(-25%); filter:contrast(1.02) saturate(1.02); border-radius:50%;}
.intro-title{
  display:inline-block; font-weight:900; letter-spacing:.05em; line-height:.9;
  font-size:clamp(44px, 9vw, 120px); position:relative; margin:4px 0 8px; padding:0 .12em;
  background:linear-gradient(transparent 62%, var(--intro-accent) 62%);
}
.intro-sub{margin:0 auto 18px; color:var(--intro-sub); font-size:clamp(14px, 2.6vw, 18px);}
.intro-socials{display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:10px;}
.sbtn{display:inline-flex; align-items:center; gap:8px; border-radius:999px; text-decoration:none; border:1px solid #e2e2e2; color:var(--intro-ink); background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.06); transition:transform .06s ease, box-shadow .2s ease;}
.sbtn:hover{ box-shadow:0 10px 24px rgba(0,0,0,.10); }
.sbtn:active{ transform:translateY(1px); }
.sbtn svg{ display:block } .sbtn span{ font-weight:600; letter-spacing:.02em }

/* Intro hero responsive */
@media (max-width: 992px){ .avatar-arc{ --size: 340px; border-width:6px; } }
@media (max-width: 768px){ .avatar-arc{ --size: 280px; border-width:5px; } }
@media (max-width: 480px){ .avatar-arc{ --size: 220px; border-width:4px; } }

/* ===== Brand section banner (yellow count) ===== */
.brand-hero{
  display:flex; align-items:flex-end; gap:18px;
  margin: 0 0 18px;
}
.brand-hero-count{
  font-weight:900;
  color:#111;
  background: var(--accent);
  line-height:.85;
  padding: 6px 10px 2px;
  border-radius:12px;
  font-size: clamp(40px, 9vw, 96px);
}
.brand-hero-title{
  margin: 0 0 2px;
  font-size: clamp(22px, 3.2vw, 32px);
  letter-spacing:.02em;
  color: var(--text);
}
.brand-hero-sub{
  margin: 0;
  color: var(--sub);
  font-size:14px;
}

/* ===== Logos-only brand wall ===== */
.brands-logos{ padding-top:40px; }
/* .brand-wall{
  display:flex; flex-wrap:wrap; row-gap:22px; column-gap:18px;
  align-items:center; justify-content:flex-start;
} */
.logo{ display:block; height:var(--h, 60px); width:auto; object-fit:contain; filter:none; opacity:1; }
.logo.wide{ --h:56px; }           /* slightly shorter for long wordmarks */
.logo.h44{ --h:44px; } .logo.h52{ --h:52px; } .logo.h64{ --h:64px; } .logo.h72{ --h:72px; } .logo.h80{ --h:80px; }

/* ===== Responsive ===== */
@media (min-width:768px){
  .mobile-cta{display:none}
  .hero-grid{grid-template-columns:1.1fr .9fr; align-items:center}
  .hero h1{font-size:48px}
}
@media (max-width:767px){
  .site-nav{display:none}
}
@media (prefers-reduced-motion:reduce){
  .slide{transition:none}
  .btn:active{transform:none}
}
/* ===== Reel grid (clean 9:16 rectangles) ===== */
.reel-grid{
  --reel-gap: 32px;
  --reel-radius: 16px;
  display:grid;
  gap: var(--reel-gap);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items:start;
}
.reel-card{ width:100%; max-width:240px; }
.reel-frame{
  position:relative; width:100%; aspect-ratio:9/16;
  background:#000; border:1px solid #e9e4d9; border-radius:var(--reel-radius);
  box-shadow: var(--shadow); overflow:hidden;
}
.reel-frame > video, .reel-frame > img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
.reel-title{
  margin:14px 0 2px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; font-size:16px; color:var(--text);
}
.reel-meta{
  margin:0 0 4px; font-size:15px; text-transform:uppercase;
  letter-spacing:.02em; color:var(--sub);
}
/* responsive columns */
@media (max-width:1200px){ .reel-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width: 992px){ .reel-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width: 768px){ .reel-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 520px){ .reel-grid{ grid-template-columns:1fr; } }
/* mobile swipe */
@media (max-width:767px){
  .reel-grid{ display:flex; gap:22px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; padding-inline:20px; margin-inline:-20px; }
  .reel-card{ flex:0 0 auto; width:70vw; max-width:320px; scroll-snap-align:center; }
  .reel-grid::-webkit-scrollbar{ display:none; }
  .reel-grid{ scrollbar-width:none; }
}
/* subtle desktop hover */
@media (hover: hover) and (pointer: fine){
  .reel-frame{ transition: transform .15s ease, box-shadow .2s ease; }
  .reel-frame:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(31,35,40,.10);
  }
}

/* ===== Split hero (big yellow name left, portrait right) ===== */
.split-hero{
  background: var(--bg);
  color: var(--text);
  padding: 56px 0 48px;
  border-bottom: 1px solid #e9e4d9;
}
.split-wrap{
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  align-items: center;
  gap: 32px;
}

.split-left{ padding-block: 12px; }
.split-eyebrow{
  font-size: 16px;
  font-weight: bold;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text);
  opacity: .9;
  margin-bottom: 18px;
}

.split-name{
  margin: 0 0 28px;
  line-height: .9;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--accent);
  font-size: clamp(56px, 10vw, 160px);
}
.split-name span{ /* optional: keep second line same color/weight */
  color: var(--accent);
}

.split-list{
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.split-list li{
  padding: 14px 0;
  border-bottom: 2px solid #1f2328; /* solid ink line like the ref */
  max-width: 460px;
}

.split-socials{
  display: flex; gap: 14px; align-items: center;
  margin-top: 18px;
}
.sbtn-plain{
  width: 44px; height: 44px; display:grid; place-items:center;
  border-radius: 10px; background: #111; color: #fff;
  border: 1px solid rgba(0,0,0,.1);
}
.sbtn-plain:hover{ filter: brightness(1.1); }

.split-email{
  margin-top: 16px;
  letter-spacing: .1em;
  font-weight: 600;
  color: var(--text);
}

/* Right portrait */
.split-right img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
  /* Keep aspect tall; if your image is too short, set a min-height: */
  box-shadow: 0 12px 40px rgba(0,0,0,.08);
}

/* Responsive */
@media (max-width: 992px){
  .split-wrap{
    grid-template-columns: 1fr;
  }
  .split-right{ order: -1; } /* put the photo first on mobile if you prefer */
  .split-name{ font-size: clamp(44px, 12vw, 96px); }
  .split-list li{ max-width: none; }
}

/* ===== Pricing section ===== */
.pricing-title{
  color: var(--accent);
  text-align: left;
  font-size: clamp(32px, 6vw, 72px);
  margin-bottom: 22px;
  letter-spacing: .04em;
  font-weight: 900;
}

.price-grid{
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr;
  align-items: stretch;
}

@media (min-width: 900px){
  .price-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 640px) and (max-width: 899px){
  .price-grid{ grid-template-columns: repeat(2, 1fr); }
}

.price-card{
  background: var(--accent);
  color: #111;
  border-radius: 28px;
  padding: 26px 28px;
  box-shadow: 0 10px 28px rgba(31,35,40,.08);
}

.price-heading{
  margin: 4px 0 18px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 900;
  font-size: clamp(18px, 2.4vw, 26px);
}

.price-list{
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
}
.price-list li{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 2px solid rgba(17,17,17,.22);
  font-size: clamp(16px, 2.2vw, 22px);
}
.price-list li:last-child{ border-bottom: 0; }
.price-list strong{ font-weight: 900; }

.price-note{
  margin-top: 18px;
  line-height: 1.35;
  font-size: clamp(14px, 1.8vw, 18px);
}

.price-footer{
  margin-top: 18px;
  text-align: center;
  color: var(--sub);
  font-size: 14px;
}

/* --- LOCK THE ORDER + TUNE WIDTHS --- */
.split-hero .container{
  max-width: none;                     /* remove the 1120px cap for this section only */
  padding-inline: clamp(16px, 5vw, 56px);  /* comfortable side padding */
}
.split-wrap{
  display: grid;
  /* text column | image column (slightly narrower so the left column can breathe) */
  grid-template-columns: 1fr min(34vw, 420px);
  gap: clamp(20px, 5vw, 56px);

  /* lock the visual order: text on the left, image on the right */
  grid-template-areas: "left right";
}

.split-left  { grid-area: left; }
.split-right { grid-area: right; }

/* Keep the portrait sizing simple: it fills its column */
.hero-portrait{
  width: 100%;
  aspect-ratio: 3 / 4;
  height: auto;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(31,35,40,.12);
  display: block;
}

/* Stack earlier so Surface Pro widths don't feel cramped,
   and keep the order: text above, image below. */
@media (max-width: 1100px){
  .split-wrap{
    grid-template-columns: 1fr;
    grid-template-areas:
      "left"
      "right";
    align-items: start;
  }
  .split-right { justify-self: center; }  /* center the image when stacked */
  .hero-portrait{
    width: min(82vw, 460px);
    max-height: 48vh;
    margin: 8px auto 0;
  }
}
/* Dense, bunched logo wall */
.brand-wall{
  display: flex;
  flex-wrap: wrap;
  align-items: center;

  /* row-gap  |  column-gap */
  gap: clamp(8px, 1.2vw, 14px) clamp(12px, 2vw, 18px);
}

/* Make sizes feel uniform without boxes */
.brand-wall .logo{
  display: block;
  height: clamp(34px, 4.8vw, 60px); /* one consistent visual height */
  width: auto;                      /* keep aspect ratio */
  max-width: 100%;
  object-fit: contain;              /* just in case */
  margin: 0;                        /* no extra space */
}

.brand-wall picture { display: block; }


/* Optional micro-tweaks for outliers */
.brand-wall .logo--wide { height: clamp(30px, 4.2vw, 54px); }
.brand-wall .logo--tall { height: clamp(32px, 4.6vw, 58px); }