/* JT P31T39 bundle source: assets/css/v2-font-stability-141.css */
/* Build 423 - public font-loading stability.
   Keep the approved Marcellus/Lato design while ensuring the faces used above
   the fold are requested immediately and render immediately with a fallback if the CDN face is not yet ready. Font files remain served by Google's font CDN. */
@font-face {
  font-family: 'Marcellus';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/marcellus/v13/wEO_EBrOk8hQLDvIAF81VvoK.woff2') format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjx4wXiWtFCc.woff2') format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2') format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2') format('woff2');
}

/* JT P31T39 bundle source: assets/css/styles.css */
:root {
  --bg: #050505;
  --bg-soft: #0b0907;
  --panel: #100d09;
  --panel-2: #15110b;
  --gold: #d2a23a;
  --gold-light: #f4d27c;
  --gold-dark: #8f641c;
  --cream: #f5efe3;
  --muted: #c9bda9;
  --line: rgba(210, 162, 58, 0.36);
  --shadow: 0 24px 70px rgba(0,0,0,.55);
  /* Public site shell is intentionally full-width; individual copy blocks keep their own readable max-widths. */
  --container: 100%;
  --radius: 18px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background:
    radial-gradient(circle at top right, rgba(210,162,58,.12), transparent 34rem),
    linear-gradient(180deg, #020202 0%, #090806 45%, #020202 100%);
  color: var(--cream);
  font-family: Lato, Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

body.nav-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.container {
  width: min(var(--container), calc(100% - 40px));
  margin-inline: auto;
}

.section { padding: 84px 0; }
.section-tight { padding: 56px 0; }

.kicker {
  color: var(--gold-light);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .22em;
  margin: 0 0 14px;
}

h1, h2, h3, .serif {
  font-family: Marcellus, Georgia, serif;
  font-weight: 400;
  letter-spacing: .018em;
  line-height: 1.08;
}

h1 { font-size: clamp(2.35rem, 4.6vw, 4.25rem); margin: 0 0 20px; }
h2 { font-size: clamp(1.75rem, 2.75vw, 2.85rem); margin: 0 0 16px; }
h3 { font-size: clamp(1.2rem, 1.65vw, 1.65rem); margin: 0 0 12px; }

.gold { color: var(--gold-light); }
.muted { color: var(--muted); }

/* Shared header: one set of rules for every page */
.site-header {
  position: relative;
  z-index: 50;
  background: rgba(0,0,0,.95);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}

.header-inner {
  width: min(var(--container), calc(100% - 40px));
  min-height: 112px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 300px 1fr 54px;
  gap: 26px;
  align-items: center;
}

.logo-link {
  width: 300px;
  display: block;
}

.logo-link img {
  width: 100%;
  height: auto;
}

.main-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  white-space: nowrap;
}

.main-nav a {
  position: relative;
  color: var(--cream);
  font-size: .80rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .095em;
  padding: 14px 0;
}

.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 3px;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}

.main-nav a:hover,
.main-nav a.active { color: var(--gold-light); }
.main-nav a:hover::after,
.main-nav a.active::after { transform: scaleX(1); }

.nav-toggle {
  display: none;
  width: 46px;
  height: 44px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--gold-light);
  font-size: 1.7rem;
  line-height: 1;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  border: 1px solid var(--gold);
  background: transparent;
  color: var(--gold-light);
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}

.btn:hover { transform: translateY(-2px); }
.btn-primary {
  background: linear-gradient(135deg, #9e6819, #f2c464);
  color: #050505;
  box-shadow: 0 16px 36px rgba(210,162,58,.18);
}
.btn-small { min-height: 42px; padding-inline: 20px; font-size: .76rem; }

/* Hero */
.hero {
  border-bottom: 1px solid var(--line);
  background:
    linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.86) 48%, rgba(17,12,7,.76) 100%),
    radial-gradient(circle at 78% 42%, rgba(210,162,58,.18), transparent 26rem);
}

.hero-grid {
  min-height: 680px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 54px;
  align-items: center;
}

.hero-copy p {
  max-width: 560px;
  color: var(--cream);
  font-size: 1.13rem;
  margin: 0 0 30px;
}

.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }

.hero-visual {
  min-height: 490px;
  border-left: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.75)),
    radial-gradient(circle at 70% 30%, rgba(244,210,124,.2), transparent 20rem),
    repeating-radial-gradient(circle at 50% 50%, rgba(244,210,124,.08) 0 2px, transparent 3px 58px);
  display: flex;
  align-items: end;
  padding: 38px;
}

.hero-photo-note {
  border-left: 2px solid var(--gold);
  padding-left: 20px;
  color: var(--muted);
}
.hero-photo-note strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trust-strip {
  border-bottom: 1px solid var(--line);
  background: rgba(0,0,0,.72);
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.trust-item {
  min-height: 118px;
  border-left: 1px solid var(--line);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 18px 14px;
}
.trust-item:last-child { border-right: 1px solid var(--line); }
.trust-icon { color: var(--gold-light); font-size: 1.7rem; line-height: 1; margin-bottom: 8px; }
.trust-item strong {
  font-size: .82rem;
  font-weight: 900;
  line-height: 1.24;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.section-head { max-width: 760px; margin: 0 auto 40px; text-align: center; }
.section-head p { color: var(--muted); margin: 0; }

.packages-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
.package-card {
  background: #fff;
  color: #111;
  border: 1px solid rgba(210,162,58,.5);
  box-shadow: var(--shadow);
  transition: transform .22s ease, box-shadow .22s ease;
}
.package-card:hover { transform: translateY(-6px); box-shadow: 0 22px 55px rgba(210,162,58,.16); }
.package-card img { width: 100%; height: auto; object-fit: contain; }
.package-detail-image img { width: 100%; height: auto; object-fit: contain; }
.packages-grid .package-card { overflow: visible; display: block; }


.package-mini {
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 26px;
}
.package-mini .price { font-family: Marcellus, Georgia, serif; font-size: 2.2rem; color: var(--gold-light); }

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
}

.panel {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  padding: 34px;
  box-shadow: var(--shadow);
}

.event-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.event-card {
  min-height: 210px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(210,162,58,.08), rgba(0,0,0,.55));
  padding: 28px;
}
.event-card h3 { color: var(--gold-light); font-size: 1.7rem; }

.tile-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.tile {
  min-height: 230px;
  border-right: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(210,162,58,.14), rgba(0,0,0,.8));
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: end;
}
.tile:first-child { border-left: 1px solid var(--line); }
.tile h3 { color: var(--cream); margin-bottom: 6px; }
.tile p { color: var(--muted); margin: 0; }

.page-hero {
  padding: 130px 0 90px;
  border-bottom: 1px solid var(--line);
  background: radial-gradient(circle at 78% 24%, rgba(210,162,58,.14), transparent 30rem);
}
.page-hero .container {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 60px;
  align-items: center;
}
.page-hero-card {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  padding: 34px;
}

.detail-list { padding-left: 1.1rem; color: var(--muted); }
.detail-list li { margin-bottom: 8px; }

.package-detail {
  border-top: 1px solid var(--line);
  padding: 72px 0;
}
.package-detail-grid {
  display: grid;
  grid-template-columns: 350px 1fr;
  gap: 42px;
  align-items: center;
}
.package-detail-image {
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.package-price-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: 22px 0;
}
.price-box {
  border: 1px solid var(--line);
  padding: 14px 20px;
  min-width: 150px;
}
.price-box span { display: block; color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.price-box strong { font-family: Marcellus, Georgia, serif; font-size: 2.1rem; color: var(--gold-light); }

.contact-form {
  display: grid;
  gap: 14px;
}
.contact-form input,
.contact-form textarea,
.contact-form select {
  width: 100%;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  color: var(--cream);
  min-height: 48px;
  padding: 12px 14px;
  font: inherit;
}
.contact-form textarea { min-height: 140px; }

/* Keep native contact-form dropdown options legible in browsers that render
   the opened menu on a light background. */
.contact-form select {
  color-scheme: dark;
}
.contact-form select option {
  background: #101010;
  color: var(--cream);
}
.contact-form select option:disabled {
  color: #a99f90;
}

.site-footer {
  border-top: 1px solid var(--line);
  padding: 56px 0 28px;
  background: #030303;
  color: var(--muted);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .9fr .9fr;
  gap: 32px;
}
.footer-logo { width: 240px; margin-bottom: 18px; }
.footer-grid h3 { color: var(--gold-light); font-size: 1.25rem; }
.footer-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-grid li { margin-bottom: 8px; }
.footer-bottom { margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .82rem; }


/* Footer Option B */
.site-footer.footer-option-b {
  border-top: 1px solid rgba(210,162,58,.32);
  padding: 26px 0 18px;
  background: #000;
}

.footer-option-b .footer-b-shell {
  overflow: hidden;
  border: 1px solid rgba(210,162,58,.46);
  border-radius: 22px;
  background: #000;
  box-shadow: 0 18px 52px rgba(0,0,0,.34);
}

.footer-option-b .footer-b-main {
  display: grid;
  grid-template-columns: minmax(230px, 280px) 1fr;
  gap: 30px;
  align-items: center;
  padding: 24px 28px 22px;
}

.footer-option-b .footer-b-brand {
  display: flex;
  align-items: center;
  min-height: 92px;
  padding-right: 28px;
  border-right: 1px solid rgba(210,162,58,.30);
}

.footer-option-b .footer-b-brand img {
  width: min(100%, 252px);
  height: auto;
}

.footer-option-b .footer-b-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}

.footer-option-b .footer-b-nav-group {
  min-width: 0;
}

.footer-option-b .footer-b-nav-toggle {
  width: 100%;
  margin: 0 0 11px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gold-light);
  font: 900 .72rem/1.2 Lato, Arial, sans-serif;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .18em;
  cursor: default;
}

.footer-option-b .footer-b-chevron {
  display: none;
}

.footer-option-b .footer-b-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 17px;
}

.footer-option-b .footer-b-links a {
  position: relative;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.4;
  transition: color .18s ease;
}

.footer-option-b .footer-b-links a:hover,
.footer-option-b .footer-b-links a:focus-visible {
  color: var(--cream);
  outline: none;
}

.footer-option-b .footer-b-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -2px;
  height: 1px;
  background: var(--gold-light);
  transition: right .18s ease;
}

.footer-option-b .footer-b-links a:hover::after,
.footer-option-b .footer-b-links a:focus-visible::after {
  right: 0;
}

.footer-option-b .footer-b-contact-row {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 15px 28px;
  border-top: 1px solid rgba(210,162,58,.25);
  background: #000;
}

.footer-option-b .footer-b-contact-actions {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 9px;
  min-width: 0;
}

.footer-option-b .footer-b-contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(210,162,58,.34);
  border-radius: 999px;
  background: rgba(255,255,255,.025);
  color: var(--cream);
  font-size: .77rem;
  line-height: 1.2;
  white-space: nowrap;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.footer-option-b .footer-b-contact-pill svg {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  padding: 4px;
  border-radius: 50%;
  fill: none;
  stroke: var(--footer-contact-icon, var(--gold-light));
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  background: var(--footer-contact-icon-bg, rgba(210,162,58,.09));
}

.footer-option-b .footer-b-contact-pill--phone {
  --footer-contact-icon: #55d66b;
  --footer-contact-icon-bg: rgba(85,214,107,.12);
}

.footer-option-b .footer-b-contact-pill--email {
  --footer-contact-icon: #ef6b63;
  --footer-contact-icon-bg: rgba(239,107,99,.12);
}

.footer-option-b .footer-b-contact-pill--web {
  --footer-contact-icon: #58aaf8;
  --footer-contact-icon-bg: rgba(88,170,248,.12);
}

.footer-option-b .footer-b-contact-pill:hover,
.footer-option-b .footer-b-contact-pill:focus-visible,
.footer-option-b .footer-b-social:hover,
.footer-option-b .footer-b-social:focus-visible {
  border-color: rgba(244,210,124,.78);
  background: rgba(210,162,58,.08);
  color: var(--gold-light);
  transform: translateY(-1px);
  outline: none;
}

.footer-option-b .footer-b-socials {
  display: flex;
  gap: 9px;
  flex: 0 0 auto;
}

.footer-option-b .footer-b-social {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(210,162,58,.42);
  border-radius: 50%;
  background: rgba(255,255,255,.025);
  color: var(--gold-light);
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.footer-option-b .footer-b-social svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-option-b .footer-b-social:last-child svg {
  fill: currentColor;
  stroke: none;
}

.footer-option-b .footer-b-social--instagram {
  color: #e85ba5;
  border-color: rgba(232,91,165,.52);
  background: rgba(232,91,165,.07);
}

.footer-option-b .footer-b-social--facebook {
  color: #5b9df9;
  border-color: rgba(91,157,249,.52);
  background: rgba(91,157,249,.07);
}

.footer-option-b .footer-b-social--instagram:hover,
.footer-option-b .footer-b-social--instagram:focus-visible {
  color: #f079ba;
  border-color: rgba(240,121,186,.78);
  background: rgba(232,91,165,.12);
}

.footer-option-b .footer-b-social--facebook:hover,
.footer-option-b .footer-b-social--facebook:focus-visible {
  color: #78affb;
  border-color: rgba(120,175,251,.78);
  background: rgba(91,157,249,.12);
}

.footer-option-b .footer-b-bottom {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 20px;
  border-top: 1px solid rgba(210,162,58,.18);
  color: #948a7b;
  font-size: .72rem;
  line-height: 1.35;
  letter-spacing: .015em;
  text-align: center;
}

.footer-option-b .footer-b-bottom-separator {
  color: rgba(210,162,58,.62);
}

.footer-option-b .footer-b-legal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 7px;
}

.footer-option-b .footer-b-legal a {
  color: #aaa091;
  transition: color .18s ease;
}

.footer-option-b .footer-b-legal a[aria-current="page"] {
  color: var(--gold-light);
}

.footer-option-b .footer-b-legal a:hover,
.footer-option-b .footer-b-legal a:focus-visible {
  color: var(--gold-light);
  outline: none;
}

.footer-option-b .footer-b-legal span {
  color: rgba(210,162,58,.55);
}

@media (max-width: 980px) {
  .footer-option-b .footer-b-main {
    grid-template-columns: 210px 1fr;
    gap: 24px;
    padding-inline: 24px;
  }

  .footer-option-b .footer-b-brand {
    padding-right: 24px;
  }

  .footer-option-b .footer-b-nav {
    gap: 20px;
  }

  .footer-option-b .footer-b-contact-row {
    align-items: flex-end;
    padding-inline: 24px;
  }

  .footer-option-b .footer-b-contact-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
  }

  .footer-option-b .footer-b-contact-pill:last-child {
    grid-column: 1 / -1;
    width: max-content;
  }
}

@media (max-width: 700px) {
  .footer-option-b {
    padding: 18px 0 14px;
  }

  .footer-option-b .footer-b-shell {
    border-radius: 18px;
  }

  .footer-option-b .footer-b-main {
    display: block;
    padding: 20px 18px 11px;
  }

  .footer-option-b .footer-b-brand {
    min-height: 0;
    justify-content: center;
    padding: 0 0 18px;
    border-right: 0;
    border-bottom: 1px solid rgba(210,162,58,.25);
  }

  .footer-option-b .footer-b-brand img {
    width: min(100%, 236px);
  }

  .footer-option-b .footer-b-nav {
    display: block;
    padding-top: 8px;
  }

  .footer-option-b .footer-b-nav-group {
    border-bottom: 1px solid rgba(210,162,58,.18);
  }

  .footer-option-b .footer-b-nav-group:last-child {
    border-bottom: 0;
  }

  .footer-option-b .footer-b-nav-toggle {
    min-height: 46px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--gold-light);
    cursor: pointer;
  }

  .footer-option-b .footer-b-chevron {
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
  }

  .footer-option-b .footer-b-nav-toggle[aria-expanded="true"] .footer-b-chevron {
    transform: rotate(180deg);
  }

  .footer-option-b .footer-b-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 18px;
    padding: 0 0 13px;
  }

  .footer-option-b .footer-b-links a {
    padding: 7px 0;
    font-size: .84rem;
  }

  .footer-option-b .footer-b-nav-group.is-collapsed .footer-b-links {
    display: none;
  }

  .footer-option-b .footer-b-contact-row {
    display: block;
    padding: 15px 18px 16px;
  }

  .footer-option-b .footer-b-contact-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .footer-option-b .footer-b-contact-pill,
  .footer-option-b .footer-b-contact-pill:last-child {
    width: 100%;
    min-height: 42px;
    justify-content: flex-start;
    grid-column: auto;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .footer-option-b .footer-b-socials {
    justify-content: center;
    margin-top: 13px;
  }

  .footer-option-b .footer-b-social {
    width: 40px;
    height: 40px;
  }

  .footer-option-b .footer-b-bottom {
    flex-direction: column;
    gap: 2px;
    min-height: 0;
    padding: 11px 16px 13px;
  }

  .footer-option-b .footer-b-bottom-separator {
    display: none;
  }

  .footer-option-b .footer-b-legal {
    margin: 3px 0;
    row-gap: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-option-b .footer-b-links a::after,
  .footer-option-b .footer-b-contact-pill,
  .footer-option-b .footer-b-social,
  .footer-option-b .footer-b-chevron {
    transition: none;
  }
}


.info-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: stretch;
}

.info-card {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  padding: 30px;
  box-shadow: var(--shadow);
}

.info-card p { color: var(--muted); }
.info-card .btn { margin-top: 10px; }

.embed-panel {
  margin-top: 22px;
  border: 1px dashed rgba(244, 210, 124, .46);
  background: rgba(255,255,255,.028);
  padding: 24px;
}

.embed-panel code {
  color: var(--gold-light);
  overflow-wrap: anywhere;
}

.embed-placeholder {
  margin-top: 16px;
  min-height: 140px;
  display: grid;
  place-items: center;
  text-align: center;
  border: 1px solid rgba(210,162,58,.25);
  color: var(--muted);
  padding: 20px;
}

@media (max-width: 1120px) {
  .header-inner { grid-template-columns: 260px 1fr 170px; gap: 16px; }
  .logo-link { width: 260px; }
  .main-nav { gap: 14px; }
  .main-nav a { font-size: .76rem; letter-spacing: .075em; }
  .packages-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .event-grid, .tile-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .header-inner {
    min-height: 86px;
    grid-template-columns: 240px 1fr 46px;
  }
  .header-action { display: none; }
  .nav-toggle { display: inline-grid; place-items: center; justify-self: end; }
  .main-nav {
    position: fixed;
    top: 86px;
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: rgba(0,0,0,.98);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 16px 20px 24px;
  }
  body.nav-open .main-nav { display: flex; }
  .main-nav a { padding: 15px 0; font-size: .92rem; }
  .hero-grid, .page-hero .container, .two-col, .package-detail-grid, .info-actions { grid-template-columns: 1fr; }
  .hero-grid { min-height: auto; padding: 80px 0; }
  .hero-visual { min-height: 300px; border-left: 0; border-top: 1px solid var(--line); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-item:last-child { grid-column: span 2; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .container, .header-inner { width: min(100% - 26px, var(--container)); }
  .header-inner { grid-template-columns: 200px 1fr 44px; }
  .logo-link { width: 200px; }
  h1 { font-size: clamp(1.95rem, 9vw, 2.85rem); }
  .section { padding: 58px 0; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .btn { width: 100%; }
  .packages-grid, .event-grid, .tile-grid, .footer-grid { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-item, .trust-item:last-child { grid-column: auto; border-right: 1px solid var(--line); }
  .package-detail-grid { gap: 24px; }
  .package-detail-image { max-width: 330px; margin: 0 auto; }
}


/* Occasions and collaborations */
.text-link {
  display: inline-block;
  margin-top: 14px;
  color: var(--gold-light);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
}
.text-link:hover { color: var(--cream); }
.occasions-grid .event-card { min-height: 260px; }
.collab-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.collab-card {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.012));
  padding: 32px;
  box-shadow: var(--shadow);
}
.collab-card h3 { color: var(--gold-light); }
.collab-card p { color: var(--muted); }
@media (max-width: 900px) {
  .collab-grid { grid-template-columns: 1fr; }
}


/* Booking and enquiry cascade updates */
.contact-details-list {
  margin-top: 24px;
  display: grid;
  gap: 8px;
  color: var(--muted);
}
.contact-details-list p { margin: 0; }
.contact-details-list strong { color: var(--cream); }

.form-row {
  display: grid;
  gap: 8px;
}
.form-row label {
  color: var(--gold-light);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}
.two-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.contact-form select:disabled {
  opacity: .62;
  cursor: not-allowed;
}
.form-note {
  margin: -4px 0 0;
  color: var(--muted);
  font-size: .92rem;
}
.booking-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.step-card {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  padding: 28px;
  box-shadow: var(--shadow);
}
.step-card span {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  border: 1px solid rgba(244,210,124,.55);
  border-radius: 999px;
  color: var(--gold-light);
  font-weight: 900;
}
.step-card p { color: var(--muted); }
.narrow-container {
  max-width: 920px;
}
.booking-embed-panel {
  margin-top: 26px;
}
.large-placeholder {
  min-height: 320px;
}
.notice-box {
  margin-top: 22px;
  border-left: 3px solid var(--gold);
  background: rgba(210,162,58,.08);
  padding: 22px 24px;
}
.notice-box p { color: var(--muted); }
@media (max-width: 900px) {
  .booking-steps, .two-fields { grid-template-columns: 1fr; }
}


/* Gallery and image-placement update */
.image-slot {
  min-height: 220px;
  border: 1px solid rgba(210,162,58,.42);
  background:
    linear-gradient(145deg, rgba(210,162,58,.13), rgba(255,255,255,.025)),
    radial-gradient(circle at 72% 28%, rgba(244,210,124,.16), transparent 14rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 8px;
  padding: 26px;
  color: var(--muted);
  box-shadow: var(--shadow);
}
.image-slot span {
  color: var(--gold-light);
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.image-slot strong {
  color: var(--cream);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.15;
}
.image-slot p { margin: 0; color: var(--muted); }
.image-slot-large { min-height: 340px; }
.image-slot-tall { min-height: 470px; }
.image-slot-small { min-height: 180px; margin-bottom: 24px; }
.feature-with-image { align-items: stretch; }
.event-grid-compact { grid-template-columns: repeat(2, 1fr); }
.panel-with-image { padding: 24px; }
.gallery-preview-grid,
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.gallery-preview {
  min-height: 260px;
  transition: transform .22s ease, border-color .22s ease;
}
.gallery-preview:hover {
  transform: translateY(-5px);
  border-color: rgba(244,210,124,.78);
}
.gallery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gallery-item { min-height: 300px; }
.video-embed-grid {
  display: grid;
  gap: 18px;
}
.video-placeholder {
  min-height: 190px;
}
@media (max-width: 900px) {
  .gallery-preview-grid,
  .gallery-grid,
  .event-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .image-slot-large,
  .image-slot-tall { min-height: 300px; }
}
@media (max-width: 640px) {
  .gallery-preview-grid,
  .gallery-grid,
  .event-grid-compact { grid-template-columns: 1fr; }
  .image-slot { min-height: 240px; }
}


/* Reviews and expanded gallery update */
.review-summary-card .small-note {
  font-size: .92rem;
  color: var(--muted);
}
.featured-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.review-card {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.018));
  padding: 28px;
  box-shadow: var(--shadow);
}
.review-card-featured {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.review-quote {
  color: var(--cream);
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  line-height: 1.45;
  margin: 0 0 26px;
}
.review-meta {
  border-top: 1px solid rgba(210,162,58,.22);
  padding-top: 18px;
  display: grid;
  gap: 4px;
}
.review-meta strong { color: var(--gold-light); }
.review-meta span { color: var(--muted); font-size: .92rem; }
.compact-head { max-width: 850px; }
.review-stack {
  display: grid;
  gap: 14px;
}
.review-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 250px;
  gap: 22px;
  align-items: start;
  border: 1px solid rgba(255,255,255,.11);
  background: rgba(255,255,255,.035);
  padding: 22px;
}
.review-row p {
  margin: 0;
  color: var(--cream);
  line-height: 1.65;
}
.review-row footer {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: .92rem;
}
.review-row footer strong { color: var(--gold-light); }
.review-tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  min-width: 112px;
  border: 1px solid rgba(210,162,58,.48);
  color: var(--gold-light);
  background: rgba(210,162,58,.09);
  padding: 8px 12px;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.review-format-panel pre {
  white-space: pre-wrap;
  margin: 12px 0 0;
  padding: 18px;
  background: rgba(0,0,0,.24);
  border: 1px solid rgba(255,255,255,.1);
  color: var(--cream);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  line-height: 1.55;
}
.video-feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr);
  gap: 20px;
}
.video-side-list {
  display: grid;
  gap: 20px;
}
.video-placeholder-large { min-height: 420px; }
.gallery-grid-large .gallery-item { min-height: 330px; }
.mini-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.mini-image-slot {
  min-height: 160px;
  padding: 18px;
}
.mini-image-slot strong { font-size: 1.15rem; }
.tick-list code {
  color: var(--gold-light);
  font-size: .92rem;
}
@media (max-width: 1000px) {
  .featured-reviews-grid { grid-template-columns: 1fr; }
  .review-row { grid-template-columns: 1fr; gap: 12px; }
  .video-feature-grid { grid-template-columns: 1fr; }
  .video-placeholder-large { min-height: 280px; }
}
@media (max-width: 640px) {
  .review-card { padding: 22px; }
  .review-row { padding: 18px; }
  .mini-gallery-grid { grid-template-columns: 1fr; }
}


/* Header update: remove top-right availability button and keep the wider menu balanced */
.header-inner {
  grid-template-columns: 300px minmax(0, 1fr) 54px;
}
.main-nav {
  gap: 13px;
}
.main-nav a {
  font-size: .76rem;
  letter-spacing: .078em;
}
.header-action { display: none !important; }

/* Performance schedule */
.schedule-list {
  display: grid;
  gap: 18px;
}
.month-group {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  box-shadow: var(--shadow);
}
.month-group summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 24px 28px;
  border-bottom: 1px solid rgba(210,162,58,.18);
}
.month-group summary::-webkit-details-marker { display: none; }
.month-group summary span {
  font-family: Marcellus, Georgia, serif;
  color: var(--gold-light);
  font-size: clamp(1.35rem, 2vw, 1.9rem);
}
.month-group summary small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 800;
  font-size: .72rem;
}
.schedule-items {
  display: grid;
  gap: 14px;
  padding: 18px;
}
.schedule-card {
  display: grid;
  grid-template-columns: 58px 190px minmax(0, 1fr) 190px;
  gap: 20px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(0,0,0,.24);
  padding: 18px;
}
.event-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(210,162,58,.54);
  border-radius: 999px;
  background: rgba(210,162,58,.1);
  font-size: 1.45rem;
}
.event-date strong,
.event-info h3,
.event-format { color: var(--cream); }
.event-date,
.event-info,
.event-format { min-width: 0; }
.event-date strong {
  display: block;
  font-family: Marcellus, Georgia, serif;
  font-size: 1.2rem;
  margin-bottom: 2px;
}
.event-date span,
.event-info p {
  color: var(--muted);
  margin: 0;
}
.event-info h3 {
  margin: 0 0 4px;
  font-size: 1.35rem;
}
.event-format {
  justify-self: end;
  text-align: right;
  border: 1px solid rgba(210,162,58,.42);
  color: var(--gold-light);
  padding: 9px 12px;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.gig-map-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 8px;
  color: var(--gold-light);
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .72rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(210,162,58,.45);
}
.gig-map-link:hover,
.gig-map-link:focus-visible {
  color: var(--cream);
  border-bottom-color: var(--cream);
}

.schedule-key ul {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 6px;
  list-style: none;
}
.schedule-key li {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  line-height: 1.25;
  font-size: .94rem;
}
.schedule-key span {
  width: 24px;
  flex: 0 0 24px;
  text-align: center;
  font-size: 1.05rem;
}
@media (max-width: 560px) {
 .schedule-key ul {
    grid-template-columns: 1fr;
  }
}
.review-library-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.review-card-open {
  min-height: 240px;
  display: grid;
  align-content: start;
  gap: 12px;
}
.review-card-open h3 { margin-top: 6px; }
.review-card-open p { margin: 0; color: var(--muted); }
@media (max-width: 1120px) {
  .header-inner { grid-template-columns: 260px 1fr 54px; }
  .logo-link { width: 260px; }
  .main-nav { gap: 10px; }
  .main-nav a { font-size: .70rem; letter-spacing: .055em; }
}
@media (max-width: 900px) {
  .header-inner { grid-template-columns: 260px 1fr; }
  .main-nav a { font-size: .92rem; letter-spacing: .095em; }
  .schedule-card { grid-template-columns: 54px 1fr; }
  .event-format { justify-self: start; text-align: left; grid-column: 2; }
  .review-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .schedule-card { grid-template-columns: 1fr; }
  .event-format { grid-column: auto; }
  .event-icon { width: 48px; height: 48px; }
  .month-group summary { align-items: flex-start; flex-direction: column; }
  .review-library-grid { grid-template-columns: 1fr; }
}

/* Keep mobile menu behaviour intact after the performance-menu update */
@media (max-width: 900px) {
  .nav-toggle { display: inline-grid; place-items: center; justify-self: end; }
  .main-nav {
    position: fixed;
    top: 86px;
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: rgba(0,0,0,.98);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 16px 20px 24px;
  }
  body.nav-open .main-nav { display: flex; }
}

/* Final header spacing tidy: keeps the desktop menu away from the logo without changing page widths */
@media (min-width: 901px) {
  .header-inner {
    grid-template-columns: 250px minmax(0, 1fr) 54px;
    gap: 44px;
  }
  .logo-link {
    width: 250px;
  }
  .main-nav {
    justify-content: flex-start;
    gap: 12px;
  }
  .main-nav a {
    font-size: .76rem;
    letter-spacing: .07em;
  }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .header-inner {
    grid-template-columns: 230px minmax(0, 1fr) 54px;
    gap: 34px;
  }
  .logo-link {
    width: 230px;
  }
  .main-nav {
    gap: 9px;
  }
  .main-nav a {
    font-size: .70rem;
    letter-spacing: .045em;
  }
}

/* To Hell or Verona page expansion */
.section-dark {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(210,162,58,.055), rgba(0,0,0,.28));
}
.toh-hero h1 { max-width: 820px; }
.btn-secondary {
  background: rgba(255,255,255,.025);
  color: var(--cream);
}
.btn-secondary:hover { color: var(--gold-light); }
.toh-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.toh-stat {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(210,162,58,.045));
  padding: 24px 20px;
  text-align: center;
  box-shadow: var(--shadow);
}
.toh-stat strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(1.65rem, 2.4vw, 2.45rem);
  font-weight: 400;
  line-height: 1.05;
  margin-bottom: 8px;
}
.toh-stat span {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.toh-lineup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.toh-highlights-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.toh-highlights-grid .event-card {
  min-height: 290px;
}
.toh-icon {
  font-size: 2.1rem;
  line-height: 1;
  margin-bottom: 18px;
}
.toh-booking-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.toh-booking-grid div {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  color: var(--cream);
  padding: 18px 20px;
  font-weight: 800;
}
.venue-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.venue-cloud span {
  border: 1px solid rgba(210,162,58,.5);
  color: var(--gold-light);
  background: rgba(210,162,58,.06);
  padding: 10px 16px;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cta-band {
  border-top: 1px solid var(--line);
  background: radial-gradient(circle at 20% 20%, rgba(210,162,58,.16), transparent 24rem);
}
.cta-actions {
  display: flex;
  gap: 14px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.muted strong { color: var(--cream); }

@media (max-width: 1100px) {
  .toh-highlights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toh-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .toh-lineup-grid,
  .toh-booking-grid { grid-template-columns: 1fr; }
  .cta-actions { justify-content: stretch; }
  .cta-actions .btn { flex: 1 1 100%; }
}
@media (max-width: 640px) {
  .toh-highlights-grid,
  .toh-stats-grid { grid-template-columns: 1fr; }
}


/* Visible image placeholder upload dimensions */
.slot-dim {
  display: block;
  margin-top: 8px;
  color: rgba(244,210,124,.82);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.35;
  text-transform: none;
}
.hero-photo-note .slot-dim {
  margin-top: 12px;
  color: rgba(244,210,124,.9);
}
.video-placeholder .slot-dim {
  color: rgba(244,210,124,.86);
  font-family: Lato, Arial, sans-serif;
}


/* Real placeholder image files while preserving editable caption text */
.hero-visual-with-image {
  padding: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: minmax(260px, 1fr) auto;
}
.hero-visual-with-image .slot-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.hero-visual-with-image .hero-photo-note {
  margin: 0;
  padding: 24px 30px;
  background: rgba(0,0,0,.72);
  border-left: 0;
  border-top: 1px solid rgba(210,162,58,.35);
}
.image-slot-with-image {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
}
.image-slot-with-image .slot-image {
  width: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  flex: 0 0 auto;
}
.image-slot-large.image-slot-with-image .slot-image,
.page-hero-card.image-slot-with-image .slot-image { aspect-ratio: 16 / 10; }
.image-slot-tall.image-slot-with-image .slot-image { aspect-ratio: 5 / 7; }
.image-slot-small.image-slot-with-image .slot-image { aspect-ratio: 3 / 2; }
.mini-image-slot.image-slot-with-image .slot-image { aspect-ratio: 4 / 3; }
.gallery-preview.image-slot-with-image .slot-image,
.gallery-item.image-slot-with-image .slot-image { aspect-ratio: 4 / 3; }
.slot-caption {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 8px;
  min-height: 120px;
  background: linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,.94));
}
.image-slot-tall .slot-caption { min-height: 150px; }
.mini-image-slot .slot-caption { min-height: 92px; padding: 14px; }
.gallery-preview.image-slot-with-image { text-decoration: none; }
@media (max-width: 640px) {
  .hero-visual-with-image { grid-template-rows: 260px auto; }
  .slot-caption { min-height: 100px; }
}


/* Footer social link icons */
.footer-social-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
}
.footer-social-link:hover {
  color: var(--gold-light);
}
.footer-social-icon {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 20px;
  border: 1px solid rgba(210,162,58,.58);
  color: var(--gold-light);
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1;
}
.footer-social-icon-facebook {
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
.footer-social-icon-instagram {
  border-radius: 50%;
  font-size: 1.05rem;
}


/* Footer contact link icons */
.footer-contact-list {
  display: grid;
  gap: 8px;
}
.footer-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
}
.footer-contact-link:hover {
  color: var(--gold-light);
}
.footer-contact-icon {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 20px;
  border: 1px solid rgba(210,162,58,.58);
  color: var(--gold-light);
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1;
  border-radius: 50%;
}

/* Standardised page-start spacing across all internal pages */
.page-hero {
  padding: 76px 0 58px;
}

.page-hero .container {
  gap: 44px;
}

main > .section:first-child,
main > .section-tight:first-child {
  padding-top: 76px;
}

@media (max-width: 900px) {
  .page-hero {
    padding: 58px 0 46px;
  }

  main > .section:first-child,
  main > .section-tight:first-child {
    padding-top: 58px;
  }
}

/* Align page hero text consistently at the top of the hero area */
.page-hero .container {
  align-items: start;
}

@media (max-width: 900px) {
  .page-hero .container {
    align-items: start;
  }
}


/* Refined title scale: less dominating page headings */
.page-hero {
  padding: 64px 0 48px;
}

.page-hero h1 {
  font-size: clamp(2.05rem, 3.35vw, 3.35rem);
  line-height: 1.12;
  letter-spacing: .012em;
  margin-bottom: 16px;
}

.page-hero .kicker {
  font-size: .72rem;
  letter-spacing: .2em;
  margin-bottom: 10px;
}

.page-hero p {
  font-size: 1rem;
  line-height: 1.68;
}

.section-head h2 {
  font-size: clamp(1.7rem, 2.45vw, 2.55rem);
  line-height: 1.14;
}

.hero-copy h1 {
  font-size: clamp(2.25rem, 4.1vw, 3.85rem);
  line-height: 1.1;
}

@media (max-width: 900px) {
  .page-hero {
    padding: 52px 0 40px;
  }
}

@media (max-width: 640px) {
  .page-hero h1 {
    font-size: clamp(1.85rem, 8.5vw, 2.55rem);
  }

  .hero-copy h1 {
    font-size: clamp(2rem, 9vw, 2.85rem);
  }
}

/* Wedding package detail compact viewport fit - 2026-08-06
   Tighter version: reduces vertical height further so each package fits better on laptop screens. */
.package-detail {
  padding: 24px 0 28px;
}

.package-detail-grid {
  grid-template-columns: minmax(240px, 305px) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.package-detail-image {
  max-width: 305px;
  justify-self: center;
}

.package-detail-image img {
  max-height: 455px;
  width: 100%;
  object-fit: contain;
  display: block;
}

.package-detail h1,
.package-detail h2:first-child {
  font-size: clamp(1.8rem, 2.55vw, 2.65rem);
  line-height: 1.03;
  margin-bottom: 0.38rem;
}

.package-detail h2:not(:first-child) {
  font-size: clamp(1.28rem, 1.65vw, 1.6rem);
  line-height: 1.08;
  margin-top: 0.75rem;
  margin-bottom: 0.45rem;
}

.package-detail p {
  margin-bottom: 0.58rem;
  line-height: 1.48;
}

.package-price-row {
  gap: 10px;
  margin: 12px 0 15px;
}

.price-box {
  min-width: 118px;
  padding: 9px 14px;
}

.price-box strong {
  font-size: 1.55rem;
}

.package-detail .detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 20px;
  margin-top: 0.25rem;
  margin-bottom: 0.35rem;
}

.package-detail .detail-list li {
  margin-bottom: 0;
  line-height: 1.35;
}

.package-detail .btn {
  margin-top: 0.65rem;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

@media (min-width: 981px) and (max-height: 780px) {
  .package-detail {
    padding: 18px 0 22px;
  }

  .package-detail-image {
    max-width: 285px;
  }

  .package-detail-image img {
    max-height: 430px;
  }

  .package-detail h1,
  .package-detail h2:first-child {
    font-size: clamp(1.7rem, 2.25vw, 2.35rem);
  }

  .package-detail p {
    font-size: 0.98rem;
    line-height: 1.42;
  }
}

@media (max-width: 980px) {
  .package-detail-grid {
    grid-template-columns: 1fr;
  }

  .package-detail-image {
    max-width: 360px;
  }

  .package-detail .detail-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .package-detail {
    padding: 38px 0;
  }

  .package-detail-image {
    max-width: 300px;
  }

  .package-detail-image img {
    max-height: none;
  }
}

/* Anchor positioning fix - keeps sticky header from covering section titles */
html {
  scroll-padding-top: 132px;
}

#wedding-packages,
#wedding-info-pack,
.package-detail {
  scroll-margin-top: 132px;
}

@media (max-width: 900px) {
  html {
    scroll-padding-top: 96px;
  }

  #wedding-packages,
  #wedding-info-pack,
  .package-detail {
    scroll-margin-top: 96px;
  }
}

/* Wedding package individual anchor refinement - 2026-08-06
   Main package list needs the larger offset, but individual package sections were landing too low.
   This brings each package heading up so "Wedding Package" is the first visible package text. */
.package-detail {
  scroll-margin-top: 52px;
}

@media (max-width: 900px) {
  .package-detail {
    scroll-margin-top: 70px;
  }
}

/* Wedding package anchor exact alignment - 2026-08-06
   Individual package links should start at the package section itself, so the
   "Wedding Package" label is the first package text visible rather than the
   previous package's Check Availability button. */
.package-detail[id] {
  scroll-margin-top: 0;
}

@media (max-width: 900px) {
  .package-detail[id] {
    scroll-margin-top: 0;
  }
}

/* Wedding package list anchor spacing refinement - 2026-08-06
   Keeps individual package anchors as-is, but removes the oversized blank gap
   before "Choose your package / Wedding packages" when using the View packages button. */
#wedding-packages.section {
  padding-top: 26px;
}

#wedding-packages .section-head {
  margin-bottom: 28px;
}

@media (max-width: 900px) {
  #wedding-packages.section {
    padding-top: 24px;
  }

  #wedding-packages .section-head {
    margin-bottom: 24px;
  }
}

/* Wedding packages list anchor correction - 2026-08-06
   The View Packages button should land on the package chooser itself, not leave
   buttons from the previous section visible above the heading. Individual
   package anchors remain controlled by .package-detail[id]. */
#wedding-packages,
#wedding-packages.section {
  scroll-margin-top: 0;
}

@media (max-width: 900px) {
  #wedding-packages,
  #wedding-packages.section {
    scroll-margin-top: 0;
  }
}

/* Upcoming gigs: expanded landing area and clean jump anchor */
.page-hero .hero-actions {
  margin-top: 1.1rem;
}

.performance-calendar-section {
  scroll-margin-top: 92px;
}

@media (min-width: 900px) {
  .performance-calendar-section {
    padding-top: 3.25rem;
  }
}

@media (max-width: 640px) {
  .page-hero .hero-actions {
    gap: 0.75rem;
  }
}

/* Site-wide refinement pass - 2026-08-06
   Cleaner first-screen balance, fixed return-to-top button and tighter anchor landings. */
.return-to-top {
  position: fixed;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(210,162,58,.72);
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  color: #080604;
  box-shadow: 0 16px 34px rgba(0,0,0,.38);
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease, box-shadow .22s ease;
  z-index: 9999;
}

.return-to-top.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.return-to-top:hover,
.return-to-top:focus-visible {
  box-shadow: 0 18px 42px rgba(210,162,58,.32);
  outline: none;
}

.weddings-page .page-hero,
.reviews-page .page-hero,
.about-page .page-hero {
  padding-top: 50px;
  padding-bottom: 44px;
}

.weddings-page .page-hero .container,
.reviews-page .page-hero .container,
.about-page .page-hero .container {
  gap: 34px;
  align-items: center;
}

.weddings-page .page-hero h1,
.reviews-page .page-hero h1,
.about-page .page-hero h1 {
  margin-bottom: 14px;
}

.weddings-page .page-hero p,
.reviews-page .page-hero p,
.about-page .page-hero p {
  line-height: 1.58;
}

.weddings-page .page-hero-card,
.reviews-page .page-hero-card,
.about-page .page-hero-card {
  padding: 28px 30px;
}

.weddings-page .page-hero-card h3,
.reviews-page .page-hero-card h3,
.about-page .page-hero-card h2 {
  font-size: clamp(1.35rem, 2.25vw, 2.15rem);
  line-height: 1.12;
}

.weddings-page .small-note,
.reviews-page .small-note {
  font-size: .92rem;
  color: var(--muted);
}

/* Keep wedding page wedding-focused while still giving non-wedding visitors a route. */
.weddings-page .page-hero-card .text-link {
  color: var(--gold-light);
}

/* Better fallback anchor positions when JavaScript is unavailable. */
#wedding-packages {
  scroll-margin-top: 96px;
}

.package-detail[id],
.performance-calendar-section[id] {
  scroll-margin-top: 104px;
}

@media (max-width: 900px) {
  .weddings-page .page-hero,
  .reviews-page .page-hero,
  .about-page .page-hero {
    padding-top: 42px;
    padding-bottom: 38px;
  }

  .return-to-top {
    right: max(14px, env(safe-area-inset-right));
    bottom: max(14px, env(safe-area-inset-bottom));
    width: 42px;
    height: 42px;
    font-size: 1.2rem;
  }
}


@media (max-width: 420px) {
  .return-to-top {
    width: 40px;
    height: 40px;
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
  }
}

/* Wedding package landscape-card refinements */
.weddings-page .packages-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}

.weddings-page .packages-grid .package-card {
  padding: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
}

.weddings-page .packages-grid .package-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}

.weddings-page .package-detail-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: center;
}

.weddings-page .package-detail-image img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}

.weddings-page #wedding-info-pack {
  margin-top: 1rem;
}

@media (min-width: 1180px) {
  .weddings-page .packages-grid .package-card:nth-child(5) {
    grid-column: 1 / -1;
    max-width: calc(50% - 0.625rem);
    justify-self: center;
  }
}

@media (max-width: 900px) {
  .weddings-page .packages-grid,
  .weddings-page .package-detail-grid {
    grid-template-columns: 1fr;
  }

  .weddings-page .packages-grid .package-card:nth-child(5) {
    max-width: none;
  }
}

/* Wedding page polish: larger package cards and softer page flow */
.weddings-page .page-hero {
  padding-top: clamp(4.5rem, 6vw, 6.5rem);
  padding-bottom: clamp(3.5rem, 5vw, 5.25rem);
}

.weddings-page .page-hero-card,
.weddings-page .info-card,
.weddings-page .package-detail-image,
.weddings-page .price-box {
  border-radius: 18px;
}

.weddings-page .page-hero-card,
.weddings-page .info-card {
  background: linear-gradient(145deg, rgba(210,162,58,.10), rgba(255,255,255,.025));
  border-color: rgba(210,162,58,.34);
}

.weddings-page #wedding-packages {
  padding-top: clamp(3.5rem, 6vw, 5.5rem);
  padding-bottom: clamp(3rem, 5vw, 4.75rem);
  background: radial-gradient(circle at 50% 0%, rgba(210,162,58,.08), transparent 34rem);
}

.weddings-page #wedding-packages .container {
  max-width: 1500px;
}

.weddings-page #wedding-packages .section-head {
  margin-bottom: clamp(1.5rem, 3vw, 2.6rem);
}

.weddings-page #wedding-packages .section-head p:last-child {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.weddings-page .packages-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(1.5rem, 2.5vw, 2.5rem) !important;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}

.weddings-page .packages-grid .package-card {
  border-radius: 20px;
  border-color: rgba(210,162,58,.48);
  background: rgba(255,255,255,.04);
  box-shadow: 0 20px 60px rgba(0,0,0,.42);
}

.weddings-page .packages-grid .package-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}

@media (min-width: 1100px) {
  .weddings-page .packages-grid .package-card:nth-child(5) {
    grid-column: 1 / -1;
    max-width: calc(50% - clamp(.75rem, 1.25vw, 1.25rem));
    justify-self: center;
  }
}

.weddings-page .package-detail {
  padding-top: clamp(3rem, 5vw, 4.75rem);
  padding-bottom: clamp(3rem, 5vw, 4.75rem);
  border-top-color: rgba(210,162,58,.28);
  background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(0,0,0,.12));
}

.weddings-page .package-detail:nth-of-type(even) {
  background: radial-gradient(circle at 20% 20%, rgba(210,162,58,.055), transparent 30rem);
}

.weddings-page .package-detail-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr) !important;
  gap: clamp(1.75rem, 3vw, 3.5rem);
  align-items: center;
}

.weddings-page .package-detail-image {
  background: rgba(255,255,255,.03);
  border-color: rgba(210,162,58,.36);
  padding: clamp(.35rem, .8vw, .75rem);
}

.weddings-page .package-detail-image img {
  border-radius: 14px;
  width: 100%;
}

.weddings-page .package-detail h2 {
  margin-bottom: .35rem;
}

.weddings-page .package-detail .gold {
  margin-bottom: 1rem;
}

.weddings-page .package-price-row {
  margin: 1rem 0 1.35rem;
}

.weddings-page .price-box {
  background: rgba(255,255,255,.025);
  min-width: 135px;
}

.weddings-page .detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem 1.25rem;
  margin-bottom: 1.25rem;
}

.weddings-page .detail-list li {
  margin-bottom: 0;
}

.weddings-page #wedding-info-pack {
  padding-top: clamp(3rem, 5vw, 4.75rem);
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
  background: radial-gradient(circle at 50% 0%, rgba(210,162,58,.08), transparent 32rem);
}

.weddings-page .info-actions {
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

.weddings-page .info-card {
  padding: clamp(1.6rem, 3vw, 2.35rem);
}

.weddings-page .info-card h2 {
  font-size: clamp(1.75rem, 2.6vw, 2.65rem);
}

@media (max-width: 980px) {
  .weddings-page .packages-grid,
  .weddings-page .package-detail-grid,
  .weddings-page .detail-list {
    grid-template-columns: 1fr !important;
  }

  .weddings-page .packages-grid .package-card:nth-child(5) {
    max-width: none;
  }

  .weddings-page .package-detail-image {
    max-width: none;
    margin: 0;
  }
}

@media (max-width: 640px) {
  .weddings-page #wedding-packages .container {
    width: min(100% - 1.4rem, 1500px);
  }

  .weddings-page .packages-grid {
    gap: 1rem !important;
  }

  .weddings-page .package-detail {
    padding-top: 2.4rem;
    padding-bottom: 2.4rem;
  }
}


/* 2026-08-06 corrected wedding package split:
   landscape cards for package chooser/home preview; portrait artwork only in package detail sections. */

#packages-preview .packages-grid,
.weddings-page .packages-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  align-items: stretch;
}

#packages-preview .packages-grid .package-card,
.weddings-page .packages-grid .package-card {
  display: block;
  overflow: hidden;
  padding: 0;
  border-radius: 18px;
  background: rgba(255,255,255,.035);
}

#packages-preview .packages-grid .package-card img,
.weddings-page .packages-grid .package-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: #fbf8f1;
}

#packages-preview .packages-grid .package-card:nth-child(5),
.weddings-page .packages-grid .package-card:nth-child(5) {
  grid-column: 1 / -1;
  justify-self: center;
  width: min(100%, 640px);
  max-width: none;
}

.weddings-page .package-detail {
  padding: 42px 0 46px;
}

.weddings-page .package-detail-grid {
  grid-template-columns: minmax(250px, 360px) minmax(0, 1fr);
  gap: clamp(30px, 4vw, 58px);
  align-items: start;
}

.weddings-page .package-detail-image {
  justify-self: center;
  width: 100%;
  max-width: 360px;
  overflow: hidden;
  border-radius: 18px;
  background: #fbf8f1;
}

.weddings-page .package-detail-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
}

.weddings-page .package-detail .detail-list {
  gap: 7px 26px;
}

/* Stop older scroll-margin rules fighting the JavaScript anchor positioning. */
html {
  scroll-padding-top: 0 !important;
}

#wedding-packages,
#wedding-info-pack,
.package-detail,
.package-detail[id],
.performance-calendar-section[id] {
  scroll-margin-top: 0 !important;
}

@media (max-width: 980px) {
  #packages-preview .packages-grid,
  .weddings-page .packages-grid,
  .weddings-page .package-detail-grid {
    grid-template-columns: 1fr;
  }

  #packages-preview .packages-grid .package-card:nth-child(5),
  .weddings-page .packages-grid .package-card:nth-child(5) {
    grid-column: auto;
    width: 100%;
  }

  .weddings-page .package-detail-image {
    max-width: min(100%, 420px);
  }
}

@media (min-width: 1180px) {
  #packages-preview .packages-grid {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 2026-08-06 package detail layout correction
   Keeps the landscape chooser cards, but makes the clicked-through detail layout
   use a controlled portrait image column and a wider text column. */
.weddings-page .package-detail .container.package-detail-grid {
  max-width: 1180px;
  grid-template-columns: minmax(260px, 360px) minmax(0, 680px) !important;
  gap: clamp(28px, 4vw, 58px) !important;
  justify-content: center;
  align-items: start;
}

.weddings-page .package-detail-image {
  width: 100%;
  max-width: 360px !important;
  justify-self: end;
  margin: 0;
}

.weddings-page .package-detail-image img {
  width: 100%;
  max-height: 560px;
  object-fit: contain;
}

.weddings-page .package-detail .package-detail-grid > div:last-child {
  max-width: 680px;
  justify-self: start;
}

.weddings-page .package-detail .detail-list {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}

@media (min-width: 1200px) {
  .weddings-page .package-detail .container.package-detail-grid {
    transform: translateX(-24px);
  }
}

@media (max-width: 980px) {
  .weddings-page .package-detail .container.package-detail-grid {
    grid-template-columns: 1fr !important;
    max-width: 760px;
    transform: none;
  }

  .weddings-page .package-detail-image {
    justify-self: center;
    max-width: min(100%, 390px) !important;
  }

  .weddings-page .package-detail .package-detail-grid > div:last-child {
    max-width: none;
    justify-self: stretch;
  }
}

@media (max-width: 640px) {
  .weddings-page .package-detail .detail-list {
    grid-template-columns: 1fr;
  }
}

/* 2026-08-07 remove extra white wrapper around wedding package detail images */
.weddings-page .package-detail-image {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.weddings-page .package-detail-image img {
  display: block;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Wedding package chooser order correction
   Ensures the top landscape package cards always display:
   Organza, Velvet, Satin, Silk, Custom. */
.weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-organza"] { order: 1; }
.weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-velvet"] { order: 2; }
.weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-satin"] { order: 3; }
.weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-silk"] { order: 4; }
.weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-custom"] { order: 5; }

@media (min-width: 981px) {
  .weddings-page #wedding-packages .packages-grid .package-card:nth-child(5) {
    grid-column: auto;
    justify-self: stretch;
    width: auto;
    max-width: none;
  }

  .weddings-page #wedding-packages .packages-grid .package-card[href$="#wedding-custom"] {
    grid-column: 1 / -1;
    justify-self: center;
    width: min(100%, 640px);
    max-width: none;
  }
}

/* Homepage redesign - 2026-08-07 */
.home-page .home-hero {
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 76% 28%, rgba(210,162,58,.14), transparent 30rem),
    linear-gradient(180deg, #030303 0%, #090806 100%);
}
.home-page .home-hero-grid {
  min-height: 650px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 64px;
  padding: 68px 0;
}
.home-page .home-hero-copy { max-width: 650px; }
.home-page .home-hero-copy h1 { font-size: clamp(2.45rem, 4.35vw, 4.45rem); }
.home-page .home-hero-lead {
  max-width: 620px;
  margin: 0 0 32px;
  color: var(--muted);
  font-size: 1.13rem;
}
.home-page .home-hero-media {
  position: relative;
  margin: 0;
  min-height: 500px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  background: #090909;
}
.home-page .home-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(0,0,0,.82) 100%);
  pointer-events: none;
}
.home-page .home-hero-media img {
  width: 100%;
  height: 100%;
  min-height: 500px;
  object-fit: cover;
  object-position: center;
}
.home-page .home-hero-media figcaption {
  position: absolute;
  left: 26px;
  right: 26px;
  bottom: 22px;
  z-index: 2;
  color: var(--cream);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.home-page .home-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.home-page .home-trust-card {
  min-height: 102px;
  padding: 22px 20px;
  border-left: 1px solid var(--line);
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}
.home-page .home-trust-card:last-child { border-right: 1px solid var(--line); }
.home-page .home-trust-icon {
  width: 30px;
  height: 30px;
  color: var(--gold-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.home-page .home-trust-icon svg {
  width: 30px;
  height: 30px;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-page .home-trust-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.home-page .home-trust-grid strong {
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.12;
}
.home-page .home-trust-grid span { color: var(--muted); font-size: .88rem; }
.home-page .home-intro { padding-top: 44px; padding-bottom: 44px; }
.home-page .home-intro-grid {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 80px;
  align-items: start;
}
.home-page .home-intro-grid h2 { max-width: 500px; }
.home-page .home-intro-copy { max-width: 650px; color: var(--muted); font-size: 1.05rem; }
.home-page .home-intro-copy p:first-child { margin-top: 0; }
.home-page .home-pathways-section {
  padding-top: 42px;
  padding-bottom: 44px;
  border-top: 1px solid rgba(210,162,58,.18);
  border-bottom: 1px solid rgba(210,162,58,.18);
  background: rgba(0,0,0,.28);
}
.home-page .home-pathways {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
}
.home-page .home-pathway {
  position: relative;
  min-height: 365px;
  padding: 28px 34px 30px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.28));
  transition: background .22s ease, transform .22s ease;
}
.home-page .home-pathway:last-child { border-right: 0; }
.home-page .home-pathway:hover { background: linear-gradient(180deg, rgba(210,162,58,.11), rgba(0,0,0,.42)); }
.home-page .home-pathway-featured { background: linear-gradient(180deg, rgba(210,162,58,.12), rgba(0,0,0,.38)); }
.home-page .home-pathway-icon {
  width: 38px;
  height: 38px;
  margin-bottom: 26px;
  color: rgba(244,210,124,.68);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.home-page .home-pathway-icon svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-page .home-pathway .text-link { margin-top: auto; padding-top: 16px; }
.home-page .home-pathway h3 { color: var(--cream); font-size: clamp(1.55rem, 2.1vw, 2.25rem); }
.home-page .home-pathway > p:not(.kicker) { color: var(--muted); }
.home-page .home-wedding-feature { padding-top: 58px; padding-bottom: 58px; }
.home-page .home-feature-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 58px;
  align-items: center;
}
.home-page .home-feature-copy { max-width: 660px; }
.home-page .home-feature-copy > p:not(.kicker) { max-width: 620px; }
.home-page .home-pathways-section .section-head { margin-bottom: 26px; }
.home-page .home-wedding-moments {
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(210,162,58,.09), rgba(0,0,0,.38));
  box-shadow: var(--shadow);
}
.home-page .home-wedding-moment {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  align-items: start;
  padding: 24px 26px;
  border-bottom: 1px solid var(--line);
}
.home-page .home-wedding-moment:last-child { border-bottom: 0; }
.home-page .home-wedding-moment-icon {
  width: 34px;
  height: 34px;
  color: var(--gold-light);
  display: inline-flex;
}
.home-page .home-wedding-moment-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-page .home-wedding-moment strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.2rem;
  font-weight: 400;
  margin-bottom: 4px;
}
.home-page .home-wedding-moment span { color: var(--muted); font-size: .94rem; line-height: 1.45; }
.home-page .home-photo-panel {
  position: relative;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #050505;
  box-shadow: var(--shadow);
}
.home-page .home-photo-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(0,0,0,.88) 100%);
  pointer-events: none;
}
.home-page .home-photo-panel img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.home-page .home-photo-panel figcaption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 20px;
  z-index: 2;
  color: var(--cream);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.25;
}
.home-page .home-feature-photo {
  min-height: 430px;
}
.home-page .home-feature-photo img {
  min-height: 430px;
  object-position: center 48%;
}
.home-page .home-performance-band {
  padding-top: 44px;
  padding-bottom: 44px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(90deg, rgba(210,162,58,.07), rgba(0,0,0,.38));
}
.home-page .home-performance-grid {
  display: grid;
  grid-template-columns: .78fr .82fr 1fr;
  gap: 34px;
  align-items: stretch;
}
.home-page .home-performance-copy { align-self: center; }
.home-page .home-performance-photo { min-height: 300px; }
.home-page .home-performance-photo img { min-height: 300px; object-position: center; }
.home-page .home-performance-links { border-top: 1px solid var(--line); }
.home-page .home-performance-links a {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.home-page .home-performance-links strong {
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: 12px;
}
.home-page .home-performance-links > a > span { color: var(--muted); }
.home-page .home-performance-link-icon {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-light);
}
.home-page .home-performance-link-icon svg {
  width: 25px;
  height: 25px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-page .home-about-preview { padding-top: 60px; padding-bottom: 60px; }
.home-page .home-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.home-page .home-about-grid > div:first-child { max-width: 620px; }
.home-page .home-about-side { display: grid; gap: 16px; }
.home-page .home-about-photo { min-height: 270px; }
.home-page .home-about-photo img { min-height: 270px; object-position: center 40%; }
.home-page .home-about-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.home-page .home-mini-card {
  padding: 28px 30px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  transition: transform .2s ease, background .2s ease;
}
.home-page .home-mini-card:hover { transform: translateY(-3px); background: rgba(210,162,58,.07); }
.home-page .home-mini-card span {
  display: block;
  margin-bottom: 6px;
  color: var(--gold-light);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-page .home-mini-card strong { font-family: Marcellus, Georgia, serif; font-size: 1.4rem; font-weight: 400; }
.home-page .home-final-cta {
  padding: 82px 0;
  border-top: 1px solid var(--line);
  background:
    radial-gradient(circle at 80% 20%, rgba(210,162,58,.18), transparent 24rem),
    #070604;
}
.home-page .home-final-cta-inner {
  display: flex;
  justify-content: space-between;
  gap: 48px;
  align-items: center;
}
.home-page .home-final-cta-inner > div:first-child { max-width: 680px; }
.home-page .home-final-cta-inner p:last-child { color: var(--muted); margin-bottom: 0; }

@media (max-width: 900px) {
  .home-page .home-hero-grid,
  .home-page .home-intro-grid,
  .home-page .home-feature-grid,
  .home-page .home-performance-grid,
  .home-page .home-about-grid { grid-template-columns: 1fr; gap: 42px; }
  .home-page .home-performance-photo { min-height: 380px; }
  .home-page .home-performance-photo img { min-height: 380px; }
  .home-page .home-hero-grid { padding: 54px 0 64px; }
  .home-page .home-hero-media,
  .home-page .home-hero-media img { min-height: 420px; }
  .home-page .home-trust-grid { grid-template-columns: repeat(2, 1fr); }
  .home-page .home-trust-card:nth-child(2) { border-right: 1px solid var(--line); }
  .home-page .home-pathways { grid-template-columns: 1fr; }
  .home-page .home-pathway { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-page .home-pathway:last-child { border-bottom: 0; }
  .home-page .home-pathway-icon { margin-bottom: 20px; }
  .home-page .home-final-cta-inner { display: grid; }
}

@media (max-width: 640px) {
  .home-page .home-hero-copy h1 { font-size: clamp(2.3rem, 11vw, 3.4rem); }
  .home-page .home-hero-media,
  .home-page .home-hero-media img { min-height: 330px; }
  .home-page .home-trust-grid { grid-template-columns: 1fr; }
  .home-page .home-trust-card { border-right: 1px solid var(--line); }
  .home-page .home-intro { padding-top: 38px; padding-bottom: 38px; }
  .home-page .home-pathway { padding: 30px 26px; }
  .home-page .home-wedding-feature { padding-top: 46px; padding-bottom: 46px; }
  .home-page .home-feature-photo,
  .home-page .home-feature-photo img { min-height: 360px; }
  .home-page .home-about-actions { grid-template-columns: 1fr; }
  .home-page .home-performance-links a { grid-template-columns: 1fr; gap: 4px; }
  .home-page .home-pathways-section { padding-top: 36px; padding-bottom: 38px; }
  .home-page .home-performance-band { padding-top: 38px; padding-bottom: 38px; }
  .home-page .home-about-preview { padding-top: 48px; padding-bottom: 48px; }
  .home-page .home-final-cta { padding: 62px 0; }
}

/* Live Cognito booking form */
.booking-live-form {
  border-style: solid;
  background: rgba(0,0,0,.28);
  padding: clamp(24px, 4vw, 44px);
  overflow: hidden;
}
.booking-live-form iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  border: 0;
}
.booking-live-form noscript p {
  margin: 0;
  color: var(--muted);
}

@media (max-width: 640px) {
  .booking-live-form { padding: 20px 16px; }
}


/* Booking page refinement - 2026-08-07
   Keeps the live Cognito form comfortable inside the site design and makes the
   Start booking form anchor land directly on the form heading rather than the
   padded edge of the surrounding section. */
.booking-page .booking-hero {
  padding-bottom: 44px;
}

.booking-page .booking-steps {
  gap: 16px;
}

.booking-page .step-card {
  padding: 24px 26px;
}

.booking-page .step-card p {
  margin-bottom: 0;
}

.booking-page .booking-form-section {
  padding-top: 50px;
  padding-bottom: 62px;
}

#booking-form-start {
  scroll-margin-top: 132px;
}

.booking-page #booking-form-start > .kicker {
  margin-bottom: 9px;
}

.booking-page #booking-form-start > h2 {
  margin-bottom: 12px;
}

.booking-page #booking-form-start > .muted {
  max-width: 760px;
  margin-top: 0;
  margin-bottom: 0;
}

.booking-page .booking-embed-panel {
  margin-top: 20px;
}

.booking-page .booking-live-form {
  width: 100%;
  padding: clamp(28px, 3.2vw, 38px);
  border-style: solid;
  background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(0,0,0,.22));
  overflow: hidden;
}

.booking-page .booking-live-form > div,
.booking-page .booking-live-form iframe {
  width: 100% !important;
  max-width: 100% !important;
}

.booking-page .booking-live-form iframe {
  display: block;
  margin: 0 !important;
  border: 0 !important;
}

.booking-page .section-muted {
  padding-top: 58px;
  padding-bottom: 64px;
}

.booking-page .section-muted .notice-box p:last-child {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  #booking-form-start {
    scroll-margin-top: 98px;
  }

  .booking-page .booking-form-section {
    padding-top: 42px;
    padding-bottom: 52px;
  }

  .booking-page .section-muted {
    padding-top: 48px;
    padding-bottom: 54px;
  }
}

@media (max-width: 640px) {
  .booking-page .booking-hero {
    padding-bottom: 38px;
  }

  .booking-page .step-card {
    padding: 22px;
  }

  .booking-page .booking-live-form {
    padding: 20px 16px;
  }
}

/* Performance map page */
.performance-map-hero {
  padding-bottom: 44px;
}
.performance-map-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 52px;
  align-items: end;
}
.performance-map-intro > div:first-child {
  max-width: 760px;
}
.performance-map-note {
  border-left: 2px solid var(--gold);
  padding: 8px 0 8px 22px;
}
.performance-map-note strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.35rem;
  font-weight: 400;
  margin-bottom: 8px;
}
.performance-map-note p {
  margin: 0;
  color: var(--muted);
}
.performance-map-section {
  padding-top: 34px;
}
.performance-map-frame {
  --map-ui-crop: 86px;
  position: relative;
  overflow: hidden;
  height: clamp(540px, 68vh, 820px);
  border: 1px solid var(--line);
  background: #080808;
  box-shadow: var(--shadow);
}
.performance-map-frame iframe {
  position: absolute;
  top: calc(-1 * var(--map-ui-crop));
  left: 0;
  display: block;
  width: 100%;
  height: calc(100% + var(--map-ui-crop));
  border: 0;
}
.performance-map-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 22px;
}
.performance-map-actions p {
  margin: 0;
}
@media (max-width: 820px) {
  .performance-map-intro {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .performance-map-frame {
    height: 620px;
  }
}
@media (max-width: 640px) {
  .performance-map-hero {
    padding-bottom: 30px;
  }
  .performance-map-section {
    padding-top: 22px;
  }
  .performance-map-frame {
    --map-ui-crop: 80px;
    height: 540px;
  }
  .performance-map-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .performance-map-actions .btn {
    width: 100%;
  }
}

/* Cookie and privacy preference controls */
.cookie-banner,
.cookie-modal {
  --cookie-gold: var(--gold, #d2a23a);
  --cookie-gold-light: #f0cf73;
  --cookie-black: #050505;
  --cookie-panel: #0b0b0b;
  --cookie-border: rgba(210, 162, 58, .7);
  --cookie-muted: var(--muted, #c6c0b5);
}

.cookie-banner[hidden],
.cookie-modal[hidden],
.cookie-embed-placeholder[hidden],
[data-cookie-category="google-embed"] iframe[hidden] {
  display: none !important;
}

.cookie-banner {
  position: fixed;
  z-index: 10000;
  left: 50%;
  bottom: 12px;
  width: min(1040px, calc(100% - 24px));
  transform: translateX(-50%);
  background: #050505;
  color: #fff;
  border: 1px solid var(--cookie-gold);
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, .58);
}

.cookie-banner__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 14px 16px;
}

.cookie-banner__copy {
  max-width: 640px;
}

.cookie-banner__eyebrow,
.cookie-modal__eyebrow {
  display: block;
  margin-bottom: 5px;
  color: var(--cookie-gold-light);
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.cookie-banner h2,
.cookie-modal h2,
.cookie-preference-row h3 {
  color: #fff;
}

.cookie-banner h2 {
  margin: 0 0 3px;
  font-size: clamp(.98rem, 1.35vw, 1.16rem);
}

.cookie-banner p {
  margin: 0 0 4px;
  color: #d6d2ca;
  line-height: 1.4;
  font-size: .78rem;
}

.cookie-banner a,
.cookie-modal a,
.cookie-settings-inline {
  color: var(--cookie-gold-light);
  text-underline-offset: 3px;
}

.cookie-banner__actions,
.cookie-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.cookie-banner__actions {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  justify-content: end;
  gap: 6px;
  max-width: none;
}

.cookie-choice-button {
  min-height: 42px;
  padding: 10px 15px;
  border: 1px solid var(--cookie-gold);
  border-radius: 999px;
  background: #0a0a0a;
  color: #fff;
  font: inherit;
  font-size: .86rem;
  font-weight: 800;
  line-height: 1.15;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, transform .18s ease, border-color .18s ease;
}

.cookie-banner .cookie-choice-button {
  min-height: 34px;
  padding: 7px 10px;
  font-size: .72rem;
  white-space: nowrap;
}

.cookie-banner__eyebrow {
  margin-bottom: 3px;
  font-size: .63rem;
  letter-spacing: .12em;
}

.cookie-banner > .cookie-banner__inner > .cookie-banner__copy > a {
  font-size: .75rem;
}

.cookie-choice-button:hover,
.cookie-choice-button:focus-visible {
  background: var(--cookie-gold);
  color: #050505;
  outline: none;
  transform: translateY(-1px);
}

.cookie-choice-button:focus-visible,
.cookie-switch input:focus-visible + .cookie-switch__track,
.cookie-modal__close:focus-visible,
.cookie-settings-inline:focus-visible {
  box-shadow: 0 0 0 3px rgba(240, 207, 115, .25);
}

.cookie-modal {
  position: fixed;
  z-index: 10020;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
}

.cookie-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .76);
  backdrop-filter: blur(5px);
}

.cookie-modal__panel {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  max-height: min(820px, calc(100vh - 40px));
  overflow: auto;
  padding: clamp(24px, 4vw, 38px);
  background: #050505;
  color: #fff;
  border: 1px solid var(--cookie-gold);
  border-radius: 20px;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .72);
}

.cookie-modal__close {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(210, 162, 58, .5);
  border-radius: 50%;
  background: #0a0a0a;
  color: #fff;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}

.cookie-modal h2 {
  margin: 0 44px 8px 0;
  font-size: clamp(1.55rem, 3vw, 2rem);
}

.cookie-modal__intro {
  margin: 0;
  color: #d6d2ca;
  line-height: 1.6;
}

.cookie-preference-list {
  display: grid;
  gap: 10px;
  margin: 24px 0;
}

.cookie-preference-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 17px 18px;
  border: 1px solid rgba(210, 162, 58, .32);
  border-radius: 14px;
  background: #0b0b0b;
}

.cookie-preference-row h3 {
  margin: 0 0 4px;
  font-size: 1rem;
}

.cookie-preference-row p {
  margin: 0;
  color: #c9c4bb;
  font-size: .88rem;
  line-height: 1.5;
}

.cookie-preference-row--inactive {
  opacity: .72;
}

.cookie-preference-status {
  white-space: nowrap;
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #ddd8cf;
  font-size: .73rem;
  font-weight: 800;
}

.cookie-preference-status--fixed {
  border-color: rgba(210, 162, 58, .58);
  color: var(--cookie-gold-light);
}

.cookie-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.cookie-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.cookie-switch__track {
  position: relative;
  width: 52px;
  height: 30px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 999px;
  background: #252525;
  transition: background-color .18s ease, border-color .18s ease;
}

.cookie-switch__thumb {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #f5f1e8;
  transition: transform .18s ease, background-color .18s ease;
}

.cookie-switch input:checked + .cookie-switch__track {
  border-color: var(--cookie-gold);
  background: rgba(210, 162, 58, .35);
}

.cookie-switch input:checked + .cookie-switch__track .cookie-switch__thumb {
  transform: translateX(22px);
  background: var(--cookie-gold-light);
}

.cookie-modal__policy-link {
  margin: 16px 0 0;
  font-size: .85rem;
}

.cookie-modal-open {
  overflow: hidden;
}

.cookie-settings-inline {
  font: inherit;
}

.cookie-embed-placeholder {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background:
    radial-gradient(circle at 50% 30%, rgba(210,162,58,.12), transparent 38%),
    #070707;
  text-align: center;
}

.cookie-embed-placeholder__inner {
  width: min(600px, 100%);
  padding: clamp(24px, 5vw, 42px);
  border: 1px solid rgba(210,162,58,.42);
  border-radius: 16px;
  background: rgba(5,5,5,.92);
}

.cookie-embed-placeholder__icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin: 0 auto 14px;
  border: 1px solid var(--cookie-gold);
  border-radius: 50%;
  color: var(--cookie-gold-light);
  font-size: 1.35rem;
}

.cookie-embed-placeholder h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
}

.cookie-embed-placeholder p {
  margin: 0 auto 18px;
  color: #d0cbc2;
  line-height: 1.55;
}

.cookie-embed-placeholder__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.cookie-embed-placeholder .cookie-choice-button {
  min-width: 148px;
}

@media (max-width: 760px) {
  .cookie-banner__inner {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 12px 13px;
  }
  .cookie-banner__actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
    width: 100%;
  }
  .cookie-banner .cookie-choice-button {
    width: 100%;
    padding-inline: 6px;
    white-space: normal;
  }
}

@media (max-width: 600px) {
  .cookie-banner {
    bottom: 8px;
    width: calc(100% - 14px);
    border-radius: 12px;
  }
  .cookie-banner__inner {
    padding: 11px 12px;
  }
  .cookie-banner__eyebrow {
    display: none;
  }
  .cookie-banner h2 {
    font-size: .94rem;
  }
  .cookie-banner p {
    font-size: .72rem;
    line-height: 1.35;
  }
  .cookie-banner a {
    font-size: .7rem;
  }
  .cookie-banner__actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }
  .cookie-modal__actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .cookie-choice-button {
    width: 100%;
  }
  .cookie-modal {
    padding: 10px;
  }
  .cookie-modal__panel {
    max-height: calc(100vh - 20px);
    padding: 24px 18px;
    border-radius: 15px;
  }
  .cookie-preference-row {
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
  }
  .cookie-preference-status,
  .cookie-switch {
    justify-self: start;
  }
  .cookie-embed-placeholder {
    padding: 16px;
  }
  .cookie-embed-placeholder__inner {
    padding: 24px 18px;
  }
}

.cookie-modal .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}



.cookie-banner__links {
  margin-top: 2px !important;
}

.cookie-banner__links strong {
  color: #f0cf73;
  font-weight: 800;
}


/* Build 113: compact grouped public navigation */
.main-nav>.nav-dropdown{position:relative;display:block}
.main-nav>.nav-dropdown>summary{position:relative;display:flex;align-items:center;gap:5px;list-style:none;cursor:pointer;color:var(--cream);font-size:.76rem;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.07em;padding:14px 0;user-select:none}
.main-nav>.nav-dropdown>summary::-webkit-details-marker{display:none}
.main-nav>.nav-dropdown>summary::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .2s ease}
.main-nav>.nav-dropdown>summary:hover,.main-nav>.nav-dropdown>summary:focus-visible,.main-nav>.nav-dropdown[open]>summary,.main-nav>.nav-dropdown.is-current>summary{color:var(--gold-light)}
.main-nav>.nav-dropdown>summary:hover::after,.main-nav>.nav-dropdown>summary:focus-visible::after,.main-nav>.nav-dropdown[open]>summary::after,.main-nav>.nav-dropdown.is-current>summary::after{transform:scaleX(1)}
.nav-dropdown-chevron{display:inline-block;font-size:.9rem;line-height:1;transition:transform .18s ease}.nav-dropdown[open] .nav-dropdown-chevron{transform:rotate(180deg)}
.nav-dropdown-menu{display:none}.nav-dropdown[open]>.nav-dropdown-menu{display:grid}
.main-nav>.nav-availability{border:1px solid rgba(210,162,58,.62);border-radius:999px;padding:10px 13px;color:var(--gold-light)}
.main-nav>.nav-availability::after{display:none}.main-nav>.nav-availability:hover,.main-nav>.nav-availability:focus-visible{background:rgba(210,162,58,.09);color:#fff}
@media(min-width:901px){
  .main-nav>.nav-dropdown>.nav-dropdown-menu{position:absolute;z-index:120;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:310px;padding:9px;border:1px solid rgba(210,162,58,.3);border-radius:14px;background:rgba(7,7,7,.99);box-shadow:0 24px 60px rgba(0,0,0,.48);gap:2px;white-space:normal}
  .main-nav>.nav-dropdown>.nav-dropdown-menu a{display:grid;gap:4px;padding:11px 12px;border-radius:9px;font-size:.78rem;letter-spacing:.055em;line-height:1.2}
  .main-nav>.nav-dropdown>.nav-dropdown-menu a::after{display:none}
  .main-nav>.nav-dropdown>.nav-dropdown-menu a:hover,.main-nav>.nav-dropdown>.nav-dropdown-menu a:focus-visible,.main-nav>.nav-dropdown>.nav-dropdown-menu a[aria-current="page"]{background:rgba(210,162,58,.09);color:var(--gold-light)}
  .main-nav>.nav-dropdown>.nav-dropdown-menu small{font-size:.7rem;line-height:1.35;letter-spacing:0;text-transform:none;color:#a9a195;font-weight:500}
}
@media(max-width:900px){
  .main-nav>.nav-dropdown{border-bottom:1px solid rgba(210,162,58,.13)}
  .main-nav>.nav-dropdown>summary{justify-content:space-between;padding:15px 0;font-size:.92rem;letter-spacing:.095em}
  .main-nav>.nav-dropdown>summary::after{display:none}
  .main-nav>.nav-dropdown>.nav-dropdown-menu{position:static;transform:none;width:auto;padding:0 0 10px 14px;border:0;border-left:1px solid rgba(210,162,58,.3);border-radius:0;background:transparent;box-shadow:none;gap:0;white-space:normal}
  .main-nav>.nav-dropdown>.nav-dropdown-menu a{display:grid;gap:3px;padding:11px 12px;font-size:.82rem;letter-spacing:.055em;border-bottom:0}
  .main-nav>.nav-dropdown>.nav-dropdown-menu a::after{display:none}
  .main-nav>.nav-dropdown>.nav-dropdown-menu small{font-size:.72rem;line-height:1.35;letter-spacing:0;text-transform:none;color:#9e978b;font-weight:500}
  .main-nav>.nav-availability{margin-top:12px;text-align:center;padding:13px 14px}
}
@media(max-width:1120px) and (min-width:901px){.main-nav>.nav-dropdown>summary{font-size:.70rem;letter-spacing:.045em}.main-nav>.nav-availability{font-size:.68rem;padding:9px 10px}}

/* Build 115: restore readable, consistent public navigation after grouped-menu rollout. */
@media (min-width: 1121px) {
  .main-nav { gap: 15px; }
  .main-nav > a,
  .main-nav > .nav-dropdown > summary,
  .main-nav > .nav-availability {
    font-size: .88rem;
    letter-spacing: .055em;
    font-weight: 800;
  }
  .main-nav > .nav-availability { padding: 10px 14px; }
}
@media (min-width: 901px) and (max-width: 1120px) {
  .header-inner { grid-template-columns: 215px minmax(0, 1fr) 54px; gap: 26px; }
  .logo-link { width: 215px; }
  .main-nav { gap: 8px; }
  .main-nav > a,
  .main-nav > .nav-dropdown > summary,
  .main-nav > .nav-availability {
    font-size: .80rem;
    letter-spacing: .035em;
    font-weight: 800;
  }
  .main-nav > .nav-availability { padding: 9px 10px; }
}
@media (max-width: 900px) {
  .main-nav > a,
  .main-nav > .nav-dropdown > summary,
  .main-nav > .nav-availability {
    font-size: .96rem;
    letter-spacing: .075em;
    font-weight: 800;
  }
}
@media (min-width: 901px) {
  .main-nav > .nav-dropdown > .nav-dropdown-menu a {
    font-size: .84rem;
    letter-spacing: .045em;
  }
  .main-nav > .nav-dropdown > .nav-dropdown-menu small { font-size: .74rem; }
}

/* Build 253 - full-width CONTENT correction.
   Build 252 widened the shared shell/header but several older page-specific
   max-width rules still kept the actual public content visually narrow.
   This pass keeps readable long-form prose constrained, while allowing the
   real page layouts, hero/media columns and major grids to use the available
   desktop width with one consistent responsive gutter. */
:root {
  --public-content-gutter: clamp(28px, 4vw, 72px);
}

@media (min-width: 901px) {
  /* Header and normal public content now share exactly the same desktop edges.
     Article/legal/narrow reading shells keep their own intentional measures. */
  body:not(.legal-page) .header-inner,
  body:not(.legal-page) .container:not(.article-shell):not(.narrow-container) {
    width: auto !important;
    margin-left: var(--public-content-gutter) !important;
    margin-right: var(--public-content-gutter) !important;
  }

  /* Remove legacy copy caps inside split/grid layouts. Text still occupies its
     allocated column; it is not stretched across the entire viewport. */
  .home-page .home-hero-copy,
  .home-page .home-hero-lead,
  .home-page .home-intro-copy,
  .home-page .home-feature-copy,
  .home-page .home-feature-copy > p:not(.kicker),
  .home-page .home-about-grid > div:first-child,
  .home-page .home-final-cta-inner > div:first-child,
  .about-page .about-hero-copy,
  .about-page .about-hero-copy > p:not(.kicker),
  .collaborations-page .collaborations-hero-copy,
  .collaborations-page .collaborations-hero-lead,
  .occasions-page .occasions-hero-copy,
  .occasions-page .occasions-hero-lead,
  .contact-page .contact-hero h1,
  .contact-page .contact-hero-lead,
  .performances-page .performances-hero-lead,
  .performances-page .performances-hero-support,
  .past-gigs-page .performances-hero-lead,
  .performance-map-intro > div:first-child,
  .reviews-page .reviews-hero-copy > p:not(.kicker),
  .resource-hero-copy h1,
  .resource-hero-copy > p:not(.kicker) {
    max-width: none !important;
  }

  /* Media in a split layout should fill its allocated column rather than sit
     as a small capped image inside a newly widened shell. */
  .about-page .about-hero-media,
  .reviews-page .reviews-hero-media,
  .contact-page .contact-hero-media,
  .resource-hero-media {
    max-width: none !important;
    width: 100% !important;
  }

  /* Structural grids/panels that retained old desktop caps. */
  .about-page .about-craft-grid,
  .about-page .about-case-grid,
  .about-page .about-woodwind-note,
  .collaborations-page .collab-thov-compact,
  .weddings-page #wedding-packages .container,
  .weddings-page .packages-grid,
  #packages-preview .packages-grid,
  .weddings-page .package-detail .container.package-detail-grid,
  .weddings-page .package-detail .package-detail-grid > div:last-child {
    max-width: none !important;
  }


}

@media (max-width: 900px) {
  :root {
    --public-content-gutter: 13px;
  }
}

/* Build 335 — canonical public page scroll control.
   The Home page is the visual reference. Every page-level floating scroll arrow,
   including both Wedding Advice controls, uses this exact treatment. */
html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"],
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"],
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] {
  box-sizing: border-box !important;
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: max(20px, env(safe-area-inset-bottom)) !important;
  z-index: 9998 !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border: 1px solid rgba(244,210,124,.72) !important;
  border-radius: 50% !important;
  background: rgba(8,8,8,.94) !important;
  color: var(--gold-light, #f4d27c) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.18) !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
  opacity: .86 !important;
  transform: translate(-50%, 0) !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: opacity .2s ease, transform .2s ease, border-color .2s ease, background .2s ease !important;
}

html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"][hidden],
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"][hidden],
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"][hidden] {
  display: none !important;
}

html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"] svg,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"] svg,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] svg {
  width: 23px !important;
  height: 23px !important;
  display: block !important;
  overflow: visible !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65)) !important;
  transition: transform .18s ease !important;
}

html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"] svg path,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"] svg path,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] svg path {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"]:hover,
html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"]:focus-visible,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"]:hover,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"]:focus-visible,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"]:hover,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"]:focus-visible {
  opacity: 1 !important;
  border-color: var(--gold-light, #f4d27c) !important;
  background: rgba(8,8,8,.985) !important;
  color: var(--gold-light, #f4d27c) !important;
  outline: none !important;
}

html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"]:hover svg,
html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"]:focus-visible svg,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"]:hover svg,
html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"]:focus-visible svg,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"]:hover svg,
html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"]:focus-visible svg {
  transform: translateY(2px) !important;
}

@media (max-width: 640px) {
  html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"],
  html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"],
  html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
  }
  html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"] svg,
  html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"] svg,
  html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] svg {
    width: 20px !important;
    height: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"],
  html:root body[class] button.section-scroll-next.section-scroll-next[class][type="button"] svg,
  html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"],
  html:root body[class] button.advice-page-scroll.advice-page-scroll[class][type="button"] svg,
  html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"],
  html:root body[class] button.article-page-scroll.article-page-scroll[class][type="button"] svg {
    transition: none !important;
  }
}

/* Build 397: never paint the legacy Credentials image in a provisional split.
   The loader releases this image-only gate after shared CSS, the selected source
   and exact crop are ready. Body copy and links remain visible throughout. */
@media (scripting:enabled) {
  html:not([data-jt-credentials-ready="1"]) body[class*="credentials"] #main-content > section:first-of-type img,
  html:has(link[rel="canonical"][href$="/credentials.html"]):not([data-jt-credentials-ready="1"]) #main-content > section:first-of-type img {
    visibility:hidden !important;
  }
}

/* JT P31T39 bundle source: assets/css/home-rounded.css */
/* Homepage-specific rounded styling, hero refinements and trial footer treatment. */
.home-page {
  --home-radius: 22px;
  --home-radius-small: 16px;
}

/* Match Gallery-style pill actions. */
.home-page .btn {
  border-radius: 999px;
}

/* Rounded photographic frames. */
.home-page .home-hero-media,
.home-page .home-photo-panel {
  border-radius: var(--home-radius);
}

/* Rounded grouped content panels while preserving their existing internal layout. */
.home-page .home-pathways,
.home-page .home-wedding-moments {
  border-radius: var(--home-radius);
  overflow: hidden;
}

/* Smaller supporting cards use the Gallery's secondary radius. */
.home-page .home-mini-card {
  border-radius: var(--home-radius-small);
}

/* Home hero refinement: keep the opening content fully visible at desktop sizes. */
@media (min-width: 901px) {
  .home-page .home-hero-grid {
    min-height: 0;
    padding: 46px 0 50px;
    gap: 58px;
    align-items: start;
  }

  .home-page .home-hero-copy h1 {
    max-width: 620px;
    margin-bottom: 16px;
    font-size: clamp(2.5rem, 3.7vw, 3.75rem);
    line-height: 1.07;
  }

  .home-page .home-hero-lead {
    max-width: 640px;
    margin-bottom: 26px;
    font-size: 1.06rem;
    line-height: 1.62;
  }

  .home-page .home-hero-media,
  .home-page .home-hero-media img {
    min-height: 455px;
  }
}

/* Match the section-aware floating arrow used on Occasions. */
.home-page .section-scroll-next {
  position: fixed;
  left: 50%;
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 9998;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(244,210,124,.72);
  border-radius: 50%;
  background: transparent;
  color: var(--gold-light);
  box-shadow: 0 2px 10px rgba(0,0,0,.18);
  display: grid;
  place-items: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity .2s ease, transform .2s ease, border-color .2s ease, background .2s ease;
}

.home-page .section-scroll-next.is-visible {
  opacity: .86;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.home-page .section-scroll-next svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65));
  transition: transform .18s ease;
}

.home-page .section-scroll-next:hover,
.home-page .section-scroll-next:focus-visible {
  opacity: 1;
  border-color: var(--gold-light);
  background: rgba(5,5,5,.18);
  outline: none;
}

.home-page .section-scroll-next:hover svg,
.home-page .section-scroll-next:focus-visible svg {
  transform: translateY(2px);
}

@media (max-width: 640px) {
  .home-page .section-scroll-next {
    width: 42px;
    height: 42px;
    bottom: max(14px, env(safe-area-inset-bottom));
  }

  .home-page .section-scroll-next svg {
    width: 20px;
    height: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .section-scroll-next,
  .home-page .section-scroll-next svg {
    transition: none;
  }
}

/* Home section column alignment.
   Keep both sides of these desktop two-column sections on the same top line so
   section-aware scroll stops reveal the complete paired content without dead space. */
@media (min-width: 901px) {
  .home-page .home-feature-grid,
  .home-page .home-about-grid {
    align-items: start;
  }
}

/* Home-page trial of Footer Option B.
   Scoped to .home-page so the shared footer on every other page remains untouched. */
.home-page .footer-option-b {
  border-top: 1px solid rgba(210,162,58,.32);
  padding: 26px 0 18px;
  background: #000;
}

.home-page .footer-b-shell {
  overflow: hidden;
  border: 1px solid rgba(210,162,58,.46);
  border-radius: 22px;
  background: #000;
  box-shadow: 0 18px 52px rgba(0,0,0,.34);
}

.home-page .footer-b-main {
  display: grid;
  grid-template-columns: minmax(230px, 280px) 1fr;
  gap: 30px;
  align-items: center;
  padding: 24px 28px 22px;
}

.home-page .footer-b-brand {
  display: flex;
  align-items: center;
  min-height: 92px;
  padding-right: 28px;
  border-right: 1px solid rgba(210,162,58,.30);
}

.home-page .footer-b-brand img {
  width: min(100%, 252px);
  height: auto;
}

.home-page .footer-b-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}

.home-page .footer-b-nav-group {
  min-width: 0;
}

.home-page .footer-b-nav-toggle {
  width: 100%;
  margin: 0 0 11px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gold-light);
  font: 900 .72rem/1.2 Lato, Arial, sans-serif;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .18em;
  cursor: default;
}

.home-page .footer-b-chevron {
  display: none;
}

.home-page .footer-b-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 17px;
}

.home-page .footer-b-links a {
  position: relative;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.4;
  transition: color .18s ease;
}

.home-page .footer-b-links a:hover,
.home-page .footer-b-links a:focus-visible {
  color: var(--cream);
  outline: none;
}

.home-page .footer-b-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -2px;
  height: 1px;
  background: var(--gold-light);
  transition: right .18s ease;
}

.home-page .footer-b-links a:hover::after,
.home-page .footer-b-links a:focus-visible::after {
  right: 0;
}

.home-page .footer-b-contact-row {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 15px 28px;
  border-top: 1px solid rgba(210,162,58,.25);
  background: #000;
}

.home-page .footer-b-contact-actions {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 9px;
  min-width: 0;
}

.home-page .footer-b-contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(210,162,58,.34);
  border-radius: 999px;
  background: rgba(255,255,255,.025);
  color: var(--cream);
  font-size: .77rem;
  line-height: 1.2;
  white-space: nowrap;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.home-page .footer-b-contact-pill svg {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  padding: 4px;
  border-radius: 50%;
  fill: none;
  stroke: var(--footer-contact-icon, var(--gold-light));
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  background: var(--footer-contact-icon-bg, rgba(210,162,58,.09));
}

.home-page .footer-b-contact-pill--phone {
  --footer-contact-icon: #55d66b;
  --footer-contact-icon-bg: rgba(85,214,107,.12);
}

.home-page .footer-b-contact-pill--email {
  --footer-contact-icon: #ef6b63;
  --footer-contact-icon-bg: rgba(239,107,99,.12);
}

.home-page .footer-b-contact-pill--web {
  --footer-contact-icon: #58aaf8;
  --footer-contact-icon-bg: rgba(88,170,248,.12);
}

.home-page .footer-b-contact-pill:hover,
.home-page .footer-b-contact-pill:focus-visible,
.home-page .footer-b-social:hover,
.home-page .footer-b-social:focus-visible {
  border-color: rgba(244,210,124,.78);
  background: rgba(210,162,58,.08);
  color: var(--gold-light);
  transform: translateY(-1px);
  outline: none;
}

.home-page .footer-b-socials {
  display: flex;
  gap: 9px;
  flex: 0 0 auto;
}

.home-page .footer-b-social {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(210,162,58,.42);
  border-radius: 50%;
  background: rgba(255,255,255,.025);
  color: var(--gold-light);
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.home-page .footer-b-social svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-page .footer-b-social:last-child svg {
  fill: currentColor;
  stroke: none;
}

.home-page .footer-b-social--instagram {
  color: #e85ba5;
  border-color: rgba(232,91,165,.52);
  background: rgba(232,91,165,.07);
}

.home-page .footer-b-social--facebook {
  color: #5b9df9;
  border-color: rgba(91,157,249,.52);
  background: rgba(91,157,249,.07);
}

.home-page .footer-b-social--instagram:hover,
.home-page .footer-b-social--instagram:focus-visible {
  color: #f079ba;
  border-color: rgba(240,121,186,.78);
  background: rgba(232,91,165,.12);
}

.home-page .footer-b-social--facebook:hover,
.home-page .footer-b-social--facebook:focus-visible {
  color: #78affb;
  border-color: rgba(120,175,251,.78);
  background: rgba(91,157,249,.12);
}

.home-page .footer-b-bottom {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 20px;
  border-top: 1px solid rgba(210,162,58,.18);
  color: #948a7b;
  font-size: .72rem;
  line-height: 1.35;
  letter-spacing: .015em;
  text-align: center;
}

.home-page .footer-b-bottom-separator {
  color: rgba(210,162,58,.62);
}

.home-page .footer-b-legal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 7px;
}

.home-page .footer-b-legal a {
  color: #aaa091;
  transition: color .18s ease;
}

.home-page .footer-b-legal a:hover,
.home-page .footer-b-legal a:focus-visible {
  color: var(--gold-light);
  outline: none;
}

.home-page .footer-b-legal span {
  color: rgba(210,162,58,.55);
}

@media (max-width: 980px) {
  .home-page .footer-b-main {
    grid-template-columns: 210px 1fr;
    gap: 24px;
    padding-inline: 24px;
  }

  .home-page .footer-b-brand {
    padding-right: 24px;
  }

  .home-page .footer-b-nav {
    gap: 20px;
  }

  .home-page .footer-b-contact-row {
    align-items: flex-end;
    padding-inline: 24px;
  }

  .home-page .footer-b-contact-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
  }

  .home-page .footer-b-contact-pill:last-child {
    grid-column: 1 / -1;
    width: max-content;
  }
}

@media (max-width: 700px) {
  .home-page .footer-option-b {
    padding: 18px 0 14px;
  }

  .home-page .footer-b-shell {
    border-radius: 18px;
  }

  .home-page .footer-b-main {
    display: block;
    padding: 20px 18px 11px;
  }

  .home-page .footer-b-brand {
    min-height: 0;
    justify-content: center;
    padding: 0 0 18px;
    border-right: 0;
    border-bottom: 1px solid rgba(210,162,58,.25);
  }

  .home-page .footer-b-brand img {
    width: min(100%, 236px);
  }

  .home-page .footer-b-nav {
    display: block;
    padding-top: 8px;
  }

  .home-page .footer-b-nav-group {
    border-bottom: 1px solid rgba(210,162,58,.18);
  }

  .home-page .footer-b-nav-group:last-child {
    border-bottom: 0;
  }

  .home-page .footer-b-nav-toggle {
    min-height: 46px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--gold-light);
    cursor: pointer;
  }

  .home-page .footer-b-chevron {
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
  }

  .home-page .footer-b-nav-toggle[aria-expanded="true"] .footer-b-chevron {
    transform: rotate(180deg);
  }

  .home-page .footer-b-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 18px;
    padding: 0 0 13px;
  }

  .home-page .footer-b-links a {
    padding: 7px 0;
    font-size: .84rem;
  }

  .home-page .footer-b-nav-group.is-collapsed .footer-b-links {
    display: none;
  }

  .home-page .footer-b-contact-row {
    display: block;
    padding: 15px 18px 16px;
  }

  .home-page .footer-b-contact-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .home-page .footer-b-contact-pill,
  .home-page .footer-b-contact-pill:last-child {
    width: 100%;
    min-height: 42px;
    justify-content: flex-start;
    grid-column: auto;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .home-page .footer-b-socials {
    justify-content: center;
    margin-top: 13px;
  }

  .home-page .footer-b-social {
    width: 40px;
    height: 40px;
  }

  .home-page .footer-b-bottom {
    flex-direction: column;
    gap: 2px;
    min-height: 0;
    padding: 11px 16px 13px;
  }

  .home-page .footer-b-bottom-separator {
    display: none;
  }

  .home-page .footer-b-legal {
    margin: 3px 0;
    row-gap: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .footer-b-links a::after,
  .home-page .footer-b-contact-pill,
  .home-page .footer-b-social,
  .home-page .footer-b-chevron {
    transition: none;
  }
}

/* JT P31T39 bundle source: assets/css/frontend-qa2.css */
/* Front-end QA2 — responsive and accessibility hardening (2026-08-14).
   Loaded after page-specific styles so these are deliberate site-wide final guards. */

/* Keyboard focus visibility. */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--gold-light);
  outline-offset: 3px;
}

/* Some older page-specific rules deliberately removed outlines. Restore a
   consistent keyboard indicator as the final cascade layer. */
.main-nav a:focus-visible,
.nav-toggle:focus-visible,
.btn:focus-visible,
.text-link:focus-visible,
.footer-option-b a:focus-visible,
.footer-option-b button:focus-visible,
.legal-toc a:focus-visible,
.legal-block a:focus-visible,
.legal-callout a:focus-visible,
.return-to-top:focus-visible,
.section-scroll-next:focus-visible,
.cookie-choice-button:focus-visible,
.cookie-modal__close:focus-visible,
.cookie-settings-inline:focus-visible {
  outline: 3px solid var(--gold-light) !important;
  outline-offset: 3px !important;
}

/* Robust wrapping for long addresses, URLs and contact details. */
main,
footer,
.panel,
.info-card,
.event-card,
.collab-card,
.legal-article,
.booking-form-card,
.contact-enquiry-form {
  min-width: 0;
}

p,
li,
dd,
figcaption,
.footer-b-contact-pill,
.footer-b-links,
.legal-block,
.form-status {
  overflow-wrap: break-word;
}

.legal-block a,
.legal-contact-card a,
.footer-b-contact-pill--email,
.footer-b-contact-pill--web {
  overflow-wrap: anywhere;
}

iframe,
video,
svg,
canvas {
  max-width: 100%;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

.btn {
  max-width: 100%;
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}

/* Header/navigation: switch to the compact menu before the desktop navigation
   becomes cramped. The previous 900px breakpoint overflowed around 1024px. */
@media (max-width: 1080px) {
  .header-inner {
    width: min(var(--container), calc(100% - 32px));
    min-height: 86px !important;
    grid-template-columns: minmax(0, 240px) 48px !important;
    justify-content: space-between;
    gap: 18px !important;
  }

  .logo-link {
    width: min(240px, 100%) !important;
    min-width: 0;
  }

  .nav-toggle {
    display: inline-grid !important;
    grid-column: 2;
    place-items: center;
    justify-self: end;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: 0;
    border-radius: 10px;
    cursor: pointer;
  }

  .main-nav {
    position: absolute !important;
    z-index: 60;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    max-height: calc(100dvh - 86px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 12px max(20px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)) !important;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 22px 50px rgba(0,0,0,.48);
    white-space: normal !important;
  }

  body.nav-open .main-nav {
    display: flex !important;
  }

  .main-nav a {
    display: flex;
    align-items: center;
    min-height: 48px;
    width: 100%;
    padding: 12px 4px !important;
    font-size: .9rem !important;
    line-height: 1.25 !important;
    white-space: normal;
  }

  .main-nav a::after {
    bottom: 5px;
  }
}

@media (min-width: 1081px) and (max-width: 1240px) {
  .header-inner {
    grid-template-columns: 220px minmax(0, 1fr) !important;
    gap: 18px !important;
  }
  .logo-link { width: 220px !important; }
  .main-nav {
    justify-content: flex-end;
    gap: 10px !important;
  }
  .main-nav a {
    font-size: .70rem !important;
    letter-spacing: .055em !important;
  }
  .nav-toggle { display: none !important; }
}

@media (max-width: 640px) {
  .container,
  .header-inner {
    width: min(100% - 26px, var(--container)) !important;
  }

  .header-inner {
    grid-template-columns: minmax(0, 200px) 46px !important;
    gap: 12px !important;
  }

  .logo-link { width: min(200px, 100%) !important; }

  .main-nav {
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
  }

  .section,
  .section-tight {
    scroll-margin-top: 96px;
  }

  .footer-option-b .footer-b-nav-toggle,
  .footer-option-b .footer-b-contact-pill,
  .footer-option-b .footer-b-social {
    min-height: 44px;
  }

  .footer-option-b .footer-b-social {
    width: 44px;
    height: 44px;
  }

  .return-to-top,
  .weddings-page .section-scroll-next,
  .occasions-page .section-scroll-next,
  .collaborations-page .section-scroll-next,
  .reviews-page .section-scroll-next,
  .about-page .section-scroll-next,
  .thov-page .section-scroll-next {
    width: 44px !important;
    height: 44px !important;
  }
}

@media (max-width: 360px) {
  .header-inner {
    width: calc(100% - 22px) !important;
    grid-template-columns: minmax(0, 178px) 46px !important;
    gap: 10px !important;
  }
  .logo-link { width: min(178px, 100%) !important; }
  .main-nav a { font-size: .86rem !important; }
}

/* Fix genuine 320px min-content overflow in the collaboration project cards. */
.collaborations-page .collab-project-feature,
.collaborations-page .collab-project-images,
.collaborations-page .collab-project-copy,
.collaborations-page .collab-project-single-image {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 700px) {
  .collaborations-page .collab-project-images {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .collaborations-page .collab-project-images img,
  .collaborations-page .collab-project-single-image img {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .collaborations-page .collab-project-images {
    grid-template-columns: 1fr !important;
  }
  .collaborations-page .collab-project-images img,
  .collaborations-page .collab-project-single-image img {
    height: auto !important;
    max-height: 260px;
    object-fit: contain;
  }
}

/* Scrollable legal tables are intentional on narrow phones; make the scroll
   region keyboard-focusable and visibly discoverable. */
.legal-table-wrap[tabindex="0"]:focus-visible {
  outline: 3px solid var(--gold-light);
  outline-offset: 3px;
}

@media (max-width: 700px) {
  .legal-layout {
    min-width: 0;
  }
  .legal-table-wrap {
    max-width: 100%;
    scrollbar-width: thin;
    scrollbar-color: var(--gold) #090806;
  }
}

/* Native form usability on small touch devices and iOS: keep fields at a
   readable 16px and status messaging visually clear. */
.contact-page .contact-field input,
.contact-page .contact-field select,
.contact-page .contact-field textarea,
.booking-page .booking-field input,
.booking-page .booking-field select,
.booking-page .booking-field textarea {
  font-size: 1rem;
}

.form-status[role="alert"] {
  border-color: rgba(239,107,99,.52);
}

[aria-invalid="true"] {
  border-color: #ef8f87 !important;
  box-shadow: 0 0 0 3px rgba(239,107,99,.14) !important;
}

@media (max-width: 480px) {
  .contact-page .contact-enquiry-form,
  .booking-page .booking-form-card__body,
  .booking-page .booking-form-card__head {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  .form-turnstile-block {
    padding-left: 12px;
    padding-right: 12px;
  }

  .contact-page .contact-date-row {
    grid-template-columns: 1fr !important;
    align-items: stretch;
  }

  .contact-page .contact-check {
    min-height: 48px;
  }
}

/* Honour reduced-motion preferences across the entire public site, including
   custom arrows and JavaScript-assisted anchor scrolling. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* JT P31T39 bundle source: assets/css/frontend-qa4.css */
/*
 * Front-end QA4 — content & final consistency
 * Shared navigation-dropdown and footer-density refinements.
 */

/* Gigs dropdown: keeps the primary navigation concise while exposing the
   upcoming archive and confirmed-booking routes consistently. */
.main-nav .main-nav-group {
  position: relative;
  display: flex;
  align-items: center;
}

.main-nav .main-nav-submenu-toggle {
  appearance: none;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  padding: 7px 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: 700 .78rem/1 Lato, Arial, sans-serif;
  letter-spacing: .085em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .18s ease;
}

.main-nav .main-nav-submenu-toggle::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 1px;
  background: var(--gold-light);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .18s ease;
}

.main-nav .main-nav-submenu-toggle:hover,
.main-nav .main-nav-submenu-toggle:focus-visible,
.main-nav .main-nav-submenu-toggle.active {
  color: var(--gold-light);
}

.main-nav .main-nav-submenu-toggle:hover::before,
.main-nav .main-nav-submenu-toggle:focus-visible::before,
.main-nav .main-nav-submenu-toggle.active::before {
  transform: scaleX(1);
}

.main-nav .main-nav-submenu-toggle:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 5px;
}

.main-nav .main-nav-submenu-chevron {
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .18s ease;
}

.main-nav .main-nav-group.is-open .main-nav-submenu-chevron {
  transform: rotate(180deg);
}

.main-nav .main-nav-submenu {
  position: absolute;
  z-index: 120;
  top: calc(100% + 8px);
  left: 50%;
  width: max-content;
  min-width: 210px;
  padding: 7px;
  border: 1px solid rgba(210,162,58,.42);
  border-radius: 13px;
  background: rgba(8,8,8,.98);
  box-shadow: 0 18px 40px rgba(0,0,0,.42);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -5px);
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

.main-nav .main-nav-group:hover .main-nav-submenu,
.main-nav .main-nav-group:focus-within .main-nav-submenu,
.main-nav .main-nav-group.is-open .main-nav-submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.main-nav .main-nav-submenu a {
  display: block;
  min-width: 0;
  padding: 9px 11px;
  border-radius: 8px;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.25;
  letter-spacing: .045em;
  text-transform: none;
  white-space: nowrap;
}

.main-nav .main-nav-submenu a::after {
  display: none;
}

.main-nav .main-nav-submenu a:hover,
.main-nav .main-nav-submenu a:focus-visible,
.main-nav .main-nav-submenu a.active {
  background: rgba(210,162,58,.10);
  color: var(--gold-light);
}

/* Footer was intentionally generous during the page-build stage. QA4 tightens
   the desktop footprint while keeping mobile controls at accessible sizes. */
.site-footer.footer-option-b {
  padding: 18px 0 13px;
}

.footer-option-b .footer-b-main {
  grid-template-columns: minmax(205px, 240px) 1fr;
  gap: 22px;
  padding: 17px 22px 15px;
}

.footer-option-b .footer-b-brand {
  min-height: 70px;
  padding-right: 22px;
}

.footer-option-b .footer-b-brand img {
  width: min(100%, 214px);
}

.footer-option-b .footer-b-nav {
  gap: 20px;
}

.footer-option-b .footer-b-nav-toggle {
  margin-bottom: 7px;
}

.footer-option-b .footer-b-links {
  gap: 5px 14px;
}

.footer-option-b .footer-b-contact-row {
  gap: 12px;
  padding: 10px 22px;
}

.footer-option-b .footer-b-contact-actions,
.footer-option-b .footer-b-socials {
  gap: 7px;
}

.footer-option-b .footer-b-contact-pill {
  min-height: 34px;
  padding: 6px 10px;
  font-size: .75rem;
}

.footer-option-b .footer-b-contact-pill svg {
  width: 22px;
  height: 22px;
  flex-basis: 22px;
}

.footer-option-b .footer-b-social {
  width: 34px;
  height: 34px;
}

.footer-option-b .footer-b-bottom {
  min-height: 34px;
  padding: 7px 16px;
}

@media (max-width: 1080px) {
  .main-nav .main-nav-group {
    display: block;
    width: 100%;
  }

  .main-nav .main-nav-submenu-toggle {
    width: 100%;
    min-height: 48px;
    justify-content: space-between;
    padding: 15px 0;
    font-size: .92rem;
    letter-spacing: .095em;
  }

  .main-nav .main-nav-submenu-toggle::before {
    display: none;
  }

  .main-nav .main-nav-submenu-chevron {
    width: 15px;
    height: 15px;
    margin-right: 2px;
  }

  .main-nav .main-nav-submenu,
  .main-nav .main-nav-group:hover .main-nav-submenu,
  .main-nav .main-nav-group:focus-within .main-nav-submenu {
    position: static;
    width: 100%;
    min-width: 0;
    padding: 0 0 7px 13px;
    border: 0;
    border-left: 1px solid rgba(210,162,58,.35);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    display: none;
  }

  .main-nav .main-nav-group.is-open .main-nav-submenu {
    display: grid;
  }

  .main-nav .main-nav-submenu a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 12px;
    font-size: .86rem;
    letter-spacing: .04em;
    white-space: normal;
  }
}

@media (max-width: 700px) {
  .site-footer.footer-option-b {
    padding: 13px 0 10px;
  }

  .footer-option-b .footer-b-main {
    padding: 15px 16px 8px;
  }

  .footer-option-b .footer-b-brand {
    padding-bottom: 12px;
  }

  .footer-option-b .footer-b-brand img {
    width: min(100%, 205px);
  }

  .footer-option-b .footer-b-nav {
    padding-top: 5px;
  }

  .footer-option-b .footer-b-nav-toggle {
    min-height: 44px;
  }

  .footer-option-b .footer-b-links {
    padding-bottom: 9px;
  }

  .footer-option-b .footer-b-links a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 6px 0;
  }

  .footer-option-b .footer-b-contact-row {
    padding: 11px 16px 12px;
  }

  .footer-option-b .footer-b-contact-pill {
    min-height: 44px;
  }

  .footer-option-b .footer-b-social {
    width: 44px;
    height: 44px;
  }

  .footer-option-b .footer-b-bottom {
    padding: 9px 13px 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .main-nav .main-nav-submenu,
  .main-nav .main-nav-submenu-chevron,
  .main-nav .main-nav-submenu-toggle::before {
    transition: none;
  }
}

/* User-approved public header behaviour — 2026-08-14.
   The public site header stays in normal document flow. It must not become
   sticky/fixed unless explicitly requested later. */
.site-header {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
}

/* Build 050 — public-site main-navigation readability.
   Shorter labels create enough room to increase the desktop type size without
   reintroducing header overflow. The hidden desktop menu-toggle no longer
   reserves an empty grid column, and the logo is slightly narrower. */
@media (min-width: 1081px) {
  .header-inner {
    grid-template-columns: 260px minmax(0, 1fr) !important;
    gap: 24px !important;
  }

  .logo-link {
    width: 260px !important;
  }

  .main-nav {
    justify-content: flex-end !important;
    gap: 13px !important;
  }

  .main-nav a {
    font-size: .86rem !important;
    letter-spacing: .06em !important;
  }
}

@media (min-width: 1081px) and (max-width: 1240px) {
  .header-inner {
    grid-template-columns: 230px minmax(0, 1fr) !important;
    gap: 16px !important;
  }

  .logo-link {
    width: 230px !important;
  }

  .main-nav {
    gap: 8px !important;
  }

  .main-nav a {
    font-size: .80rem !important;
    letter-spacing: .04em !important;
  }
}


/* Build 052 — restore the original JT logo composition and give the public
   desktop header enough logo footprint for crisp legibility. The menu labels
   remain the shorter Build 050 wording and mobile behaviour is unchanged. */
