/* ============================================================
   FRANCHISE PAGE — additional styles
   ============================================================ */

.fr-hero{
  position: relative;
  padding: 150px 0 90px;
  background: var(--black);
  overflow:hidden;
  border-bottom: 1px solid var(--line);
}
.fr-hero::before{
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 20% 0%, rgba(201,161,90,0.14), transparent 55%);
  pointer-events:none;
}
.fr-hero-inner{
  position:relative;
  display:grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 50px;
  align-items:center;
}
.fr-hero .eyebrow{ display:block; margin-bottom:16px; }
.fr-hero h1{
  font-size: clamp(2.3rem, 5vw, 3.6rem);
  max-width: 15ch;
}
.fr-hero p.lead{
  color: var(--paper-dim);
  margin-top:20px;
  max-width: 46ch;
  font-size: 1.02rem;
}
.price-tag{
  margin-top: 30px;
  display:inline-flex;
  align-items:baseline;
  gap:14px;
  flex-wrap:wrap;
}
.price-tag .old{
  color: var(--paper-dim);
  text-decoration: line-through;
  font-size: 1.2rem;
}
.price-tag .new{
  font-family: var(--serif);
  font-size: 2.6rem;
  color: var(--gold-bright);
  font-weight:700;
}
.price-tag .roi{
  display:block;
  width:100%;
  margin-top:6px;
  font-size: 0.85rem;
  color: var(--paper-dim);
}
.fr-hero-actions{
  margin-top: 34px;
  display:flex; gap:16px; flex-wrap:wrap;
}
.fr-hero-bottle{
  position:relative;
  display:flex;
  justify-content:center;
}
.fr-hero-bottle img{
  width: 78%;
  max-width: 300px;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,0.5));
}
.fr-hero-bottle .ring{
  position:absolute;
  inset:0;
  margin:auto;
  width: 340px; height:340px;
  border:1px dashed rgba(201,161,90,0.3);
  border-radius:50%;
}

@media (max-width: 860px){
  .fr-hero-inner{ grid-template-columns:1fr; }
  .fr-hero-bottle{ order:-1; margin-bottom: 10px; }
  .fr-hero-bottle img{ max-width:200px; }
}

/* Why section */
.fr-why{ padding: 90px 0; background: var(--near-black); }
.fr-why-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.why-card{
  padding: 30px 26px;
  background: var(--panel);
  border: 1px solid var(--line);
}
.why-card .num{
  font-family: var(--serif);
  color: var(--gold);
  font-size: 1.6rem;
  display:block;
  margin-bottom:14px;
}
.why-card h4{ font-size: 1.08rem; margin-bottom:10px; color: var(--paper); }
.why-card p{ color: var(--paper-dim); font-size: 0.9rem; margin:0; }

@media (max-width: 860px){ .fr-why-grid{ grid-template-columns:1fr; } }

/* Equipment strip */
.fr-equip{ padding: 90px 0; }
.equip-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.equip-card{
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 26px 20px 20px;
  text-align:center;
}
.equip-card .imgwrap{
  height: 140px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 16px;
}
.equip-card img{
  max-height: 130px;
  max-width: 100%;
  margin:0 auto;
  filter: brightness(0.95) contrast(1.05);
  background: var(--paper);
  padding: 8px;
  border-radius: 3px;
}
.equip-card span{ font-size: 0.85rem; font-weight:700; color: var(--paper-dim); }

@media (max-width: 700px){ .equip-grid{ grid-template-columns: repeat(2,1fr); } }

/* Includes list */
.fr-includes{ padding: 90px 0; background: var(--near-black); }
.includes-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 40px;
  column-count: unset;
}
.includes-grid ul{
  list-style:none; margin:0; padding:0;
}
.includes-grid li{
  padding: 12px 0;
  border-top: 1px solid var(--line);
  display:flex; align-items:flex-start; gap:10px;
  font-size: 0.92rem;
  color: var(--paper-dim);
}
.includes-grid li:first-child{ border-top:none; }
.includes-grid li svg{ width:16px; height:16px; flex-shrink:0; margin-top:3px; color: var(--gold); }
.includes-grid li .qty{ margin-left:auto; color: var(--paper); font-weight:700; white-space:nowrap; }

.raw-callout{
  margin-top: 40px;
  text-align:center;
  border: 1px dashed var(--gold);
  padding: 22px;
  font-family: var(--serif);
  font-size: 1.1rem;
  color: var(--gold-bright);
}
.raw-callout span{ display:block; font-family: var(--sans); font-size: 0.78rem; color: var(--paper-dim); margin-top:6px; }

@media (max-width: 860px){ .includes-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .includes-grid{ grid-template-columns: 1fr; } }

/* Requirements */
.fr-req{ padding: 90px 0; }
.req-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}
.req-grid ul{ list-style:none; margin:0; padding:0; }
.req-grid li{
  padding: 14px 0 14px 30px;
  position:relative;
  border-top: 1px solid var(--line);
  color: var(--paper-dim);
  font-size: 0.94rem;
}
.req-grid li:first-child{ border-top:none; }
.req-grid li::before{
  content:'—';
  position:absolute; left:0; top:14px;
  color: var(--gold);
}
@media (max-width: 860px){ .req-grid{ grid-template-columns:1fr; gap:10px; } }

/* Payment timeline */
.fr-payment{ padding: 90px 0; background: var(--near-black); }
.timeline{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.tl-step{
  position:relative;
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 30px 26px;
}
.tl-step .tl-num{
  font-family: var(--serif);
  font-size: 2.2rem;
  color: var(--gold-bright);
}
.tl-step .tl-amt{
  font-size: 1.3rem;
  font-weight:800;
  margin: 10px 0 4px;
}
.tl-step .tl-when{ font-size: 0.78rem; color: var(--gold); font-weight:700; margin-bottom: 16px; display:block; }
.tl-step ul{ list-style:none; margin:0; padding:0; }
.tl-step li{
  font-size: 0.86rem;
  color: var(--paper-dim);
  padding: 6px 0 6px 18px;
  position:relative;
}
.tl-step li::before{ content:'•'; position:absolute; left:0; color: var(--gold); }

@media (max-width: 860px){ .timeline{ grid-template-columns:1fr; } }

.fr-note{
  margin-top: 34px;
  border: 1px solid var(--line);
  padding: 20px 24px;
  display:flex; gap: 24px; flex-wrap:wrap;
  font-size: 0.88rem;
  color: var(--paper-dim);
}
.fr-note b{ color: var(--paper); }

/* Reviews */
.fr-reviews{ padding: 90px 0; }
.reviews-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.review-card{
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 26px;
}
.review-stars{ color: var(--gold-bright); letter-spacing:2px; font-size:0.9rem; margin-bottom:12px; }
.review-card p{ color: var(--paper-dim); font-size: 0.92rem; margin: 0 0 14px; font-style:italic; }
.review-card .who{ font-size: 0.78rem; color: var(--paper); font-weight:700; }

@media (max-width: 860px){ .reviews-grid{ grid-template-columns:1fr; } }

/* Final CTA */
.fr-cta{
  padding: 100px 0;
  text-align:center;
  background:
    radial-gradient(ellipse at center, rgba(201,161,90,0.12), transparent 60%),
    var(--near-black);
  border-top: 1px solid var(--line);
}
.fr-cta h2{ font-size: clamp(2rem, 4vw, 2.8rem); max-width: 18ch; margin: 0 auto 18px; }
.fr-cta p{ color: var(--paper-dim); max-width: 46ch; margin: 0 auto 32px; }
.fr-cta-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
/* Present Locations */
.fr-locations{ padding: 90px 0; background: var(--near-black); }
.loc-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.loc-state{
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 28px 30px;
}
.loc-state h4{
  font-family: var(--serif);
  color: var(--gold-bright);
  font-size: 1.3rem;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.loc-cities{
  list-style:none;
  margin:0; padding:0;
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
}
.loc-cities li{
  background: var(--panel-2);
  border: 1px solid var(--line);
  padding: 8px 16px;
  font-size: 0.88rem;
  color: var(--paper-dim);
  border-radius: 3px;
}

@media (max-width: 700px){
  .loc-grid{ grid-template-columns: 1fr; }
}