/* ============================================
   YELLOWLIDZ — shared stylesheet
   Palette + type intentionally mirror the black /
   gold-yellow look used across the reference site.
   ============================================ */
:root{
  --black:#111111;
  --black-2:#1a1a1a;
  --gold:#e8b923;
  --gold-dark:#c79a10;
  --cream:#faf8f2;
  --gray:#666;
  --line:#e8e5db;
  --green:#1e8e5a;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Poppins','Helvetica Neue',Arial,sans-serif;
  color:var(--black);
  background:var(--cream);
  line-height:1.5;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
ul{list-style:none;}
button{font-family:inherit;}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}

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

/* Scroll progress */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-dark));width:0%;z-index:100;}

/* Top utility bar — contact + social, sits above the sticky main nav */
.nav-utility{
  background:var(--black-2);color:#bbb;
  border-bottom:1px solid #2a2a2a;
  font-size:12.5px;font-weight:500;letter-spacing:.2px;
}
.nav-utility-inner{
  max-width:1140px;margin:0 auto;padding:8px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.nav-utility-left{color:var(--gold);font-weight:700;}
.nav-utility-left span{color:#ccc;font-weight:500;}
.nav-utility-right{display:flex;align-items:center;gap:20px;}
.nav-utility-phone{color:#ddd;font-weight:700;display:flex;align-items:center;gap:6px;transition:color .2s ease;white-space:nowrap;}
.nav-utility-phone:hover{color:var(--gold);}
.nav-utility-phone svg{width:13px;height:13px;flex-shrink:0;}
.nav-utility-social{color:#ccc;display:flex;align-items:center;transition:color .2s ease;}
.nav-utility-social:hover{color:var(--gold);}
.nav-utility-social svg{width:15px;height:15px;}
@media (max-width:640px){ .nav-utility-left{display:none;} }
@media (max-width:420px){ .nav-utility-social{display:none;} }

header{
  position:sticky;top:0;z-index:50;
  background:var(--black);
  border-bottom:2px solid var(--gold);
  transition:box-shadow .25s ease;
}
header.scrolled{box-shadow:0 10px 26px rgba(0,0,0,.45);}
.nav{
  position:relative;
  display:flex;align-items:center;gap:20px;
  padding:8px 24px;max-width:1140px;margin:0 auto;
  transition:padding .25s ease;
}
header.scrolled .nav{padding:6px 24px;}
.logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;letter-spacing:1px;font-size:20px;flex-shrink:0;}
.logo .lid{
  width:26px;height:26px;border-radius:50%;
  background:var(--gold);
  border:3px solid #fff;
  transition:transform .3s ease;
}
.logo:hover .lid{transform:rotate(20deg) scale(1.1);}
.logo img{height:92px;width:auto;max-width:none;display:block;transition:height .25s ease,transform .3s ease;}
.logo:hover img{transform:scale(1.05);}
header.scrolled .logo img{height:64px;}
@media (max-width:600px){ .logo img{height:56px;} }
.logo-text{
  font-size:24px;font-weight:800;letter-spacing:.5px;color:#fff;line-height:1;
  transition:font-size .25s ease;
}
header.scrolled .logo-text{font-size:19px;}
@media (max-width:600px){ .logo-text{font-size:17px;} }
.footer-inner .logo img{height:140px;}
.footer-inner .logo-text{font-size:30px;}

.nav-links{display:flex;align-items:center;gap:22px;flex:1;justify-content:center;}
.nav-links li a{color:#eee;font-size:14px;font-weight:600;letter-spacing:.3px;position:relative;padding-bottom:2px;white-space:nowrap;}
.nav-links li a::after{
  content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--gold);
  transition:width .25s ease;
}
.nav-links li a:hover{color:var(--gold);}
.nav-links li a:hover::after,
.nav-links li a.active::after{width:100%;}
.nav-links li a.active{color:var(--gold);}

.nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0;}

.btn-nav{
  background:var(--gold);color:var(--black);
  padding:10px 18px;border-radius:4px;font-weight:700;font-size:14px;
  flex-shrink:0;white-space:nowrap;
  transition:background .2s ease, transform .15s ease;
}
.btn-nav:hover{background:var(--gold-dark);transform:translateY(-2px);}

/* Hamburger toggle — mobile only */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:32px;height:32px;flex-shrink:0;
  background:none;border:none;cursor:pointer;padding:0;
}
.nav-toggle span{display:block;width:100%;height:2px;background:#fff;border-radius:2px;transition:transform .25s ease,opacity .2s ease;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:900px){
  .nav{justify-content:space-between;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--black);
    border-bottom:2px solid var(--gold);
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav-links.open{max-height:420px;}
  .nav-links li{width:100%;}
  .nav-links li a{display:block;padding:14px 24px;border-top:1px solid #262626;}
  .nav-links li a::after{display:none;}
}
@media (max-width:380px){ .btn-nav{padding:8px 12px;font-size:13px;} }

/* HERO */
.hero{
  background:var(--black);
  color:#fff;
  padding:80px 0 0;
  position:relative;
  overflow:hidden;
}
.hero::before, .hero::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(60px);
}
.hero::before{
  width:420px;height:420px;background:rgba(232,185,35,.14);top:-140px;right:-100px;
  animation:drift1 10s ease-in-out infinite alternate;
}
.hero::after{
  width:320px;height:320px;background:rgba(232,185,35,.08);bottom:-120px;left:10%;
  animation:drift2 12s ease-in-out infinite alternate;
}
@keyframes drift1{0%{transform:translate(0,0);}100%{transform:translate(-30px,20px);}}
@keyframes drift2{0%{transform:translate(0,0);}100%{transform:translate(24px,-16px);}}
/* Photo layer: set via inline background-image on .hero (falls back to solid black if the file is missing) */
.hero-overlay{position:absolute;inset:0;background:rgba(17,17,17,.82);z-index:1;pointer-events:none;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding-bottom:56px;position:relative;z-index:2;}

@keyframes fadeInUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--gold);font-weight:700;font-size:13px;letter-spacing:1.5px;margin-bottom:18px;
  background:rgba(232,185,35,0.1);border:1px solid rgba(232,185,35,0.35);
  padding:6px 12px;border-radius:20px;
  animation:fadeInUp .7s ease both;
}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);display:inline-block;animation:pulseDot 1.6s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(1.4);}}
.hero h1{
  font-size:58px;line-height:1.03;margin-bottom:20px;font-weight:800;letter-spacing:-1.2px;
  animation:fadeInUp .7s .1s ease both;
}
.hero h1 span{color:var(--gold);}
.hero p.lead{max-width:520px;color:#d9d9d9;font-size:18px;margin-bottom:10px;animation:fadeInUp .7s .2s ease both;}
.hero .sub{font-size:15px;color:#a8a8a8;margin-bottom:30px;animation:fadeInUp .7s .3s ease both;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;animation:fadeInUp .7s .4s ease both;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:16px 30px;font-weight:700;font-size:14.5px;letter-spacing:.2px;
  border:2px solid transparent;transition:transform .15s ease,background .15s ease,box-shadow .2s ease,clip-path .15s ease;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
  border-radius:2px;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--gold);color:var(--black);box-shadow:0 8px 24px rgba(232,185,35,.25);}
.btn-primary:hover{background:var(--gold-dark);box-shadow:0 12px 30px rgba(232,185,35,.35);}
.btn-outline{border-color:rgba(255,255,255,.4);color:#fff;}
.btn-outline:hover{background:#fff;color:var(--black);}
.btn-lg{padding:18px 34px;font-size:15.5px;}
.btn-block{width:100%;}

.trust-row{display:flex;flex-wrap:wrap;gap:22px;align-items:center;color:#ccc;font-size:13px;animation:fadeInUp .7s .5s ease both;}
.trust-row .item{display:flex;align-items:center;gap:7px;}
.trust-row svg{width:16px;height:16px;flex-shrink:0;}
.trust-row .stars-inline{color:var(--gold);letter-spacing:1px;font-size:13px;}

.hero-visual{position:relative;display:flex;justify-content:center;align-items:center;height:380px;z-index:2;animation:fadeInUp .9s .35s ease both;}
.crate-stack{position:relative;width:260px;animation:float 5s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
.hero-photo-card{
  width:260px;height:320px;border-radius:18px;overflow:hidden;
  box-shadow:0 24px 50px rgba(0,0,0,.45);border:4px solid rgba(255,255,255,.92);
}
.hero-photo-card img{width:100%;height:100%;object-fit:cover;display:block;}
.badge-float{
  position:absolute;background:#fff;color:var(--black);border-radius:10px;padding:10px 14px;
  font-size:12px;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.35);display:flex;align-items:center;gap:8px;
}
.badge-float.b1{top:0;right:-10px;animation:float 4s ease-in-out infinite;animation-delay:.3s;}
.badge-float.b2{bottom:20px;left:-24px;animation:float 4.5s ease-in-out infinite;animation-delay:.6s;}
.badge-float .num{font-size:16px;color:var(--green);}
.quote-card{
  position:absolute;z-index:3;background:#fff;color:var(--black);border-radius:14px;
  padding:20px 22px;box-shadow:0 24px 50px rgba(0,0,0,.45);width:196px;
  bottom:-6px;right:-8px;
  animation:fadeInUp .8s .55s ease both, float 5.5s ease-in-out infinite;
}
.quote-card .qc-label{font-size:10.5px;font-weight:800;letter-spacing:1px;color:var(--gold-dark);text-transform:uppercase;}
.quote-card .qc-price{font-size:28px;font-weight:800;line-height:1.1;margin:2px 0 8px;}
.quote-card .qc-price span{font-size:13px;font-weight:600;color:var(--gray);}
.quote-card .qc-stars{color:var(--gold-dark);font-size:13px;letter-spacing:1px;margin-bottom:10px;}
.quote-card .qc-list{border-top:1px solid var(--line);padding-top:10px;}
.quote-card .qc-list div{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#333;padding:2px 0;}
.quote-card .qc-list svg{width:13px;height:13px;color:var(--green);flex-shrink:0;}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .hero h1{font-size:38px;letter-spacing:-.8px;}
  .hero-visual{height:260px;}
  .hero-photo-card{width:190px;height:230px;}
  .quote-card{width:180px;padding:16px 18px;}
}

/* Marquee trust ticker */
.marquee-wrap{background:var(--black);border-top:1px solid #262626;border-bottom:1px solid #262626;overflow:hidden;padding:14px 0;}
.marquee-track{display:flex;width:max-content;animation:marquee 24s linear infinite;will-change:transform;}
.marquee-track .marquee-set{display:flex;align-items:center;}
.marquee-track span{
  display:inline-flex;align-items:center;gap:10px;color:var(--gold);font-weight:700;font-size:12.5px;
  letter-spacing:1.5px;text-transform:uppercase;padding:0 26px;white-space:nowrap;
}
.marquee-track span::after{content:"●";color:#3a3a3a;margin-left:26px;font-size:8px;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* Page banner (inner pages) */
.page-banner{
  background:var(--black);color:#fff;padding:64px 0;text-align:center;position:relative;overflow:hidden;
}
.page-banner::before{
  content:"";position:absolute;width:360px;height:360px;border-radius:50%;
  background:rgba(232,185,35,.12);top:-160px;right:-80px;filter:blur(60px);
}
/* Photo layer: set via inline background-image on .page-banner (falls back to solid black if missing) */
.page-banner::after{content:"";position:absolute;inset:0;background:rgba(17,17,17,.75);z-index:1;}
.page-banner .wrap{position:relative;z-index:2;}
.page-banner h1{font-size:38px;font-weight:800;margin-bottom:12px;animation:fadeInUp .7s .1s ease both;}
.page-banner p{color:#ccc;max-width:560px;margin:0 auto;font-size:16px;animation:fadeInUp .7s .2s ease both;}
.page-banner .eyebrow{animation:fadeInUp .7s ease both;}

/* Stats band */
.stats-band{background:var(--gold);padding:26px 0;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;}
.stats-grid .stat-num{font-size:28px;font-weight:800;color:var(--black);}
.stats-grid .stat-label{font-size:12px;color:#4a3d00;font-weight:700;letter-spacing:.3px;text-transform:uppercase;}
@media (max-width:700px){ .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:22px;} }

section{padding:80px 0;}
.section-head{text-align:center;max-width:620px;margin:0 auto 50px;}
.eyebrow-dark{color:var(--gold-dark);font-weight:700;font-size:13px;letter-spacing:2px;margin-bottom:12px;}
.section-head h2{font-size:36px;font-weight:800;letter-spacing:-.7px;}
.section-head p.desc{color:var(--gray);margin-top:12px;font-size:16px;}

/* Reveal-on-scroll utility */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,.8,.24,1), transform .7s cubic-bezier(.16,.8,.24,1);}
.reveal.in-view{opacity:1;transform:translateY(0);}
.stagger > *{opacity:0;transform:translateY(24px);transition:opacity .6s ease, transform .6s ease;}
.stagger.in-view > *{opacity:1;transform:translateY(0);}
.stagger > *:nth-child(1){transition-delay:.05s;}
.stagger > *:nth-child(2){transition-delay:.15s;}
.stagger > *:nth-child(3){transition-delay:.25s;}
.stagger > *:nth-child(4){transition-delay:.35s;}
.stagger > *:nth-child(5){transition-delay:.45s;}
.stagger > *:nth-child(6){transition-delay:.55s;}
noscript .reveal, noscript .stagger > *{opacity:1 !important;transform:none !important;}

/* Value props */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.value-card{
  background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:28px;
  transition:transform .2s ease, box-shadow .2s ease, border-left-color .2s ease;
}
.value-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(0,0,0,.08);border-left-color:var(--gold);}
.value-icon{
  width:46px;height:46px;border-radius:10px;background:#fdf3d6;color:var(--gold-dark);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
  transition:transform .3s ease, background .3s ease;
}
.value-card:hover .value-icon{transform:scale(1.12) rotate(-4deg);background:var(--gold);color:var(--black);}
.value-icon svg{width:24px;height:24px;}
.value-card h3{font-size:17px;margin-bottom:8px;font-weight:700;}
.value-card p{color:var(--gray);font-size:14px;}
@media (max-width:780px){ .value-grid{grid-template-columns:1fr;} }

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative;}
.steps.steps-4{grid-template-columns:repeat(4,1fr);}
.steps::before{
  content:"";position:absolute;top:26px;left:16.6%;right:16.6%;
  border-top:2px dashed var(--line);z-index:0;
}
.steps.steps-4::before{left:12.5%;right:12.5%;}
.step{text-align:center;padding:0 10px;position:relative;z-index:1;}
.step-num{
  width:52px;height:52px;border-radius:50%;background:var(--black);color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;
  margin:0 auto 18px;border:3px solid var(--gold);transition:transform .3s ease;
}
.step:hover .step-num{transform:scale(1.1);}
.step h3{font-size:19px;margin-bottom:10px;font-weight:700;}
.step p{color:var(--gray);font-size:15px;}
@media (max-width:780px){ .steps, .steps.steps-4{grid-template-columns:1fr;} .steps::before{display:none;} }

/* Comparison table */
.compare-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:820px;margin:0 auto;}
table.compare{width:100%;border-collapse:collapse;}
table.compare th, table.compare td{padding:16px 18px;text-align:center;font-size:14px;border-bottom:1px solid var(--line);}
table.compare th{background:var(--black);color:#fff;font-size:13px;letter-spacing:.3px;}
table.compare th:first-child, table.compare td:first-child{text-align:left;font-weight:700;}
table.compare th.highlight{background:var(--gold);color:var(--black);}
table.compare td.highlight{background:#fffbea;font-weight:700;color:var(--green);}
table.compare tr{transition:background .2s ease;}
table.compare tr:hover{background:#fafafa;}
table.compare tr:last-child td{border-bottom:none;}
.check{color:var(--green);font-weight:800;}
.cross{color:#c0392b;font-weight:800;}
@media (max-width:700px){ table.compare th, table.compare td{font-size:12px;padding:10px 8px;} }

/* Pricing */
.pricing{background:var(--black);color:#fff;}
.pricing .section-head h2{color:#fff;}
.pricing .section-head p.desc{color:#bbb;}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.plan{
  background:var(--black-2);border:1px solid #2c2c2c;border-left:3px solid #2c2c2c;border-radius:8px;padding:32px 26px;
  display:flex;flex-direction:column;transition:border-color .2s ease, transform .25s ease, box-shadow .25s ease;
}
.plan:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.4);border-color:#444;}
.plan.featured{border-color:var(--gold);border-left-color:var(--gold);position:relative;}
.plan.featured:hover{border-color:var(--gold-dark);}
/* No size scaling on the featured card on purpose — a transform:scale changes
   how big it looks but not its actual layout height, so its button always
   ended up sitting slightly lower than the other two cards' buttons no
   matter where the scale was anchored. Gold border + "MOST POPULAR" ribbon
   is enough to make it stand out while keeping every button perfectly
   aligned in a row. */
.plan.featured::before{
  content:"MOST POPULAR";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:var(--black);font-size:11px;font-weight:800;letter-spacing:1px;
  padding:5px 12px;border-radius:20px;
}
.plan-name{font-weight:800;font-size:18px;margin-bottom:4px;}
.plan-best{color:#999;font-size:13px;margin-bottom:20px;}
.plan-price{font-size:36px;font-weight:800;color:var(--gold);margin-bottom:2px;}
.plan-price span{font-size:14px;color:#999;font-weight:500;}
.plan-list{margin:22px 0 18px;flex-grow:1;}
.plan-list li{padding:7px 0;font-size:14px;color:#ddd;padding-left:22px;position:relative;}
.plan-list li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:800;}
.plan-addon-badge{
  display:inline-flex;align-items:baseline;gap:6px;align-self:flex-start;
  background:rgba(232,185,35,.12);border:1px solid rgba(232,185,35,.45);
  color:var(--gold);font-size:12.5px;font-weight:700;letter-spacing:.2px;
  padding:7px 13px;border-radius:20px;margin-bottom:20px;
}
.plan-addon-badge strong{color:#fff;font-size:14px;}
.plan .btn-primary{text-align:center;}
@media (max-width:900px){ .plans-6{grid-template-columns:repeat(2,1fr);} }
@media (max-width:780px){ .plans{grid-template-columns:1fr;} }

/* 5-tier pricing grid: flexbox instead of grid so an odd last row (2 cards)
   centers itself under the row above instead of sitting left-aligned with an
   empty gap on the right, the way a 3-column CSS grid would leave it. */
.plans-5{display:flex;flex-wrap:wrap;justify-content:center;}
.plans-5 .plan{flex:0 1 340px;}
@media (max-width:900px){ .plans-5 .plan{flex-basis:calc(50% - 12px);} }
@media (max-width:780px){ .plans-5 .plan{flex-basis:100%;} }
.addon{
  max-width:640px;margin:50px auto 0;text-align:center;
  border-top:1px solid #2c2c2c;padding-top:36px;
}
.addon h4{color:var(--gold);font-size:14px;letter-spacing:1px;margin-bottom:8px;}
.addon p{color:#ccc;font-size:15px;}
.assurance-row{
  display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin-top:44px;
  padding-top:30px;border-top:1px solid #2c2c2c;
}
.assurance-row .item{display:flex;align-items:center;gap:8px;color:#ccc;font-size:13px;font-weight:600;}
.assurance-row svg{width:18px;height:18px;color:var(--gold);}

/* Fees & Policies section */
.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:36px;}
.policy-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:14px;padding:26px 28px;}
.policy-card h3{font-size:17px;font-weight:800;margin-bottom:10px;}
.policy-card p{color:var(--gray);font-size:14.5px;line-height:1.6;margin-bottom:10px;}
.policy-card p.fine{color:#999;font-size:12.5px;margin-top:8px;margin-bottom:0;}
.policy-list{margin:10px 0;padding:0;}
.policy-list li{list-style:none;padding:6px 0 6px 22px;font-size:14px;color:var(--black);position:relative;}
.policy-list li::before{content:"✓";position:absolute;left:0;color:var(--gold-dark);font-weight:800;}
.policy-table{width:100%;border-collapse:collapse;margin:12px 0 4px;}
.policy-table th,.policy-table td{padding:8px 10px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--line);}
.policy-table th{font-weight:700;color:var(--black);}
.policy-table td:last-child, .policy-table th:last-child{text-align:right;}
@media (max-width:780px){ .policy-grid{grid-template-columns:1fr;} }

/* Campus pricing + bundles */
.campus-tag{
  display:inline-block;background:#fdf3d6;color:var(--gold-dark);font-weight:700;font-size:12px;
  letter-spacing:.5px;padding:6px 14px;border-radius:20px;margin:0 auto 20px;text-align:center;
}
.campus-tag-wrap{text-align:center;}
.bundle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.bundle-card{
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--line);border-radius:8px;padding:26px;text-align:center;
  transition:transform .2s ease, box-shadow .2s ease, border-top-color .2s ease;
}
.bundle-card:hover{transform:translateY(-5px);box-shadow:0 16px 30px rgba(0,0,0,.07);border-top-color:var(--gold);}
.bundle-card h4{font-size:14px;letter-spacing:.5px;color:var(--gray);margin-bottom:10px;text-transform:uppercase;}
.bundle-card .price{font-size:28px;font-weight:800;color:var(--black);margin-bottom:6px;}
.bundle-card .save{color:var(--green);font-weight:700;font-size:13px;margin-bottom:18px;}
@media (max-width:780px){ .bundle-grid{grid-template-columns:1fr;} }
.winter-hold{
  max-width:560px;margin:56px auto 0;text-align:center;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:34px;
}
.winter-hold h3{font-size:20px;margin-bottom:8px;font-weight:800;}
.winter-hold .amt{font-size:30px;font-weight:800;color:var(--gold-dark);margin:8px 0;}
.winter-hold p{color:var(--gray);font-size:14px;}

/* Reviews */
.reviews{background:var(--cream);}
.review-summary{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:44px;flex-wrap:wrap;}
.review-summary .big-num{font-size:40px;font-weight:800;}
.review-summary .stars{color:var(--gold-dark);font-size:20px;letter-spacing:2px;}
.review-summary .meta{color:var(--gray);font-size:13px;}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.review{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:26px;transition:transform .2s ease, box-shadow .2s ease, border-left-color .2s ease;}
.review:hover{transform:translateY(-5px);box-shadow:0 16px 30px rgba(0,0,0,.07);border-left-color:var(--gold);}
.stars{color:var(--gold-dark);letter-spacing:2px;margin-bottom:12px;font-size:16px;}
.review p{font-size:14px;color:#444;margin-bottom:16px;}
.review-who{display:flex;align-items:center;gap:10px;}
.avatar{
  width:36px;height:36px;border-radius:50%;background:var(--black);color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;
}
.review cite{font-size:13px;color:#888;font-style:normal;font-weight:700;display:block;}
.review .role{font-size:12px;color:#aaa;}
@media (max-width:780px){ .review-grid{grid-template-columns:1fr;} }

/* Guarantee */
.guarantee{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.guarantee-grid{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;max-width:820px;margin:0 auto;}
.guarantee-badge{
  width:120px;height:120px;border-radius:50%;background:var(--black);color:var(--gold);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  border:4px solid var(--gold);font-weight:800;font-size:12px;line-height:1.3;flex-shrink:0;
  animation:spinIn 1s ease both;
}
@keyframes spinIn{from{opacity:0;transform:rotate(-40deg) scale(.7);}to{opacity:1;transform:rotate(0) scale(1);}}
.guarantee-badge span{display:block;font-size:22px;}
.guarantee-text h3{font-size:22px;margin-bottom:10px;font-weight:800;}
.guarantee-text p{color:var(--gray);font-size:15px;}
@media (max-width:700px){ .guarantee-grid{grid-template-columns:1fr;text-align:center;} .guarantee-badge{margin:0 auto;} }

/* About page */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;}
.about-photo{
  aspect-ratio:4/5;border-radius:16px;background:linear-gradient(160deg,#222,#0c0c0c);
  border:1px solid #2c2c2c;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.about-photo .crate-stack{transform:scale(1.3);}
.about-copy h2{font-size:30px;font-weight:800;margin-bottom:16px;}
.about-copy p{color:var(--gray);font-size:15.5px;margin-bottom:16px;}
.about-copy h3{font-size:19px;font-weight:800;margin:26px 0 12px;}
.about-list li{padding:8px 0 8px 26px;position:relative;font-size:14.5px;color:#444;}
.about-list li::before{content:"✓";position:absolute;left:0;color:var(--gold-dark);font-weight:800;}
.about-tagline{font-weight:800;font-size:19px;margin:26px 0 18px;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr;} }

/* Wide feature photo — used for secondary content images */
.feature-photo{border-radius:16px;overflow:hidden;border:1px solid #2c2c2c;max-height:420px;}
.feature-photo img{width:100%;height:420px;object-fit:cover;display:block;transition:transform .5s ease;}
.feature-photo:hover img{transform:scale(1.03);}
@media (max-width:768px){
  .feature-photo{max-height:280px;}
  .feature-photo img{height:280px;}
}
@media (max-width:480px){
  .feature-photo{max-height:220px;}
  .feature-photo img{height:220px;}
}

/* Contact page */
.contact-grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:60px;}
.contact-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:26px;text-align:left;transition:transform .2s ease, box-shadow .2s ease, border-left-color .2s ease;}
.contact-card:hover{transform:translateY(-5px);box-shadow:0 16px 30px rgba(0,0,0,.07);border-left-color:var(--gold);}
.contact-card .value-icon{margin-bottom:14px;}
.contact-card h4{font-size:15px;font-weight:800;margin-bottom:6px;letter-spacing:.3px;text-transform:uppercase;color:var(--gold-dark);}
.contact-card .main-line{font-weight:700;font-size:16px;margin-bottom:6px;}
.contact-card p.sub{color:var(--gray);font-size:13.5px;}
@media (max-width:780px){ .contact-grid-cards{grid-template-columns:1fr;} }

/* FAQ (custom animated accordion, numbered) */
.faq{max-width:760px;margin:0 auto;counter-reset:faqnum;}
.faq-item{border-bottom:1px solid var(--line);counter-increment:faqnum;position:relative;padding-left:50px;}
.faq-item::before{
  content:counter(faqnum,decimal-leading-zero);position:absolute;left:0;top:16px;
  font-size:12px;font-weight:800;color:var(--gold-dark);background:#fdf3d6;
  width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;
}
.faq-q{
  width:100%;background:none;border:none;padding:20px 0;display:flex;justify-content:space-between;
  align-items:center;gap:16px;font-size:16px;font-weight:700;cursor:pointer;text-align:left;color:inherit;
}
.faq-icon{font-size:22px;color:var(--gold-dark);transition:transform .3s ease;flex-shrink:0;}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-a-inner{padding-bottom:20px;color:var(--gray);font-size:15px;}
.faq-closing{text-align:center;margin-top:44px;}
.faq-closing p{color:var(--gray);margin-bottom:18px;}
@media (max-width:560px){ .faq-item{padding-left:42px;} .faq-item::before{width:28px;height:28px;font-size:11px;top:18px;} }

/* Booking + generic forms */
.book-section{background:#fff;}
.book-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start;}
.book-info .desc{color:var(--gray);font-size:15.5px;margin:14px 0 24px;}
.book-includes li{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14.5px;color:#333;}
.book-includes svg{width:18px;height:18px;color:var(--green);flex-shrink:0;}
.book-contact-alt{margin-top:28px;display:flex;flex-direction:column;gap:10px;}
.contact-line{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--black);transition:color .2s ease;}
.contact-line svg{width:18px;height:18px;color:var(--gold-dark);flex-shrink:0;}
.contact-line:hover{color:var(--gold-dark);}
.book-form{
  background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:34px;
  position:relative;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#333;}
.field input, .field select, .field textarea{
  width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;
  font-family:inherit;font-size:14.5px;color:var(--black);transition:border-color .2s ease, box-shadow .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,185,35,.25);
}
.field textarea{resize:vertical;}
.form-fine{text-align:center;color:var(--gray);font-size:12.5px;margin-top:14px;}
/* Booking confirmation page (booking-confirmed.html) */
.confirm-icon{
  width:76px;height:76px;border-radius:50%;background:var(--green);color:#fff;font-size:36px;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;
  animation:spinIn 1s ease both;
}
.form-success{text-align:center;padding:30px 10px;}
.form-success .success-icon{
  width:56px;height:56px;border-radius:50%;background:var(--green);color:#fff;font-size:26px;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
}
.form-success h3{font-size:20px;margin-bottom:8px;font-weight:800;}
.form-success p{color:var(--gray);font-size:14.5px;}
@media (max-width:900px){ .book-grid{grid-template-columns:1fr;} }
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }

/* Booking wizard (book.html) */
#booking-wizard{background:#fff;padding:32px 0 48px;}
.wizard-progress{
  display:flex;justify-content:center;max-width:500px;margin:0 auto 54px;position:relative;
}
.wizard-progress::before{
  content:"";position:absolute;top:26px;left:12.5%;right:12.5%;height:3px;background:var(--line);z-index:0;
}
.wizard-progress-fill{
  position:absolute;top:26px;left:12.5%;height:3px;background:var(--gold);z-index:1;
  width:0%;transition:width .35s ease;
}
.wizard-dot{position:relative;z-index:2;flex:1;text-align:center;}
.wizard-dot .num{
  width:52px;height:52px;border-radius:50%;background:#fff;border:3px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;
  margin:0 auto 10px;color:var(--gray);transition:all .25s ease;
}
.wizard-dot.active .num{background:var(--black);border-color:var(--gold);color:var(--gold);transform:scale(1.08);box-shadow:0 8px 20px rgba(232,185,35,.3);}
.wizard-dot.done .num{background:var(--gold);border-color:var(--gold);color:var(--black);}
.wizard-dot .label{font-size:13px;font-weight:700;color:var(--gray);letter-spacing:.3px;}
.wizard-dot.active .label, .wizard-dot.done .label{color:var(--black);}

.wizard-panel{
  max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:52px 50px;box-shadow:0 26px 60px rgba(17,17,17,.09);
}
@media (max-width:700px){ .wizard-panel{padding:32px 22px;border-radius:16px;} }

.wizard-step{display:none;animation:fadeInUp .4s ease both;}
.wizard-step.active{display:block;}
.wizard-step-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gold-dark);font-weight:800;
  font-size:12.5px;letter-spacing:1.5px;margin-bottom:12px;text-transform:uppercase;
}
.wizard-step-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);display:inline-block;animation:pulseDot 1.6s ease-in-out infinite;}
.wizard-step h2{font-size:30px;font-weight:800;text-align:center;margin-bottom:10px;letter-spacing:-.6px;}
.wizard-sub{text-align:center;color:var(--gray);font-size:15.5px;margin-bottom:36px;}

.wizard-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:6px;}
.wizard-plan-card{
  position:relative;border:2px solid var(--line);border-radius:14px;padding:28px 18px 22px;text-align:center;cursor:pointer;
  background:#fff;transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.wizard-plan-card:hover{border-color:#ccc;transform:translateY(-4px);}
.wizard-plan-card.selected{border-color:var(--gold);box-shadow:0 16px 32px rgba(232,185,35,.25);background:#fffbea;}
.wizard-plan-card.featured::before{
  content:"MOST POPULAR";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:var(--black);font-size:10px;font-weight:800;letter-spacing:1px;
  padding:5px 10px;border-radius:20px;white-space:nowrap;
}
.wizard-check{
  position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;
  border:2px solid var(--line);background:#fff;transition:all .2s ease;
}
.wizard-plan-card.selected .wizard-check{background:var(--gold);border-color:var(--gold);}
.wizard-plan-card.selected .wizard-check::after{
  content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid var(--black);
  border-width:0 2px 2px 0;transform:rotate(45deg);
}
.wizard-plan-card .wp-name{font-weight:800;font-size:16.5px;margin:4px 0 10px;}
.wizard-plan-card .wp-price{font-weight:800;font-size:27px;color:var(--gold-dark);margin-bottom:2px;}
.wizard-plan-card .wp-price span{font-size:12.5px;color:var(--gray);font-weight:500;}
.wizard-plan-card .wp-desc{font-size:12.5px;color:var(--gray);margin-top:2px;}
.wizard-plan-card .wp-features{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);text-align:left;}
.wizard-plan-card .wp-features li{font-size:12.5px;color:#444;padding:4px 0 4px 20px;position:relative;}
.wizard-plan-card .wp-features li::before{content:"✓";position:absolute;left:0;color:var(--gold-dark);font-weight:800;}
@media (max-width:640px){ .wizard-plans{grid-template-columns:1fr;} }

.wizard-unsure-wrap{text-align:center;margin-top:22px;padding-top:22px;border-top:1px dashed var(--line);}

.wizard-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
@media (max-width:560px){ .wizard-slots{grid-template-columns:repeat(3,1fr);} }
.wizard-slot-btn{
  border:2px solid var(--line);border-radius:9px;background:#fff;padding:11px 6px;
  font-size:13.5px;font-weight:700;color:var(--black);cursor:pointer;text-align:center;
  transition:border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease;
}
.wizard-slot-btn:hover{border-color:#ccc;transform:translateY(-2px);}
.wizard-slot-btn.selected{background:var(--black);border-color:var(--black);color:var(--gold);}

/* Embedded GHL Rentals booking widget (book.html) */
.rentals-embed-wrap{width:100%;}
.rentals-embed-wrap iframe{width:100%;min-height:800px;border:none;display:block;background:#fff;overflow:hidden;}
/* Measured against a real screenshot of the live widget (~896px content at
   this width) plus a small buffer for the extra "Total" row that appears
   once a customer picks an end date. Rentals content reflows to a single,
   taller column on narrow screens, so mobile still needs more height than
   desktop — these mobile values are still an estimate (no phone screenshot
   yet); send one if the gap looks off there too. */
@media (max-width:700px){ .rentals-embed-wrap iframe{min-height:1450px;} }
@media (max-width:420px){ .rentals-embed-wrap iframe{min-height:1550px;} }

/* Calendly-style month calendar (booking wizard, Step 2) — no longer used now
   that book.html embeds the real GHL Rentals widget above, but left in place
   in case you switch back to a custom wizard later. */
.cal-widget{max-width:380px;margin:0 auto;border:1px solid var(--line);border-radius:14px;padding:18px 18px 20px;background:#fff;}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-month-label{font-weight:800;font-size:15.5px;color:var(--black);}
.cal-nav{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--black);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,border-color .2s ease;
}
.cal-nav svg{width:16px;height:16px;}
.cal-nav:hover:not(:disabled){background:var(--cream);border-color:#ccc;}
.cal-nav:disabled{opacity:.3;cursor:default;}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;}
.cal-weekdays span{text-align:center;font-size:11px;font-weight:700;color:var(--gray);letter-spacing:.4px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-cell{
  aspect-ratio:1/1;border-radius:8px;border:1.5px solid transparent;background:none;
  font-size:13.5px;font-weight:700;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;
}
.cal-cell-blank{visibility:hidden;}
.cal-cell-past, .cal-cell-pending{color:#ccc;cursor:default;}
.cal-cell-none{color:#ccc;cursor:default;text-decoration:line-through;text-decoration-color:#ddd;}
.cal-cell-open{color:var(--black);border-color:var(--line);cursor:pointer;}
.cal-cell-open:hover{border-color:var(--gold);transform:translateY(-1px);}
.cal-cell-open.selected{background:var(--black);border-color:var(--black);color:var(--gold);}
.cal-legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:12px;color:var(--gray);}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;}
.cal-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.cal-dot-open{background:var(--gold);}
.cal-dot-none{background:#ddd;}

.wizard-nav{display:flex;align-items:center;margin-top:38px;gap:16px;}
.wizard-nav .spacer{flex:1;}

.wizard-summary{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:26px 28px;margin-bottom:22px;}
.wizard-summary-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.wizard-summary-row:last-child{border-bottom:none;}
.wizard-summary-row .label{color:var(--gray);flex-shrink:0;}
.wizard-summary-row .value{font-weight:700;text-align:right;}

/* Final CTA */
.cta-band{
  background:linear-gradient(135deg, var(--gold) 0%, #ffd766 100%);text-align:center;padding:76px 0 88px;
  position:relative;overflow:hidden;
}
.cta-band .eyebrow-dark{color:var(--black);opacity:.6;}
.cta-band h2{font-size:34px;font-weight:800;margin-bottom:14px;}
.cta-band p{margin-bottom:30px;color:#333;font-size:16px;}
@keyframes pulseGlow{0%,100%{box-shadow:0 10px 26px rgba(0,0,0,.2);}50%{box-shadow:0 14px 40px rgba(0,0,0,.35);}}
.cta-band .btn-primary{background:var(--black);color:#fff;animation:pulseGlow 2.4s ease-in-out infinite;}
.cta-band .btn-primary:hover{background:#000;}
.cta-band .fine{margin-top:16px;font-size:13px;color:#5a4d00;}

footer{background:var(--black);color:#999;padding:44px 0 90px;font-size:14px;}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:28px;}
.footer-inner .logo{color:#fff;margin-bottom:10px;}
.footer-col p{font-size:13px;color:#888;max-width:240px;}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;}
.footer-links a{transition:color .2s ease;}
.footer-links a:hover{color:var(--gold);}
.footer-bottom{border-top:1px solid #262626;margin-top:34px;padding-top:20px;text-align:center;font-size:12px;color:#666;}

/* Sticky mobile CTA */
.sticky-cta{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;
  background:var(--black);border-top:2px solid var(--gold);padding:12px 16px;
  box-shadow:0 -8px 20px rgba(0,0,0,.25);
  transform:translateY(100%);transition:transform .3s ease;
}
.sticky-cta.show{transform:translateY(0);}
.sticky-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1140px;margin:0 auto;}
.sticky-cta .price-hint{color:#ccc;font-size:12px;}
.sticky-cta .price-hint strong{color:var(--gold);font-size:15px;display:block;}

/* Legal pages (Terms, Privacy) */
.legal-page{max-width:820px;margin:0 auto;padding:60px 24px 100px;}
.legal-page .updated{color:var(--gray);font-size:13px;margin-bottom:36px;}
.legal-page h2{font-size:22px;margin:36px 0 12px;}
.legal-page h2:first-of-type{margin-top:0;}
.legal-page h3{font-size:16px;margin:22px 0 8px;}
.legal-page p{color:#333;margin-bottom:14px;font-size:15px;}
.legal-page ul{list-style:disc;padding-left:22px;margin-bottom:14px;}
.legal-page li{color:#333;font-size:15px;margin-bottom:6px;}
.legal-page a{color:var(--gold-dark);text-decoration:underline;}
.legal-page .callout{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:28px;font-size:13.5px;color:var(--gray);}
@media (max-width:780px){ .sticky-cta{display:block;} body{padding-bottom:70px;} }
