/* ZPOP — polish.css
   Phase 2 polish overrides for the inner pages. Loaded last so equal-specificity rules win.
   Load order on every page: animations.css > style.css > header.css > home.css > polish.css
   (order matters: later files intentionally override earlier ones). */

/* =========================================================================
   ZPOP — PHASE 2 · header overlay, section fixes, Our Vision + Franchise pages
   Placed after every earlier <style> block so equal-specificity rules win.
   ========================================================================= */
:root{ --zp-hero-green:#033016; }

/* ----------------------------------------------------- HEADER OVERLAY ---- */
#site-nav{
  transition:height 220ms var(--pop-ease-settle,ease), background-color 280ms ease, box-shadow 280ms ease,
             -webkit-backdrop-filter 280ms ease, backdrop-filter 280ms ease;
}
/* logos: green on the cream bar, yellow on the transparent overlay (cross-fade) */
#site-nav .nav-logo{ display:grid; align-items:center; }
#site-nav .nav-logo-img{ grid-area:1/1; height:54px; width:auto; max-width:none; transition:opacity 280ms ease, height 220ms var(--pop-ease-settle,ease); }
#site-nav.scrolled .nav-logo-img{ height:46px; }
#site-nav .logo-dark-bg{ opacity:0; }
#site-nav .logo-light-bg{ opacity:1; }

/* transparent state: home page, top of page — or whenever the mobile drawer is open */
body[data-route="home"] #site-nav:not(.scrolled),
html.zp-nav-lock #site-nav{
  background:transparent; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none;
}
body[data-route="home"] #site-nav:not(.scrolled) .logo-dark-bg,
html.zp-nav-lock #site-nav .logo-dark-bg{ opacity:1; }
body[data-route="home"] #site-nav:not(.scrolled) .logo-light-bg,
html.zp-nav-lock #site-nav .logo-light-bg{ opacity:0; }
body[data-route="home"] #site-nav:not(.scrolled) .nav-links a,
html.zp-nav-lock #site-nav .nav-links a{ color:var(--zpop-cream); text-shadow:0 1px 10px rgba(1,24,12,.45); }
body[data-route="home"] #site-nav:not(.scrolled) .nav-links a:hover,
body[data-route="home"] #site-nav:not(.scrolled) .nav-links a.active{ color:var(--zpop-yellow); }
body[data-route="home"] #site-nav:not(.scrolled) .nav-links a::after{ background:var(--zpop-yellow); }
body[data-route="home"] #site-nav:not(.scrolled) #nav-mobile-toggle,
html.zp-nav-lock #nav-mobile-toggle{ background:rgba(255,248,231,.14); border:1.5px solid rgba(255,248,231,.55); }
@media (max-width:420px){ #site-nav .nav-logo-img{ height:42px; max-width:none; } #site-nav.scrolled .nav-logo-img{ height:38px; } }

/* hero sits under the header; on narrow screens a flat band of the artwork's own green
   keeps the baked-in headline clear of the bar (the band is invisible against the image) */
#home-hero{
  --zp-hero-pad:clamp(0px, calc(var(--zp-nav-h) + 6px - 5.8vw), var(--zp-nav-h));
  margin-top:0; padding-top:var(--zp-hero-pad); background:var(--zp-hero-green);
}
#home-hero .zh-img{ max-height:max(calc(100svh - var(--zp-hero-pad)), 49.5vw); object-position:50% 15%; }
@media (min-width:1264px){
  #home-hero .zh-frame::before{
    content:""; position:absolute; left:0; right:0; top:0; height:clamp(96px,9vw,150px); z-index:1; pointer-events:none;
    background:linear-gradient(rgba(1,24,12,.5), rgba(1,24,12,0));
  }
}
@media (max-width:819px){ #home-hero .zh-cta{ background:var(--zp-hero-green); } }

/* -------------------- CRUNCH SECTION: no fade, no clipped poster, clean seam ---- */
#crunch{ background:#FEFBEC; line-height:0; overflow:visible; }
#crunch .crunch-img{ -webkit-mask-image:none; mask-image:none; }
#crunch::after{ content:""; display:block; height:clamp(14px,2.4vw,34px); background:#01331e; }

/* -------------------------------- REVIEWS: show the mascot art crisp and complete ---- */
.rv-visual img{ width:100%; margin-left:0; max-width:100%; -webkit-mask-image:none; mask-image:none; }
.reel-poster{ opacity:1; }

/* ================================================================ SHARED ==== */
.zp2-sec{ padding:clamp(72px,9vw,130px) 0; position:relative; }
.zp2-light{ background:#fff; }
.zp2-cream{ background:var(--zpop-cream-dim); }
.zp2-dark{ background:var(--zpop-green-deep); color:var(--zpop-cream); }
.zp2-dark h2, .zp2-dark h3{ color:#fff; }
.zp2-head{ text-align:center; max-width:760px; margin:0 auto clamp(36px,5vw,60px); }
.zp2-head h2{ font-size:clamp(32px,4.6vw,54px); line-height:1.05; margin-top:14px; }
.zp2-head p{ font-family:var(--font-body); font-size:17px; line-height:1.65; color:var(--stone); margin-top:16px; }
.zp2-dark .zp2-head p{ color:#D9CBB0; }
.zp2-dark .eyebrow{ color:var(--zpop-yellow); }
.zp2-lead{ font-family:var(--font-body); font-weight:600; font-size:clamp(17px,1.5vw,20px); line-height:1.65; max-width:34em; }
.zp2-body{ font-family:var(--font-body); font-size:16.5px; line-height:1.75; color:var(--stone); }
.zp2-note{ font-family:var(--font-body); font-size:13px; line-height:1.6; color:var(--stone); margin-top:22px; }
.zp2-dark .zp2-note{ color:#bfb294; }
.zp2-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.zp2-btn-line{ background:transparent; color:#fff; box-shadow:inset 0 0 0 2px var(--zpop-yellow); }
.zp2-btn-line:hover{ transform:scale(1.03) translateY(-2px); background:rgba(255,199,44,.12); }

/* hero (both pages) */
.zp2-hero{ position:relative; overflow:hidden; padding:clamp(130px,14vw,190px) 0 clamp(70px,8vw,110px); background:var(--zpop-green-deep); color:var(--zpop-cream); text-align:left; }
.zp2-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 78% 40%, rgba(255,199,44,.16), transparent 52%),
             radial-gradient(circle at 12% 92%, rgba(27,94,58,.7), transparent 55%);
}
.zp2-hero-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,5vw,80px); align-items:center; max-width:1320px; }
.zp2-hero h1{ color:#fff; font-size:clamp(44px,6.6vw,92px); line-height:.98; letter-spacing:-.01em; margin-top:14px; }
.zp2-hero h1 em{ font-style:normal; color:var(--zpop-yellow); }
.zp2-hero .zp2-lead{ color:#E9DEC5; margin-top:22px; }
.zp2-hero-art{ position:relative; display:flex; justify-content:center; }
.zp2-hero-art img{ display:block; width:100%; height:auto; }
.zp2-mascot{ max-width:min(340px,70vw); filter:drop-shadow(0 26px 34px rgba(0,0,0,.35)); }
.zp2-kiosk{ max-width:min(430px,86vw); border-radius:30px; box-shadow:0 34px 70px -20px rgba(0,0,0,.55); border:6px solid rgba(255,199,44,.95); }
.zp2-hero-chip{
  position:absolute; left:-4%; bottom:8%; background:var(--zpop-yellow); color:var(--ink); border-radius:18px; padding:12px 18px;
  font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1.25; box-shadow:0 18px 34px rgba(0,0,0,.3);
}
.zp2-hero-chip b{ display:block; font-size:30px; line-height:1; }
@media (max-width:900px){
  .zp2-hero{ padding-top:clamp(110px,26vw,150px); text-align:center; }
  .zp2-hero-grid{ grid-template-columns:1fr; }
  .zp2-hero .zp2-lead{ margin-left:auto; margin-right:auto; }
  .zp2-hero .zp2-cta{ justify-content:center; }
  .zp2-hero-art{ order:-1; }
  .zp2-mascot{ max-width:200px; }
  .zp2-kiosk{ max-width:260px; }
  .zp2-hero-chip{ left:50%; transform:translateX(-50%); bottom:-14px; white-space:nowrap; }
}

/* two-column story rows */
.zp2-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,80px); align-items:center; }
.zp2-split.rev > :first-child{ order:2; }
.zp2-split h2{ font-size:clamp(32px,4.4vw,52px); line-height:1.05; margin:14px 0 20px; }
.zp2-photo{ border-radius:30px; overflow:hidden; box-shadow:0 30px 60px rgba(36,27,18,.16); background:var(--zpop-green-deep); }
.zp2-photo img{ display:block; width:100%; height:auto; }
.zp2-photo.tall{ max-width:430px; justify-self:center; }
.zp2-photo-pair{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.zp2-photo-pair .zp2-photo:nth-child(2){ margin-top:44px; }
.zp2-caption{ font-family:var(--font-body); font-size:12.5px; font-weight:700; letter-spacing:.04em; color:var(--stone); margin-top:14px; text-align:center; }
@media (max-width:900px){ .zp2-split, .zp2-split.rev{ grid-template-columns:1fr; } .zp2-split.rev > :first-child{ order:0; } }

/* brand journey timeline */
.zp2-journey{ list-style:none; margin-top:30px; position:relative; padding-left:34px; display:flex; flex-direction:column; gap:20px; }
.zp2-journey::before{ content:""; position:absolute; left:9px; top:8px; bottom:8px; width:3px; border-radius:2px; background:linear-gradient(var(--zpop-yellow), var(--zpop-orange)); }
.zp2-journey li{ position:relative; font-family:var(--font-body); font-size:15px; line-height:1.55; color:var(--stone); }
.zp2-journey li::before{ content:""; position:absolute; left:-34px; top:3px; width:21px; height:21px; border-radius:50%; background:var(--zpop-yellow); border:4px solid #fff; box-shadow:0 0 0 2px var(--zpop-yellow-deep); }
.zp2-journey b{ display:block; font-family:var(--font-display); font-weight:600; font-size:17px; color:var(--zpop-green-deep); }

/* vision + mission */
.zp2-vm{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.zp2-vm-card{ border-radius:30px; padding:clamp(28px,3.4vw,52px); display:flex; flex-direction:column; gap:16px; }
.zp2-vm-card .tag{ font-family:var(--font-body); font-weight:800; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; }
.zp2-vm-card p{ font-family:var(--font-display); font-weight:600; font-size:clamp(21px,2.2vw,28px); line-height:1.35; }
.zp2-vm-card.v{ background:var(--zpop-green-deep); color:#fff; } .zp2-vm-card.v .tag{ color:var(--zpop-yellow); }
.zp2-vm-card.m{ background:var(--zpop-yellow); color:var(--ink); } .zp2-vm-card.m .tag{ color:var(--zpop-green-deep); }
@media (max-width:820px){ .zp2-vm{ grid-template-columns:1fr; } }

/* generic card grids */
.zp2-grid{ display:grid; gap:20px; }
.zp2-g2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.zp2-g3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.zp2-g4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1000px){ .zp2-g4{ grid-template-columns:repeat(2,minmax(0,1fr)); } .zp2-g3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .zp2-g2, .zp2-g3, .zp2-g4{ grid-template-columns:1fr; } }
.zp2-card{ background:#fff; border-radius:26px; padding:28px 26px; box-shadow:0 10px 30px rgba(36,27,18,.07); transition:transform 260ms ease, box-shadow 260ms ease; }
.zp2-card:hover{ transform:translateY(-6px); box-shadow:0 22px 44px rgba(36,27,18,.14); }
.zp2-card .ic{ font-size:32px; line-height:1; margin-bottom:16px; display:block; }
.zp2-card h3{ font-size:19px; line-height:1.2; color:var(--zpop-green-deep); }
.zp2-card p{ font-family:var(--font-body); font-size:14.5px; line-height:1.65; color:var(--stone); margin-top:10px; }
.zp2-card.feature{ background:var(--zpop-green-deep); } .zp2-card.feature h3{ color:var(--zpop-yellow); } .zp2-card.feature p{ color:#E2D8BF; }
.zp2-dark .zp2-card{ background:rgba(255,255,255,.07); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.zp2-dark .zp2-card h3{ color:#fff; } .zp2-dark .zp2-card p{ color:#D9CBB0; }
.zp2-dark .zp2-card:hover{ background:rgba(255,255,255,.11); box-shadow:inset 0 0 0 1px rgba(255,199,44,.5); }
.zp2-tag{ display:inline-block; font-family:var(--font-body); font-weight:800; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--zpop-red); margin-bottom:12px; }
.zp2-dark .zp2-tag{ color:var(--zpop-yellow); }

/* callout band */
.zp2-callout{ margin-top:34px; background:var(--zpop-yellow); color:var(--ink); border-radius:26px; padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,44px); display:flex; gap:clamp(16px,3vw,40px); align-items:center; flex-wrap:wrap; }
.zp2-callout b{ font-family:var(--font-display); font-size:clamp(20px,2vw,26px); color:var(--zpop-green-deep); flex:0 0 auto; }
.zp2-callout span{ font-family:var(--font-body); font-weight:600; font-size:16px; line-height:1.6; flex:1 1 320px; }

/* big numbers */
.zp2-stats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.zp2-stat{ background:var(--zpop-green-deep); color:#fff; border-radius:26px; padding:30px 28px; }
.zp2-stat .n{ font-family:var(--font-display); font-weight:700; font-size:clamp(34px,4.2vw,54px); line-height:1; color:var(--zpop-yellow); }
.zp2-stat .l{ font-family:var(--font-body); font-weight:800; font-size:15px; margin-top:12px; }
.zp2-stat .s{ font-family:var(--font-body); font-size:13px; color:#bfb294; margin-top:6px; line-height:1.5; }
.zp2-stats.light .zp2-stat{ background:#fff; box-shadow:0 10px 30px rgba(36,27,18,.07); }
.zp2-stats.light .zp2-stat .n{ color:var(--zpop-red); } .zp2-stats.light .l{ color:var(--zpop-green-deep); } .zp2-stats.light .s{ color:var(--stone); }
@media (max-width:760px){ .zp2-stats{ grid-template-columns:1fr; } }

/* people */
.zp2-person{ display:flex; gap:18px; align-items:flex-start; }
.zp2-person .av{ flex:0 0 52px; height:52px; border-radius:50%; background:var(--zpop-yellow); color:var(--zpop-green-deep); display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:19px; }
.zp2-person h3{ font-size:18px; } .zp2-person .role{ font-family:var(--font-body); font-weight:700; font-size:13px; color:var(--zpop-red); margin-top:3px; }
.zp2-founder{ background:var(--zpop-green-deep); color:#fff; border-radius:30px; padding:clamp(26px,3.4vw,48px); }
.zp2-founder h3{ color:var(--zpop-yellow); font-size:clamp(22px,2.6vw,30px); }
.zp2-founder p{ font-family:var(--font-body); font-size:16px; line-height:1.7; color:#E2D8BF; margin-top:14px; max-width:46em; }

/* what's next list */
.zp2-next{ list-style:none; display:flex; flex-direction:column; gap:16px; margin-top:26px; }
.zp2-next li{ display:flex; gap:14px; font-family:var(--font-body); font-size:16px; line-height:1.55; color:var(--stone); }
.zp2-next li::before{ content:""; flex:0 0 14px; height:14px; margin-top:6px; border-radius:50%; background:var(--zpop-green); }
.zp2-bignum{ background:var(--zpop-green-deep); color:#fff; border-radius:30px; padding:clamp(30px,3.6vw,52px); text-align:center; }
.zp2-bignum .n{ font-family:var(--font-display); font-weight:700; font-size:clamp(64px,8vw,112px); line-height:.95; color:var(--zpop-yellow); }
.zp2-bignum .l{ font-family:var(--font-body); font-size:16px; color:#D9CBB0; margin-top:12px; }
.zp2-bignum img{ width:150px; height:auto; margin:22px auto 0; display:block; }

/* final CTA */
.zp2-final{ background:var(--zpop-yellow); text-align:center; padding:clamp(64px,8vw,110px) 0; }
.zp2-final h2{ font-size:clamp(34px,5vw,64px); line-height:1.02; color:var(--zpop-green-deep); }
.zp2-final p{ font-family:var(--font-body); font-weight:600; font-size:18px; color:var(--ink); max-width:34em; margin:16px auto 0; line-height:1.6; }
.zp2-final .zp2-cta{ justify-content:center; }

/* ======================================================== FRANCHISE ONLY ==== */
.zp2-pill-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.zp2-pill{ background:rgba(255,255,255,.09); box-shadow:inset 0 0 0 1px rgba(255,199,44,.55); border-radius:999px; padding:10px 18px; font-family:var(--font-body); font-weight:700; font-size:13.5px; color:#fff; }
.zp2-pill b{ color:var(--zpop-yellow); }
@media (max-width:900px){ .zp2-pill-row{ justify-content:center; } }

.zp2-format{ background:#fff; border-radius:30px; overflow:hidden; box-shadow:0 14px 40px rgba(36,27,18,.09); display:flex; flex-direction:column; }
.zp2-format header{ background:var(--zpop-green-deep); padding:24px 30px; }
.zp2-format header .k{ font-family:var(--font-body); font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--zpop-yellow); }
.zp2-format header h3{ color:#fff; font-size:clamp(28px,3vw,38px); margin-top:6px; }
.zp2-format .bd{ padding:28px 30px 32px; display:flex; flex-direction:column; gap:12px; flex:1; }
.zp2-format .area{ font-family:var(--font-display); font-weight:700; font-size:clamp(28px,3vw,38px); color:var(--zpop-green-deep); line-height:1.05; }
.zp2-format .lbl{ font-family:var(--font-body); font-size:13px; color:var(--stone); margin-top:-6px; }
.zp2-format hr{ border:0; height:1px; background:rgba(36,27,18,.12); margin:6px 0; }
.zp2-format .fee{ font-family:var(--font-display); font-weight:700; font-size:clamp(20px,2vw,25px); color:var(--zpop-green-deep); }
.zp2-format .fee-note{ font-family:var(--font-body); font-style:italic; font-size:13px; color:var(--stone); margin-top:-6px; }
.zp2-format p{ font-family:var(--font-body); font-size:15px; line-height:1.65; color:var(--stone); }
.zp2-common{ margin-top:24px; background:var(--zpop-green-deep); border-radius:26px; padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,44px); color:#fff; }
.zp2-common h3{ color:var(--zpop-yellow); font-size:20px; }
.zp2-common ul{ list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 36px; margin-top:16px; }
.zp2-common li{ font-family:var(--font-body); font-size:15px; line-height:1.5; color:#E9DEC5; padding-left:22px; position:relative; }
.zp2-common li::before{ content:"✓"; position:absolute; left:0; color:var(--zpop-yellow); font-weight:800; }
@media (max-width:700px){ .zp2-common ul{ grid-template-columns:1fr; } }

.zp2-roles{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.zp2-role{ background:rgba(255,255,255,.07); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); border-radius:28px; padding:clamp(24px,3vw,40px); }
.zp2-role h3{ color:var(--zpop-yellow); font-size:26px; text-align:center; margin-bottom:20px; }
.zp2-role ul{ list-style:none; display:flex; flex-direction:column; gap:14px; }
.zp2-role li{ font-family:var(--font-body); font-size:15.5px; line-height:1.5; color:#E9DEC5; padding-left:22px; position:relative; }
.zp2-role li::before{ content:""; position:absolute; left:0; top:8px; width:8px; height:8px; border-radius:50%; background:var(--zpop-yellow); }
.zp2-team{ margin-top:22px; background:#fff; border-radius:26px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); text-align:center; }
.zp2-team > div{ padding:26px 18px; }
.zp2-team > div + div{ border-left:1px solid rgba(36,27,18,.1); }
.zp2-team .n{ font-family:var(--font-display); font-weight:700; font-size:clamp(30px,3.4vw,44px); color:var(--zpop-green-deep); line-height:1; }
.zp2-team .r{ font-family:var(--font-body); font-weight:800; font-size:14px; color:var(--zpop-green-deep); margin-top:8px; }
.zp2-team .d{ font-family:var(--font-body); font-size:13px; color:var(--stone); margin-top:4px; }
@media (max-width:820px){ .zp2-roles{ grid-template-columns:1fr; } .zp2-team{ grid-template-columns:1fr; } .zp2-team > div + div{ border-left:0; border-top:1px solid rgba(36,27,18,.1); } }

/* economics */
.zp2-econ{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(22px,3vw,44px); align-items:start; }
.zp2-invest{ display:flex; flex-direction:column; gap:16px; }
.zp2-invest .box{ background:rgba(255,255,255,.07); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); border-radius:24px; padding:24px 26px; }
.zp2-invest .box .k{ font-family:var(--font-body); font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#bfb294; }
.zp2-invest .box .n{ font-family:var(--font-display); font-weight:700; font-size:clamp(34px,4vw,48px); color:var(--zpop-yellow); line-height:1.05; margin-top:6px; }
.zp2-invest .box .s{ font-family:var(--font-body); font-size:13.5px; color:#D9CBB0; margin-top:6px; }
.zp2-cum{ background:var(--zpop-yellow); color:var(--ink); border-radius:24px; padding:24px 26px; }
.zp2-cum .k{ font-family:var(--font-body); font-weight:800; font-size:13px; }
.zp2-cum .n{ font-family:var(--font-display); font-weight:700; font-size:clamp(22px,2.6vw,32px); color:var(--zpop-green-deep); margin-top:8px; line-height:1.2; }
.zp2-cum .s{ font-family:var(--font-body); font-style:italic; font-size:13.5px; margin-top:12px; line-height:1.55; }
.zp2-charts{ display:flex; flex-direction:column; gap:22px; }
.zp2-chart{ background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); border-radius:24px; padding:22px 24px 18px; }
.zp2-chart h3{ font-family:var(--font-body); font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#D9CBB0; }
.zp2-bars{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(8px,1.6vw,18px); align-items:end; height:190px; margin-top:16px; }
.zp2-bar{ display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; }
.zp2-bar .v{ font-family:var(--font-body); font-weight:800; font-size:13px; color:#fff; margin-bottom:6px; }
.zp2-bar .b{ width:100%; border-radius:10px 10px 0 0; background:var(--zpop-yellow); height:var(--h); min-height:6px; }
.zp2-chart.cafe .zp2-bar .b{ background:#7fb08a; }
.zp2-xl{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(8px,1.6vw,18px); margin-top:8px; }
.zp2-xl span{ text-align:center; font-family:var(--font-body); font-size:12px; color:#bfb294; }
@media (max-width:900px){ .zp2-econ{ grid-template-columns:1fr; } }

/* support steps */
.zp2-steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; counter-reset:none; }
.zp2-step{ background:rgba(255,255,255,.07); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); border-radius:26px; padding:28px 26px; transition:background 240ms ease, transform 240ms ease; }
.zp2-step:hover{ background:rgba(255,255,255,.11); transform:translateY(-5px); }
.zp2-step .n{ font-family:var(--font-display); font-weight:700; font-size:34px; color:var(--zpop-yellow); line-height:1; }
.zp2-step h3{ color:#fff; font-size:19px; margin-top:14px; }
.zp2-step p{ font-family:var(--font-body); font-size:14.5px; line-height:1.65; color:#D9CBB0; margin-top:10px; }
@media (max-width:1000px){ .zp2-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .zp2-steps{ grid-template-columns:1fr; } }

/* partner profile */
.zp2-profile{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.zp2-ideal{ background:var(--zpop-green-deep); border-radius:28px; padding:clamp(24px,3vw,40px); color:#fff; }
.zp2-ideal h3{ color:var(--zpop-yellow); font-size:24px; margin-bottom:18px; }
.zp2-ideal ul{ list-style:none; display:flex; flex-direction:column; gap:14px; }
.zp2-ideal li{ font-family:var(--font-body); font-size:15.5px; line-height:1.5; color:#E9DEC5; padding-left:22px; position:relative; }
.zp2-ideal li::before{ content:""; position:absolute; left:0; top:8px; width:8px; height:8px; border-radius:50%; background:var(--zpop-yellow); }
.zp2-duties{ display:flex; flex-direction:column; gap:14px; }
.zp2-duty{ background:#fff; border-radius:22px; padding:20px 24px; box-shadow:0 8px 24px rgba(36,27,18,.06); }
.zp2-duty h3{ font-size:17px; color:var(--zpop-green-deep); }
.zp2-duty p{ font-family:var(--font-body); font-size:14px; line-height:1.6; color:var(--stone); margin-top:6px; }
@media (max-width:860px){ .zp2-profile{ grid-template-columns:1fr; } }

.zp2-contact{ margin-top:34px; background:var(--zpop-green-deep); color:#fff; border-radius:26px; padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,44px); }
.zp2-contact .k{ font-family:var(--font-body); font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--zpop-yellow); }
.zp2-contact p{ font-family:var(--font-body); font-size:15px; line-height:1.7; color:#E9DEC5; margin-top:10px; }
.zp2-contact a{ color:#fff; font-weight:800; text-decoration:underline; text-decoration-color:var(--zpop-yellow); text-underline-offset:3px; }
.zp2-contact small{ display:block; font-size:12.5px; color:#bfb294; margin-top:10px; }
.zp2-disc{ font-family:var(--font-body); font-size:12.5px; color:var(--stone); text-align:center; max-width:60em; margin:26px auto 0; line-height:1.6; }
.zp2-disc a{ color:var(--zpop-red); font-weight:700; }
.zp2-submit-note{ margin-top:16px; }

@media (prefers-reduced-motion:reduce){
  #site-nav, #site-nav .nav-logo-img{ transition:none; }
  .zp2-card, .zp2-step{ transition:none; }
  .zp2-card:hover, .zp2-step:hover{ transform:none; }
}
