/* ==========================================================================
   MDG Party Rentals — style.css
   MOBILE-FIRST · BEM · 62.5% root (1rem = 10px) · rem units · clamp() fluid
   Fun & playful — brand pinks & purples. No glassmorphism.
   Breakpoints (px, intentionally not rem): sm 560 · md 768 · lg 900
   ========================================================================== */

/* ----- Design tokens ----- */
:root {
  /* Colors — MDG brand: pinks & purples (from logo.png) */
  --primary:        #7b2ff7;   /* purple — dark/brand sections, footer */
  --secondary:      #b026a8;   /* magenta-purple — gradient partner */
  --tertiary:       #6b6478;   /* muted slate — secondary text */
  --accent:         #ec1d8e;   /* MDG pink/magenta — primary CTAs */
  --accent-2:       #ffc91f;   /* sunny yellow — playful highlights */
  --accent-3:       #2bb0ff;   /* sky blue — playful highlights */

  --bg-body:        #ffffff;   /* page background */
  --bg-surface:     #fbf3fb;   /* soft pink-tinted neutral — alternate sections */

  --text-body:      #2c2536;   /* default copy */
  --text-title:     #3a1d6e;   /* headings — deep purple */

  --border-primary: #f0dcef;   /* soft pink border */
  --shadow-primary: 0 0.8rem 2.8rem rgba(123, 47, 247, 0.14);

  /* Accent helpers */
  --accent-strong:  color-mix(in srgb, var(--accent), #000 12%);   /* deeper pink — links */
  --accent-soft:    color-mix(in srgb, var(--accent) 12%, #fff);   /* pale pink tint */
  --primary-soft:   color-mix(in srgb, var(--primary) 12%, #fff);  /* pale purple tint */
  --grad-brand:     linear-gradient(120deg, var(--accent) 0%, var(--secondary) 50%, var(--primary) 100%);

  /* Type scale — -m is the default body size (~1.7rem) */
  --text-xs:  clamp(1.2rem, 1.15rem + 0.15vw, 1.3rem);
  --text-s:   clamp(1.4rem, 1.34rem + 0.2vw, 1.5rem);
  --text-m:   clamp(1.6rem, 1.54rem + 0.25vw, 1.75rem);
  --text-l:   clamp(1.9rem, 1.7rem + 0.6vw, 2.2rem);
  --text-xl:  clamp(2.4rem, 2.0rem + 1.4vw, 3.2rem);
  --text-2xl: clamp(3.0rem, 2.3rem + 2.6vw, 4.6rem);
  --text-3xl: clamp(3.8rem, 2.6rem + 4vw, 6rem);

  /* Gap scale — for flex/grid gaps */
  --gap-xs: clamp(0.6rem, 0.5rem + 0.2vw, 0.8rem);
  --gap-s:  clamp(1.0rem, 0.9rem + 0.3vw, 1.2rem);
  --gap-m:  clamp(1.6rem, 1.4rem + 0.4vw, 2.0rem);
  --gap-l:  clamp(2.4rem, 2.0rem + 1vw, 3.2rem);
  --gap-xl: clamp(3.2rem, 2.6rem + 1.6vw, 4.8rem);

  /* Space scale — for padding/margins */
  --space-xs: clamp(0.6rem, 0.5rem + 0.2vw, 0.8rem);
  --space-s:  clamp(1.0rem, 0.85rem + 0.4vw, 1.4rem);
  --space-m:  clamp(1.6rem, 1.4rem + 0.5vw, 2.0rem);
  --space-l:  clamp(2.4rem, 1.9rem + 1.5vw, 3.6rem);
  --space-xl: clamp(3.6rem, 2.6rem + 3vw, 5.6rem);
  --space-2xl: clamp(5.6rem, 4rem + 5vw, 8rem);
  --space-3xl: clamp(7.2rem, 5rem + 7vw, 11rem);

  /* Radius scale */
  --radius-xs: 0.6rem;
  --radius-s:  1.0rem;
  --radius-m:  1.6rem;
  --radius-l:  2.4rem;
  --radius-xl: 3.6rem;
  --radius-pill: 999rem;

  /* Structure */
  --container: 118rem;
  --container-narrow: 78rem;
  --ring: 0 0 0 0.3rem color-mix(in srgb, var(--accent) 35%, transparent);

  --lh-tight: 1.1;
  --lh-base:  1.65;
  --font-sans: "Nunito", "Segoe UI", Roboto, system-ui, -apple-system, Helvetica, Arial, sans-serif;
  --font-display: "Baloo 2", "Nunito", "Segoe UI", system-ui, sans-serif;
}

/* ----- Reset / base ----- */
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
body {
  font-family: var(--font-sans);
  font-size: var(--text-m);
  line-height: var(--lh-base);
  color: var(--text-body);
  background: var(--bg-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, picture, svg { max-width: 100%; display: block; height: auto; }
a { color: var(--accent-strong); text-decoration: none; }
a:hover { text-decoration: underline; }
ul { padding: 0; list-style: none; }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--text-title); font-weight: 800; line-height: var(--lh-tight); letter-spacing: -0.01em; }
h1 { font-size: var(--text-2xl); }
h2 { font-size: var(--text-xl); }
h3 { font-size: var(--text-l); }
:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--radius-xs); }

/* ----- Layout helpers ----- */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--space-m); }
.container--narrow { max-width: var(--container-narrow); }
.section { padding-block: var(--space-2xl); }
.section--mist { background: var(--bg-surface); }
.section--tight { padding-block: var(--space-xl); }
.section--brand { background: var(--grad-brand); color: #fff; }
.section--brand h2, .section--brand h3, .section--brand .section__title { color: #fff; }
.section--brand .section__eyebrow { color: var(--accent-2); }
.section--brand .section__lead { color: color-mix(in srgb, #fff 88%, transparent); }
.section__head { max-width: 74rem; margin-bottom: var(--space-l); }
.section__head.center { margin-inline: auto; }
.section__eyebrow { display: inline-block; font-family: var(--font-display); font-size: var(--text-s); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent-strong); margin-bottom: var(--space-xs); }
.section__title { margin-bottom: var(--space-s); }
.section__lead { font-size: var(--text-l); color: var(--tertiary); }
.center { text-align: center; margin-inline: auto; }

/* ----- Buttons ----- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--gap-xs);
  font-family: var(--font-display); font-weight: 700; font-size: var(--text-m); line-height: 1; min-height: 4.8rem;
  padding: 0.9em 1.6em; border-radius: var(--radius-pill); border: 0.2rem solid transparent;
  cursor: pointer; transition: transform .12s ease, background .15s ease, box-shadow .15s ease;
  text-align: center;
}
.btn:hover { text-decoration: none; transform: translateY(-0.2rem); }
.btn:active { transform: translateY(0); }
.btn--primary { background: var(--accent); color: #fff; box-shadow: 0 0.6rem 1.6rem color-mix(in srgb, var(--accent) 40%, transparent); }
.btn--primary:hover { background: var(--accent-strong); color: #fff; }
.btn--secondary { background: var(--primary); color: #fff; box-shadow: 0 0.6rem 1.6rem color-mix(in srgb, var(--primary) 38%, transparent); }
.btn--secondary:hover { background: color-mix(in srgb, var(--primary), #000 10%); color: #fff; }
.btn--sun { background: var(--accent-2); color: #5a3d00; }
.btn--sun:hover { background: color-mix(in srgb, var(--accent-2), #000 8%); color: #5a3d00; }
.btn--ghost { background: transparent; color: #fff; border-color: color-mix(in srgb, #fff 55%, transparent); }
.btn--ghost:hover { background: color-mix(in srgb, #fff 14%, transparent); color: #fff; }
.btn--outline { background: #fff; color: var(--accent-strong); border-color: var(--accent); }
.btn--outline:hover { background: var(--accent-soft); color: var(--accent-strong); }
.btn--lg { font-size: var(--text-l); padding: 0.95em 1.9em; min-height: 5.4rem; }
.btn--block { display: flex; width: 100%; }

/* ----- Top bar ----- */
.topbar { background: var(--grad-brand); color: #fff; font-size: var(--text-xs); font-weight: 700; }
.topbar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--gap-s) var(--gap-m); padding-block: 0.7rem; text-align: center; }
.topbar__item { color: #fff; display: inline-flex; align-items: center; gap: 0.4rem; }
.topbar__phone { font-weight: 800; }
.topbar__phone:hover { color: var(--accent-2); text-decoration: none; }
@media (max-width: 559px) { .topbar__item:nth-child(2) { display: none; } }

/* ----- Header (mobile-first: hamburger by default) ----- */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 0.2rem solid var(--border-primary); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-m); min-height: 8.8rem; padding-block: var(--space-s); }
.site-header__brand { display: inline-flex; align-items: center; gap: var(--gap-xs); }
.site-header__brand:hover { text-decoration: none; }
.site-header__brand-mark { font-family: var(--font-display); display: grid; place-items: center; width: 4.4rem; height: 4.4rem; border-radius: var(--radius-s); background: var(--accent); color: #fff; font-weight: 800; }
.site-header__brand-text { font-family: var(--font-display); font-size: var(--text-l); letter-spacing: -0.02em; color: var(--text-title); }
.site-header__brand-text strong { color: var(--accent-strong); }
.site-header__logo { height: 7.2rem; width: auto; display: block; }
@media (min-width: 900px) { .site-header__logo { height: 9.2rem; } }

.nav-toggle { display: none; }
.nav-toggle__btn {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 0.5rem;
  width: 4.8rem; height: 4.8rem; padding: 1.2rem; border: 0.2rem solid var(--border-primary);
  border-radius: var(--radius-s); background: #fff; cursor: pointer;
}
.nav-toggle__btn span, .nav-toggle__btn::before, .nav-toggle__btn::after {
  content: ""; display: block; height: 0.3rem; background: var(--accent); border-radius: 0.3rem; transition: .2s;
}
.site-nav {
  position: fixed; inset: 10.4rem 0 auto 0; display: flex; flex-direction: column; align-items: stretch;
  background: #fff; border-bottom: 0.2rem solid var(--border-primary);
  padding: var(--space-m); gap: var(--gap-s);
  transform: translateY(-130%); transition: transform .25s ease; box-shadow: var(--shadow-primary);
}
.site-nav__list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.site-nav__list li { border-bottom: 0.1rem solid var(--border-primary); }
.site-nav__list a { display: block; padding: var(--space-s) var(--space-xs); color: var(--text-title); font-family: var(--font-display); font-weight: 700; }
.site-nav__list a:hover { color: var(--accent-strong); text-decoration: none; }
.site-nav__cta { width: 100%; }
.nav-toggle:checked ~ .site-nav { transform: translateY(0); }

@media (min-width: 900px) {
  .site-header__inner { min-height: 8rem; }
  .nav-toggle__btn { display: none; }
  .site-nav {
    position: static; inset: auto; flex-direction: row; align-items: center; gap: var(--gap-l);
    background: none; border: 0; padding: 0; transform: none; box-shadow: none;
  }
  .site-nav__list { flex-direction: row; align-items: center; gap: var(--gap-l); }
  .site-nav__list li { border: 0; }
  .site-nav__list a { padding: 0.4rem 0; font-size: var(--text-s); position: relative; }
  .site-nav__list a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -0.4rem; height: 0.3rem; border-radius: 0.3rem; background: var(--accent); transition: right .2s ease; }
  .site-nav__list a:hover::after { right: 0; }
  .site-nav__cta { width: auto; }
}

/* ----- Hero ----- */
.hero { position: relative; overflow: hidden; color: #fff; background: var(--grad-brand); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle at 12% 18%, rgba(255,255,255,.18) 0 1.2rem, transparent 1.3rem), radial-gradient(circle at 82% 30%, rgba(255,201,31,.4) 0 1rem, transparent 1.1rem), radial-gradient(circle at 68% 78%, rgba(43,176,255,.35) 0 1.4rem, transparent 1.5rem), radial-gradient(circle at 30% 84%, rgba(255,255,255,.14) 0 0.9rem, transparent 1rem); background-size: 38rem 38rem, 44rem 44rem, 40rem 40rem, 36rem 36rem; opacity: .9; pointer-events: none; }
.hero__inner { position: relative; display: grid; gap: var(--gap-xl); align-items: center; padding-block: var(--space-2xl); min-width: 0; }
.hero__inner > * { min-width: 0; }
.hero__badge { display: inline-flex; align-items: center; gap: var(--gap-xs); background: rgba(255,255,255,.16); border: 0.15rem solid rgba(255,255,255,.4); padding: .5em 1em; border-radius: var(--radius-pill); font-family: var(--font-display); font-size: var(--text-s); font-weight: 700; max-width: 100%; }
.hero__title { font-size: var(--text-3xl); color: #fff; margin-block: var(--space-s); max-width: 16ch; }
.hero__title span { color: var(--accent-2); }
.hero__lead { font-size: var(--text-l); color: color-mix(in srgb, #fff 92%, transparent); max-width: 54ch; margin-bottom: var(--space-m); }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--gap-s); }
.hero__actions .btn { flex: 1 1 100%; }
.hero__rating { display: inline-flex; align-items: center; gap: var(--gap-xs); margin-top: var(--space-m); background: rgba(255,255,255,.14); border: 0.15rem solid rgba(255,255,255,.4); padding: .5em 1em; border-radius: var(--radius-pill); font-size: var(--text-s); font-weight: 700; color: #fff; }
.hero__rating:hover { text-decoration: none; background: rgba(255,255,255,.22); }
.hero__rating-stars { color: var(--accent-2); letter-spacing: .15rem; font-size: var(--text-m); }
.hero__trust { display: flex; flex-wrap: wrap; gap: var(--gap-s) var(--gap-l); margin-top: var(--space-l); font-size: var(--text-s); font-weight: 700; }
.hero__trust li { display: flex; align-items: center; gap: var(--gap-xs); }
.hero__trust li::before { content: "✓"; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--accent-2); color: #5a3d00; font-size: 1.2rem; font-weight: 800; }
.hero__media { border-radius: var(--radius-l); overflow: hidden; box-shadow: 0 2rem 5rem rgba(0,0,0,.28); border: 0.5rem solid #fff; transform: rotate(-1.5deg); }
.hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (min-width: 560px) { .hero__actions .btn { flex: 0 1 auto; } }
@media (min-width: 900px) {
  .hero__inner { grid-template-columns: 1.05fr .95fr; }
  .hero__media { transform: rotate(2deg); }
}

/* ----- Stat / trust bar ----- */
.trustbar { background: var(--text-title); color: #fff; }
.trustbar__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap-m); padding-block: var(--space-l); text-align: center; }
.trustbar__item strong { display: block; font-family: var(--font-display); font-size: var(--text-xl); color: var(--accent-2); }
.trustbar__item span { font-size: var(--text-s); color: color-mix(in srgb, #fff 82%, transparent); }
@media (min-width: 680px) { .trustbar__list { grid-template-columns: repeat(4, 1fr); } }

/* ----- Grid + cards ----- */
.grid { display: grid; gap: var(--gap-l); grid-template-columns: 1fr; }
@media (min-width: 560px) { .grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) {
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--split { grid-template-columns: 1.05fr .95fr; align-items: center; }
}
@media (min-width: 900px) { .grid--3 { grid-template-columns: repeat(3, 1fr); } }

.card { background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); padding: var(--space-l); box-shadow: var(--shadow-primary); height: 100%; }
.card--link { display: block; transition: transform .14s ease, box-shadow .15s ease, border-color .15s ease; }
.card--link:hover { transform: translateY(-0.4rem); box-shadow: 0 1.8rem 5rem rgba(123,47,247,.22); border-color: var(--accent); text-decoration: none; }
.card__icon { width: 6rem; height: 6rem; display: grid; place-items: center; border-radius: var(--radius-m); background: var(--accent-soft); font-size: 3rem; margin-bottom: var(--space-s); }
.card__title { font-size: var(--text-l); margin-bottom: var(--space-xs); color: var(--text-title); }
.card__text { color: var(--tertiary); font-size: var(--text-s); }
.card__more { display: inline-flex; align-items: center; gap: .4rem; margin-top: var(--space-s); font-family: var(--font-display); font-weight: 700; color: var(--accent-strong); }
.card--link:hover .card__more { gap: .9rem; }

/* Category card with placeholder image */
.cat-card { display: flex; flex-direction: column; background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); overflow: hidden; box-shadow: var(--shadow-primary); height: 100%; transition: transform .14s ease, box-shadow .15s ease, border-color .15s ease; }
.cat-card:hover { transform: translateY(-0.4rem); box-shadow: 0 1.8rem 5rem rgba(123,47,247,.22); border-color: var(--accent); text-decoration: none; }
.cat-card__media { position: relative; }
.cat-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cat-card__icon { position: absolute; top: var(--space-s); left: var(--space-s); width: 4.4rem; height: 4.4rem; display: grid; place-items: center; border-radius: var(--radius-s); background: #fff; font-size: 2.2rem; box-shadow: var(--shadow-primary); }
.cat-card__body { padding: var(--space-m) var(--space-l) var(--space-l); display: flex; flex-direction: column; flex: 1; }
.cat-card__title { font-size: var(--text-l); color: var(--text-title); margin-bottom: var(--space-xs); }
.cat-card__text { color: var(--tertiary); font-size: var(--text-s); flex: 1; }
.cat-card__more { display: inline-flex; align-items: center; gap: .4rem; margin-top: var(--space-s); font-family: var(--font-display); font-weight: 700; color: var(--accent-strong); }
.cat-card:hover .cat-card__more { gap: .9rem; }

/* Item card (inside a category page) */
.item-card { display: flex; flex-direction: column; background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); overflow: hidden; box-shadow: var(--shadow-primary); height: 100%; }
.item-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.item-card__body { padding: var(--space-m); display: flex; flex-direction: column; flex: 1; }
.item-card__title { font-size: var(--text-m); color: var(--text-title); margin-bottom: var(--space-xs); }
.item-card__text { color: var(--tertiary); font-size: var(--text-s); flex: 1; }
.item-card__price { display: inline-block; align-self: flex-start; margin-top: var(--space-s); font-family: var(--font-display); font-weight: 800; font-size: var(--text-s); color: var(--accent-strong); background: var(--accent-soft); padding: .3em .9em; border-radius: var(--radius-pill); }

.item-card { transition: transform .14s ease, box-shadow .15s ease, border-color .15s ease; }
.item-card:hover { transform: translateY(-0.4rem); box-shadow: 0 1.8rem 5rem rgba(123,47,247,.22); border-color: var(--accent); text-decoration: none; }
.item-card__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-s); margin-top: var(--space-s); flex-wrap: wrap; }
.item-card__foot .item-card__price { margin-top: 0; }
.item-card__more { font-family: var(--font-display); font-weight: 700; font-size: var(--text-s); color: var(--accent-strong); }
.item-card:hover .item-card__more { text-decoration: underline; }

/* Single item page */
.item-hero__media { border-radius: var(--radius-l); overflow: hidden; border: 0.4rem solid #fff; box-shadow: var(--shadow-primary); background: var(--bg-surface); }
.item-hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.item-hero__title { font-size: var(--text-2xl); margin: var(--space-xs) 0 var(--space-s); }
.item-hero__price { font-family: var(--font-display); font-weight: 800; font-size: var(--text-xl); color: var(--accent-strong); margin-bottom: var(--space-xs); }
.item-hero__rental { display: inline-flex; align-items: center; gap: var(--gap-xs); font-weight: 700; font-size: var(--text-s); color: var(--primary); background: var(--primary-soft); padding: .35em .9em; border-radius: var(--radius-pill); margin-bottom: var(--space-s); }
.item-hero__lead { font-size: var(--text-l); color: var(--tertiary); margin-bottom: var(--space-m); }
.item-hero__actions { display: flex; flex-wrap: wrap; gap: var(--gap-s); }
.item-hero__actions .btn { flex: 1 1 100%; }
@media (min-width: 560px) { .item-hero__actions .btn { flex: 0 1 auto; } }
.item-perks { display: grid; gap: var(--gap-xs); margin-top: var(--space-m); font-size: var(--text-s); font-weight: 600; color: var(--text-body); }
.item-spec { margin-bottom: var(--space-m); }
.item-spec__title { font-family: var(--font-display); font-size: var(--text-m); color: var(--text-title); margin-bottom: var(--space-xs); }
.spec-list, .price-list { display: grid; gap: 0; font-size: var(--text-s); }
.spec-list li, .price-list li { display: flex; justify-content: space-between; gap: var(--gap-m); padding: var(--space-xs) 0; border-bottom: 0.1rem solid var(--border-primary); }
.spec-list li:last-child, .price-list li:last-child { border-bottom: 0; }
.spec-list span, .price-list span { color: var(--tertiary); }
.spec-list strong, .price-list strong { color: var(--text-title); text-align: right; }
.price-list strong { color: var(--accent-strong); font-family: var(--font-display); }

/* Pills / chips */
.chips { display: flex; flex-wrap: wrap; gap: var(--gap-xs); }
.chip { font-family: var(--font-display); font-weight: 700; font-size: var(--text-s); color: var(--primary); background: var(--primary-soft); padding: .45em 1em; border-radius: var(--radius-pill); }

/* Feature list with checks */
.checklist { display: grid; gap: var(--gap-s); }
.checklist li { position: relative; padding-left: 2.6rem; }
.checklist li::before { content: "✓"; position: absolute; left: 0; top: 0.1rem; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1.1rem; font-weight: 800; }
.section--brand .checklist li::before { background: var(--accent-2); color: #5a3d00; }

/* Emoji feature list (venue) */
.feature-list { display: grid; gap: var(--gap-s); font-size: var(--text-m); }
.feature-list li { display: flex; gap: var(--gap-s); align-items: flex-start; }

/* Steps */
.steps { display: grid; grid-template-columns: 1fr; gap: var(--gap-l); list-style: none; padding: 0; }
.steps__item { position: relative; background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); padding: var(--space-l); box-shadow: var(--shadow-primary); }
.steps__num { display: grid; place-items: center; width: 4.8rem; height: 4.8rem; border-radius: 50%; background: var(--grad-brand); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: var(--text-l); margin-bottom: var(--space-s); }
@media (min-width: 480px) { .steps { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(4,1fr); } }

/* Testimonials */
.quote { background: #fff; border: 0.2rem solid var(--border-primary); border-top: 0.5rem solid var(--accent); border-radius: var(--radius-m); padding: var(--space-l); box-shadow: var(--shadow-primary); }
.quote__stars { color: var(--accent-2); letter-spacing: 0.2rem; margin-bottom: var(--space-xs); font-size: var(--text-l); }
.quote__text { font-size: var(--text-m); margin-bottom: var(--space-s); }
.quote__who { font-family: var(--font-display); font-weight: 800; font-size: var(--text-s); color: var(--text-title); }
.quote__where { color: var(--tertiary); font-size: var(--text-s); }

/* Price cards (venue) */
.price-card { background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); padding: var(--space-l); box-shadow: var(--shadow-primary); height: 100%; }
.price-card__name { font-family: var(--font-display); font-weight: 700; font-size: var(--text-m); color: var(--text-title); }
.price-card__amount { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); color: var(--accent-strong); margin: var(--space-xs) 0 var(--space-s); }
.price-card__amount small { font-size: var(--text-s); color: var(--tertiary); font-weight: 600; }
.price-card ul { display: grid; gap: var(--gap-xs); font-size: var(--text-s); color: var(--tertiary); }
.price-card li { padding-left: 2.2rem; position: relative; }
.price-card li::before { content: "🎈"; position: absolute; left: 0; top: 0; font-size: 1.4rem; }

/* ----- CTA band ----- */
.cta-band { background: var(--grad-brand); color: #fff; position: relative; overflow: hidden; }
.cta-band::before { content: "🎉"; position: absolute; font-size: 16rem; opacity: .12; right: -2rem; bottom: -4rem; transform: rotate(-12deg); }
.cta-band__inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--gap-m); padding-block: var(--space-xl); }
.cta-band__title { font-size: var(--text-xl); color: #fff; max-width: 24ch; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: var(--gap-s); width: 100%; }
.cta-band__actions .btn { flex: 1 1 100%; }
.cta-band .btn--primary { background: var(--accent-2); color: #5a3d00; }
.cta-band .btn--primary:hover { background: #fff; color: var(--accent-strong); }
@media (min-width: 700px) {
  .cta-band__inner { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .cta-band__actions { width: auto; }
  .cta-band__actions .btn { flex: 0 1 auto; }
}

/* ----- Forms ----- */
.form { display: grid; gap: var(--gap-s); background: #fff; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); padding: var(--space-l); box-shadow: var(--shadow-primary); }
.form__row { display: grid; gap: var(--gap-s); grid-template-columns: 1fr; }
.form__group { display: grid; gap: var(--gap-xs); }
.form__label { font-family: var(--font-display); font-weight: 700; font-size: var(--text-s); color: var(--text-title); }
.form__label span { color: var(--accent-strong); }
.form__opt { color: var(--tertiary); font-weight: 600; }
.form__control { font: inherit; font-size: 1.6rem; padding: 0.75em 0.9em; border: 0.2rem solid var(--border-primary); border-radius: var(--radius-s); background: #fff; color: var(--text-body); width: 100%; min-height: 4.8rem; }
.form__control:focus-visible { border-color: var(--accent); box-shadow: none; }
select.form__control { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%); background-position: calc(100% - 2rem) center, calc(100% - 1.5rem) center; background-size: 0.5rem 0.5rem, 0.5rem 0.5rem; background-repeat: no-repeat; }
textarea.form__control { min-height: 12rem; resize: vertical; }
.form__hp { position: absolute; left: -9999px; width: 0.1rem; height: 0.1rem; overflow: hidden; }
.form__note { font-size: var(--text-xs); color: var(--tertiary); }
.form__error { background: #fde8f1; border: 0.2rem solid #f5b5d3; color: #9b1c5a; padding: var(--space-s); border-radius: var(--radius-s); font-size: var(--text-s); }
@media (min-width: 520px) { .form__row--2 { grid-template-columns: 1fr 1fr; } }

/* ----- Breadcrumb ----- */
.breadcrumb { padding-block: var(--space-s); font-size: var(--text-s); color: var(--tertiary); background: var(--bg-surface); }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--gap-xs); list-style: none; padding: 0; margin: 0; }
.breadcrumb li::after { content: "›"; margin-left: var(--gap-xs); color: var(--accent); }
.breadcrumb li:last-child::after { content: ""; }

/* ----- Page hero (interior) ----- */
.page-hero { background: var(--grad-brand); color: #fff; padding-block: var(--space-xl); position: relative; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle at 88% 20%, rgba(255,201,31,.4) 0 1rem, transparent 1.1rem), radial-gradient(circle at 70% 80%, rgba(255,255,255,.16) 0 1.2rem, transparent 1.3rem); background-size: 40rem 40rem, 34rem 34rem; pointer-events: none; }
.page-hero__inner { position: relative; }
.page-hero__title { font-size: var(--text-2xl); color: #fff; margin-bottom: var(--space-xs); }
.page-hero__lead { color: color-mix(in srgb, #fff 90%, transparent); font-size: var(--text-l); max-width: 62ch; }

/* ----- Prose ----- */
.prose > * + * { margin-top: var(--space-m); }
.prose h2 { margin-top: var(--space-l); }
.prose h3 { margin-top: var(--space-m); }
.prose ul { display: grid; gap: var(--gap-xs); padding-left: 1.4em; list-style: disc; }
.prose ul li::marker { color: var(--accent); }
.prose p { color: var(--text-body); }

/* FAQ */
.faq__item { border: 0.2rem solid var(--border-primary); border-radius: var(--radius-m); margin-bottom: var(--space-s); background: #fff; overflow: hidden; }
.faq__item > summary { cursor: pointer; padding: var(--space-m); font-family: var(--font-display); font-weight: 700; font-size: var(--text-m); color: var(--text-title); list-style: none; display: flex; justify-content: space-between; gap: var(--gap-s); }
.faq__item > summary::-webkit-details-marker { display: none; }
.faq__item > summary::after { content: "+"; color: var(--accent); font-weight: 800; font-size: var(--text-l); line-height: 1; }
.faq__item[open] > summary::after { content: "–"; }
.faq__body { padding: 0 var(--space-m) var(--space-m); color: var(--tertiary); }

/* ----- In-content media figure ----- */
.media { margin: 0 0 var(--space-m); border-radius: var(--radius-m); overflow: hidden; border: 0.2rem solid var(--border-primary); box-shadow: var(--shadow-primary); background: #fff; }
.media a { display: block; }
.media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .25s ease; }
.media a:hover img { transform: scale(1.03); }
.media figcaption { padding: var(--space-s) var(--space-m); font-size: var(--text-s); color: var(--tertiary); }

/* ----- Gallery ----- */
.gallery { display: grid; grid-template-columns: 1fr; gap: var(--gap-m); }
@media (min-width: 560px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .gallery { grid-template-columns: repeat(3, 1fr); } }
.gallery__item { margin: 0; border-radius: var(--radius-m); overflow: hidden; box-shadow: var(--shadow-primary); border: 0.2rem solid var(--border-primary); background: #fff; }
.gallery__link { display: block; position: relative; }
.gallery__link::after { content: "🔍"; position: absolute; right: var(--space-s); bottom: var(--space-s); width: 3.8rem; height: 3.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1.6rem; opacity: 0; transition: opacity .15s ease; }
.gallery__link:hover::after { opacity: 1; }
.gallery__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s ease; }
.gallery__link:hover .gallery__img { transform: scale(1.04); }
.gallery__cap { display: block; padding: var(--space-s); font-size: var(--text-s); color: var(--tertiary); }

/* CSS-only lightbox (no JS) */
.lightbox { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: var(--space-m); background: rgba(58, 29, 110, .94); }
.lightbox:target { display: flex; }
.lightbox__backdrop { position: absolute; inset: 0; }
.lightbox__img { position: relative; max-width: min(100%, 100rem); max-height: 84vh; width: auto; border-radius: var(--radius-s); box-shadow: 0 2rem 6rem rgba(0,0,0,.5); }
.lightbox__cap { position: absolute; left: 0; right: 0; bottom: var(--space-m); text-align: center; color: color-mix(in srgb, #fff 90%, transparent); font-size: var(--text-s); padding-inline: var(--space-m); }
.lightbox__close { position: absolute; top: var(--space-m); right: var(--space-m); width: 4.8rem; height: 4.8rem; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 2.8rem; line-height: 1; z-index: 1; }
.lightbox__close:hover { background: var(--accent); color: #fff; text-decoration: none; }

/* ----- Map embed ----- */
.map { border-radius: var(--radius-m); overflow: hidden; border: 0.2rem solid var(--border-primary); box-shadow: var(--shadow-primary); background: var(--bg-surface); }
.map__frame { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }
@media (min-width: 768px) { .map__frame { aspect-ratio: 21 / 9; } }

/* ----- Sticky mobile call bar ----- */
.call-bar {
  display: flex; align-items: center; justify-content: center; gap: var(--gap-xs);
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  background: var(--accent); color: #fff; font-family: var(--font-display); font-weight: 800; min-height: 5.6rem;
  padding: var(--space-s); box-shadow: 0 -0.4rem 1.6rem rgba(0,0,0,.2);
}
.call-bar:hover { text-decoration: none; color: #fff; }
body { padding-bottom: 5.6rem; }
@media (min-width: 720px) {
  .call-bar { display: none; }
  body { padding-bottom: 0; }
}

/* ----- Footer ----- */
.site-footer { background: var(--text-title); color: color-mix(in srgb, #fff 80%, transparent); padding-block: var(--space-2xl) var(--space-l); }
.site-footer a { color: color-mix(in srgb, #fff 80%, transparent); }
.site-footer a:hover { color: var(--accent-2); }
.site-footer__grid { display: grid; grid-template-columns: 1fr; gap: var(--gap-l); }
.site-footer__logo { height: 12rem; width: auto; background: #fff; padding: 1rem 1.4rem; border-radius: var(--radius-s); margin-bottom: var(--space-s); }
.site-footer__brand-text { font-family: var(--font-display); font-size: var(--text-l); color: #fff; }
.site-footer__tagline { color: var(--accent-2); font-family: var(--font-display); font-weight: 700; }
.site-footer__about { font-size: var(--text-s); margin-top: var(--space-xs); }
.site-footer__social { display: flex; gap: var(--gap-s); margin-top: var(--space-s); }
.site-footer__social a { font-family: var(--font-display); font-weight: 700; }
.site-footer__title { font-family: var(--font-display); color: #fff; font-size: var(--text-s); text-transform: uppercase; letter-spacing: .08em; margin-bottom: var(--space-s); }
.site-footer__list { display: grid; gap: var(--gap-xs); font-size: var(--text-s); }
.site-footer__phone { color: #fff; font-family: var(--font-display); font-weight: 800; font-size: var(--text-l); }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--gap-s); margin-top: var(--space-l); padding-top: var(--space-m); border-top: 0.1rem solid color-mix(in srgb, #fff 18%, transparent); font-size: var(--text-xs); }
@media (min-width: 480px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }

/* ----- Utilities ----- */
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; }
.stack-sm > * + * { margin-top: var(--space-s); }
.stack-md > * + * { margin-top: var(--space-m); }
.text-soft { color: var(--tertiary); }
.visually-hidden { position: absolute; width: 0.1rem; height: 0.1rem; padding: 0; margin: -0.1rem; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
