/* === JT 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 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 source: assets/css/to-hell-or-verona-refined.css === */
/* To Hell or Verona showcase page — scoped so the main James Taylor site stays untouched. */
.thov-page {
  --thov-green: #2f6d4a;
  --thov-green-soft: rgba(47,109,74,.15);
  --thov-orange: #b86d2e;
}

.thov-page .thov-hero {
  padding: 60px 0 54px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 76% 34%, rgba(47,109,74,.13), transparent 23rem),
    linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.02));
}
.thov-page .thov-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  gap: 54px;
  align-items: center;
}
.thov-page .thov-hero-copy h1 {
  max-width: 780px;
  font-size: clamp(2.65rem, 5vw, 4.8rem);
}
.thov-page .thov-hero-lead {
  max-width: 690px;
  margin: 0 0 24px;
  color: var(--cream);
  font-size: 1.08rem;
}
.thov-page .thov-members {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  max-width: 680px;
  margin: 0 0 28px;
  border: 1px solid var(--line);
  background: var(--line);
}
.thov-page .thov-members > div {
  padding: 14px 16px;
  background: rgba(0,0,0,.72);
}
.thov-page .thov-members strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1rem;
  font-weight: 400;
}
.thov-page .thov-members span {
  color: var(--muted);
  font-size: .78rem;
}
.thov-page .thov-hero-media {
  position: relative;
  margin: 0;
  min-height: 430px;
  border: 1px solid var(--line);
  overflow: hidden;
  background: #050505;
  box-shadow: var(--shadow);
}
.thov-page .thov-hero-media::before,
.thov-page .thov-identity-media::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--thov-green) 0 33.333%, #f3ede0 33.333% 66.666%, var(--thov-orange) 66.666% 100%);
}
.thov-page .thov-hero-media img {
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
  object-position: center;
}
.thov-page .thov-hero-media figcaption {
  position: absolute;
  z-index: 2;
  left: 18px;
  bottom: 16px;
  padding: 8px 10px;
  border: 1px solid rgba(210,162,58,.4);
  background: rgba(0,0,0,.76);
  color: var(--cream);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.thov-page .thov-proof {
  border-bottom: 1px solid var(--line);
  background: rgba(0,0,0,.7);
}
.thov-page .thov-proof-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.thov-page .thov-proof-grid > div {
  min-height: 96px;
  padding: 18px 20px;
  border-left: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.thov-page .thov-proof-grid > div:last-child { border-right: 1px solid var(--line); }
.thov-page .thov-proof-grid strong {
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.12rem;
  font-weight: 400;
  line-height: 1.18;
}
.thov-page .thov-proof-grid span {
  color: var(--muted);
  font-size: .78rem;
  margin-top: 3px;
}

.thov-page .thov-section { padding: 52px 0; }
.thov-page .thov-section-head { margin-bottom: 28px; }
.thov-page .thov-section-head p { max-width: 690px; }
.thov-page .thov-feature-grid,
.thov-page .thov-identity-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 46px;
  align-items: center;
}
.thov-page .thov-feature-copy { max-width: 620px; }
.thov-page .thov-feature-copy p:not(.kicker),
.thov-page .thov-identity-grid p:not(.kicker) { font-size: 1rem; }
.thov-page .thov-feature-media {
  margin: 0;
  border: 1px solid var(--line);
  background: #050505;
  overflow: hidden;
}
.thov-page .thov-feature-media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.thov-page .thov-feature-media figcaption {
  padding: 9px 12px;
  color: var(--muted);
  font-size: .76rem;
  border-top: 1px solid rgba(210,162,58,.24);
}

.thov-page .thov-lineup-section {
  border-top: 1px solid rgba(210,162,58,.16);
  border-bottom: 1px solid rgba(210,162,58,.16);
  background:
    linear-gradient(90deg, transparent 0 69%, rgba(47,109,74,.055) 69% 100%),
    rgba(0,0,0,.26);
}
.thov-page .thov-lineup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
}
.thov-page .thov-lineup-card {
  min-height: 270px;
  padding: 28px;
  border-right: 1px solid var(--line);
  background: linear-gradient(150deg, rgba(210,162,58,.045), rgba(0,0,0,.1));
}
.thov-page .thov-lineup-card:last-child { border-right: 0; }
.thov-page .thov-lineup-card .kicker { margin-top: 20px; margin-bottom: 8px; }
.thov-page .thov-lineup-card h3 { color: var(--cream); }
.thov-page .thov-lineup-card p:last-child { color: var(--muted); margin-bottom: 0; }
.thov-page .thov-card-icon,
.thov-page .thov-highlight-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-light);
}
.thov-page .thov-card-icon { width: 38px; height: 38px; }
.thov-page .thov-card-icon svg,
.thov-page .thov-highlight-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.thov-page .thov-highlights-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.thov-page .thov-highlights-grid article {
  min-height: 190px;
  padding: 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.thov-page .thov-highlight-icon { width: 32px; height: 32px; margin-bottom: 16px; }
.thov-page .thov-highlights-grid h3 {
  color: var(--gold-light);
  font-size: 1.16rem;
  margin-bottom: 8px;
}
.thov-page .thov-highlights-grid p { margin: 0; color: var(--muted); font-size: .88rem; }

.thov-page .thov-identity-section {
  border-top: 1px solid rgba(210,162,58,.14);
  border-bottom: 1px solid rgba(210,162,58,.14);
  background: linear-gradient(120deg, var(--thov-green-soft), rgba(0,0,0,.22) 44%);
}
.thov-page .thov-identity-media {
  position: relative;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #050505;
}
.thov-page .thov-identity-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.thov-page .thov-personality-note {
  margin-top: 22px;
  padding: 16px 18px;
  border-left: 2px solid var(--gold);
  background: rgba(0,0,0,.24);
}
.thov-page .thov-personality-note strong {
  display: block;
  color: var(--gold-light);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.18rem;
  font-weight: 400;
}
.thov-page .thov-personality-note span { color: var(--muted); font-size: .86rem; }

.thov-page .thov-booking-section { padding-top: 46px; padding-bottom: 54px; }
.thov-page .thov-booking-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.thov-page .thov-booking-grid > div {
  min-height: 86px;
  padding: 18px 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 14px;
  align-items: center;
}
.thov-page .thov-booking-grid span {
  color: var(--gold-dark);
  font-family: Marcellus, Georgia, serif;
  font-size: 1.25rem;
}
.thov-page .thov-booking-grid strong { color: var(--cream); font-size: .9rem; }

.thov-page .thov-final-cta {
  padding: 52px 0 58px;
  border-top: 1px solid var(--line);
  background:
    radial-gradient(circle at 18% 28%, rgba(47,109,74,.15), transparent 22rem),
    radial-gradient(circle at 82% 28%, rgba(184,109,46,.10), transparent 20rem),
    rgba(0,0,0,.3);
}
.thov-page .thov-final-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line);
}
.thov-page .thov-final-grid > div { padding: 30px; }
.thov-page .thov-final-grid > div + div { border-left: 1px solid var(--line); }
.thov-page .thov-final-grid h2 { font-size: clamp(1.65rem, 2.6vw, 2.45rem); }
.thov-page .thov-final-grid p:not(.kicker) { color: var(--muted); max-width: 540px; }

@media (max-width: 1000px) {
  .thov-page .thov-hero-grid,
  .thov-page .thov-feature-grid,
  .thov-page .thov-identity-grid { grid-template-columns: 1fr; gap: 34px; }
  .thov-page .thov-hero-media { max-width: 680px; }
  .thov-page .thov-proof-grid { grid-template-columns: repeat(2, 1fr); }
  .thov-page .thov-proof-grid > div:nth-child(2) { border-right: 1px solid var(--line); }
  .thov-page .thov-highlights-grid { grid-template-columns: repeat(2, 1fr); }
  .thov-page .thov-booking-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .thov-page .thov-hero { padding: 44px 0 38px; }
  .thov-page .thov-hero-copy h1 { font-size: clamp(2.4rem, 11vw, 3.5rem); }
  .thov-page .thov-members { grid-template-columns: 1fr; }
  .thov-page .thov-section { padding: 40px 0; }
  .thov-page .thov-lineup-grid,
  .thov-page .thov-highlights-grid,
  .thov-page .thov-booking-grid,
  .thov-page .thov-final-grid { grid-template-columns: 1fr; }
  .thov-page .thov-lineup-card { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .thov-page .thov-lineup-card:last-child { border-bottom: 0; }
  .thov-page .thov-highlights-grid article { min-height: auto; }
  .thov-page .thov-final-grid > div + div { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 520px) {
  .thov-page .thov-proof-grid { grid-template-columns: 1fr; }
  .thov-page .thov-proof-grid > div { border-right: 1px solid var(--line); min-height: 82px; }
  .thov-page .thov-hero-media,
  .thov-page .thov-hero-media img { min-height: 340px; }
  .thov-page .thov-booking-grid > div { min-height: 74px; }
}

/* Compact hero correction: match the finished internal-page title and hero rhythm. */
.thov-page .thov-hero {
  padding: 52px 0 44px;
}

.thov-page .thov-hero-grid {
  grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr);
  gap: 42px;
  align-items: start;
}

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

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

.thov-page .thov-hero-lead {
  max-width: 650px;
  margin: 0 0 20px;
  font-size: 1.04rem;
  line-height: 1.62;
}

.thov-page .thov-members {
  max-width: 650px;
  margin-bottom: 22px;
}

.thov-page .thov-members > div {
  padding: 11px 14px;
}

.thov-page .thov-hero-media {
  min-height: 0;
  height: 360px;
}

.thov-page .thov-hero-media img {
  height: 360px;
  min-height: 0;
}

@media (max-width: 1000px) {
  .thov-page .thov-hero-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .thov-page .thov-hero-media {
    width: 100%;
    max-width: 680px;
  }
}

@media (max-width: 760px) {
  .thov-page .thov-hero {
    padding: 38px 0 34px;
  }

  .thov-page .thov-hero-copy h1 {
    font-size: clamp(2.05rem, 9.5vw, 3rem);
  }

  .thov-page .thov-hero-media,
  .thov-page .thov-hero-media img {
    height: 330px;
    min-height: 0;
  }
}

@media (max-width: 520px) {
  .thov-page .thov-hero-media,
  .thov-page .thov-hero-media img {
    height: 300px;
    min-height: 0;
  }
}


/* Hero image crop correction: keep both performers' heads visible in the compact wide frame. */
.thov-page .thov-hero-media img {
  object-position: center top;
}

/* === JT source: assets/css/to-hell-or-verona-finished.css === */
/* To Hell or Verona finished-page consistency pass.
   Changes only alignment rhythm, rounded treatment, pill buttons and the section scroller. */
.thov-page {
  --thov-finished-radius: 22px;
  --thov-finished-radius-small: 14px;
}

/* Match the established desktop opening rhythm used by the finished internal pages. */
@media (min-width: 1001px) {
  .thov-page .thov-hero {
    padding-top: 46px;
  }

  .thov-page .thov-hero-grid {
    align-items: start;
  }
}

/* Keep the compact hero correction and the head-safe crop already approved. */
.thov-page .thov-hero-media img {
  object-position: center top;
}

/* Gallery / Contact style rounded visual language. */
.thov-page .thov-hero-media,
.thov-page .thov-feature-media,
.thov-page .thov-identity-media,
.thov-page .thov-members,
.thov-page .thov-lineup-grid,
.thov-page .thov-highlights-grid,
.thov-page .thov-booking-grid,
.thov-page .thov-final-grid {
  border-radius: var(--thov-finished-radius);
  overflow: hidden;
}

.thov-page .thov-hero-media figcaption {
  border-radius: var(--thov-finished-radius-small);
}

/* Preserve the booking-category line icons from the earlier THOV pass. */
.thov-page .thov-booking-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-dark);
}

.thov-page .thov-booking-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Pill actions, without changing button dimensions or placement. */
.thov-page .btn {
  border-radius: 999px;
}

/* Section-aware floating down arrow. */
.thov-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: rgba(5,5,5,.12);
  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;
}

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

.thov-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;
}

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

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

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

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

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


/* Align the #YorkshireIrish text column with the top edge of its image. */
@media (min-width: 901px) {
  .thov-page .thov-identity-grid {
    align-items: start;
  }

  .thov-page .thov-identity-grid > div {
    align-self: start;
  }
}

/* === JT 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 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. */

/* === JT source: assets/css/frontend-readability-102.css === */
/* Build 102: public-site readability pass.
   Keeps compact decorative labels where they are part of the visual system,
   while increasing functional/help text that visitors need to read or act on. */

/* Shared actions and footer navigation. */
.btn{font-size:.88rem}
.btn-small{font-size:.84rem}
.text-link{font-size:.84rem}
.footer-option-b .footer-b-nav-toggle{font-size:.8rem}
.footer-option-b .footer-b-links a{font-size:.88rem}
.footer-option-b .footer-b-contact-pill{font-size:.86rem}
.footer-option-b .footer-b-bottom{font-size:.82rem}

/* Contact page: labels, notes and the four direct-contact cards. */
.contact-page .contact-method{min-height:104px;gap:16px}
.contact-page .contact-method-icon{width:44px;height:44px;flex-basis:44px}
.contact-page .contact-method-icon svg{width:30px;height:30px}
.contact-page .contact-method-icon-letter{font-size:2rem}
.contact-page .contact-method small{font-size:.78rem;letter-spacing:.11em}
.contact-page .contact-method strong{font-size:.96rem;line-height:1.4}
.contact-page .contact-method:nth-child(2) strong{font-size:.92rem}
.contact-page .contact-field label{font-size:.96rem;letter-spacing:.025em}
.contact-page .contact-check{font-size:.92rem;letter-spacing:.02em}
.contact-page .contact-form-note{font-size:.87rem;line-height:1.6}
.contact-page .contact-required-note{font-size:.84rem}
.contact-page .contact-status{font-size:.9rem}
.contact-page .contact-next-list p{font-size:.92rem;line-height:1.58}
.contact-page .contact-booked-box>p:not(.kicker){font-size:.9rem;line-height:1.58}
.contact-page .contact-repair-note p{font-size:.9rem;line-height:1.58}

/* Credentials request: form labels and supporting copy are deliberately larger. */
.credentials-page .credentials-request-note p{font-size:.98rem;line-height:1.65}
.credentials-page .credentials-form-card legend small{font-size:.88rem;line-height:1.45}
.credentials-page .credentials-field>span{font-size:.96rem;letter-spacing:.015em}
.credentials-page .credentials-field small{font-size:.86rem;line-height:1.52}
.credentials-page .credentials-check strong{font-size:.98rem}
.credentials-page .credentials-check small{font-size:.86rem;line-height:1.52}
.credentials-page .credentials-document-error{font-size:.9rem}
.credentials-page .credentials-confirm{font-size:.94rem;line-height:1.62}
.credentials-page .credentials-request-form .form-turnstile-copy,
.credentials-page .credentials-request-form .form-turnstile-status{font-size:.84rem;line-height:1.5}
.credentials-page .credentials-request-footer p{font-size:.9rem;line-height:1.6}

/* Credentials venue/supplier CTA: stronger text and larger action targets. */
.credentials-page .credentials-venue-shell p{font-size:1.02rem;line-height:1.7}
.credentials-page .credentials-venue-actions{gap:12px}
.credentials-page .credentials-venue-actions .btn{min-height:54px;padding-inline:24px;font-size:.9rem}
.credentials-page .credentials-venue-actions .btn svg{width:22px;height:22px;flex:0 0 22px}

/* Confirmed-booking form: the same label-size problem existed here. */
.booking-page .booking-field label{font-size:.92rem;letter-spacing:.02em}
.booking-page .booking-field small{font-size:.86rem;line-height:1.55}
.booking-page .booking-check{font-size:.9rem;line-height:1.6}
.booking-page .booking-submit-copy p{font-size:.88rem;line-height:1.6}
.booking-page .booking-payment-options>legend{font-size:.9rem}
.booking-page .booking-radio-card small{font-size:.84rem;line-height:1.5}
.form-turnstile-heading span{font-size:.82rem}
.form-turnstile-copy,.form-turnstile-status{font-size:.84rem;line-height:1.5}

/* Other public text found below a comfortable reading size during the audit. */
.gallery-caption,.weddings-page .wedding-photo figcaption,
.collaborations-page .collab-photo-card figcaption,
.thov-page .thov-feature-media figcaption{font-size:.84rem}
.performance-map-page .venue-website-link,.venue-website-link{font-size:.82rem}
.reviews-page .review-card footer{font-size:.84rem}
.reviews-page .reviews-details summary small{font-size:.82rem}
.reviews-page .hero-quote-card blockquote{font-size:.9rem}
.setup-category-link{font-size:.84rem}
.setup-category-link small{font-size:.74rem}
.setup-product-copy p{font-size:.88rem;line-height:1.6}
.setup-product-link,.setup-product-details{font-size:.76rem}
.performances-page .gig-compact-type,.performances-page .event-format{font-size:.78rem}
.performances-page .gig-period-footer,.past-gigs-page .past-gigs-return a{font-size:.84rem}

/* Cookie controls are functional text, not decorative micro-copy. */
.cookie-banner p{font-size:.84rem}
.cookie-banner .cookie-choice-button{font-size:.8rem;min-height:38px}
.cookie-banner>.cookie-banner__inner>.cookie-banner__copy>a{font-size:.8rem}
@media(max-width:600px){
  .cookie-banner p{font-size:.8rem;line-height:1.42}
  .cookie-banner a{font-size:.78rem}
}

@media(max-width:700px){
  .contact-page .contact-method{min-height:86px}
  .contact-page .contact-method-icon{width:40px;height:40px;flex-basis:40px}
  .contact-page .contact-method-icon svg{width:28px;height:28px}
}

/* Footer/contact icon sizing and hero captions from the same readability audit. */
.footer-option-b .footer-b-contact-pill svg{width:30px;height:30px;flex-basis:30px}
.footer-option-b .footer-b-social{width:44px;height:44px}
.contact-page .contact-hero-media figcaption,.home-page .home-hero-media figcaption{font-size:.84rem}

/* === JT source: assets/css/page-preview-v2.css === */
/* Build 124 - parallel V2 public-page preview system.
   Presentation-only: original page content, forms, data and scripts are preserved. */
.page2-preview {
  --v2-dark: #070706;
  --v2-dark-soft: #11100e;
  --v2-light: #f4efe7;
  --v2-light-deep: #e9e0d3;
  --v2-ink: #17130e;
  --v2-gold: #d2a23a;
  --v2-gold-soft: #e7bf61;
  --v2-muted-dark: #6c6358;
  --v2-pad-x: clamp(28px, 5vw, 96px);
  --v2-pad-y: clamp(62px, 6vw, 104px);
  --v2-pad-y-compact: clamp(34px, 3.2vw, 58px);
  background: var(--v2-dark);
}

/* Full-width shell while retaining the current menu system and page content. */
.page2-preview .site-header .header-inner {
  width: 100%;
  max-width: none;
  padding-inline: clamp(24px, 3.4vw, 66px);
}
.page2-preview main {
  width: 100%;
  max-width: none;
  overflow: clip;
}
.page2-preview main > .preview-v2-section {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  position: relative;
  clear: both;
  overflow: hidden;
}
.page2-preview main > .preview-v2-section > .container,
.page2-preview main > .preview-v2-section > [class*="container"] {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: var(--v2-pad-y) var(--v2-pad-x) !important;
}

/* Strict dark / soft-white rhythm. */
.page2-preview .preview-v2-dark {
  background: var(--v2-dark) !important;
  color: #f7f1e7 !important;
  border-color: rgba(210,162,58,.30) !important;
}
.page2-preview .preview-v2-light {
  background: var(--v2-light) !important;
  color: var(--v2-ink) !important;
  border-color: rgba(61,48,31,.18) !important;
}
.page2-preview .preview-v2-light h1,
.page2-preview .preview-v2-light h2,
.page2-preview .preview-v2-light h3,
.page2-preview .preview-v2-light h4,
.page2-preview .preview-v2-light strong,
.page2-preview .preview-v2-light label,
.page2-preview .preview-v2-light legend {
  color: var(--v2-ink) !important;
}
.page2-preview .preview-v2-light p,
.page2-preview .preview-v2-light li,
.page2-preview .preview-v2-light .muted,
.page2-preview .preview-v2-light .detail-list,
.page2-preview .preview-v2-light figcaption,
.page2-preview .preview-v2-light small {
  color: var(--v2-muted-dark) !important;
}
.page2-preview .preview-v2-light .kicker,
.page2-preview .preview-v2-light .gold,
.page2-preview .preview-v2-light .text-link,
.page2-preview .preview-v2-light a:not(.btn):not(.nav-availability) {
  color: #7f5c17;
}
.page2-preview .preview-v2-dark .muted,
.page2-preview .preview-v2-dark p,
.page2-preview .preview-v2-dark li,
.page2-preview .preview-v2-dark figcaption {
  color: rgba(247,241,231,.78);
}
.page2-preview .preview-v2-dark .kicker,
.page2-preview .preview-v2-dark .gold,
.page2-preview .preview-v2-dark .text-link {
  color: var(--v2-gold-soft) !important;
}

/* Section text scale and internal breathing room: never external spacer bands. */
.page2-preview main .section-head {
  max-width: min(980px, 100%);
  margin: 0 0 clamp(28px, 3vw, 48px);
  text-align: left;
}
.page2-preview main .section-head h2,
.page2-preview main .resource-section-head h2 {
  font-size: clamp(2rem, 3vw, 3.4rem);
}
.page2-preview main .kicker {
  font-size: clamp(.77rem, .8vw, .9rem);
  letter-spacing: .18em;
}

/* Compact bands stay useful but shallow. */
.page2-preview main > .preview-v2-strip > .container,
.page2-preview main > .preview-v2-strip > [class*="container"] {
  padding-top: var(--v2-pad-y-compact) !important;
  padding-bottom: var(--v2-pad-y-compact) !important;
}

/* Full-width hero: text and imagery/panel fill the complete hero band. */
.page2-preview main > .preview-v2-hero {
  background: #050505 !important;
  color: #f7f1e7 !important;
  border-bottom: 1px solid rgba(210,162,58,.28);
}
.page2-preview main > .preview-v2-hero > .preview-v2-hero-split {
  display: grid !important;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  min-height: clamp(500px, 61svh, 720px);
  padding: 0 !important;
}
.page2-preview .preview-v2-hero-copy {
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(58px, 6vw, 108px) var(--v2-pad-x) !important;
  background:
    radial-gradient(circle at 100% 20%, rgba(210,162,58,.12), transparent 32rem),
    #050505;
  position: relative;
  z-index: 2;
}
.page2-preview .preview-v2-hero-copy h1 {
  max-width: 13ch;
  font-size: clamp(2.65rem, 4.3vw, 5rem);
  line-height: 1.02;
}
.page2-preview .preview-v2-hero-copy p {
  max-width: 760px;
}
.page2-preview .preview-v2-hero-media {
  min-width: 0;
  min-height: clamp(500px, 61svh, 720px);
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 0 !important;
  position: relative;
}
.page2-preview .preview-v2-hero-media img {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
}
.page2-preview .preview-v2-hero-media figcaption {
  position: absolute;
  left: 24px;
  bottom: 18px;
  z-index: 2;
  padding: 8px 12px;
  background: rgba(0,0,0,.68);
  color: #f7f1e7 !important;
  border-left: 2px solid var(--v2-gold);
}
.page2-preview .preview-v2-hero-panel {
  margin: 0 !important;
  padding: clamp(42px, 5vw, 80px) var(--v2-pad-x) !important;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0c0b09;
}
.page2-preview main > .preview-v2-hero > .preview-v2-hero-single {
  width: 100%;
  max-width: none;
  padding: clamp(64px, 7vw, 116px) var(--v2-pad-x) !important;
}

/* Prevent old card widths/radii from making the page look boxed-in. */
.page2-preview main .page-hero-card,
.page2-preview main .real-photo-card,
.page2-preview main .about-card,
.page2-preview main .review-card,
.page2-preview main .collab-card,
.page2-preview main .occasion-card,
.page2-preview main .contact-method-card,
.page2-preview main .resource-card,
.page2-preview main .package-card {
  border-radius: 0 !important;
}

/* Light-section cards/forms stay readable without reverting to an all-black page. */
.page2-preview .preview-v2-light input,
.page2-preview .preview-v2-light textarea,
.page2-preview .preview-v2-light select,
.page2-preview .preview-v2-light .page-hero-card,
.page2-preview .preview-v2-light [class*="card"],
.page2-preview .preview-v2-light [class*="panel"],
.page2-preview .preview-v2-light [class*="box"] {
  background: rgba(255,255,255,.48) !important;
  color: var(--v2-ink) !important;
  border-color: rgba(61,48,31,.22) !important;
  box-shadow: none !important;
}
.page2-preview .preview-v2-light input::placeholder,
.page2-preview .preview-v2-light textarea::placeholder { color: #7e756a; }
.page2-preview .preview-v2-light select option { background: #fff; color: #17130e; }

/* Media containment everywhere: no image bleed into the following section. */
.page2-preview main figure,
.page2-preview main [class*="media"],
.page2-preview main [class*="photo"],
.page2-preview main [class*="image"] {
  max-width: 100%;
  overflow: hidden;
}
.page2-preview main figure img,
.page2-preview main [class*="media"] img,
.page2-preview main [class*="photo"] img,
.page2-preview main [class*="image"] img {
  max-width: 100%;
}

/* Package and two-column layouts stretch across the page rather than sitting in a narrow island. */
.page2-preview main .package-detail-grid,
.page2-preview main .about-two-col,
.page2-preview main [class*="-grid"] {
  max-width: none;
}
.page2-preview main .package-detail-grid {
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  gap: clamp(34px, 5vw, 86px);
}

/* Map and form pages: use the width rather than leaving large margins. */
.page2-preview .performance-map-frame,
.page2-preview .booking-form-container,
.page2-preview .contact-enquiry-section .container,
.page2-preview .setup-layout {
  max-width: none !important;
  width: 100% !important;
}
.page2-preview .performance-map-frame iframe { width: 100%; }

/* Full-width footer, same content. */
.page2-preview .site-footer.footer-option-b {
  width: 100%;
  padding: 0 !important;
  margin: 0;
  background: #000;
}
.page2-preview .footer-option-b .footer-b-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  box-shadow: none;
}
.page2-preview .footer-option-b .footer-b-main,
.page2-preview .footer-option-b .footer-b-contact-row,
.page2-preview .footer-option-b .footer-b-bottom {
  padding-left: var(--v2-pad-x);
  padding-right: var(--v2-pad-x);
}

/* Standard section-scroll control for all V2 preview pages. */
.page2-preview .preview-v2-scroll-next {
  position: fixed !important;
  right: clamp(16px, 2vw, 30px) !important;
  bottom: clamp(16px, 2vw, 30px) !important;
  z-index: 45 !important;
  width: 50px !important;
  height: 50px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(210,162,58,.72) !important;
  border-radius: 50% !important;
  background: rgba(5,5,5,.82) !important;
  color: var(--v2-gold-soft) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.32) !important;
  backdrop-filter: blur(8px);
  cursor: pointer;
}
.page2-preview .preview-v2-scroll-next svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.page2-preview .preview-v2-scroll-next.is-at-end { opacity: .38; }

/* Page-specific containment refinements. */
.page2-preview--gallery .gallery-showcase,
.page2-preview--gallery .gallery-hero { overflow: hidden; }
.page2-preview--gallery .gallery-grid,
.page2-preview--gallery [class*="gallery-"] { max-width: none; }
.page2-preview--my-setup .setup-category-bar,
.page2-preview--my-setup .setup-affiliate-strip { min-height: 0; }
.page2-preview--my-setup .setup-category-bar > .container,
.page2-preview--my-setup .setup-affiliate-strip > .container {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
.page2-preview--weddings .wedding-photo-section img,
.page2-preview--occasions .occasions-section img,
.page2-preview--collaborations .collab-section img,
.page2-preview--to-hell-or-verona .thov-section img,
.page2-preview--about .about-section img,
.page2-preview--reviews .reviews-section img {
  object-fit: cover;
}

/* Legal pages retain their complete long-form content but gain the same full-width rhythm. */
.page2-preview--privacy-policy main > section:nth-of-type(2) > .container,
.page2-preview--cookie-policy main > section:nth-of-type(2) > .container,
.page2-preview--terms-of-use main > section:nth-of-type(2) > .container,
.page2-preview--booking-terms main > section:nth-of-type(2) > .container,
.page2-preview--accessibility main > section:nth-of-type(2) > .container {
  max-width: none !important;
  padding-inline: clamp(34px, 9vw, 170px) !important;
}

@media (max-width: 1100px) {
  .page2-preview {
    --v2-pad-x: clamp(24px, 4.5vw, 54px);
    --v2-pad-y: clamp(52px, 6vw, 78px);
  }
  .page2-preview main > .preview-v2-hero > .preview-v2-hero-split {
    grid-template-columns: 1fr 1fr !important;
    min-height: 520px;
  }
  .page2-preview .preview-v2-hero-media { min-height: 520px; }
}

@media (max-width: 900px) {
  .page2-preview .site-header .header-inner { width: calc(100% - 24px); padding-inline: 0; }
  .page2-preview main > .preview-v2-hero > .preview-v2-hero-split {
    grid-template-columns: 1fr !important;
    min-height: 0;
  }
  .page2-preview .preview-v2-hero-copy {
    padding: 52px var(--v2-pad-x) !important;
  }
  .page2-preview .preview-v2-hero-copy h1 { max-width: 18ch; }
  .page2-preview .preview-v2-hero-media { min-height: clamp(340px, 64vw, 520px); }
  .page2-preview main .package-detail-grid { grid-template-columns: 1fr; }
  .page2-preview .footer-option-b .footer-b-main { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .page2-preview {
    --v2-pad-x: 22px;
    --v2-pad-y: 42px;
    --v2-pad-y-compact: 26px;
  }
  .page2-preview .preview-v2-hero-copy { padding-block: 44px !important; }
  .page2-preview .preview-v2-hero-copy h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
  .page2-preview .preview-v2-hero-media { min-height: 320px; }
  .page2-preview .preview-v2-scroll-next { width: 46px !important; height: 46px !important; }
}

/* === JT source: assets/css/v2-button-system-133.css === */
/* Build 133 - public V2 CTA design system.
   Primary = filled gold pill; secondary = outlined gold pill; tertiary = text link.
   This file is loaded last on the parallel V2 preview pages so page-specific
   legacy button shapes cannot reintroduce rectangular CTAs. */

.page2-preview .btn,
.home-preview-page .btn {
  min-height: 50px !important;
  padding: 12px 27px !important;
  border: 1px solid #d2a23a !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #e7bf61 !important;
  box-shadow: none !important;
  font-size: clamp(.78rem, .78vw, .88rem) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: .105em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

.page2-preview .btn.btn-primary,
.home-preview-page .btn.btn-primary {
  border-color: #d3a437 !important;
  background: linear-gradient(135deg, #a86f18 0%, #efc45f 100%) !important;
  color: #080704 !important;
  box-shadow: 0 12px 28px rgba(164, 112, 26, .18) !important;
}

.page2-preview .preview-v2-light .btn:not(.btn-primary),
.home-preview-page .preview-light-section .btn:not(.btn-primary),
.home-preview-page .preview-about-section .btn:not(.btn-primary) {
  border-color: #956a16 !important;
  color: #69480b !important;
}

@media (hover: hover) and (pointer: fine) {
  .page2-preview .btn:hover,
  .page2-preview .btn:focus-visible,
  .home-preview-page .btn:hover,
  .home-preview-page .btn:focus-visible {
    transform: translateY(-2px);
    background: rgba(210, 162, 58, .10) !important;
  }

  .page2-preview .btn.btn-primary:hover,
  .page2-preview .btn.btn-primary:focus-visible,
  .home-preview-page .btn.btn-primary:hover,
  .home-preview-page .btn.btn-primary:focus-visible {
    background: linear-gradient(135deg, #bb7f1c 0%, #f4cf75 100%) !important;
  }
}

@media (max-width: 640px) {
  .page2-preview .btn,
  .home-preview-page .btn {
    min-height: 48px !important;
    padding: 11px 22px !important;
  }
}

/* === JT source: assets/css/v2-readability-136.css === */
/* Build 136 - V2 readability and scoped visual refinements.
   Applies only to the parallel redesigned *2 preview site. */

/* Consistent supporting/body copy scale outside landing heroes. */
.page2-preview main > section:not(.preview-v2-hero) p:not(.kicker):not(.preview-section-eyebrow):not(.review-source),
.home-preview-page main > section:not(.preview-hero) p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.review-source) {
  font-size: clamp(1.04rem, .92vw, 1.17rem) !important;
  line-height: 1.68 !important;
  text-wrap: pretty;
}
.page2-preview main > section:not(.preview-v2-hero) li {
  font-size: clamp(1rem, .86vw, 1.1rem);
  line-height: 1.62;
}

/* Weddings2 ceremony image mosaic: rounded corners expose the section colour,
   never a separate grey card background. */
.page2-preview--weddings .wedding-photo-section-featured,
.page2-preview--weddings .wedding-photo-section-featured > .container,
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo-feature-grid,
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo-feature-side,
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo {
  background: var(--v2-light) !important;
  background-color: var(--v2-light) !important;
  box-shadow: none !important;
}
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo figcaption {
  color: #fff !important;
}

/* Index2 corporate/functions image: portrait violin photo framed as a wide
   background panel without changing the panel dimensions. */
.home-preview-page .preview-performance-panel--events > img {
  object-position: 50% 42% !important;
}

/* Index2 repertoire: turn the plain ruled list into compact editorial tiles. */
.home-preview-page .preview-repertoire-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: clamp(1.25rem, 2vw, 1.7rem) 0 clamp(1.35rem, 2vw, 1.8rem);
}
.home-preview-page .preview-repertoire-card {
  min-width: 0;
  padding: clamp(14px, 1.2vw, 18px) clamp(15px, 1.35vw, 20px);
  border: 1px solid rgba(231, 191, 97, .22);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
}
.home-preview-page .preview-repertoire-card > span {
  display: block;
  margin-bottom: .28rem;
  color: #e7bf61;
  font-size: clamp(.7rem, .62vw, .8rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.home-preview-page .preview-repertoire-card > strong {
  display: block;
  color: #fff;
  font-family: "Marcellus", serif;
  font-size: clamp(1.02rem, .92vw, 1.18rem);
  font-weight: 400;
  line-height: 1.25;
}
.home-preview-page .preview-repertoire-card > small {
  display: block;
  margin-top: .35rem;
  color: rgba(247,241,231,.7);
  font-size: clamp(.82rem, .72vw, .94rem);
  line-height: 1.45;
}

@media (max-width: 760px) {
  .home-preview-page .preview-repertoire-grid { grid-template-columns: 1fr; }
  .page2-preview main > section:not(.preview-v2-hero) p:not(.kicker):not(.preview-section-eyebrow):not(.review-source),
  .home-preview-page main > section:not(.preview-hero) p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.review-source) {
    font-size: 1rem !important;
    line-height: 1.62 !important;
  }
}

/* === JT source: assets/css/v2-consistency-137.css === */
/* Build 137 - V2 navigation and section-copy consistency.
   Applies only to the parallel redesigned preview pages. */

.page2-preview,
.home-preview-page {
  --v2-section-copy-size: clamp(1.08rem, 0.98vw, 1.20rem);
  --v2-section-copy-leading: 1.68;
}

/* Shared explanatory-copy scale immediately beneath section titles. */
.page2-preview main .section-head > p:not(.kicker):not(.gold):not(.review-source),
.page2-preview main [class$="-section-head"] > p:not(.kicker):not(.gold):not(.review-source),
.page2-preview main .resource-section-head > p:not(.kicker):not(.gold):not(.review-source),
.page2-preview main h2 + p:not(.kicker):not(.gold):not(.review-source),
.home-preview-page main .preview-wedding-copy > p:not(.preview-section-eyebrow),
.home-preview-page main .preview-about-copy > p:not(.preview-section-eyebrow),
.home-preview-page main .preview-listen-copy > p:not(.preview-section-eyebrow),
.home-preview-page main h2 + p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.review-source) {
  font-size: var(--v2-section-copy-size) !important;
  line-height: var(--v2-section-copy-leading) !important;
  text-wrap: pretty;
}

/* Weddings2 ceremony introduction: breathing room belongs inside the copy
   column, not as a blank spacer between sections. */
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo-head {
  box-sizing: border-box;
  padding: clamp(20px, 1.8vw, 34px) clamp(10px, 1.15vw, 20px) !important;
}
.page2-preview--weddings .wedding-photo-section-featured .wedding-photo-head > p:not(.kicker) {
  margin-top: clamp(16px, 1.25vw, 22px) !important;
}

@media (max-width: 760px) {
  .page2-preview,
  .home-preview-page {
    --v2-section-copy-size: 1rem;
    --v2-section-copy-leading: 1.62;
  }
  .page2-preview--weddings .wedding-photo-section-featured .wedding-photo-head {
    padding: 12px 0 18px !important;
  }
}

/* === JT source: assets/css/v2-regression-fix-138.css === */
/* Build 138 - strict regression fix only.
   1) Restore centred/shared header geometry while retaining Home.
   2) Lock V2 supporting prose to one actual size rather than page-specific clamps. */

/* Keep logo + navigation together in the established centred header shell.
   Do not use the full-width V2 header override on normal preview pages. */
@media (min-width: 901px) {
  body.page2-preview:not(.page2-preview--found-my-gear) .site-header .header-inner,
  body.home-preview-page .site-header .header-inner {
    width: min(var(--container), calc(100% - 40px)) !important;
    max-width: var(--container) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  body.page2-preview:not(.page2-preview--found-my-gear) .site-header .main-nav,
  body.home-preview-page .site-header .main-nav {
    justify-content: center !important;
  }
}

/* One real supporting-copy size across the V2 site.
   Kicker/eyebrow/meta/caption/status text deliberately retains its own hierarchy. */
body.page2-preview main > section:not(.preview-v2-hero) p:not(.kicker):not(.preview-section-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]),
body.home-preview-page main > section:not(.preview-hero) p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]),
body.page2-preview main h2 + p:not(.kicker):not(.gold):not(.review-source),
body.home-preview-page main h2 + p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.gold):not(.review-source) {
  font-size: 18px !important;
  line-height: 1.68 !important;
  letter-spacing: normal !important;
  text-wrap: pretty;
}

@media (max-width: 760px) {
  body.page2-preview main > section:not(.preview-v2-hero) p:not(.kicker):not(.preview-section-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]),
  body.home-preview-page main > section:not(.preview-hero) p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]),
  body.page2-preview main h2 + p:not(.kicker):not(.gold):not(.review-source),
  body.home-preview-page main h2 + p:not(.preview-section-eyebrow):not(.preview-eyebrow):not(.gold):not(.review-source) {
    font-size: 16px !important;
    line-height: 1.62 !important;
  }
}

/* Build 139 - hero supporting-copy consistency correction.
   Build 138 standardised section prose but intentionally excluded hero sections,
   leaving Weddings2 visibly smaller than Index2. Keep one exact rendered hero
   supporting-copy size across the redesigned V2 site. */
body.home-preview-page main > section.preview-hero .preview-hero-lead,
body.page2-preview main > section.preview-v2-hero p:not(.kicker):not(.preview-section-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]) {
  font-size: 19px !important;
  line-height: 1.68 !important;
  letter-spacing: normal !important;
}

@media (max-width: 760px) {
  body.home-preview-page main > section.preview-hero .preview-hero-lead,
  body.page2-preview main > section.preview-v2-hero p:not(.kicker):not(.preview-section-eyebrow):not(.review-source):not(.gold):not([class*="caption"]):not([class*="meta"]):not([class*="status"]):not([class*="note"]) {
    font-size: 17px !important;
    line-height: 1.62 !important;
  }
}

/* === JT source: assets/css/v2-section-rhythm-140.css === */
/* Build 140 - V2 section-title and copy-to-CTA rhythm consistency.
   Scope: redesigned *2 preview pages only.
   Keep the Index2 landing hero deliberately larger; preserve dense/legal/card/package hierarchy. */

body.page2-preview,
body.home-preview-page {
  --v2-primary-title-size: 54px;
  --v2-primary-title-leading: 1.06;
  --v2-copy-to-cta-gap: 24px;
}

/* Normal V2 page hero titles share the same primary title scale.
   Index2's landing hero is intentionally NOT included. */
body.page2-preview main > .preview-v2-hero .preview-v2-hero-copy > h1 {
  font-size: var(--v2-primary-title-size) !important;
  line-height: var(--v2-primary-title-leading) !important;
}

/* Primary editorial section titles - one consistent visual scale.
   Deliberately excludes legal subsections, cards, package-detail titles and utility headings. */
body.home-preview-page main .preview-wedding-copy > h2,
body.home-preview-page main .preview-performance-copy > h2,
body.home-preview-page main .preview-listen-copy > h2,
body.home-preview-page main .preview-gallery-intro > h2,
body.home-preview-page main .preview-about-copy > h2,
body.home-preview-page main .preview-final-cta h2,
body.page2-preview main .section-head > h2,
body.page2-preview main .resource-section-head > h2,
body.page2-preview main .reviews-section-head > h2,
body.page2-preview main .contact-section-head > h2,
body.page2-preview main .about-copy > h2,
body.page2-preview main .about-section-head > h2,
body.page2-preview main .about-final-head > h2,
body.page2-preview main .collab-theatre-copy > h2,
body.page2-preview main .collab-session-intro > h2,
body.page2-preview main .collab-thov-compact h2,
body.page2-preview main .collab-cta-grid h2,
body.page2-preview main .occasions-copy-panel > h2,
body.page2-preview main .occasions-thov-panel > h2,
body.page2-preview main .occasions-final-grid h2,
body.page2-preview main .thov-feature-copy > h2,
body.page2-preview main .thov-identity-grid h2,
body.page2-preview main .thov-final-grid h2,
body.page2-preview main .booking-form-intro > h2,
body.page2-preview main .booking-after-section h2,
body.page2-preview main .reviews-final-grid h2,
body.page2-preview main .gig-snapshot-heading h2,
body.page2-preview main .gig-guide-grid h2,
body.page2-preview main .gig-enquiry-cta h2,
body.page2-preview main .gallery-group-heading h2 {
  font-size: var(--v2-primary-title-size) !important;
  line-height: var(--v2-primary-title-leading) !important;
  text-wrap: balance;
}

/* One consistent gap from explanatory copy to its CTA group.
   Margin only: no section height, grid, image or padding changes. */
body.home-preview-page main .preview-hero-actions,
body.home-preview-page main .hero-actions,
body.page2-preview main .hero-actions,
body.page2-preview main .about-hero-actions,
body.page2-preview main .contact-hero-actions,
body.page2-preview main .reviews-hero-actions,
body.page2-preview main .reviews-final-actions,
body.page2-preview main .gallery-cta-actions {
  margin-top: var(--v2-copy-to-cta-gap) !important;
}

/* Editorial sections where the CTA is a direct child rather than wrapped.
   Exclude package-detail/info-card/toolbars so approved dense layouts do not move. */
body.page2-preview main section:not(.package-detail) :not(.info-card):not(.supplier-toolbar):not(.advice-toolbar) > p:last-of-type + a.btn,
body.home-preview-page main section > p:last-of-type + a.btn,
body.home-preview-page main .preview-listen-copy > .btn {
  margin-top: var(--v2-copy-to-cta-gap) !important;
}

@media (max-width: 900px) {
  body.page2-preview,
  body.home-preview-page {
    --v2-primary-title-size: 42px;
    --v2-primary-title-leading: 1.08;
    --v2-copy-to-cta-gap: 22px;
  }
}

@media (max-width: 600px) {
  body.page2-preview,
  body.home-preview-page {
    --v2-primary-title-size: 34px;
    --v2-primary-title-leading: 1.10;
    --v2-copy-to-cta-gap: 20px;
  }
}

/* === JT source: assets/css/to-hell-or-verona-fixes-150.css === */
/* Build 150 - To Hell or Verona V2 page consistency pass.
   Scope: bring the THOV preview page into the same visual system as the
   finished Home / Weddings / Occasions pages without changing its content,
   navigation, booking behaviour or Irish-band identity. */

/* HERO
   The shared V2 hero system was re-expanding this page to a 61svh minimum,
   overriding the earlier THOV compact-hero work. Keep a strong split hero,
   but let the content determine its height rather than creating dead space. */
@media (min-width: 1001px) {
  body.page2-preview--to-hell-or-verona main > .preview-v2-hero > .preview-v2-hero-split {
    grid-template-columns: minmax(0, 44%) minmax(0, 56%) !important;
    min-height: 0 !important;
    align-items: stretch !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-copy.preview-v2-hero-copy {
    width: 100% !important;
    max-width: none !important;
    padding: clamp(44px, 4.2vw, 66px) var(--v2-pad-x) !important;
    justify-self: stretch !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-copy h1 {
    max-width: 16ch !important;
    font-size: clamp(2.45rem, 3.45vw, 4.2rem) !important;
    line-height: 1.04 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media.preview-v2-hero-media {
    width: 100% !important;
    max-width: none !important;
    min-height: 470px !important;
    height: auto !important;
    justify-self: stretch !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media img {
    min-height: 470px !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 26% !important;
  }
}

/* On stacked layouts retain the complete square-stage composition as far as
   practical rather than forcing the desktop crop into a narrow viewport. */
@media (max-width: 1000px) {
  body.page2-preview--to-hell-or-verona main > .preview-v2-hero > .preview-v2-hero-split {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-copy.preview-v2-hero-copy {
    padding: clamp(42px, 6vw, 66px) var(--v2-pad-x) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media.preview-v2-hero-media {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media img {
    min-height: 0 !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 25% !important;
  }
}

@media (max-width: 620px) {
  body.page2-preview--to-hell-or-verona .thov-hero-media.preview-v2-hero-media {
    aspect-ratio: 1 / 1 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media img {
    object-position: center top !important;
  }
}

/* AT-A-GLANCE DIVIDER
   Treat this as a shallow Home-style information band rather than four cards
   sitting inside another box. */
body.page2-preview--to-hell-or-verona .thov-proof-grid {
  border: 0 !important;
  background: transparent !important;
}

body.page2-preview--to-hell-or-verona .thov-proof-grid > div {
  min-height: 88px !important;
  padding: 16px clamp(16px, 2vw, 28px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(76, 60, 38, .18) !important;
  background: transparent !important;
}

body.page2-preview--to-hell-or-verona .thov-proof-grid > div:last-child {
  border-right: 0 !important;
}

/* LINE-UP
   Keep the three clear choices but remove the boxed-card-inside-a-section look. */
body.page2-preview--to-hell-or-verona .thov-lineup-grid {
  border: 0 !important;
  border-top: 1px solid rgba(76, 60, 38, .18) !important;
  border-bottom: 1px solid rgba(76, 60, 38, .18) !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card {
  min-height: 0 !important;
  padding: clamp(24px, 2.4vw, 34px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(76, 60, 38, .18) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card:last-child {
  border-right: 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card h3 {
  color: var(--v2-ink) !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card p:last-child {
  color: var(--v2-muted-dark) !important;
}

/* WHERE IT WORKS
   Preserve the dark section, but reduce the catalogue-card feeling. */
body.page2-preview--to-hell-or-verona .thov-highlights-grid {
  border: 0 !important;
  border-top: 1px solid rgba(210, 162, 58, .28) !important;
  border-bottom: 1px solid rgba(210, 162, 58, .28) !important;
}

body.page2-preview--to-hell-or-verona .thov-highlights-grid article {
  min-height: 0 !important;
  padding: clamp(22px, 2.2vw, 32px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(210, 162, 58, .22) !important;
  background: transparent !important;
}

body.page2-preview--to-hell-or-verona .thov-highlights-grid article:last-child {
  border-right: 0 !important;
}

/* AUTHENTIC LIVE-PHOTO DIVIDER
   Uses photographs already stored in the JT project; no generated/reworked
   imagery. It is intentionally shallow and is not a section-scroll stop. */
body.page2-preview--to-hell-or-verona .thov-photo-divider {
  padding: 0 !important;
  background: #080807 !important;
  border-top: 1px solid rgba(210, 162, 58, .22) !important;
  border-bottom: 1px solid rgba(210, 162, 58, .22) !important;
}

body.page2-preview--to-hell-or-verona .thov-photo-divider-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-photo-divider figure {
  width: 100% !important;
  margin: 0 !important;
  aspect-ratio: 4 / 3 !important;
  border: 0 !important;
  border-right: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 0 !important;
  background: #0d0c0a !important;
  overflow: hidden !important;
}

body.page2-preview--to-hell-or-verona .thov-photo-divider figure:last-child {
  border-right: 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-photo-divider img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
}

/* The third source is slightly wider than 4:3; keep the performers central. */
body.page2-preview--to-hell-or-verona .thov-photo-divider figure:nth-child(3) img {
  object-position: 52% center !important;
}

/* #YORKSHIREIRISH
   Keep the gold rule but remove the dark inset panel from the cream section. */
body.page2-preview--to-hell-or-verona .thov-personality-note {
  margin-top: 24px !important;
  padding: 8px 0 8px 18px !important;
  border-left: 2px solid #9d7420 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.page2-preview--to-hell-or-verona .thov-personality-note strong {
  color: var(--v2-ink) !important;
}

body.page2-preview--to-hell-or-verona .thov-personality-note span {
  color: var(--v2-muted-dark) !important;
}

/* AVAILABLE FOR
   Use separators rather than six individual outlined boxes. */
body.page2-preview--to-hell-or-verona .thov-booking-grid {
  border: 0 !important;
  border-top: 1px solid rgba(210, 162, 58, .26) !important;
  border-bottom: 1px solid rgba(210, 162, 58, .26) !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-grid > div {
  min-height: 78px !important;
  padding: 16px clamp(16px, 2vw, 26px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(210, 162, 58, .20) !important;
  border-bottom: 1px solid rgba(210, 162, 58, .18) !important;
  background: transparent !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-child(3n) {
  border-right: 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-last-child(-n + 3) {
  border-bottom: 0 !important;
}

/* FINAL CTA
   Match the finished Occasions treatment: an edge-to-edge split rather than a
   bordered box inside a light section. The booking half uses an existing THOV
   photograph under a dark overlay and explicitly owns its text colours. */
body.page2-preview--to-hell-or-verona main > .thov-final-cta {
  padding: 0 !important;
  background: var(--v2-light) !important;
}

body.page2-preview--to-hell-or-verona main > .thov-final-cta > .thov-final-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div {
  min-width: 0 !important;
  min-height: 350px !important;
  padding: clamp(52px, 5vw, 84px) var(--v2-pad-x) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:first-child {
  color: var(--v2-ink) !important;
  background: var(--v2-light) !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:first-child h2 {
  color: var(--v2-ink) !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:first-child p:not(.kicker) {
  color: var(--v2-muted-dark) !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:first-child .kicker,
body.page2-preview--to-hell-or-verona .thov-final-grid > div:first-child a:not(.btn) {
  color: #7f5c17 !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child {
  color: #fff !important;
  background-color: #070706 !important;
  background-image:
    linear-gradient(90deg, rgba(5, 5, 5, .95), rgba(5, 5, 5, .72)),
    url('../img/site-content/to-hell-or-verona/thov-odonegans.webp') !important;
  background-position: center, center !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat, no-repeat !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child h2,
body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child p,
body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child strong {
  color: #fff !important;
}

body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child .kicker,
body.page2-preview--to-hell-or-verona .thov-final-grid > div:last-child a:not(.btn) {
  color: var(--v2-gold-soft) !important;
}

@media (max-width: 1000px) {
  body.page2-preview--to-hell-or-verona .thov-highlights-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-highlights-grid article:nth-child(2n) {
    border-right: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-highlights-grid article:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(210, 162, 58, .18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid > div,
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-child(3n) {
    border-right: 1px solid rgba(210, 162, 58, .20) !important;
    border-bottom: 1px solid rgba(210, 162, 58, .18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-child(2n) {
    border-right: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
  }
}

@media (max-width: 760px) {
  body.page2-preview--to-hell-or-verona .thov-proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-proof-grid > div {
    border-right: 1px solid rgba(76, 60, 38, .18) !important;
    border-bottom: 1px solid rgba(76, 60, 38, .18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-proof-grid > div:nth-child(2n) {
    border-right: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-proof-grid > div:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-grid {
    grid-template-columns: 1fr !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-card {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(76, 60, 38, .18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-card:last-child {
    border-bottom: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-photo-divider-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body.page2-preview--to-hell-or-verona main > .thov-final-cta > .thov-final-grid {
    grid-template-columns: 1fr !important;
  }

  body.page2-preview--to-hell-or-verona .thov-final-grid > div {
    min-height: 0 !important;
    padding: clamp(44px, 9vw, 64px) var(--v2-pad-x) !important;
  }
}

@media (max-width: 520px) {
  body.page2-preview--to-hell-or-verona .thov-highlights-grid,
  body.page2-preview--to-hell-or-verona .thov-booking-grid {
    grid-template-columns: 1fr !important;
  }

  body.page2-preview--to-hell-or-verona .thov-highlights-grid article,
  body.page2-preview--to-hell-or-verona .thov-highlights-grid article:nth-child(2n),
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div,
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-child(2n),
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:nth-child(3n) {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(210, 162, 58, .18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-highlights-grid article:last-child,
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div:last-child {
    border-bottom: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-photo-divider figure {
    aspect-ratio: 3 / 4 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-photo-divider img {
    object-fit: cover !important;
  }
}

/* === JT source: assets/css/to-hell-or-verona-fixes-151.css === */
/* Build 151 - To Hell or Verona V2 corrective layout pass.
   Scope: viewport-fit hero, compact Sound section, image-led full-screen line-up,
   expanded THOV-specific venue context, full-screen #YorkshireIrish story,
   larger image-supported booking categories, and breathing room before footer. */

/* HERO: fit the complete opening within a normal desktop viewport.
   Build 150 still allowed the copy column to dictate a tall grid row and stretch
   the image with it. This pass reduces copy height and gives the image its own
   viewport-aware cap instead of stretching to the row. */
@media (min-width: 1001px) {
  body.page2-preview--to-hell-or-verona main > .preview-v2-hero > .preview-v2-hero-split {
    grid-template-columns: minmax(0, 45%) minmax(0, 55%) !important;
    min-height: 0 !important;
    align-items: center !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-copy.preview-v2-hero-copy {
    align-self: center !important;
    padding: clamp(28px, 3vw, 42px) var(--v2-pad-x) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-copy h1 {
    max-width: 19ch !important;
    margin-bottom: 14px !important;
    font-size: clamp(2.35rem, 3vw, 3.55rem) !important;
    line-height: 1.04 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-lead {
    max-width: 66ch !important;
    margin-bottom: 16px !important;
    font-size: clamp(.96rem, 1vw, 1.04rem) !important;
    line-height: 1.5 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-members {
    margin-bottom: 16px !important;
  }

  body.page2-preview--to-hell-or-verona .thov-members > div {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media.preview-v2-hero-media {
    width: 100% !important;
    min-height: 0 !important;
    height: clamp(390px, calc(100svh - 190px), 540px) !important;
    max-height: 540px !important;
    align-self: center !important;
  }

  body.page2-preview--to-hell-or-verona .thov-hero-media img {
    min-height: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 39% !important;
  }
}

/* THE SOUND: make this a deliberately compact two-column feature, not another
   near-full-screen section. The replacement image is a sharper existing THOV
   photograph rather than the soft full-band frame. */
body.page2-preview--to-hell-or-verona .thov-sound-section {
  padding-top: clamp(42px, 4.5vw, 62px) !important;
  padding-bottom: clamp(42px, 4.5vw, 62px) !important;
}

body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-grid {
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr) !important;
  gap: clamp(32px, 4vw, 58px) !important;
  align-items: center !important;
}

body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-copy {
  max-width: 680px !important;
}

body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media {
  border-radius: 18px !important;
}

body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media img {
  display: block !important;
  width: 100% !important;
  height: clamp(300px, 27vw, 390px) !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center 36% !important;
}

/* LINE-UP: keep the copy/card treatment that worked, but make the section an
   image-led, viewport-sized showcase with one genuine project image per line-up. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona .thov-lineup-section {
    min-height: 100svh !important;
    display: flex !important;
    align-items: center !important;
    padding-top: clamp(54px, 6vh, 78px) !important;
    padding-bottom: clamp(54px, 6vh, 78px) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-section > .container {
    width: min(100% - (2 * var(--v2-pad-x)), var(--v2-max)) !important;
  }
}

body.page2-preview--to-hell-or-verona .thov-lineup-section .thov-section-head {
  margin-bottom: clamp(24px, 3vh, 38px) !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-grid {
  align-items: stretch !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 0 clamp(24px, 2.3vw, 34px) !important;
  overflow: hidden !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-photo {
  width: 100% !important;
  margin: 0 0 24px !important;
  height: clamp(190px, 20vw, 285px) !important;
  overflow: hidden !important;
  background: #10100f !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-photo img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(1) .thov-lineup-photo img {
  object-position: center 38% !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(2) .thov-lineup-photo img {
  object-position: center 58% !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(3) .thov-lineup-photo img {
  object-position: center center !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card > :not(.thov-lineup-photo) {
  margin-left: clamp(24px, 2.4vw, 34px) !important;
  margin-right: clamp(24px, 2.4vw, 34px) !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card .thov-card-icon {
  margin-bottom: 2px !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card .kicker {
  margin-top: 14px !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card h3 {
  font-size: clamp(1.45rem, 1.7vw, 1.9rem) !important;
}

body.page2-preview--to-hell-or-verona .thov-lineup-card p:last-child {
  font-size: 1rem !important;
  line-height: 1.55 !important;
}

/* WHERE IT WORKS: keep the four categories, then add THOV-specific venue and
   location context rather than inheriting general James Taylor venue history. */
body.page2-preview--to-hell-or-verona .thov-highlights-section {
  padding-top: clamp(56px, 6vw, 86px) !important;
  padding-bottom: clamp(56px, 6vw, 86px) !important;
}

body.page2-preview--to-hell-or-verona .thov-highlights-grid h3 {
  font-size: 1.28rem !important;
}

body.page2-preview--to-hell-or-verona .thov-highlights-grid p {
  font-size: .98rem !important;
  line-height: 1.52 !important;
}

body.page2-preview--to-hell-or-verona .thov-road-strip {
  margin-top: clamp(34px, 4vw, 52px) !important;
  padding-top: clamp(28px, 3vw, 38px) !important;
  border-top: 1px solid rgba(210,162,58,.28) !important;
}

body.page2-preview--to-hell-or-verona .thov-road-strip > p:not(.kicker) {
  max-width: 900px !important;
  margin-bottom: 22px !important;
  color: var(--v2-muted-light, #c9c1b0) !important;
  font-size: 1.05rem !important;
  line-height: 1.58 !important;
}

body.page2-preview--to-hell-or-verona .thov-venue-list,
body.page2-preview--to-hell-or-verona .thov-place-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

body.page2-preview--to-hell-or-verona .thov-venue-list {
  margin-bottom: 18px !important;
}

body.page2-preview--to-hell-or-verona .thov-venue-list span,
body.page2-preview--to-hell-or-verona .thov-place-list span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 40px !important;
  padding: 8px 14px !important;
  border: 1px solid rgba(210,162,58,.28) !important;
  border-radius: 999px !important;
  color: #f2eadc !important;
  background: rgba(255,255,255,.025) !important;
  font-size: .92rem !important;
}

body.page2-preview--to-hell-or-verona .thov-place-list span {
  border-color: rgba(255,255,255,.12) !important;
  color: #cfc7b8 !important;
}

/* #YORKSHIREIRISH: this is a major identity section, so give it a full viewport
   and enough copy to explain the phrase properly. Keep the complete photograph
   visible: no cover crop that removes either musician. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona .thov-identity-section {
    min-height: 100svh !important;
    display: flex !important;
    align-items: center !important;
    padding-top: clamp(58px, 6vh, 82px) !important;
    padding-bottom: clamp(58px, 6vh, 82px) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-grid {
    grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr) !important;
    gap: clamp(42px, 5vw, 76px) !important;
    align-items: center !important;
  }
}

body.page2-preview--to-hell-or-verona .thov-identity-media {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 20px !important;
  background: #0a0a09 !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-media img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 72svh !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-copy h2 {
  max-width: 15ch !important;
  font-size: clamp(2.2rem, 3.4vw, 4rem) !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-copy > p:not(.kicker) {
  max-width: 70ch !important;
  font-size: clamp(1rem, 1.15vw, 1.12rem) !important;
  line-height: 1.65 !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin-top: 28px !important;
  border-top: 1px solid rgba(76,60,38,.18) !important;
  border-bottom: 1px solid rgba(76,60,38,.18) !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points > div {
  padding: 18px 18px 18px 0 !important;
  border-right: 1px solid rgba(76,60,38,.18) !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points > div + div {
  padding-left: 18px !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points > div:last-child {
  border-right: 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points strong {
  display: block !important;
  margin-bottom: 5px !important;
  color: var(--v2-ink) !important;
  font-family: Marcellus, Georgia, serif !important;
  font-size: 1.03rem !important;
  font-weight: 400 !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-points span {
  color: var(--v2-muted-dark) !important;
  font-size: .91rem !important;
  line-height: 1.45 !important;
}

body.page2-preview--to-hell-or-verona .thov-identity-actions {
  margin-top: 26px !important;
}

/* AVAILABLE FOR: larger readable copy with small photographic context. */
body.page2-preview--to-hell-or-verona .thov-booking-section {
  padding-top: clamp(58px, 6vw, 86px) !important;
  padding-bottom: clamp(58px, 6vw, 86px) !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-section .thov-section-head {
  margin-bottom: 32px !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-grid > div.thov-booking-item {
  min-height: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 126px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-photo {
  display: block !important;
  width: 126px !important;
  height: 112px !important;
  object-fit: cover !important;
  background: #111 !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-item:nth-child(3) .thov-booking-photo {
  object-position: center 45% !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-copy {
  min-width: 0 !important;
  padding: 18px 20px 18px 0 !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-copy strong {
  display: block !important;
  margin-bottom: 5px !important;
  color: #f3ede0 !important;
  font-size: clamp(1.05rem, 1.2vw, 1.2rem) !important;
  line-height: 1.25 !important;
}

body.page2-preview--to-hell-or-verona .thov-booking-detail {
  display: block !important;
  color: #bfb7a8 !important;
  font-size: .92rem !important;
  line-height: 1.42 !important;
}

/* FINAL CTA: deliberate blank breathing room before the footer. */
body.page2-preview--to-hell-or-verona main > .thov-final-cta {
  padding-bottom: clamp(58px, 7vw, 96px) !important;
}

/* TABLET / MOBILE: do not force viewport-height sections once content stacks. */
@media (max-width: 1000px) {
  body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-grid {
    grid-template-columns: 1fr !important;
  }

  body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media img {
    height: auto !important;
    aspect-ratio: 3 / 2 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-section,
  body.page2-preview--to-hell-or-verona .thov-identity-section {
    min-height: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid > div.thov-booking-item {
    grid-template-columns: 118px minmax(0, 1fr) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-photo {
    width: 118px !important;
    height: 108px !important;
  }
}

@media (max-width: 760px) {
  body.page2-preview--to-hell-or-verona .thov-lineup-photo {
    height: clamp(220px, 64vw, 360px) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-lineup-card > :not(.thov-lineup-photo) {
    margin-left: 22px !important;
    margin-right: 22px !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-points {
    grid-template-columns: 1fr !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-points > div,
  body.page2-preview--to-hell-or-verona .thov-identity-points > div + div {
    padding: 16px 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(76,60,38,.18) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-points > div:last-child {
    border-bottom: 0 !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-grid > div.thov-booking-item {
    grid-template-columns: 104px minmax(0, 1fr) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-photo {
    width: 104px !important;
    height: 100% !important;
    min-height: 102px !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-copy {
    padding: 16px 16px 16px 0 !important;
  }
}

@media (max-width: 520px) {
  body.page2-preview--to-hell-or-verona .thov-booking-grid > div.thov-booking-item {
    grid-template-columns: 94px minmax(0, 1fr) !important;
  }

  body.page2-preview--to-hell-or-verona .thov-booking-photo {
    width: 94px !important;
    min-height: 108px !important;
  }

  body.page2-preview--to-hell-or-verona .thov-venue-list span,
  body.page2-preview--to-hell-or-verona .thov-place-list span {
    font-size: .86rem !important;
  }
}

/* === JT source: assets/css/to-hell-or-verona-fixes-152.css === */
/* Build 152 - THOV V2 visual-QA correction.
   Fixes actual viewport spacing/cropping failures seen in Build 151 and removes
   the duplicated Available for section by folding those event types into Where it works. */

/* HERO — fill the usable first viewport (header is 112px in normal desktop flow)
   and keep both musicians' heads inside the crop. */
@media (min-width: 1001px) {
  body.page2-preview--to-hell-or-verona main > .preview-v2-hero > .preview-v2-hero-split {
    min-height: calc(100svh - 112px) !important;
    height: auto !important;
    align-items: stretch !important;
  }
  body.page2-preview--to-hell-or-verona .thov-hero-copy.preview-v2-hero-copy {
    align-self: stretch !important;
    justify-content: center !important;
    padding: clamp(26px, 3vh, 38px) var(--v2-pad-x) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-hero-media.preview-v2-hero-media {
    align-self: stretch !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
  }
  body.page2-preview--to-hell-or-verona .thov-hero-media img {
    min-height: 0 !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
}

/* The at-a-glance divider should be a genuinely shallow divider, not another
   cream section with large top/bottom gutters. */
body.page2-preview--to-hell-or-verona main > .thov-proof > .thov-proof-grid {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
body.page2-preview--to-hell-or-verona .thov-proof-grid > div {
  min-height: 70px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* THE SOUND — the V2 framework applies vertical padding to the direct .container,
   so override that element (not the section shell). This is intentionally compact. */
body.page2-preview--to-hell-or-verona main > .thov-sound-section > .thov-feature-grid {
  padding: 38px var(--v2-pad-x) !important;
  grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr) !important;
  gap: clamp(34px, 4vw, 64px) !important;
  align-items: center !important;
}
body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-copy h2 {
  margin-bottom: 18px !important;
}
body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-copy p:not(.kicker) {
  margin-bottom: 14px !important;
}
body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media {
  width: 100% !important;
  max-width: 760px !important;
  justify-self: end !important;
  border-radius: 16px !important;
}
body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media img {
  width: 100% !important;
  height: auto !important;
  max-height: 390px !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* CHOOSE THE LINE-UP — one viewport when space allows, without wasting the top
   of the screen. Images are never cover-cropped, so heads remain visible. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona .thov-lineup-section {
    min-height: 0 !important;
  }
  body.page2-preview--to-hell-or-verona main > .thov-lineup-section > .container {
    min-height: 100svh !important;
    padding: 38px var(--v2-pad-x) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
}
body.page2-preview--to-hell-or-verona .thov-lineup-section .thov-section-head {
  margin-bottom: 22px !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-section .thov-section-head h2 {
  margin-bottom: 12px !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-photo {
  height: clamp(190px, 16vw, 245px) !important;
  margin-bottom: 18px !important;
  background: #090909 !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-photo img,
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(1) .thov-lineup-photo img,
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(2) .thov-lineup-photo img,
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(3) .thov-lineup-photo img {
  object-fit: contain !important;
  object-position: center !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-card .kicker {
  margin-top: 10px !important;
  margin-bottom: 6px !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-card p:last-child {
  margin-bottom: 0 !important;
}

/* WHERE IT WORKS — all six event types live here, with the requested small
   photographs. This replaces the duplicate Available for section. */
body.page2-preview--to-hell-or-verona main > .thov-highlights-section > .container {
  padding: 46px var(--v2-pad-x) 50px !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-section .thov-section-head {
  margin-bottom: 24px !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  border-top: 1px solid rgba(210,162,58,.28) !important;
  border-bottom: 1px solid rgba(210,162,58,.28) !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article {
  min-height: 132px !important;
  padding: 16px 20px !important;
  display: grid !important;
  grid-template-columns: 104px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
  border-right: 1px solid rgba(210,162,58,.20) !important;
  border-bottom: 1px solid rgba(210,162,58,.18) !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(3n) {
  border-right: 0 !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-last-child(-n+3) {
  border-bottom: 0 !important;
}
body.page2-preview--to-hell-or-verona .thov-highlight-photo {
  display: block !important;
  width: 104px !important;
  height: 92px !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 8px !important;
  background: #111 !important;
}
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(3) .thov-highlight-photo,
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(5) .thov-highlight-photo,
body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(6) .thov-highlight-photo {
  object-fit: contain !important;
}
body.page2-preview--to-hell-or-verona .thov-highlight-copy h3 {
  margin: 0 0 6px !important;
  color: var(--v2-gold-soft) !important;
  font-size: clamp(1.08rem, 1.25vw, 1.28rem) !important;
}
body.page2-preview--to-hell-or-verona .thov-highlight-copy p {
  margin: 0 !important;
  font-size: .95rem !important;
  line-height: 1.48 !important;
}

/* THOV ON THE ROAD — a separate light band. It explains the actual mapped THOV
   record and links to the performance map, whose red pins identify THOV dates. */
body.page2-preview--to-hell-or-verona main > .thov-road-section {
  background: var(--v2-light) !important;
  color: var(--v2-ink) !important;
}
body.page2-preview--to-hell-or-verona main > .thov-road-section > .thov-road-grid {
  padding: 42px var(--v2-pad-x) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr) !important;
  gap: clamp(38px, 5vw, 78px) !important;
  align-items: center !important;
}
body.page2-preview--to-hell-or-verona .thov-road-copy h2 {
  margin-bottom: 14px !important;
  color: var(--v2-ink) !important;
  font-size: clamp(2rem, 2.8vw, 3.1rem) !important;
}
body.page2-preview--to-hell-or-verona .thov-road-copy > p:not(.kicker) {
  max-width: 930px !important;
  margin-bottom: 12px !important;
  color: var(--v2-muted-dark) !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
}
body.page2-preview--to-hell-or-verona .thov-road-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 18px 0 6px !important;
}
body.page2-preview--to-hell-or-verona .thov-road-tags span {
  padding: 7px 11px !important;
  border: 1px solid rgba(76,60,38,.18) !important;
  border-radius: 999px !important;
  color: #5e5448 !important;
  background: rgba(255,255,255,.35) !important;
  font-size: .86rem !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-card {
  min-height: 250px !important;
  padding: 26px !important;
  border: 1px solid rgba(76,60,38,.18) !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 82% 22%, rgba(190,49,43,.11), transparent 8rem),
    rgba(255,255,255,.38) !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-mark {
  width: 46px !important;
  height: 46px !important;
  margin-bottom: 12px !important;
  color: #b7312d !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-mark svg {
  width: 100% !important;
  height: 100% !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-card > strong {
  display: block !important;
  margin: 2px 0 8px !important;
  color: var(--v2-ink) !important;
  font: 400 clamp(1.7rem, 2vw, 2.15rem)/1.1 Marcellus, Georgia, serif !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-card > p:not(.kicker) {
  margin: 0 0 15px !important;
  color: var(--v2-muted-dark) !important;
  line-height: 1.48 !important;
}
body.page2-preview--to-hell-or-verona .thov-road-map-key {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
  color: #61584d !important;
  font-size: .88rem !important;
}
body.page2-preview--to-hell-or-verona .thov-road-red-pin {
  width: 11px !important;
  height: 11px !important;
  border-radius: 50% !important;
  background: #b7312d !important;
  box-shadow: 0 0 0 3px rgba(183,49,45,.12) !important;
}

/* PHOTO DIVIDER — preserve faces in these existing project photographs. */
body.page2-preview--to-hell-or-verona .thov-photo-divider figure {
  height: clamp(200px, 18vw, 280px) !important;
  aspect-ratio: auto !important;
  background: #080807 !important;
}
body.page2-preview--to-hell-or-verona .thov-photo-divider img,
body.page2-preview--to-hell-or-verona .thov-photo-divider figure:nth-child(3) img {
  object-fit: contain !important;
  object-position: center !important;
}

/* #YORKSHIREIRISH — still a full-screen identity section, but the direct V2
   container padding is reduced so content starts promptly instead of floating
   in a large cream void. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona .thov-identity-section {
    min-height: 0 !important;
  }
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    min-height: 100svh !important;
    padding: 42px var(--v2-pad-x) !important;
    grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr) !important;
    gap: clamp(38px, 4.5vw, 70px) !important;
    align-items: center !important;
  }
}
body.page2-preview--to-hell-or-verona .thov-identity-media img {
  max-height: calc(100svh - 90px) !important;
  object-fit: contain !important;
  object-position: center !important;
}
body.page2-preview--to-hell-or-verona .thov-identity-copy h2 {
  margin-bottom: 18px !important;
}
body.page2-preview--to-hell-or-verona .thov-identity-copy > p:not(.kicker) {
  margin-bottom: 12px !important;
  line-height: 1.56 !important;
}
body.page2-preview--to-hell-or-verona .thov-identity-points {
  margin-top: 20px !important;
}
body.page2-preview--to-hell-or-verona .thov-identity-actions {
  margin-top: 18px !important;
}

/* FINAL CTA — the breathing strip is intentionally short and black, so it reads
   as separation before the black footer instead of a large empty cream block. */
body.page2-preview--to-hell-or-verona main > .thov-final-cta {
  padding-bottom: 34px !important;
  background: #080807 !important;
}

@media (max-width: 1000px) {
  body.page2-preview--to-hell-or-verona main > .thov-sound-section > .thov-feature-grid {
    padding: 38px var(--v2-pad-x) !important;
    grid-template-columns: 1fr !important;
  }
  body.page2-preview--to-hell-or-verona .thov-sound-section .thov-feature-media {
    justify-self: start !important;
    max-width: 720px !important;
  }
  body.page2-preview--to-hell-or-verona main > .thov-lineup-section > .container,
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    min-height: 0 !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article,
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(3n) {
    border-right: 1px solid rgba(210,162,58,.20) !important;
    border-bottom: 1px solid rgba(210,162,58,.18) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(2n) {
    border-right: 0 !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-last-child(-n+2) {
    border-bottom: 0 !important;
  }
  body.page2-preview--to-hell-or-verona main > .thov-road-section > .thov-road-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  body.page2-preview--to-hell-or-verona main > .thov-sound-section > .thov-feature-grid,
  body.page2-preview--to-hell-or-verona main > .thov-highlights-section > .container,
  body.page2-preview--to-hell-or-verona main > .thov-road-section > .thov-road-grid,
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }
  body.page2-preview--to-hell-or-verona .thov-lineup-photo {
    height: clamp(220px, 64vw, 360px) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led {
    grid-template-columns: 1fr !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article,
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(2n),
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-child(3n),
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-last-child(-n+2),
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:nth-last-child(-n+3) {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(210,162,58,.18) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article:last-child {
    border-bottom: 0 !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlights-grid--image-led article {
    grid-template-columns: 96px minmax(0, 1fr) !important;
  }
  body.page2-preview--to-hell-or-verona .thov-highlight-photo {
    width: 96px !important;
    height: 86px !important;
  }
  body.page2-preview--to-hell-or-verona .thov-photo-divider-grid {
    grid-template-columns: 1fr !important;
  }
  body.page2-preview--to-hell-or-verona .thov-photo-divider figure {
    height: auto !important;
    aspect-ratio: 16/10 !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
  }
}

/* Final QA overrides after desktop viewport capture: older Build 151 shell padding
   was still adding space outside the direct V2 containers. Remove it here. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona .thov-sound-section,
  body.page2-preview--to-hell-or-verona .thov-lineup-section,
  body.page2-preview--to-hell-or-verona .thov-highlights-section,
  body.page2-preview--to-hell-or-verona .thov-identity-section {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

@media (min-width: 1001px) {
  body.page2-preview--to-hell-or-verona main > .preview-v2-hero > .preview-v2-hero-split {
    height: calc(100svh - 112px) !important;
    min-height: calc(100svh - 112px) !important;
    max-height: calc(100svh - 112px) !important;
  }
}

/* Fill the wide duo/full-band frames while preserving the top of each source;
   only the portrait three-piece image needs contain bars. */
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(1) .thov-lineup-photo img,
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(3) .thov-lineup-photo img {
  object-fit: cover !important;
  object-position: center top !important;
}
body.page2-preview--to-hell-or-verona .thov-lineup-card:nth-child(2) .thov-lineup-photo img {
  object-fit: contain !important;
  object-position: center !important;
}

/* Keep #YorkshireIrish full-height but begin the content near the top rather than
   centring a tall copy block inside even more cream space. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    align-items: start !important;
  }
  body.page2-preview--to-hell-or-verona .thov-identity-copy h2 {
    max-width: 22ch !important;
    font-size: clamp(2.35rem, 2.65vw, 3rem) !important;
    line-height: 1.06 !important;
  }
  body.page2-preview--to-hell-or-verona .thov-identity-copy > p:not(.kicker) {
    font-size: clamp(1rem, 1vw, 1.05rem) !important;
    line-height: 1.5 !important;
  }
  body.page2-preview--to-hell-or-verona .thov-identity-points > div,
  body.page2-preview--to-hell-or-verona .thov-identity-points > div + div {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
}

/* On normal desktop-height displays the #YorkshireIrish panel is exactly one
   viewport tall. The copy already fits inside this height; capping the direct
   grid prevents its own padding from creating an extra cream strip. */
@media (min-width: 901px) and (min-height: 760px) {
  body.page2-preview--to-hell-or-verona .thov-identity-section,
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    box-sizing: border-box !important;
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
  }
}

/* === JT source: assets/css/to-hell-or-verona-fixes-153.css === */
/* Build 153 - THOV V2 YorkshireIrish image height alignment.
   Extends the left-hand image downward so it finishes level with the full copy block on the right,
   removing the blank space beneath the photograph on desktop. */

@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    align-items: stretch !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-media {
    align-self: stretch !important;
    display: flex !important;
    height: auto !important;
    min-height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 18px !important;
    background: transparent !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-media img {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-copy {
    align-self: start !important;
  }
}

/* === JT source: assets/css/v2-image-captions-163.css === */
/* Build 163 — shared V2 image-caption treatment.
   The Weddings V2 hero caption is the single visual reference. */

body.page2-preview figure {
  position: relative;
}

body.page2-preview figure > figcaption {
  position: absolute !important;
  left: 18px !important;
  right: auto !important;
  top: auto !important;
  bottom: 14px !important;
  z-index: 5 !important;
  display: block !important;
  width: auto !important;
  max-width: calc(100% - 36px) !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-top: 1px solid rgba(210,162,58,.22) !important;
  border-left: 2px solid var(--v2-gold, #d2a23a) !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.68) !important;
  color: #f7f1e7 !important;
  box-shadow: none !important;
  font-family: Lato, Arial, sans-serif !important;
  font-size: .8rem !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-transform: none !important;
}

body.page2-preview figure > figcaption strong {
  display: inline !important;
  margin: 0 .35em 0 0 !important;
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: inherit !important;
  font-weight: 700 !important;
  line-height: inherit !important;
}

/* === JT source: assets/css/public-polish-258.css === */
/* Build 255 — public navigation + promoted V2 page consistency.
   Loaded after all legacy/V2 page styles so page-specific layouts win. */

/* ---------- Main navigation ---------- */
.site-header .header-inner {
  width: calc(100% - 56px) !important;
  max-width: none !important;
  min-height: 108px !important;
  margin-inline: auto !important;
}
@media (min-width: 1321px) {
  .site-header .header-inner {
    grid-template-columns: 250px minmax(0,1fr) !important;
    gap: clamp(28px, 2.5vw, 54px) !important;
  }
  .site-header .logo-link { width: 250px !important; }
  .site-header .nav-toggle { display: none !important; }
  .site-header .main-nav {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(8px, .72vw, 15px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    white-space: nowrap !important;
  }
  .site-header .main-nav > a,
  .site-header .main-nav > .nav-dropdown > summary {
    font-size: clamp(.72rem, .66vw, .87rem) !important;
    letter-spacing: .045em !important;
    font-weight: 800 !important;
  }
  .site-header .main-nav > .nav-availability {
    padding: 10px 13px !important;
  }
}
@media (min-width: 1321px) and (max-width: 1500px) {
  .site-header .header-inner { grid-template-columns: 220px minmax(0,1fr) !important; gap: 24px !important; }
  .site-header .logo-link { width: 220px !important; }
  .site-header .main-nav { gap: 8px !important; }
  .site-header .main-nav > a,
  .site-header .main-nav > .nav-dropdown > summary { font-size: .72rem !important; letter-spacing: .025em !important; }
  .site-header .main-nav > .nav-availability { padding: 9px 10px !important; }
}
/* Use the mobile menu before the expanded desktop nav becomes cramped. */
@media (max-width: 1320px) {
  .site-header .header-inner {
    width: calc(100% - 34px) !important;
    min-height: 86px !important;
    grid-template-columns: minmax(180px, 240px) 1fr 46px !important;
    gap: 16px !important;
  }
  .site-header .logo-link { width: min(240px, 100%) !important; }
  .site-header .nav-toggle { display: inline-grid !important; place-items: center !important; justify-self: end !important; }
  .site-header .main-nav {
    position: fixed !important;
    z-index: 130 !important;
    top: 86px !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 14px 24px 26px !important;
    background: rgba(0,0,0,.985) !important;
    border-top: 1px solid rgba(210,162,58,.2) !important;
    border-bottom: 1px solid rgba(210,162,58,.28) !important;
    max-height: calc(100vh - 86px) !important;
    overflow-y: auto !important;
  }
  body.nav-open .site-header .main-nav { display: flex !important; }
  .site-header .main-nav > a,
  .site-header .main-nav > .nav-dropdown > summary {
    padding: 14px 0 !important;
    font-size: .91rem !important;
    letter-spacing: .07em !important;
  }
  .site-header .main-nav > .nav-dropdown { border-bottom: 1px solid rgba(210,162,58,.13) !important; }
  .site-header .main-nav > .nav-dropdown > summary { justify-content: space-between !important; }
  .site-header .main-nav > .nav-dropdown > .nav-dropdown-menu {
    position: static !important;
    transform: none !important;
    width: auto !important;
    padding: 0 0 10px 14px !important;
    border: 0 !important;
    border-left: 1px solid rgba(210,162,58,.3) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .site-header .main-nav > .nav-dropdown > .nav-dropdown-menu a { padding: 10px 12px !important; }
  .site-header .main-nav > .nav-availability { margin-top: 12px !important; text-align: center !important; }
}
@media (max-width: 640px) {
  .site-header .header-inner { width: calc(100% - 24px) !important; grid-template-columns: 190px 1fr 44px !important; }
  .site-header .logo-link { width: 190px !important; }
}
/* ---------- About hero ---------- */
@media (min-width: 901px) {
  body.about-page .about-hero.preview-v2-hero { padding: 0 !important; }
  body.about-page .about-hero-grid.preview-v2-hero-split {
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr) !important;
    gap: clamp(34px, 4vw, 68px) !important;
    align-items: center !important;
    min-height: 0 !important;
    padding: clamp(42px, 4vw, 64px) var(--public-content-gutter, clamp(28px,4vw,72px)) !important;
  }
  body.about-page .about-hero-copy.preview-v2-hero-copy {
    padding: 0 !important;
    background: transparent !important;
    align-self: center !important;
  }
  body.about-page .about-hero-media.preview-v2-hero-media {
    width: 100% !important;
    height: clamp(340px, 30vw, 455px) !important;
    min-height: 0 !important;
    border: 1px solid var(--line) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }
  body.about-page .about-hero-media.preview-v2-hero-media img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: 50% 35% !important;
  }
}
@media (max-width: 900px) {
  body.about-page .about-hero-grid.preview-v2-hero-split { min-height: 0 !important; }
  body.about-page .about-hero-media.preview-v2-hero-media { min-height: 0 !important; height: clamp(320px, 70vw, 460px) !important; }
  body.about-page .about-hero-media.preview-v2-hero-media img { min-height: 0 !important; height: 100% !important; object-position: 50% 34% !important; }
}
/* ---------- Reviews hero/header consistency ---------- */
@media (min-width: 981px) {
  body.reviews-page .reviews-hero.preview-v2-hero { padding: 0 !important; }
  body.reviews-page .reviews-hero-grid.preview-v2-hero-split {
    display: grid !important;
    grid-template-columns: minmax(0, 1.06fr) minmax(410px, .94fr) !important;
    gap: clamp(36px, 4vw, 70px) !important;
    align-items: center !important;
    min-height: 0 !important;
    padding: 46px var(--public-content-gutter, clamp(28px,4vw,72px)) 62px !important;
  }
  body.reviews-page .reviews-hero-copy.preview-v2-hero-copy {
    padding: 0 !important;
    background: transparent !important;
    align-self: center !important;
  }
  body.reviews-page .reviews-hero-media.preview-v2-hero-media {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  body.reviews-page .reviews-hero-image { height: clamp(340px, 29vw, 440px) !important; }
  body.reviews-page .reviews-hero-image img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: 50% 32% !important;
  }
}
@media (max-width: 980px) {
  body.reviews-page .reviews-hero-grid.preview-v2-hero-split { min-height: 0 !important; }
  body.reviews-page .reviews-hero-media.preview-v2-hero-media { min-height: 0 !important; height: auto !important; overflow: visible !important; }
  body.reviews-page .reviews-hero-image { height: clamp(320px, 62vw, 430px) !important; }
  body.reviews-page .reviews-hero-image img { min-height: 0 !important; height: 100% !important; object-position: 50% 32% !important; }
}
/* ---------- Gallery: restore the intentional collage/grids ---------- */
body.gallery-page .gallery-hero.preview-v2-hero { padding: 0 !important; }
body.gallery-page .gallery-hero-grid.preview-v2-hero-split {
  display: grid !important;
  grid-template-columns: minmax(0, .83fr) minmax(520px, 1.17fr) !important;
  gap: clamp(34px, 4vw, 64px) !important;
  align-items: center !important;
  min-height: 0 !important;
  padding: 46px var(--public-content-gutter, clamp(28px,4vw,72px)) 42px !important;
}
body.gallery-page .gallery-hero-copy.preview-v2-hero-copy {
  padding: 0 !important;
  background: transparent !important;
  align-self: center !important;
  justify-content: center !important;
}
body.gallery-page .gallery-hero-collage.preview-v2-hero-panel {
  display: grid !important;
  grid-template-columns: minmax(0,1.9fr) minmax(190px,.95fr) minmax(140px,.72fr) !important;
  grid-template-rows: 1fr 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  height: clamp(350px, 30vw, 430px) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  align-items: stretch !important;
  justify-content: stretch !important;
}
body.gallery-page .gallery-hero-collage.preview-v2-hero-panel button { min-width: 0 !important; min-height: 0 !important; }
body.gallery-page .gallery-showcase > .container {
  width: 100% !important; max-width: none !important; padding-inline: var(--public-content-gutter, clamp(28px,4vw,72px)) !important;
}
@media (max-width: 1080px) {
  body.gallery-page .gallery-hero-grid.preview-v2-hero-split { grid-template-columns: 1fr !important; }
  body.gallery-page .gallery-hero-collage.preview-v2-hero-panel { max-width: 900px !important; height: 390px !important; }
}
@media (max-width: 760px) {
  body.gallery-page .gallery-hero-grid.preview-v2-hero-split { padding: 34px var(--public-content-gutter, 20px) 32px !important; }
  body.gallery-page .gallery-hero-collage.preview-v2-hero-panel {
    height: auto !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    grid-template-rows: auto !important;
  }
}

/* Build 258 — public header, scroll-control and Weddings consistency. */
/* One public header presentation everywhere. Page-specific styles are not allowed to
   move, resize or restyle the shell after this file loads. */
html body .site-header {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  background: #050505 !important;
  border-bottom: 1px solid rgba(210,162,58,.24) !important;
  box-shadow: none !important;
}
html body .site-header .header-inner {
  position: relative !important;
  inset: auto !important;
  box-sizing: border-box !important;
  align-items: center !important;
  padding-block: 0 !important;
  transform: none !important;
}
html body .site-header .logo-link {
  display: flex !important;
  align-items: center !important;
  align-self: center !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
html body .site-header .logo-link img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 88px !important;
  object-fit: contain !important;
  object-position: left center !important;
}
html body .site-header .main-nav {
  margin: 0 !important;
  transform: none !important;
}
html body .site-header .main-nav > a,
html body .site-header .main-nav > .nav-dropdown,
html body .site-header .main-nav > .nav-dropdown > summary {
  align-self: center !important;
}
html body .site-header .main-nav > a,
html body .site-header .main-nav > .nav-dropdown > summary {
  line-height: 1.15 !important;
}
/* Weddings had accumulated page-specific header rules over several V2 passes.
   These selectors deliberately pin it to the same shell as Collaborations. */
html body.weddings-page .site-header,
html body.weddings-page .site-header .header-inner,
html body.weddings-page .site-header .main-nav,
html body.weddings-page .site-header .logo-link {
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
}
/* Wedding package chooser: landscape artwork is supporting navigation, not a hero.
   Keep all five visible at a sensible size on wide screens and never crop the art. */
body.weddings-page #wedding-packages .packages-grid {
  width: 100% !important;
  max-width: 1260px !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(150px, 220px)) !important;
  justify-content: center !important;
  align-items: start !important;
  gap: clamp(12px, 1.25vw, 20px) !important;
}
body.weddings-page #wedding-packages .package-card {
  width: 100% !important;
  max-width: 220px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}
body.weddings-page #wedding-packages .package-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 165px !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: contain !important;
  object-position: center !important;
}
@media (max-width: 1180px) {
  body.weddings-page #wedding-packages .packages-grid {
    grid-template-columns: repeat(3, minmax(170px, 230px)) !important;
  }
  body.weddings-page #wedding-packages .package-card { max-width: 230px !important; }
  body.weddings-page #wedding-packages .package-card img { max-height: 173px !important; }
}
@media (max-width: 760px) {
  body.weddings-page #wedding-packages .packages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 560px !important;
  }
  body.weddings-page #wedding-packages .package-card { max-width: 260px !important; }
  body.weddings-page #wedding-packages .package-card img { max-height: 195px !important; }
}
@media (max-width: 470px) {
  body.weddings-page #wedding-packages .packages-grid { grid-template-columns: 1fr !important; max-width: 290px !important; }
  body.weddings-page #wedding-packages .package-card { max-width: 290px !important; }
  body.weddings-page #wedding-packages .package-card img { max-height: 218px !important; }
}
/* One scroll-arrow system everywhere: exactly the dark/gold circular treatment used
   on Collaborations. Page-specific legacy colours/backgrounds are overridden. */
html body .section-scroll-next.preview-v2-scroll-next {
  box-sizing: border-box !important;
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid #d2a23a !important;
  border-radius: 999px !important;
  background: rgba(8,8,8,.94) !important;
  color: #efc767 !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.34) !important;
  opacity: 1 !important;
  filter: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
html body > .section-scroll-next.preview-v2-scroll-next {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 18px !important;
  z-index: 96 !important;
  transform: translateX(-50%) !important;
}
html body .section-scroll-next.preview-v2-scroll-next svg {
  width: 25px !important;
  height: 25px !important;
  display: block !important;
  overflow: visible !important;
}
html body .section-scroll-next.preview-v2-scroll-next svg path {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
html body .section-scroll-next.preview-v2-scroll-next:hover,
html body .section-scroll-next.preview-v2-scroll-next:focus-visible {
  background: #d2a23a !important;
  border-color: #d2a23a !important;
  color: #080808 !important;
  outline: none !important;
}
html body .section-scroll-next.preview-v2-scroll-next:focus-visible {
  box-shadow: 0 0 0 3px rgba(210,162,58,.22), 0 10px 28px rgba(0,0,0,.34) !important;
}
@media (max-width: 720px) {
  html body .section-scroll-next.preview-v2-scroll-next {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
  }
  html body > .section-scroll-next.preview-v2-scroll-next { bottom: 14px !important; }
  html body .section-scroll-next.preview-v2-scroll-next svg { width: 22px !important; height: 22px !important; }
}

/* Build 262 — promoted original public pages: outstanding consistency fixes.
   This layer deliberately changes presentation only. No retired *2 HTML page is targeted. */

/* Wedding Advice: the shared public header changes from 108px to 86px at 1320px.
   Keep the opening hero + header equal to one complete viewport at that same breakpoint. */
html body.resource-page-advice main > .article-hero,
html body.resource-page-advice main > .article-hero > .article-hero-grid {
  min-height: calc(100vh - 108px) !important;
  min-height: calc(100svh - 108px) !important;
}
@media (max-width: 1320px) {
  html body.resource-page-advice main > .article-hero,
  html body.resource-page-advice main > .article-hero > .article-hero-grid {
    min-height: calc(100vh - 86px) !important;
    min-height: calc(100svh - 86px) !important;
  }
}

/* Wedding Advice: make the reading field / guide rail contrast explicit and use the
   exact warm-ivory colour used by the light V2 sections elsewhere on the site. */
html body.resource-page-advice .article-content-section {
  background: #090909 !important;
}
html body.resource-page-advice .article-side-card {
  background: #f4efe7 !important;
  color: #17130e !important;
  border-color: rgba(127,92,23,.38) !important;
  box-shadow: 0 24px 56px rgba(0,0,0,.34) !important;
}
html body.resource-page-advice .article-side-card h2,
html body.resource-page-advice .article-side-card strong {
  color: #17130e !important;
}
html body.resource-page-advice .article-side-card .article-toc-list a,
html body.resource-page-advice .article-side-card .article-side-links a,
html body.resource-page-advice .article-side-card .article-topic-chip {
  color: #30281e !important;
}
html body.resource-page-advice .article-side-card .article-toc-list a:hover,
html body.resource-page-advice .article-side-card .article-toc-list a:focus-visible,
html body.resource-page-advice .article-side-card .article-side-links a:hover,
html body.resource-page-advice .article-side-card .article-side-links a:focus-visible,
html body.resource-page-advice .article-side-card .article-topic-chip:hover,
html body.resource-page-advice .article-side-card .article-topic-chip:focus-visible {
  color: #7f5c17 !important;
}

/* Weddings: the five 4:3 package chooser images are navigation thumbnails, not hero
   artwork. Keep them substantially smaller while preserving the full source image. */
html body.weddings-page #wedding-packages .packages-grid {
  width: 100% !important;
  max-width: 860px !important;
  grid-template-columns: repeat(5, minmax(118px, 150px)) !important;
  justify-content: center !important;
  gap: clamp(10px, .9vw, 14px) !important;
}
html body.weddings-page #wedding-packages .package-card {
  width: 100% !important;
  max-width: 150px !important;
  min-width: 0 !important;
}
html body.weddings-page #wedding-packages .package-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 113px !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: contain !important;
  object-position: center !important;
}
@media (max-width: 1180px) {
  html body.weddings-page #wedding-packages .packages-grid {
    max-width: 510px !important;
    grid-template-columns: repeat(3, minmax(120px, 150px)) !important;
  }
  html body.weddings-page #wedding-packages .package-card { max-width: 150px !important; }
  html body.weddings-page #wedding-packages .package-card img { max-height: 113px !important; }
}
@media (max-width: 760px) {
  html body.weddings-page #wedding-packages .packages-grid {
    max-width: 350px !important;
    grid-template-columns: repeat(2, minmax(0, 165px)) !important;
  }
  html body.weddings-page #wedding-packages .package-card { max-width: 165px !important; }
  html body.weddings-page #wedding-packages .package-card img { max-height: 124px !important; }
}
@media (max-width: 470px) {
  html body.weddings-page #wedding-packages .packages-grid {
    max-width: 210px !important;
    grid-template-columns: 1fr !important;
  }
  html body.weddings-page #wedding-packages .package-card { max-width: 210px !important; }
  html body.weddings-page #wedding-packages .package-card img { max-height: 158px !important; }
}

/* Weddings: explicitly pin the promoted original page to the shared Collaborations
   header geometry so older Weddings-specific styles cannot alter the top navigation. */
html body.weddings-page .site-header .header-inner {
  width: calc(100% - 56px) !important;
  max-width: none !important;
  min-height: 108px !important;
  margin-inline: auto !important;
  padding-block: 0 !important;
}
@media (min-width: 1321px) {
  html body.weddings-page .site-header .header-inner {
    grid-template-columns: 250px minmax(0,1fr) !important;
    gap: clamp(28px, 2.5vw, 54px) !important;
  }
  html body.weddings-page .site-header .logo-link { width: 250px !important; }
  html body.weddings-page .site-header .nav-toggle { display: none !important; }
  html body.weddings-page .site-header .main-nav {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(8px, .72vw, 15px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    white-space: nowrap !important;
  }
  html body.weddings-page .site-header .main-nav > a,
  html body.weddings-page .site-header .main-nav > .nav-dropdown > summary {
    font-size: clamp(.72rem, .66vw, .87rem) !important;
    letter-spacing: .045em !important;
    font-weight: 800 !important;
  }
  html body.weddings-page .site-header .main-nav > .nav-availability {
    padding: 10px 13px !important;
  }
}
@media (min-width: 1321px) and (max-width: 1500px) {
  html body.weddings-page .site-header .header-inner {
    grid-template-columns: 220px minmax(0,1fr) !important;
    gap: 24px !important;
  }
  html body.weddings-page .site-header .logo-link { width: 220px !important; }
  html body.weddings-page .site-header .main-nav { gap: 8px !important; }
  html body.weddings-page .site-header .main-nav > a,
  html body.weddings-page .site-header .main-nav > .nav-dropdown > summary {
    font-size: .72rem !important;
    letter-spacing: .025em !important;
  }
  html body.weddings-page .site-header .main-nav > .nav-availability { padding: 9px 10px !important; }
}
@media (max-width: 1320px) {
  html body.weddings-page .site-header .header-inner {
    width: calc(100% - 34px) !important;
    min-height: 86px !important;
    grid-template-columns: minmax(180px, 240px) 1fr 46px !important;
    gap: 16px !important;
  }
  html body.weddings-page .site-header .logo-link { width: min(240px, 100%) !important; }
  html body.weddings-page .site-header .nav-toggle {
    display: inline-grid !important;
    place-items: center !important;
    justify-self: end !important;
  }
  html body.weddings-page .site-header .main-nav {
    position: fixed !important;
    z-index: 130 !important;
    top: 86px !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 14px 24px 26px !important;
    background: rgba(0,0,0,.985) !important;
    border-top: 1px solid rgba(210,162,58,.2) !important;
    border-bottom: 1px solid rgba(210,162,58,.28) !important;
    max-height: calc(100vh - 86px) !important;
    overflow-y: auto !important;
    white-space: normal !important;
  }
  html body.weddings-page.nav-open .site-header .main-nav { display: flex !important; }
}
@media (max-width: 640px) {
  html body.weddings-page .site-header .header-inner {
    width: calc(100% - 24px) !important;
    grid-template-columns: 190px 1fr 44px !important;
  }
  html body.weddings-page .site-header .logo-link { width: 190px !important; }
}

/* Scroll controls: use the actual Collaborations visual treatment everywhere.
   Generic V2 arrows remain interactive; Collaborations keeps its own is-visible behaviour. */
html body .section-scroll-next {
  box-sizing: border-box !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(5,5,5,.12) !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;
  pointer-events: auto !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 body > .section-scroll-next {
  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;
  transform: translate(-50%, 0) !important;
}
html body .section-scroll-next 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 body .section-scroll-next svg path {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
html body .section-scroll-next:hover,
html body .section-scroll-next:focus-visible {
  opacity: 1 !important;
  border-color: var(--gold-light, #f4d27c) !important;
  background: rgba(5,5,5,.28) !important;
  color: var(--gold-light, #f4d27c) !important;
  outline: none !important;
}
html body .section-scroll-next:hover svg,
html body .section-scroll-next:focus-visible svg {
  transform: translateY(2px) !important;
}
html body.page2-preview .section-scroll-next.is-at-end {
  opacity: .38 !important;
}
html body.collaborations-page .section-scroll-next {
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translate(-50%, 12px) !important;
}
html body.collaborations-page .section-scroll-next.is-visible {
  opacity: .86 !important;
  pointer-events: auto !important;
  transform: translate(-50%, 0) !important;
}
html body.collaborations-page .section-scroll-next.is-visible:hover,
html body.collaborations-page .section-scroll-next.is-visible:focus-visible {
  opacity: 1 !important;
}
@media (max-width: 640px) {
  html body .section-scroll-next {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  html body > .section-scroll-next {
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
  }
  html body .section-scroll-next svg {
    width: 20px !important;
    height: 20px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html body .section-scroll-next,
  html body .section-scroll-next svg {
    transition: none !important;
  }
}

/* Build 264 — Wedding Advice landing page, built strictly on top of Build 262.
   This is a CSS-only transformation of the existing wedding-advice.php markup:
   full-depth photographic hero, real anchor scroll control, warm-light category rail,
   image-led horizontal advice carousel and deliberate light/dark section contrast. */

/* LANDING HERO — use the same photographic, full-viewport language as the article page. */
html body.resource-page-advice main > .resource-hero {
  position: relative !important;
  min-height: calc(100vh - 108px) !important;
  min-height: calc(100svh - 108px) !important;
  padding: 0 !important;
  display: flex !important;
  align-items: stretch !important;
  overflow: hidden !important;
  isolation: isolate !important;
  border-bottom: 1px solid rgba(210,162,58,.22) !important;
  background:
    linear-gradient(90deg,rgba(4,4,4,.96) 0%,rgba(4,4,4,.87) 28%,rgba(4,4,4,.55) 53%,rgba(4,4,4,.22) 74%,rgba(4,4,4,.12) 100%),
    linear-gradient(180deg,rgba(0,0,0,.14) 0%,rgba(0,0,0,.05) 58%,rgba(0,0,0,.7) 100%),
    url("../img/home-v2/home-hero-ballroom-1536.webp") 64% 45% / cover no-repeat !important;
}
html body.resource-page-advice main > .resource-hero::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg,transparent,rgba(210,162,58,.72),transparent) !important;
  pointer-events: none !important;
}
html body.resource-page-advice main > .resource-hero > .resource-hero-grid {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: none !important;
  min-height: calc(100vh - 108px) !important;
  min-height: calc(100svh - 108px) !important;
  display: flex !important;
  align-items: center !important;
  padding: clamp(70px,8vh,118px) var(--public-content-gutter,clamp(28px,4vw,72px)) clamp(96px,11vh,142px) !important;
}
html body.resource-page-advice main > .resource-hero .resource-hero-copy {
  position: static !important;
  width: min(790px,58vw) !important;
  max-width: 790px !important;
  min-width: 0 !important;
  padding: clamp(22px,3vw,42px) 0 !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.52) !important;
}
html body.resource-page-advice main > .resource-hero .resource-hero-copy .kicker {
  color: #efc767 !important;
}
html body.resource-page-advice main > .resource-hero .resource-hero-copy h1 {
  max-width: 780px !important;
  margin: .28rem 0 1rem !important;
  color: #fff8ea !important;
  font-size: clamp(2.8rem,4.65vw,5.75rem) !important;
  line-height: .99 !important;
  text-wrap: balance !important;
}
html body.resource-page-advice main > .resource-hero .resource-hero-copy > p:not(.kicker) {
  max-width: 710px !important;
  margin: 0 !important;
  color: rgba(255,248,234,.9) !important;
  font-size: clamp(1.06rem,1.3vw,1.24rem) !important;
  line-height: 1.68 !important;
}
/* The old small graphic is no longer the hero visual; the full bleed wedding photograph is. */
html body.resource-page-advice main > .resource-hero .resource-hero-media {
  display: none !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-top: 28px !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a:not([href="#articles"]) {
  border-color: rgba(244,210,124,.72) !important;
  background: rgba(5,5,5,.42) !important;
  color: #f7e6b0 !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.24) !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a:not([href="#articles"]):hover,
html body.resource-page-advice main > .resource-hero .hero-actions > a:not([href="#articles"]):focus-visible {
  background: #d2a23a !important;
  border-color: #d2a23a !important;
  color: #080808 !important;
}

/* Re-use the existing Browse advice anchor as the missing Collaborations-style scroll control. */
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 24px !important;
  z-index: 8 !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  transform: translateX(-50%) !important;
  border: 1px solid rgba(210,162,58,.62) !important;
  border-radius: 50% !important;
  background: rgba(5,5,5,.28) !important;
  color: var(--gold-light,#f4d27c) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.34) !important;
  backdrop-filter: blur(7px) !important;
  -webkit-backdrop-filter: blur(7px) !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  opacity: .88 !important;
  transition: opacity .18s ease,border-color .18s ease,background .18s ease !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 10px !important;
  width: 1.8px !important;
  height: 17px !important;
  border-radius: 2px !important;
  background: currentColor !important;
  transform: translateX(-50%) !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 20px !important;
  width: 9px !important;
  height: 9px !important;
  border-right: 1.8px solid currentColor !important;
  border-bottom: 1.8px solid currentColor !important;
  transform: translateX(-50%) rotate(45deg) !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]:hover,
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]:focus-visible {
  opacity: 1 !important;
  border-color: var(--gold-light,#f4d27c) !important;
  background: rgba(5,5,5,.42) !important;
  color: var(--gold-light,#f4d27c) !important;
  outline: none !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]:focus-visible {
  box-shadow: 0 0 0 3px rgba(210,162,58,.22),0 10px 28px rgba(0,0,0,.34) !important;
}

/* ADVICE LIBRARY — dark editorial field with the warm-light guide rail from article pages. */
html body.resource-page-advice main > #articles.resource-section {
  scroll-margin-top: 108px !important;
  padding: clamp(58px,6.2vw,94px) 0 !important;
  background:
    radial-gradient(circle at 8% 8%,rgba(210,162,58,.05),transparent 26%),
    linear-gradient(180deg,#0c0b09 0%,#080808 100%) !important;
  border-bottom: 1px solid rgba(210,162,58,.17) !important;
}
html body.resource-page-advice main > #articles > .container {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: minmax(285px,350px) minmax(0,1fr) !important;
  grid-template-rows: auto minmax(0,1fr) !important;
  column-gap: clamp(36px,5vw,82px) !important;
  row-gap: 24px !important;
  align-items: start !important;
  padding-left: var(--public-content-gutter,clamp(28px,4vw,72px)) !important;
  padding-right: var(--public-content-gutter,clamp(28px,4vw,72px)) !important;
}
html body.resource-page-advice main > #articles .resource-section-head {
  grid-column: 2 !important;
  grid-row: 1 !important;
  max-width: 880px !important;
  margin: 0 !important;
}
html body.resource-page-advice main > #articles .resource-section-head .kicker {
  color: #efc767 !important;
}
html body.resource-page-advice main > #articles .resource-section-head h2 {
  margin: .15rem 0 .75rem !important;
  color: #fff5e4 !important;
  font-size: clamp(2.2rem,3.35vw,4rem) !important;
  line-height: 1.05 !important;
  text-wrap: balance !important;
}
html body.resource-page-advice main > #articles .resource-section-head p:not(.kicker) {
  max-width: 760px !important;
  color: #cfc6b9 !important;
  font-size: clamp(1rem,1.08vw,1.12rem) !important;
  line-height: 1.72 !important;
}

/* Existing category toolbar becomes the visible light side menu. */
html body.resource-page-advice main > #articles .advice-toolbar {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  position: sticky !important;
  top: 122px !important;
  display: grid !important;
  gap: 0 !important;
  align-content: start !important;
  margin: 0 !important;
  padding: clamp(24px,2.4vw,34px) !important;
  border: 1px solid rgba(178,132,38,.42) !important;
  border-radius: 14px !important;
  background: linear-gradient(155deg,#f5f0e7 0%,#eee5d8 100%) !important;
  color: #17130e !important;
  box-shadow: 0 24px 56px rgba(0,0,0,.3) !important;
}
html body.resource-page-advice main > #articles .advice-toolbar::before {
  content: "Browse Wedding Advice" !important;
  display: block !important;
  margin: 0 0 13px !important;
  color: #18130d !important;
  font-family: Lato,Arial,sans-serif !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn {
  width: 100% !important;
  min-height: 0 !important;
  justify-content: space-between !important;
  padding: 12px 2px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(99,78,47,.14) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2c241c !important;
  text-align: left !important;
  font-size: .78rem !important;
  line-height: 1.35 !important;
  letter-spacing: .035em !important;
  white-space: normal !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn:first-of-type {
  border-top: 1px solid rgba(99,78,47,.14) !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn::after {
  content: "→" !important;
  margin-left: 12px !important;
  color: #a57417 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn:hover,
html body.resource-page-advice main > #articles .advice-toolbar .btn:focus-visible {
  color: #8e6414 !important;
  background: rgba(154,111,26,.055) !important;
  outline: none !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn.btn-primary {
  padding-left: 10px !important;
  padding-right: 10px !important;
  background: rgba(154,111,26,.12) !important;
  color: #744f0c !important;
  font-weight: 900 !important;
}

/* The existing article list becomes an image-led horizontal carousel. */
html body.resource-page-advice main > #articles .advice-grid {
  grid-column: 2 !important;
  grid-row: 2 !important;
  position: relative !important;
  display: grid !important;
  grid-template-columns: none !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(350px,46%) !important;
  gap: 20px !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 0 0 18px !important;
  margin: 0 !important;
  scroll-snap-type: x mandatory !important;
  scroll-padding-inline: 2px !important;
  scroll-behavior: smooth !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(210,162,58,.72) rgba(255,255,255,.055) !important;
  overscroll-behavior-inline: contain !important;
}
html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar {
  height: 7px !important;
}
html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar-track {
  background: rgba(255,255,255,.05) !important;
  border-radius: 999px !important;
}
html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar-thumb {
  background: rgba(210,162,58,.72) !important;
  border-radius: 999px !important;
}
html body.resource-page-advice main > #articles .advice-card {
  position: relative !important;
  min-height: 520px !important;
  padding: 0 0 26px !important;
  overflow: hidden !important;
  scroll-snap-align: start !important;
  border: 1px solid rgba(210,162,58,.27) !important;
  border-radius: 18px !important;
  background: linear-gradient(155deg,rgba(20,17,12,.98),rgba(7,7,7,.99)) !important;
  box-shadow: 0 20px 46px rgba(0,0,0,.28) !important;
  transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease !important;
}
html body.resource-page-advice main > #articles .advice-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(210,162,58,.52) !important;
  box-shadow: 0 26px 58px rgba(0,0,0,.38) !important;
}
html body.resource-page-advice main > #articles .advice-card::before {
  content: "" !important;
  display: block !important;
  width: 100% !important;
  height: clamp(205px,16vw,270px) !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  border-bottom: 1px solid rgba(210,162,58,.24) !important;
}
html body.resource-page-advice main > #articles .advice-card::after {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: clamp(205px,16vw,270px) !important;
  background: linear-gradient(180deg,rgba(0,0,0,.02) 48%,rgba(7,7,7,.5) 100%) !important;
  pointer-events: none !important;
}
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+1)::before { background-image: url("../img/optimized/qa-image-pass-107/site-content/weddings-v2/wedding-ceremony-barn-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+2)::before { background-image: url("../img/optimized/qa-image-pass-107/site-content/weddings-v2/wedding-ceremony-editorial-close-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+3)::before { background-image: url("../img/optimized/qa-image-pass-107/gallery-v3/wedding-barn-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+4)::before { background-image: url("../img/home-v2/home-hero-ballroom-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+5)::before { background-image: url("../img/optimized/qa-image-pass-107/gallery-v3/wedding-church-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+6)::before { background-image: url("../img/optimized/qa3/heroes/wedding-ceremony-church-hero-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+7)::before { background-image: url("../img/optimized/qa-image-pass-107/site-content/weddings-v2/wedding-ceremony-editorial-full-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(8n+8)::before { background-image: url("../img/optimized/qa3/heroes/james-performance-800.webp") !important; }
html body.resource-page-advice main > #articles .advice-card > * {
  position: relative !important;
  z-index: 2 !important;
}
html body.resource-page-advice main > #articles .advice-card > div:first-child {
  margin: 22px 24px 0 !important;
}
html body.resource-page-advice main > #articles .advice-card h2 {
  margin: .55rem 24px .7rem !important;
  color: #fff4df !important;
  font-size: clamp(1.55rem,2vw,2.15rem) !important;
  line-height: 1.14 !important;
  text-wrap: balance !important;
}
html body.resource-page-advice main > #articles .advice-card > p {
  margin: 0 24px !important;
  color: #d2c9bc !important;
  line-height: 1.68 !important;
}
html body.resource-page-advice main > #articles .advice-card .resource-meta {
  margin: 16px 24px 0 !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link {
  margin: auto 24px 0 !important;
  padding-top: 18px !important;
  color: #efc767 !important;
}
html body.resource-page-advice main > #articles .resource-empty {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

/* Chromium's native generated scroll buttons make the CSS-only carousel controllable
   without touching the PHP or any shared JavaScript. Other browsers retain touch/trackpad scroll. */
@supports selector(.advice-grid::scroll-button(right)) {
  html body.resource-page-advice main > #articles .advice-grid {
    padding-bottom: 26px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    width: 42px !important;
    height: 42px !important;
    border: 1px solid rgba(210,162,58,.56) !important;
    border-radius: 50% !important;
    background: rgba(6,6,6,.88) !important;
    color: #f4d27c !important;
    box-shadow: 0 10px 26px rgba(0,0,0,.3) !important;
    font: 700 24px/1 Georgia,serif !important;
    cursor: pointer !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left) { content: "‹" !important; }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) { content: "›" !important; }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):disabled,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):disabled {
    opacity: .28 !important;
    cursor: default !important;
  }
}

/* FINAL CTA — a genuine light section so the page does not become one endless black field. */
html body.resource-page-advice main > .resource-cta.resource-section-alt {
  padding: clamp(58px,6vw,88px) 0 !important;
  background: #f4efe7 !important;
  color: #17130e !important;
  border-top: 1px solid rgba(127,92,23,.26) !important;
  border-bottom: 0 !important;
}
html body.resource-page-advice main > .resource-cta .resource-cta-shell {
  border-color: rgba(127,92,23,.38) !important;
  background: linear-gradient(135deg,#fbf7ef 0%,#eee4d5 100%) !important;
  box-shadow: 0 24px 56px rgba(47,33,12,.13) !important;
}
html body.resource-page-advice main > .resource-cta .kicker { color: #8f6516 !important; }
html body.resource-page-advice main > .resource-cta h2 { color: #17130e !important; }
html body.resource-page-advice main > .resource-cta p { color: #50483e !important; }
html body.resource-page-advice main > .resource-cta .btn:not(.btn-primary) {
  border-color: rgba(99,78,47,.38) !important;
  color: #241e17 !important;
  background: rgba(255,255,255,.38) !important;
}

@media (max-width: 1320px) {
  html body.resource-page-advice main > .resource-hero,
  html body.resource-page-advice main > .resource-hero > .resource-hero-grid {
    min-height: calc(100vh - 86px) !important;
    min-height: calc(100svh - 86px) !important;
  }
  html body.resource-page-advice main > #articles.resource-section { scroll-margin-top: 86px !important; }
}

@media (max-width: 980px) {
  html body.resource-page-advice main > .resource-hero {
    background-position: 60% 48% !important;
  }
  html body.resource-page-advice main > .resource-hero .resource-hero-copy {
    width: min(760px,82vw) !important;
  }
  html body.resource-page-advice main > #articles > .container {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
    row-gap: 24px !important;
  }
  html body.resource-page-advice main > #articles .resource-section-head {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar {
    grid-column: 1 !important;
    grid-row: 2 !important;
    position: static !important;
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    padding: 22px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar::before {
    width: 100% !important;
    margin-bottom: 3px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar .btn {
    width: auto !important;
    padding: 9px 12px !important;
    border: 1px solid rgba(99,78,47,.2) !important;
    border-radius: 999px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar .btn:first-of-type {
    border-top: 1px solid rgba(99,78,47,.2) !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar .btn::after { display: none !important; }
  html body.resource-page-advice main > #articles .advice-grid,
  html body.resource-page-advice main > #articles .resource-empty {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
  html body.resource-page-advice main > #articles .advice-grid {
    grid-auto-columns: minmax(320px,72%) !important;
  }
}

@media (max-width: 640px) {
  html body.resource-page-advice main > .resource-hero {
    background:
      linear-gradient(90deg,rgba(4,4,4,.93) 0%,rgba(4,4,4,.76) 48%,rgba(4,4,4,.44) 100%),
      linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.04) 58%,rgba(0,0,0,.72) 100%),
      url("../img/home-v2/home-hero-ballroom-800.webp") 63% 50% / cover no-repeat !important;
  }
  html body.resource-page-advice main > .resource-hero > .resource-hero-grid {
    padding: 48px 22px 92px !important;
  }
  html body.resource-page-advice main > .resource-hero .resource-hero-copy {
    width: 100% !important;
    max-width: 560px !important;
  }
  html body.resource-page-advice main > .resource-hero .resource-hero-copy h1 {
    font-size: clamp(2.45rem,12vw,4rem) !important;
  }
  html body.resource-page-advice main > .resource-hero .hero-actions > a:not([href="#articles"]) {
    width: 100% !important;
    justify-content: center !important;
  }
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    bottom: 16px !important;
  }
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]::before {
    top: 9px !important;
    height: 16px !important;
  }
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"]::after {
    top: 18px !important;
  }
  html body.resource-page-advice main > #articles > .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar {
    padding: 19px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid {
    grid-auto-columns: minmax(286px,88%) !important;
    gap: 14px !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    min-height: 495px !important;
  }
  html body.resource-page-advice main > #articles .advice-card::before,
  html body.resource-page-advice main > #articles .advice-card::after {
    height: 205px !important;
  }
  html body.resource-page-advice main > #articles .advice-card > div:first-child,
  html body.resource-page-advice main > #articles .advice-card h2,
  html body.resource-page-advice main > #articles .advice-card > p,
  html body.resource-page-advice main > #articles .advice-card .resource-meta,
  html body.resource-page-advice main > #articles .advice-card .text-link {
    margin-left: 20px !important;
    margin-right: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.resource-page-advice main > #articles .advice-grid { scroll-behavior: auto !important; }
  html body.resource-page-advice main > #articles .advice-card { transition: none !important; }
}


/* Build 265 — Wedding Advice landing refinements after live QA */
html body.resource-page-advice,
html body.resource-page-advice main,
html body.resource-page-advice main > #articles,
html body.resource-page-advice main > #articles > .container {
  overflow-x: clip !important;
}

html body.resource-page-advice main > .resource-hero {
  overflow: clip !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions {
  position: static !important;
}
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 20px !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  z-index: 5 !important;
}

html body.resource-page-advice main > #articles > .container {
  grid-template-columns: minmax(280px,360px) minmax(0,1fr) !important;
  column-gap: clamp(24px,2.4vw,38px) !important;
  max-width: min(1760px, calc(100vw - 48px)) !important;
}

html body.resource-page-advice main > #articles .advice-toolbar {
  font-size: 0 !important;
  padding: 28px 34px !important;
}
html body.resource-page-advice main > #articles .advice-toolbar::before {
  font-size: .96rem !important;
  letter-spacing: .12em !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn {
  padding: 16px 18px !important;
  font-size: .99rem !important;
  font-weight: 700 !important;
  letter-spacing: .035em !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn span,
html body.resource-page-advice main > #articles .advice-toolbar .btn {
  line-height: 1.25 !important;
}

html body.resource-page-advice main > #articles .advice-grid {
  display: flex !important;
  align-items: stretch !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: 4px 2px 24px !important;
  margin: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-inline: contain !important;
  scroll-snap-type: x proximity !important;
  scroll-padding-inline: 2px !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  box-sizing: border-box !important;
}
html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
@supports selector(.advice-grid::scroll-button(right)) {
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    content: "" !important;
  }
}

html body.resource-page-advice main > #articles .advice-card {
  flex: 0 0 clamp(320px,31vw,408px) !important;
  width: clamp(320px,31vw,408px) !important;
  min-width: clamp(320px,31vw,408px) !important;
  min-height: 540px !important;
  display: flex !important;
  flex-direction: column !important;
  cursor: pointer !important;
}
html body.resource-page-advice main > #articles .advice-card:focus-within {
  border-color: rgba(210,162,58,.62) !important;
  box-shadow: 0 0 0 1px rgba(210,162,58,.22), 0 26px 58px rgba(0,0,0,.38) !important;
}
html body.resource-page-advice main > #articles .advice-card::before,
html body.resource-page-advice main > #articles .advice-card::after {
  height: clamp(220px,17vw,280px) !important;
}
html body.resource-page-advice main > #articles .advice-card > div:first-child {
  margin-top: 20px !important;
}
html body.resource-page-advice main > #articles .advice-card h2 {
  margin-bottom: .9rem !important;
}
html body.resource-page-advice main > #articles .advice-card > p {
  margin-bottom: 0 !important;
}
html body.resource-page-advice main > #articles .advice-card .resource-meta {
  margin-top: 18px !important;
  pointer-events: none !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link {
  position: absolute !important;
  inset: 0 !important;
  z-index: 4 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  color: transparent !important;
  font-size: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link::after {
  content: "READ ARTICLE →" !important;
  position: absolute !important;
  left: 24px !important;
  right: auto !important;
  bottom: 24px !important;
  text-indent: 0 !important;
  overflow: visible !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  letter-spacing: .045em !important;
  color: #efc767 !important;
  white-space: nowrap !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link:focus-visible {
  outline: none !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link:focus-visible::before {
  content: "" !important;
  position: absolute !important;
  inset: 8px !important;
  border-radius: 14px !important;
  box-shadow: inset 0 0 0 2px rgba(240,205,117,.78) !important;
}

html body.resource-page-advice main > #articles .advice-card:nth-child(10n+1)::before { background-image: url("../img/generated/wedding-advice-265/01-songs-and-requests.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+2)::before { background-image: url("../img/generated/wedding-advice-265/02-supplier-checklist.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+3)::before { background-image: url("../img/generated/wedding-advice-265/03-electric-violin-backing-tracks.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+4)::before { background-image: url("../img/generated/wedding-advice-265/04-behind-the-scenes-setup.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+5)::before { background-image: url("../img/generated/wedding-advice-265/05-yorkshire-venue.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+6)::before { background-image: url("../img/generated/wedding-advice-265/06-live-music-venue-planning.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+7)::before { background-image: url("../img/generated/wedding-advice-265/07-dj-live-musician-both.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+8)::before { background-image: url("../img/generated/wedding-advice-265/08-drinks-reception-live-music.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+9)::before { background-image: url("../img/generated/wedding-advice-265/09-civil-church-celebrant.webp") !important; }
html body.resource-page-advice main > #articles .advice-card:nth-child(10n+10)::before { background-image: url("../img/generated/wedding-advice-265/10-aisle-song-timing.webp") !important; }

@media (max-width: 1180px) {
  html body.resource-page-advice main > #articles > .container {
    grid-template-columns: 320px minmax(0,1fr) !important;
    max-width: min(100vw - 32px, 1600px) !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    flex-basis: clamp(312px,46vw,390px) !important;
    width: clamp(312px,46vw,390px) !important;
    min-width: clamp(312px,46vw,390px) !important;
  }
}

@media (max-width: 980px) {
  html body.resource-page-advice main > #articles > .container {
    max-width: min(100vw - 24px, 1200px) !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar {
    font-size: initial !important;
    padding: 24px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar::before {
    width: 100% !important;
    margin-bottom: 6px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar .btn {
    font-size: .95rem !important;
    padding: 11px 14px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid {
    padding-bottom: 8px !important;
  }
}

@media (max-width: 640px) {
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
    bottom: 18px !important;
  }
  html body.resource-page-advice main > #articles > .container {
    max-width: calc(100vw - 12px) !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar {
    padding: 20px !important;
  }
  html body.resource-page-advice main > #articles .advice-toolbar .btn {
    font-size: .92rem !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    flex-basis: min(86vw, 340px) !important;
    width: min(86vw, 340px) !important;
    min-width: min(86vw, 340px) !important;
    min-height: 510px !important;
  }
  html body.resource-page-advice main > #articles .advice-card::before,
  html body.resource-page-advice main > #articles .advice-card::after {
    height: 205px !important;
  }
}


/* Build 266 — Wedding Advice live QA corrections.
   Corrects the remaining interaction/layout defects without changing page data. */

/* 1. The hero arrow must behave like the site's fixed section control, not as an
   absolutely positioned ornament inside the hero. */
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
  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;
  transform: translateX(-50%) !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  opacity: .86 !important;
}
@media (max-width: 640px) {
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
  }
}
/* Fade the hero-only anchor away once its hero leaves the viewport, so it cannot
   become a stale "jump back up" control further down the page. */
@supports (animation-timeline: view()) {
  html body.resource-page-advice main > .resource-hero {
    view-timeline-name: --wedding-advice-hero !important;
    view-timeline-axis: block !important;
  }
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
    animation-name: wedding-advice-hero-arrow-visibility !important;
    animation-duration: 1ms !important;
    animation-timing-function: linear !important;
    animation-fill-mode: both !important;
    animation-timeline: --wedding-advice-hero !important;
    animation-range: exit 0% exit 42% !important;
  }
  @keyframes wedding-advice-hero-arrow-visibility {
    from { opacity: .86; visibility: visible; pointer-events: auto; }
    to { opacity: 0; visibility: hidden; pointer-events: none; }
  }
}

/* 2. Keep the side menu genuinely interactive and above the scrolling article rail. */
html body.resource-page-advice main > #articles .advice-toolbar {
  z-index: 30 !important;
  isolation: isolate !important;
  overflow: visible !important;
  pointer-events: auto !important;
}
html body.resource-page-advice main > #articles .advice-toolbar .btn {
  position: relative !important;
  z-index: 31 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
html body.resource-page-advice main > #articles .advice-grid {
  z-index: 1 !important;
}

/* 3. Carousel geometry: the rail owns its own overflow; the page never does.
   Snap every movement to a whole card, so no article is left half-cut-off. */
html body.resource-page-advice,
html body.resource-page-advice body,
html body.resource-page-advice main {
  max-width: 100% !important;
  overflow-x: clip !important;
}
html body.resource-page-advice main > #articles > .container {
  min-width: 0 !important;
  max-width: min(1760px, calc(100vw - 48px)) !important;
  box-sizing: border-box !important;
}
html body.resource-page-advice main > #articles .advice-grid {
  position: relative !important;
  display: flex !important;
  align-items: stretch !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 4px 2px 72px !important;
  margin: 0 !important;
  scroll-snap-type: x mandatory !important;
  scroll-padding-inline: 2px !important;
  overscroll-behavior-inline: contain !important;
  scroll-behavior: smooth !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  box-sizing: border-box !important;
}
html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}
html body.resource-page-advice main > #articles .advice-card {
  flex: 0 0 clamp(330px, 31.5%, 400px) !important;
  width: clamp(330px, 31.5%, 400px) !important;
  min-width: clamp(330px, 31.5%, 400px) !important;
  max-width: 400px !important;
  min-height: 560px !important;
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
html body.resource-page-advice main > #articles .advice-card h2,
html body.resource-page-advice main > #articles .advice-card > p,
html body.resource-page-advice main > #articles .advice-card .resource-meta {
  min-width: 0 !important;
  max-width: calc(100% - 48px) !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

/* 4. Bring back visible carousel controls, but anchor them to the actual rail.
   Chrome exposes CSS scroll buttons here; reserve the bottom strip so they never
   float away from the carousel or cover article content. */
@supports selector(.advice-grid::scroll-button(right)) {
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    display: grid !important;
    place-items: center !important;
    position: absolute !important;
    top: auto !important;
    bottom: 12px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 1px solid rgba(244,210,124,.72) !important;
    border-radius: 50% !important;
    background: rgba(5,5,5,.9) !important;
    color: #f4d27c !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.32) !important;
    font: 700 26px/1 Georgia,serif !important;
    cursor: pointer !important;
    z-index: 20 !important;
    opacity: 1 !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left) {
    content: "‹" !important;
    left: calc(50% - 52px) !important;
    right: auto !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    content: "›" !important;
    left: calc(50% + 8px) !important;
    right: auto !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):hover,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):hover,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):focus-visible,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):focus-visible {
    background: #d2a23a !important;
    border-color: #d2a23a !important;
    color: #080808 !important;
    outline: none !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):disabled,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):disabled {
    opacity: .28 !important;
    cursor: default !important;
  }
}

/* Ensure the full-card article link remains clickable without swallowing the side menu. */
html body.resource-page-advice main > #articles .advice-card .text-link {
  z-index: 4 !important;
}

@media (max-width: 1180px) {
  html body.resource-page-advice main > #articles > .container {
    max-width: min(100vw - 32px, 1600px) !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    flex-basis: clamp(320px, 46%, 380px) !important;
    width: clamp(320px, 46%, 380px) !important;
    min-width: clamp(320px, 46%, 380px) !important;
  }
}
@media (max-width: 980px) {
  html body.resource-page-advice main > #articles > .container {
    max-width: calc(100vw - 24px) !important;
  }
  html body.resource-page-advice main > #articles .advice-grid {
    padding-bottom: 70px !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    flex-basis: min(72vw, 360px) !important;
    width: min(72vw, 360px) !important;
    min-width: min(72vw, 360px) !important;
  }
}
@media (max-width: 640px) {
  html body.resource-page-advice main > #articles > .container {
    max-width: calc(100vw - 12px) !important;
  }
  html body.resource-page-advice main > #articles .advice-grid {
    gap: 14px !important;
    padding-bottom: 68px !important;
  }
  html body.resource-page-advice main > #articles .advice-card {
    flex-basis: min(86vw, 340px) !important;
    width: min(86vw, 340px) !important;
    min-width: min(86vw, 340px) !important;
    min-height: 520px !important;
  }
  @supports selector(.advice-grid::scroll-button(right)) {
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
      width: 42px !important;
      height: 42px !important;
      min-width: 42px !important;
      min-height: 42px !important;
      bottom: 10px !important;
    }
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(left) {
      left: calc(50% - 49px) !important;
    }
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
      left: calc(50% + 7px) !important;
    }
  }
}


/* Build 267 — Wedding Advice carousel, sidebar, viewport-scroll and article-guide QA fixes. */

/* Restore the normal document scrollbar. Horizontal containment belongs to the page
   content, not the viewport scrolling mechanism. */
html {
  overflow-x: hidden !important;
  overflow-y: scroll !important;
}
html body.resource-page-advice {
  overflow: visible !important;
  max-width: 100% !important;
}
html body.resource-page-advice main {
  overflow-x: clip !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
html body.resource-page-advice main > #articles,
html body.resource-page-advice main > #articles > .container {
  overflow: visible !important;
}

/* Landing-page hero scroll control: use the same fixed bottom-centre geometry as the
   public home-page control rather than locating it relative to the hero content. */
html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 18px !important;
  z-index: 96 !important;
  transform: translateX(-50%) !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
}
@media (max-width: 640px) {
  html body.resource-page-advice main > .resource-hero .hero-actions > a[href="#articles"] {
    bottom: 14px !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
}

/* Article-page scroll control: resources-hub placed this absolutely inside the hero.
   Override it to the same fixed viewport position used on the home page. */
html body.resource-page-advice main > .article-hero .article-hero-scroll.section-scroll-next {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 18px !important;
  z-index: 96 !important;
  transform: translateX(-50%) !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
}
@media (max-width: 640px) {
  html body.resource-page-advice main > .article-hero .article-hero-scroll.section-scroll-next {
    bottom: 14px !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
}
/* Keep the article-only control from becoming a stale button after the opening hero. */
@supports (animation-timeline: view()) {
  html body.resource-page-advice main > .article-hero {
    view-timeline-name: --wedding-article-hero !important;
    view-timeline-axis: block !important;
  }
  html body.resource-page-advice main > .article-hero .article-hero-scroll.section-scroll-next {
    animation-name: wedding-article-scroll-visibility !important;
    animation-duration: 1ms !important;
    animation-timing-function: linear !important;
    animation-fill-mode: both !important;
    animation-timeline: --wedding-article-hero !important;
    animation-range: exit 0% exit 42% !important;
  }
  @keyframes wedding-article-scroll-visibility {
    from { opacity: .86; visibility: visible; pointer-events: auto; }
    to { opacity: 0; visibility: hidden; pointer-events: none; }
  }
}

/* The warm article guide was visually right but undersized. Increase all reading and
   navigation text without making the box feel oversized. */
html body.resource-page-advice .article-side-card {
  font-size: 1rem !important;
}
html body.resource-page-advice .article-side-section h2 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  letter-spacing: .075em !important;
  margin-bottom: 15px !important;
}
html body.resource-page-advice .article-toc-list a {
  padding: 8px 0 8px 14px !important;
  font-size: .98rem !important;
  line-height: 1.48 !important;
}
html body.resource-page-advice .article-toc-list li.is-subheading a {
  padding-left: 27px !important;
  font-size: .9rem !important;
  line-height: 1.46 !important;
}
html body.resource-page-advice .article-topic-chip {
  min-height: 34px !important;
  padding: 6px 12px !important;
  font-size: .84rem !important;
  line-height: 1.25 !important;
}
html body.resource-page-advice .article-side-links a {
  padding: 14px 0 !important;
  font-size: .98rem !important;
  line-height: 1.4 !important;
}

/* Sidebar hit-area correction. Keep the carousel paint and pointer area strictly
   inside its own grid column so it cannot sit invisibly on top of the category links. */
html body.resource-page-advice main > #articles > .container {
  position: relative !important;
  isolation: isolate !important;
}
html body.resource-page-advice main > #articles .advice-toolbar {
  position: sticky !important;
  top: 122px !important;
  z-index: 20 !important;
  pointer-events: auto !important;
}
html body.resource-page-advice main > #articles .advice-toolbar a.btn {
  position: relative !important;
  z-index: 21 !important;
  display: flex !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
  text-decoration: none !important;
}
html body.resource-page-advice main > #articles .advice-toolbar a.btn::before {
  content: none !important;
}

/* Carousel owns only its own column and scrollport. Clipping here prevents an
   invisible full-card anchor or generated control from stealing clicks from the rail. */
html body.resource-page-advice main > #articles .advice-grid {
  position: relative !important;
  z-index: 1 !important;
  isolation: isolate !important;
  contain: layout style !important;
  clip-path: inset(0 round 18px) !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 4px 2px 70px !important;
  margin: 0 !important;
  scroll-snap-type: x mandatory !important;
  scroll-padding-inline: 2px !important;
  scroll-behavior: smooth !important;
  overscroll-behavior-inline: contain !important;
  anchor-name: --wedding-advice-carousel !important;
  box-sizing: border-box !important;
}
html body.resource-page-advice main > #articles .advice-card {
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
}

/* 266 positioned experimental browser-generated scroll buttons against the wrong
   containing block. Anchor them explicitly to the carousel's own box instead. */
@supports (anchor-name: --wedding-advice-carousel) and selector(.advice-grid::scroll-button(right)) {
  html body.resource-page-advice main > #articles .advice-grid {
    scrollbar-width: none !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    display: grid !important;
    place-items: center !important;
    position: absolute !important;
    position-anchor: --wedding-advice-carousel !important;
    top: calc(anchor(bottom) - 56px) !important;
    bottom: auto !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(244,210,124,.72) !important;
    border-radius: 50% !important;
    background: rgba(5,5,5,.92) !important;
    color: #f4d27c !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.32) !important;
    font: 700 25px/1 Georgia,serif !important;
    cursor: pointer !important;
    z-index: 8 !important;
    opacity: 1 !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left) {
    content: "‹" / "Previous articles" !important;
    right: calc(anchor(center) + 8px) !important;
    left: auto !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
    content: "›" / "Next articles" !important;
    left: calc(anchor(center) + 8px) !important;
    right: auto !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):hover,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):hover,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):focus-visible,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):focus-visible {
    background: #d2a23a !important;
    border-color: #d2a23a !important;
    color: #080808 !important;
    outline: none !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(left):disabled,
  html body.resource-page-advice main > #articles .advice-grid::scroll-button(right):disabled {
    opacity: .3 !important;
    cursor: default !important;
  }
}

/* Fallback for browsers without the CSS-carousel controls: retain a small, contained
   horizontal rail scrollbar rather than removing all indication that the rail scrolls. */
@supports not ((anchor-name: --wedding-advice-carousel) and selector(.advice-grid::scroll-button(right))) {
  html body.resource-page-advice main > #articles .advice-grid {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(210,162,58,.72) rgba(255,255,255,.055) !important;
    padding-bottom: 24px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar {
    display: block !important;
    height: 7px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar-track {
    background: rgba(255,255,255,.05) !important;
    border-radius: 999px !important;
  }
  html body.resource-page-advice main > #articles .advice-grid::-webkit-scrollbar-thumb {
    background: rgba(210,162,58,.72) !important;
    border-radius: 999px !important;
  }
}

/* Full-card links remain inside each card and cannot bleed outside the clipped rail. */
html body.resource-page-advice main > #articles .advice-card {
  position: relative !important;
  overflow: hidden !important;
}
html body.resource-page-advice main > #articles .advice-card .text-link {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
}

@media (max-width: 980px) {
  html body.resource-page-advice main > #articles .advice-toolbar {
    position: static !important;
    top: auto !important;
  }
}
@media (max-width: 640px) {
  html body.resource-page-advice main > #articles .advice-grid {
    padding-bottom: 66px !important;
  }
  @supports (anchor-name: --wedding-advice-carousel) and selector(.advice-grid::scroll-button(right)) {
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(left),
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
      width: 42px !important;
      height: 42px !important;
      min-width: 42px !important;
      min-height: 42px !important;
      top: calc(anchor(bottom) - 53px) !important;
    }
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(left) {
      right: calc(anchor(center) + 7px) !important;
    }
    html body.resource-page-advice main > #articles .advice-grid::scroll-button(right) {
      left: calc(anchor(center) + 7px) !important;
    }
  }
}

/* === JT source: assets/css/public-hero-standard-295.css === */
/* Build 295 — site-wide public hero standard.
   Canonical reference: Recommended Suppliers Build 294.
   The rules below deliberately reproduce that hero's geometry, type scale,
   full-width image treatment, left fade and 102px landing divider. */

:root {
  --jt-landing-divider-height: 102px;
}

body .jt-standard-hero {
  position: relative !important;
  isolation: isolate;
  display: grid !important;
  align-items: center !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #050505 !important;
  color: #f7f1e7 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(210,162,58,.28) !important;
}

body .jt-standard-hero::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(3,3,3,.995) 0%,
      rgba(3,3,3,.985) 17%,
      rgba(3,3,3,.95) 30%,
      rgba(3,3,3,.84) 42%,
      rgba(3,3,3,.58) 54%,
      rgba(3,3,3,.27) 67%,
      rgba(3,3,3,.10) 80%,
      rgba(3,3,3,.04) 100%),
    linear-gradient(180deg,rgba(0,0,0,.13) 0%,rgba(0,0,0,.05) 58%,rgba(0,0,0,.30) 100%);
}

body .jt-standard-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 72% 42%,rgba(210,162,58,.10),transparent 35%);
}

body .jt-standard-hero-inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  position: static !important;
}

body .jt-standard-hero-copy {
  position: relative !important;
  z-index: 2 !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  background: none !important;
  text-shadow: none !important;
}

body .jt-standard-hero-copy .kicker,
body .jt-standard-hero-copy .preview-eyebrow {
  margin: 0 0 10px !important;
  color: #efc767 !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
}

body .jt-standard-hero-copy h1 {
  max-width: 19ch !important;
  margin: 0 0 14px !important;
  color: #f7f1e7 !important;
  font-family: Marcellus, Georgia, serif !important;
  font-size: clamp(2.35rem,3vw,3.55rem) !important;
  font-weight: 400 !important;
  line-height: 1.04 !important;
  letter-spacing: .012em !important;
  text-wrap: balance;
}

body .jt-standard-hero-copy h1 .gold,
body .jt-standard-hero-copy h1 .gold-line,
body .jt-standard-hero-copy h1 > span {
  color: #edcf83 !important;
}

body .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
  max-width: 66ch !important;
  margin: 0 0 10px !important;
  color: rgba(255,255,255,.82) !important;
  font-size: clamp(.96rem,1vw,1.04rem) !important;
  line-height: 1.5 !important;
}
body .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow):last-of-type {
  margin-bottom: 0 !important;
}
body .jt-standard-hero-copy p a {
  color: #efc767 !important;
}

body .jt-standard-hero-copy .hero-actions,
body .jt-standard-hero-copy .preview-hero-actions,
body .jt-standard-hero-copy .reviews-hero-actions,
body .jt-standard-hero-copy .contact-hero-actions,
body .jt-standard-hero-copy .about-hero-actions,
body .jt-standard-hero-copy .occasions-hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  margin-top: 24px !important;
}

body .jt-standard-hero-copy > .btn {
  margin-top: 24px !important;
  align-self: flex-start !important;
}

body .jt-standard-hero .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  padding: 12px 27px !important;
  border: 1px solid #d2a23a !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #e7bf61 !important;
  box-shadow: none !important;
  font-size: clamp(.78rem,.78vw,.88rem) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: .105em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
body .jt-standard-hero .btn.btn-primary {
  border-color: #d3a437 !important;
  background: linear-gradient(135deg,#a86f18 0%,#efc45f 100%) !important;
  color: #080704 !important;
  box-shadow: 0 12px 28px rgba(164,112,26,.18) !important;
}
@media (hover:hover) and (pointer:fine) {
  body .jt-standard-hero .btn:hover,
  body .jt-standard-hero .btn:focus-visible {
    transform: translateY(-2px);
    background: rgba(210,162,58,.10) !important;
  }
  body .jt-standard-hero .btn.btn-primary:hover,
  body .jt-standard-hero .btn.btn-primary:focus-visible {
    background: linear-gradient(135deg,#bb7f1c 0%,#f4cf75 100%) !important;
  }
}

body .jt-standard-hero-media {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #090806 !important;
  box-shadow: none !important;
}
body .jt-standard-hero-media picture,
body .jt-standard-hero-media > img,
body .jt-standard-hero-media > picture > img,
body .jt-standard-hero-media figure,
body .jt-standard-hero-media figure > img {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
}
body .jt-standard-hero-media > img,
body .jt-standard-hero-media > picture > img,
body .jt-standard-hero-media figure > img {
  display: block !important;
  object-fit: cover !important;
  object-position: var(--jt-hero-position,58% 50%) !important;
  filter: saturate(.92) contrast(1.04) brightness(.82) !important;
  transform: scale(1.012) !important;
}
body .jt-standard-hero-media figcaption {
  position: absolute !important;
  z-index: 2 !important;
  right: clamp(18px,2.6vw,44px) !important;
  bottom: 16px !important;
  left: auto !important;
  max-width: min(38vw,520px) !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-left: 2px solid #d2a23a !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.68) !important;
  color: #f7f1e7 !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: .03em !important;
  text-align: left !important;
  text-transform: none !important;
}

/* Page-specific media containers that previously used nested cards/collages. */
body.reviews-page .jt-standard-hero-media .reviews-hero-image {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
body.reviews-page .jt-standard-hero-media .reviews-hero-quotes {
  display: none !important;
}
body.collaborations-page .jt-standard-hero-media .collab-hero-photo-grid {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
body.collaborations-page .jt-standard-hero-media .collab-hero-photo-grid img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  object-fit: cover !important;
  filter: saturate(.92) contrast(1.04) brightness(.82) !important;
}
body.gallery-page .jt-standard-hero-media {
  pointer-events: none !important;
}
body.gallery-page .jt-standard-hero-media .gallery-hero-main {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.gallery-page .jt-standard-hero-media .gallery-hero-main img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: var(--jt-hero-position,58% 45%) !important;
  filter: saturate(.92) contrast(1.04) brightness(.82) !important;
  transform: scale(1.012) !important;
}
body.gallery-page .jt-standard-hero-media .gallery-hero-mini {
  display: none !important;
}

/* Compact supporting hero-only details without changing the standard copy anchor. */
body .jt-standard-hero-copy .thov-members,
body .jt-standard-hero-copy .reviews-chip-row {
  margin-top: 16px !important;
}
body .jt-standard-hero-copy .thov-members {
  gap: 10px !important;
}
body .jt-standard-hero-copy .thov-members > div {
  padding: 8px 10px !important;
  background: rgba(8,8,8,.44) !important;
  border-color: rgba(210,162,58,.24) !important;
}
body .jt-standard-hero-copy .thov-members strong,
body .jt-standard-hero-copy .thov-members span,
body .jt-standard-hero-copy .reviews-chip-row span {
  font-size: .73rem !important;
  line-height: 1.3 !important;
}

/* Image focal points: revised in Build 296 to prioritise the performer's face and
   the strongest part of each source image now that every hero uses the shared
   full-width Suppliers geometry. */
body.home-page { --jt-hero-position: 74% 46%; }
body.weddings-page { --jt-hero-position: 70% 47%; }
body.occasions-page { --jt-hero-position: 72% 34%; }
body.performances-page { --jt-hero-position: 68% 42%; }
body.past-gigs-page { --jt-hero-position: 72% 36%; }
body.performance-map-page { --jt-hero-position: 63% 50%; }
body.reviews-page { --jt-hero-position: 74% 32%; }
body.thov-page { --jt-hero-position: 62% 42%; }
body.about-page { --jt-hero-position: 76% 34%; }
body.contact-page { --jt-hero-position: 78% 34%; }
body.booking-page { --jt-hero-position: 78% 34%; }
body.gallery-page { --jt-hero-position: 66% 42%; }
body.setup-page { --jt-hero-position: 54% 50%; }
body.resource-page-listen { --jt-hero-position: 70% 44%; }
body.resource-page-advice { --jt-hero-position: 70% 44%; }

/* Canonical first divider: exact Build 293/294 Recommended Suppliers treatment. */
body .jt-landing-divider {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #e9e0d3 !important;
  color: #17130e !important;
  border-block: 1px solid rgba(76,60,38,.20) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body .jt-landing-divider-grid {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}
body .jt-landing-divider-item {
  min-width: 0 !important;
  min-height: 100px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
  box-sizing: border-box !important;
  padding: 16px clamp(20px,2.5vw,44px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(76,60,38,.18) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #17130e !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
body .jt-landing-divider-item:last-child {
  border-right: 0 !important;
}
body .jt-landing-divider-item > span:first-child {
  display: block !important;
  margin: 0 0 5px !important;
  color: #8b681f !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  letter-spacing: .15em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
body .jt-landing-divider-item strong {
  display: block !important;
  margin: 0 !important;
  color: #17130e !important;
  font-family: Marcellus, Georgia, serif !important;
  font-size: clamp(1.02rem,1.15vw,1.24rem) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}
body .jt-landing-divider-item small {
  display: block !important;
  margin: 5px 0 0 !important;
  color: #625b52 !important;
  font-size: .78rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}
@media (hover:hover) and (pointer:fine) {
  body a.jt-landing-divider-item:hover,
  body a.jt-landing-divider-item:focus-visible {
    background: rgba(139,104,31,.07) !important;
    outline: none !important;
  }
}

@media (min-width:1001px) {
  body .jt-standard-hero {
    min-height: calc(100svh - 112px - var(--jt-landing-divider-height)) !important;
    height: auto !important;
    max-height: none !important;
  }
  body .jt-standard-hero-inner {
    min-height: calc(100svh - 112px - var(--jt-landing-divider-height)) !important;
    height: auto !important;
    max-height: none !important;
    display: grid !important;
    grid-template-columns: minmax(0,45%) minmax(0,55%) !important;
    align-items: stretch !important;
    padding: 0 !important;
  }
  body .jt-standard-hero-copy {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: clamp(26px,3vh,38px) clamp(28px,5vw,96px) !important;
  }
}

@media (min-width:641px) and (max-width:1000px) {
  body .jt-standard-hero {
    min-height: clamp(540px,75svh,700px) !important;
    height: auto !important;
    max-height: none !important;
  }
  body .jt-standard-hero-inner {
    min-height: inherit !important;
    display: flex !important;
    align-items: center !important;
    padding: 52px clamp(24px,4.5vw,54px) !important;
  }
  body .jt-standard-hero-copy {
    width: min(620px,78vw) !important;
    max-width: 620px !important;
    padding: 0 !important;
  }
  body .jt-standard-hero-copy h1 {
    max-width: 18ch !important;
    font-size: clamp(2.35rem,5.4vw,3.55rem) !important;
  }
  body .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
  body .jt-standard-hero::before {
    background:
      linear-gradient(90deg,rgba(3,3,3,.99) 0%,rgba(3,3,3,.95) 26%,rgba(3,3,3,.78) 48%,rgba(3,3,3,.36) 72%,rgba(3,3,3,.15) 100%),
      linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.32));
  }
}

@media (max-width:980px) {
  body .jt-landing-divider-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  body .jt-landing-divider-item:nth-child(2) {
    border-right: 0 !important;
  }
  body .jt-landing-divider-item:nth-child(-n+2) {
    border-bottom: 1px solid rgba(76,60,38,.18) !important;
  }
}

@media (max-width:640px) {
  body .jt-standard-hero {
    min-height: clamp(570px,82svh,720px) !important;
    height: auto !important;
    max-height: none !important;
    align-items: center !important;
  }
  body .jt-standard-hero-inner {
    min-height: inherit !important;
    display: flex !important;
    align-items: center !important;
    padding: 44px 22px !important;
  }
  body .jt-standard-hero-copy {
    width: 100% !important;
    max-width: 540px !important;
    padding: 0 !important;
  }
  body .jt-standard-hero-copy h1 {
    max-width: 18ch !important;
    font-size: clamp(2.15rem,10vw,3rem) !important;
  }
  body .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
    font-size: .96rem !important;
    line-height: 1.5 !important;
  }
  body .jt-standard-hero-copy .hero-actions,
  body .jt-standard-hero-copy .preview-hero-actions,
  body .jt-standard-hero-copy .reviews-hero-actions,
  body .jt-standard-hero-copy .contact-hero-actions,
  body .jt-standard-hero-copy .about-hero-actions,
  body .jt-standard-hero-copy .occasions-hero-actions {
    gap: 12px !important;
  }
  body .jt-standard-hero .btn {
    min-height: 48px !important;
    padding: 11px 22px !important;
  }
  body .jt-standard-hero::before {
    background:
      linear-gradient(90deg,rgba(3,3,3,.97) 0%,rgba(3,3,3,.91) 38%,rgba(3,3,3,.64) 68%,rgba(3,3,3,.34) 100%),
      linear-gradient(180deg,rgba(3,3,3,.30) 0%,rgba(3,3,3,.18) 36%,rgba(3,3,3,.76) 82%,rgba(3,3,3,.94) 100%);
  }
  body .jt-standard-hero-media figcaption {
    right: 16px !important;
    bottom: 12px !important;
    max-width: calc(100% - 32px) !important;
  }
  body .jt-landing-divider-item {
    min-height: 90px !important;
    padding: 14px 18px !important;
  }
}

/* Final Build 295 parity lock -------------------------------------------------
   These selectors intentionally include #main-content so older page-specific
   hero/divider fixes cannot override the Build 294 Suppliers reference. */
@media (min-width:1001px) {
  html body #main-content > .jt-standard-hero {
    box-sizing: content-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: calc(100svh - 112px - 102px) !important;
    min-height: calc(100svh - 112px - 102px) !important;
    max-height: calc(100svh - 112px - 102px) !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid !important;
    align-items: center !important;
    overflow: hidden !important;
  }

  html body #main-content > .jt-standard-hero > .jt-standard-hero-inner,
  html body #main-content > .jt-standard-hero .jt-standard-hero-inner {
    position: static !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    height: calc(100svh - 112px - 102px) !important;
    min-height: calc(100svh - 112px - 102px) !important;
    max-height: calc(100svh - 112px - 102px) !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0,45%) minmax(0,55%) !important;
    grid-template-rows: minmax(0,1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow: visible !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-copy {
    position: relative !important;
    z-index: 2 !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: clamp(26px,3vh,38px) clamp(28px,5vw,96px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 0 !important;
    overflow: visible !important;
    background: none !important;
    transform: none !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .kicker,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-eyebrow {
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #efc767 !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-copy h1 {
    width: auto !important;
    max-width: 19ch !important;
    min-width: 0 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: #f7f1e7 !important;
    font-family: Marcellus, Georgia, serif !important;
    font-size: clamp(2.35rem,3vw,3.55rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: .012em !important;
    text-align: left !important;
    text-transform: none !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
    width: auto !important;
    max-width: 66ch !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: rgba(255,255,255,.82) !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: clamp(.96rem,1vw,1.04rem) !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-align: left !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow):last-of-type {
    margin-bottom: 0 !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-media {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #090806 !important;
    box-shadow: none !important;
    transform: none !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-media > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > picture,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > picture > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media figure,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media figure > img {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > picture > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media figure > img {
    display: block !important;
    object-fit: cover !important;
    object-position: var(--jt-hero-position,58% 50%) !important;
    filter: saturate(.92) contrast(1.04) brightness(.82) !important;
    transform: scale(1.012) !important;
  }

  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .reviews-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .contact-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .about-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .occasions-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    width: auto !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
  }

  html body #main-content > .jt-standard-hero .btn {
    box-sizing: border-box !important;
    min-width: 0 !important;
    min-height: 50px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 27px !important;
    border: 1px solid #d2a23a !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: #e7bf61 !important;
    box-shadow: none !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: clamp(.78rem,.78vw,.88rem) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: .105em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
  }
  html body #main-content > .jt-standard-hero .btn.btn-primary {
    border-color: #d3a437 !important;
    background: linear-gradient(135deg,#a86f18 0%,#efc45f 100%) !important;
    color: #080704 !important;
    box-shadow: 0 12px 28px rgba(164,112,26,.18) !important;
  }

  /* Lock the landing divider to the same 100px + two 1px borders as Build 294. */
  html body #main-content > .jt-landing-divider {
    box-sizing: content-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden !important;
    border-top: 1px solid rgba(76,60,38,.20) !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(76,60,38,.20) !important;
    border-left: 0 !important;
    border-radius: 0 !important;
    background: #e9e0d3 !important;
    color: #17130e !important;
    box-shadow: none !important;
  }
  html body #main-content > .jt-landing-divider > .jt-landing-divider-grid,
  html body #main-content > .jt-landing-divider .jt-landing-divider-grid {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    grid-template-rows: 100px !important;
    gap: 0 !important;
    align-items: stretch !important;
    overflow: hidden !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item {
    box-sizing: border-box !important;
    width: auto !important;
    min-width: 0 !important;
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    margin: 0 !important;
    padding: 16px clamp(20px,2.5vw,44px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-right: 1px solid rgba(76,60,38,.18) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #17130e !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item:last-child {
    border-right: 0 !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > span:first-child {
    display: block !important;
    width: auto !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
    color: #8b681f !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > strong {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #17130e !important;
    font-family: Marcellus, Georgia, serif !important;
    font-size: clamp(1.02rem,1.15vw,1.24rem) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > small {
    display: block !important;
    width: auto !important;
    margin: 5px 0 0 !important;
    padding: 0 !important;
    color: #625b52 !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .78rem !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
  }

  /* Nested legacy media structures: keep the existing imagery, but make the
     selected hero image(s) occupy the same full-width plane. */
  html body.collaborations-page #main-content > .jt-standard-hero .jt-standard-hero-media .collab-hero-photo-grid {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 !important;
  }
  html body.collaborations-page #main-content > .jt-standard-hero .jt-standard-hero-media .collab-hero-photo-grid img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    filter: saturate(.92) contrast(1.04) brightness(.82) !important;
  }
  html body.reviews-page #main-content > .jt-standard-hero .jt-standard-hero-media .reviews-hero-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body.reviews-page #main-content > .jt-standard-hero .jt-standard-hero-media .reviews-hero-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: var(--jt-hero-position,70% 45%) !important;
    filter: saturate(.92) contrast(1.04) brightness(.82) !important;
    transform: scale(1.012) !important;
  }
  html body.reviews-page #main-content > .jt-standard-hero .jt-standard-hero-media .reviews-hero-quotes {
    display: none !important;
  }
  html body.gallery-page #main-content > .jt-standard-hero .jt-standard-hero-media .gallery-hero-main {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  html body.gallery-page #main-content > .jt-standard-hero .jt-standard-hero-media .gallery-hero-main img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: var(--jt-hero-position,58% 45%) !important;
    filter: saturate(.92) contrast(1.04) brightness(.82) !important;
    transform: scale(1.012) !important;
  }
  html body.gallery-page #main-content > .jt-standard-hero .jt-standard-hero-media .gallery-hero-mini {
    display: none !important;
  }
}

/* Tablet/mobile parity with the same Suppliers reference. */
@media (min-width:641px) and (max-width:1000px) {
  html body #main-content > .jt-standard-hero {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: clamp(540px,75svh,700px) !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    align-items: center !important;
    overflow: hidden !important;
  }
  html body #main-content > .jt-standard-hero > .jt-standard-hero-inner,
  html body #main-content > .jt-standard-hero .jt-standard-hero-inner {
    position: static !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 52px clamp(24px,4.5vw,54px) !important;
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy {
    position: relative !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
    display: block !important;
    width: min(620px,78vw) !important;
    max-width: 620px !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: auto !important;
    transform: none !important;
    background: none !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy h1 {
    width: auto !important;
    max-width: 18ch !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: #f7f1e7 !important;
    font-family: Marcellus, Georgia, serif !important;
    font-size: clamp(2.35rem,5.4vw,3.55rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: .012em !important;
    text-align: left !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .kicker,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-eyebrow {
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #efc767 !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
    max-width: 66ch !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: rgba(255,255,255,.82) !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-align: left !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow):last-of-type { margin-bottom: 0 !important; }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .reviews-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .contact-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .about-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .occasions-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-media {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: calc(100% - 1px) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
  }
}

@media (max-width:640px) {
  html body #main-content > .jt-standard-hero {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: clamp(570px,82svh,720px) !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    align-items: center !important;
    overflow: hidden !important;
  }
  html body #main-content > .jt-standard-hero > .jt-standard-hero-inner,
  html body #main-content > .jt-standard-hero .jt-standard-hero-inner {
    position: static !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 44px 22px !important;
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy {
    position: relative !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 540px !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: auto !important;
    transform: none !important;
    background: none !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy h1 {
    width: auto !important;
    max-width: 18ch !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: #f7f1e7 !important;
    font-family: Marcellus, Georgia, serif !important;
    font-size: clamp(2.15rem,10vw,3rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: .012em !important;
    text-align: left !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .kicker,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-eyebrow {
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #efc767 !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow) {
    max-width: 66ch !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: rgba(255,255,255,.82) !important;
    font-family: Lato, Arial, sans-serif !important;
    font-size: .96rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-align: left !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p:not(.kicker):not(.preview-eyebrow):last-of-type { margin-bottom: 0 !important; }
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .preview-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .reviews-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .contact-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .about-hero-actions,
  html body #main-content > .jt-standard-hero .jt-standard-hero-copy .occasions-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-media {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: calc(100% - 1px) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
  }
  html body #main-content > .jt-standard-hero .btn {
    min-height: 48px !important;
    padding: 11px 22px !important;
  }
}

/* Responsive divider lock: same two-column behaviour and typography as the
   approved Suppliers bar, while allowing extra height only when copy wraps. */
@media (max-width:1000px) {
  html body #main-content > .jt-landing-divider {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden !important;
    border-top: 1px solid rgba(76,60,38,.20) !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(76,60,38,.20) !important;
    border-left: 0 !important;
    border-radius: 0 !important;
    background: #e9e0d3 !important;
    color: #17130e !important;
    box-shadow: none !important;
  }
  html body #main-content > .jt-landing-divider > .jt-landing-divider-grid,
  html body #main-content > .jt-landing-divider .jt-landing-divider-grid {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 !important;
    align-items: stretch !important;
    overflow: visible !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item {
    box-sizing: border-box !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 100px !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 16px clamp(20px,2.5vw,44px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-right: 1px solid rgba(76,60,38,.18) !important;
    border-bottom: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #17130e !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item:nth-child(2n) { border-right: 0 !important; }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item:nth-child(-n+2) { border-bottom: 1px solid rgba(76,60,38,.18) !important; }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > span:first-child {
    display: block !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
    color: #8b681f !important;
    font-family: Lato,Arial,sans-serif !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > strong {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #17130e !important;
    font-family: Marcellus,Georgia,serif !important;
    font-size: clamp(1.02rem,1.15vw,1.24rem) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
  }
  html body #main-content > .jt-landing-divider .jt-landing-divider-item > small {
    display: block !important;
    margin: 5px 0 0 !important;
    padding: 0 !important;
    color: #625b52 !important;
    font-family: Lato,Arial,sans-serif !important;
    font-size: .78rem !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
  }
}
@media (max-width:640px) {
  html body #main-content > .jt-landing-divider .jt-landing-divider-item {
    min-height: 90px !important;
    padding: 14px 18px !important;
  }
}

@media (min-width:1001px) and (max-height:740px) {
  html body.reviews-page #main-content > .jt-standard-hero .reviews-chip-row { margin-top: 8px !important; }
}

/* Final visual parity: one fade layer only, and the existing hero captions keep
   the approved Weddings hero treatment. */
html body #main-content > .jt-standard-hero::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg,
      rgba(3,3,3,.995) 0%,
      rgba(3,3,3,.985) 17%,
      rgba(3,3,3,.95) 30%,
      rgba(3,3,3,.84) 42%,
      rgba(3,3,3,.58) 54%,
      rgba(3,3,3,.27) 67%,
      rgba(3,3,3,.10) 80%,
      rgba(3,3,3,.04) 100%),
    linear-gradient(180deg,rgba(0,0,0,.13) 0%,rgba(0,0,0,.05) 58%,rgba(0,0,0,.30) 100%) !important;
}
html body #main-content > .jt-standard-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  pointer-events: none !important;
  background: radial-gradient(circle at 72% 42%,rgba(210,162,58,.10),transparent 35%) !important;
}
html body #main-content > .jt-standard-hero .jt-standard-hero-media::before,
html body #main-content > .jt-standard-hero .jt-standard-hero-media::after {
  content: none !important;
  display: none !important;
}
html body #main-content > .jt-standard-hero .jt-standard-hero-media figcaption {
  position: absolute !important;
  z-index: 2 !important;
  left: 18px !important;
  right: auto !important;
  bottom: 14px !important;
  max-width: min(44vw,520px) !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-left: 2px solid #d2a23a !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.68) !important;
  color: #f7f1e7 !important;
  font-family: Lato,Arial,sans-serif !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-transform: none !important;
  opacity: 1 !important;
}

@media (min-width:641px) and (max-width:1000px) {
  html body #main-content > .jt-standard-hero .jt-standard-hero-media {
    height: 100% !important;
  }
  html body #main-content > .jt-standard-hero::before {
    background:
      linear-gradient(90deg,rgba(3,3,3,.99) 0%,rgba(3,3,3,.95) 26%,rgba(3,3,3,.78) 48%,rgba(3,3,3,.36) 72%,rgba(3,3,3,.15) 100%),
      linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.32)) !important;
  }
}
@media (max-width:640px) {
  html body #main-content > .jt-standard-hero .jt-standard-hero-media {
    height: 100% !important;
  }
}
@media (max-width:600px) {
  html body #main-content > .jt-standard-hero::before {
    background:
      linear-gradient(90deg,rgba(3,3,3,.97) 0%,rgba(3,3,3,.91) 38%,rgba(3,3,3,.64) 68%,rgba(3,3,3,.34) 100%),
      linear-gradient(180deg,rgba(3,3,3,.30) 0%,rgba(3,3,3,.18) 36%,rgba(3,3,3,.76) 82%,rgba(3,3,3,.94) 100%) !important;
  }
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > picture > img,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media figure > img,
  html body.reviews-page #main-content > .jt-standard-hero .jt-standard-hero-media .reviews-hero-image img,
  html body.gallery-page #main-content > .jt-standard-hero .jt-standard-hero-media .gallery-hero-main img,
  html body.collaborations-page #main-content > .jt-standard-hero .jt-standard-hero-media .collab-hero-photo-grid img {
    filter: saturate(.88) contrast(1.04) brightness(.68) !important;
  }
}

@media (max-width:1000px) {
  html body #main-content > .jt-landing-divider .jt-landing-divider-grid {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

/* Keep captions above the fade while the hero copy remains the top content layer. */
html body #main-content > .jt-standard-hero .jt-standard-hero-media { z-index: auto !important; }
html body #main-content > .jt-standard-hero .jt-standard-hero-copy { z-index: 3 !important; }
html body #main-content > .jt-standard-hero .jt-standard-hero-media figcaption { z-index: 2 !important; }

/* Build 298 — Hero Manager optional subtitle. The rest of the hero geometry
   remains the approved Suppliers/Build 295 standard. */
html body #main-content > .jt-standard-hero .jt-standard-hero-copy > p.jt-hero-subtitle,
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-copy > p.jt-hero-subtitle {
  display: block !important;
  max-width: 54ch !important;
  margin: -2px 0 11px !important;
  color: #efc767 !important;
  font-family: Lato, Arial, sans-serif !important;
  font-size: clamp(1rem,1.08vw,1.12rem) !important;
  font-weight: 800 !important;
  line-height: 1.38 !important;
  letter-spacing: .01em !important;
}

/* Build 328: managed captions must be the SAME caption component as the
   established hero figcaption. Build 327 accidentally gave generated captions
   a second right-aligned variant; remove that divergence completely. */
body .jt-standard-hero-media > .jt-hero-managed-caption {
  position: absolute !important;
  z-index: 2 !important;
  display: block !important;
  left: 18px !important;
  right: auto !important;
  bottom: 14px !important;
  max-width: min(44vw,520px) !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-left: 2px solid #d2a23a !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.68) !important;
  color: #f7f1e7 !important;
  font-family: Lato,Arial,sans-serif !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-transform: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
body .jt-standard-hero-media > .jt-hero-managed-caption > * {
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* Build 329 — Credentials no longer has any caption-specific visual override.
   Its legacy label is normalised to a clean FIGCAPTION by the hero runtime, so
   it inherits the exact same shared caption CSS as every other standard hero. */


/* Build 330 — one hero-caption component, anchored to the RIGHT of the image
   plane on every managed page. This is deliberately the final caption rule in
   the shared stylesheet so older page-specific left/badge/uppercase rules
   cannot win the cascade. */
html body #main-content > .jt-standard-hero .jt-standard-hero-media > figcaption,
html body #main-content > .jt-standard-hero .jt-standard-hero-media > .jt-standard-hero-caption,
html body #main-content > .jt-standard-hero .jt-standard-hero-media > .jt-hero-managed-caption,
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > figcaption,
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > .jt-standard-hero-caption,
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > .jt-hero-managed-caption {
  position: absolute !important;
  z-index: 4 !important;
  display: block !important;
  left: auto !important;
  right: clamp(18px,2.6vw,44px) !important;
  bottom: 16px !important;
  width: auto !important;
  max-width: min(38vw,520px) !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-left: 2px solid #d2a23a !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.68) !important;
  color: #f7f1e7 !important;
  font-family: Lato,Arial,sans-serif !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-transform: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
html body #main-content > .jt-standard-hero .jt-standard-hero-media > [data-jt-hero-caption][hidden],
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > [data-jt-hero-caption][hidden] {
  display: none !important;
}
@media (max-width: 640px) {
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > figcaption,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > .jt-standard-hero-caption,
  html body #main-content > .jt-standard-hero .jt-standard-hero-media > .jt-hero-managed-caption,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > figcaption,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > .jt-standard-hero-caption,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media > .jt-hero-managed-caption {
    right: 14px !important;
    bottom: 12px !important;
    max-width: min(72vw,420px) !important;
    font-size: .74rem !important;
  }
}

/* === JT source: assets/css/public-hero-image-plane-300.css === */
/* Build 300 — site-wide desktop hero image plane.
   Approved from the Build 299 Home prototype. On desktop the hero image occupies
   the right-hand 70% of the hero, leaving a clean dark copy area on the left.
   The fade spans the join so the transition remains smooth. Tablet/mobile retain
   the existing responsive treatment. Hero Manager measures the real media plane,
   so its resizable crop frame automatically uses this 70% desktop aspect ratio. */

@media (min-width: 1001px) {
  html body #main-content > .jt-standard-hero .jt-standard-hero-media,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media {
    inset: 0 0 0 30% !important;
    left: 30% !important;
    right: 0 !important;
    width: 70% !important;
    max-width: 70% !important;
  }

  html body #main-content > .jt-standard-hero::before {
    background:
      linear-gradient(90deg,
        rgba(3,3,3,1) 0%,
        rgba(3,3,3,1) 27%,
        rgba(3,3,3,.97) 31%,
        rgba(3,3,3,.88) 36%,
        rgba(3,3,3,.70) 42%,
        rgba(3,3,3,.46) 49%,
        rgba(3,3,3,.24) 56%,
        rgba(3,3,3,.10) 64%,
        rgba(3,3,3,.04) 72%,
        rgba(3,3,3,.02) 100%),
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.04) 58%,rgba(0,0,0,.28) 100%) !important;
  }

  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background:
      linear-gradient(90deg,
        rgba(3,3,3,1) 0%,
        rgba(3,3,3,1) 27%,
        rgba(3,3,3,.97) 31%,
        rgba(3,3,3,.88) 36%,
        rgba(3,3,3,.70) 42%,
        rgba(3,3,3,.46) 49%,
        rgba(3,3,3,.24) 56%,
        rgba(3,3,3,.10) 64%,
        rgba(3,3,3,.04) 72%,
        rgba(3,3,3,.02) 100%),
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.04) 58%,rgba(0,0,0,.28) 100%) !important;
  }
}
/* Build 305 — Wedding Advice parity fix.
   public-polish-258 still gave this legacy resource hero its own full-bleed
   background image and hid the real media element. That sat underneath the new
   70% hero system, so Wedding Advice could not visually match the shared fade.
   Remove the legacy background and force the managed media plane back on. */
html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero {
  background: #050505 !important;
  background-image: none !important;
}
html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero .resource-hero-media.jt-standard-hero-media {
  display: block !important;
}



/* Build 306 — Wedding Advice uses the same DOM layering as the working heroes.
   Keep its media as a direct hero child so the shared hero fade sits above the
   image and below the copy instead of being trapped behind the old resource grid. */
@media (min-width: 1001px) {
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero > .resource-hero-media.jt-standard-hero-media {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 0 0 30% !important;
    left: 30% !important;
    right: 0 !important;
    width: 70% !important;
    max-width: 70% !important;
    height: 100% !important;
    overflow: hidden !important;
  }
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero > .resource-hero-grid.jt-standard-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    background: transparent !important;
  }
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 !important;
    pointer-events: none !important;
    background:
      linear-gradient(90deg,
        rgba(3,3,3,1) 0%,
        rgba(3,3,3,1) 27%,
        rgba(3,3,3,.97) 31%,
        rgba(3,3,3,.88) 36%,
        rgba(3,3,3,.70) 42%,
        rgba(3,3,3,.46) 49%,
        rgba(3,3,3,.24) 56%,
        rgba(3,3,3,.10) 64%,
        rgba(3,3,3,.04) 72%,
        rgba(3,3,3,.02) 100%),
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.04) 58%,rgba(0,0,0,.28) 100%) !important;
  }
}



/* Build 309 — exact crop first paint.
   Hero Manager's X/Y/zoom values describe the exact draggable source rectangle.
   The public runtime now applies that same proportional crop before revealing the
   proxy image. This avoids both the Build 308 approximate object-fit/transform
   interpretation and the visible load-then-jump that Build 307 suffered from. */
html body #main-content > .jt-standard-hero .jt-standard-hero-media img[data-jt-hero-proxy],
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media img[data-jt-hero-proxy] {
  position: absolute !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  transform: none !important;
  transform-origin: 50% 50% !important;
  opacity: 0 !important;
  transition: none !important;
}
html body #main-content > .jt-standard-hero .jt-standard-hero-media img[data-jt-hero-proxy][data-jt-crop-ready="1"],
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media img[data-jt-hero-proxy][data-jt-crop-ready="1"] {
  opacity: 1 !important;
}


/* Build 311 — lighter portrait-mobile hero fade.
   On phones the image already fills the hero behind the copy, so the previous
   desktop-strength overlay hid too much of the photograph. Keep enough contrast
   behind the left-aligned text, but reveal substantially more of the image.
   Landscape mobile/tablet and desktop are intentionally unchanged. */
@media (max-width: 640px) and (orientation: portrait) {
  html body #main-content > .jt-standard-hero::before {
    background:
      linear-gradient(90deg,
        rgba(3,3,3,.78) 0%,
        rgba(3,3,3,.62) 28%,
        rgba(3,3,3,.38) 52%,
        rgba(3,3,3,.16) 74%,
        rgba(3,3,3,.05) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.06) 0%,
        rgba(0,0,0,.02) 56%,
        rgba(0,0,0,.30) 100%) !important;
  }

  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background:
      linear-gradient(90deg,
        rgba(3,3,3,.78) 0%,
        rgba(3,3,3,.62) 28%,
        rgba(3,3,3,.38) 52%,
        rgba(3,3,3,.16) 74%,
        rgba(3,3,3,.05) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.06) 0%,
        rgba(0,0,0,.02) 56%,
        rgba(0,0,0,.30) 100%) !important;
  }
}

/* Build 328 — Credentials uses the exact same desktop fade as the other
   standard landing heroes. The selector is deliberately more specific than
   the legacy Credentials stylesheet so that older resource-page rules cannot
   replace the shared fade when they are loaded later. */
@media (min-width: 1001px) {
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 !important;
    pointer-events: none !important;
    background:
      linear-gradient(90deg,
        rgba(3,3,3,1) 0%,
        rgba(3,3,3,1) 27%,
        rgba(3,3,3,.97) 31%,
        rgba(3,3,3,.88) 36%,
        rgba(3,3,3,.70) 42%,
        rgba(3,3,3,.46) 49%,
        rgba(3,3,3,.24) 56%,
        rgba(3,3,3,.10) 64%,
        rgba(3,3,3,.04) 72%,
        rgba(3,3,3,.02) 100%),
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.04) 58%,rgba(0,0,0,.28) 100%) !important;
  }

  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero .jt-standard-hero-media {
    inset: 0 0 0 30% !important;
    left: 30% !important;
    right: 0 !important;
    width: 70% !important;
    max-width: 70% !important;
  }
}

/* Build 329 — one desktop hero fade rule for the whole public site.
   The image plane begins at 30vw. Keep the overlay fully black beyond that join,
   then reveal the photograph progressively across a longer gradient. This removes
   the visible vertical image edge and makes the same fade treatment authoritative
   for Home, Weddings, Occasions, Listen, THOV, Collaborations, Gigs, Reviews,
   Gallery, About, Contact, Booking, Wedding Advice, Suppliers, Setup and Credentials. */
@media (min-width: 1001px) {
  html {
    --jt-public-hero-desktop-fade:
      linear-gradient(90deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,1) 34%,
        rgba(0,0,0,.995) 38%,
        rgba(0,0,0,.965) 43%,
        rgba(0,0,0,.87) 49%,
        rgba(0,0,0,.68) 56%,
        rgba(0,0,0,.46) 63%,
        rgba(0,0,0,.27) 70%,
        rgba(0,0,0,.13) 79%,
        rgba(0,0,0,.055) 90%,
        rgba(0,0,0,.02) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.14) 0%,
        rgba(0,0,0,.05) 58%,
        rgba(0,0,0,.30) 100%);
  }

  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before,
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before {
    background: var(--jt-public-hero-desktop-fade) !important;
  }

  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }
}

/* Build 331 — shared hero image vibrancy.
   The source images are unchanged. Keep the strong left fade for copy contrast,
   but stop dimming the whole photograph: restore brightness/saturation and let
   the far-right image plane read much closer to the original image. */
html {
  --jt-public-hero-image-filter: brightness(1.10) saturate(1.12) contrast(1.03);
}
html body #main-content > .jt-standard-hero .jt-standard-hero-media > img,
html body #main-content > .jt-standard-hero .jt-standard-hero-media > picture > img,
html body #main-content > .jt-standard-hero .jt-standard-hero-media figure > img,
html body.reviews-page #main-content > .jt-standard-hero .jt-standard-hero-media .reviews-hero-image img,
html body.gallery-page #main-content > .jt-standard-hero .jt-standard-hero-media .gallery-hero-main img,
html body.collaborations-page #main-content > .jt-standard-hero .jt-standard-hero-media .collab-hero-photo-grid img,
html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-media img {
  filter: var(--jt-public-hero-image-filter) !important;
}

@media (min-width:1001px) {
  html {
    --jt-public-hero-desktop-fade:
      linear-gradient(90deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,1) 34%,
        rgba(0,0,0,.995) 38%,
        rgba(0,0,0,.965) 43%,
        rgba(0,0,0,.87) 49%,
        rgba(0,0,0,.68) 56%,
        rgba(0,0,0,.46) 63%,
        rgba(0,0,0,.27) 70%,
        rgba(0,0,0,.11) 79%,
        rgba(0,0,0,.035) 90%,
        rgba(0,0,0,.008) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.08) 0%,
        rgba(0,0,0,.02) 58%,
        rgba(0,0,0,.18) 100%);
  }
}

@media (min-width:641px) and (max-width:1000px) {
  html body #main-content > .jt-standard-hero::before {
    background:
      linear-gradient(90deg,rgba(3,3,3,.99) 0%,rgba(3,3,3,.94) 26%,rgba(3,3,3,.75) 48%,rgba(3,3,3,.30) 72%,rgba(3,3,3,.06) 100%),
      linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.20)) !important;
  }
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background:
      linear-gradient(90deg,rgba(3,3,3,.99) 0%,rgba(3,3,3,.94) 26%,rgba(3,3,3,.75) 48%,rgba(3,3,3,.30) 72%,rgba(3,3,3,.06) 100%),
      linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.20)) !important;
  }
}

@media (max-width:640px) and (orientation:portrait) {
  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background:
      linear-gradient(90deg,
        rgba(3,3,3,.78) 0%,
        rgba(3,3,3,.62) 28%,
        rgba(3,3,3,.38) 52%,
        rgba(3,3,3,.14) 74%,
        rgba(3,3,3,.03) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.04) 0%,
        rgba(0,0,0,.01) 56%,
        rgba(0,0,0,.20) 100%) !important;
  }
}

/* Build 342 - authoritative desktop fade geometry.
   The photograph is now left clean across the right-hand side of the hero.
   Moving from right to left, the fade does not begin until the 70% point; it
   then tightens quickly and is fully black by the 30% image/copy boundary. */
@media (min-width:1001px) {
  html {
    --jt-public-hero-desktop-fade:
      linear-gradient(90deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,1) 30%,
        rgba(0,0,0,1) 36%,
        rgba(0,0,0,.97) 43%,
        rgba(0,0,0,.86) 49%,
        rgba(0,0,0,.60) 55%,
        rgba(0,0,0,.28) 61%,
        rgba(0,0,0,.08) 66%,
        rgba(0,0,0,.01) 70%,
        rgba(0,0,0,0) 72%,
        rgba(0,0,0,0) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.08) 0%,
        rgba(0,0,0,.02) 58%,
        rgba(0,0,0,.18) 100%);
  }

  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before,
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before,
  html body.resource-page.resource-page-advice #main-content > .article-hero > .article-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }

  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }
}

/* Build 343 - corrected desktop fade timing.
   The visible darkening now starts at exactly 70% of the full hero width and
   completes much more quickly. The image remains clean from 70%-100%, then
   transitions through a compact 20% band and is fully black by 50%, well before
   the 30% media/copy join. This is the authoritative desktop rule for every
   managed hero variant. */
@media (min-width:1001px) {
  html {
    --jt-public-hero-desktop-fade:
      linear-gradient(90deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,1) 50%,
        rgba(0,0,0,.985) 52%,
        rgba(0,0,0,.90) 54%,
        rgba(0,0,0,.72) 56%,
        rgba(0,0,0,.50) 58%,
        rgba(0,0,0,.30) 60%,
        rgba(0,0,0,.15) 62%,
        rgba(0,0,0,.07) 64%,
        rgba(0,0,0,.025) 66%,
        rgba(0,0,0,.008) 68%,
        rgba(0,0,0,0) 70%,
        rgba(0,0,0,0) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.05) 0%,
        rgba(0,0,0,.01) 58%,
        rgba(0,0,0,.14) 100%);
  }

  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before,
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before,
  html body.resource-page.resource-page-advice #main-content > .article-hero > .article-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }

  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }
}

/* Build 344 - 70% of the IMAGE PLANE stays clear.
   Desktop hero media occupies the right-hand 70% of the full hero (30%-100%).
   The previous rule incorrectly treated 70% as a full-hero coordinate, which
   darkened far too much of the photograph. This rule fades only across the
   LEFTMOST 30% of that 70%-wide image plane: full black at the 30% copy/image
   join, fully clear by 51% of the full hero. Therefore the remaining 49% of the
   full hero = exactly 70% of the image plane, untouched by the horizontal fade. */
@media (min-width:1001px) {
  html {
    --jt-public-hero-desktop-fade:
      linear-gradient(90deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,1) 30%,
        rgba(0,0,0,.99) 32%,
        rgba(0,0,0,.90) 34%,
        rgba(0,0,0,.72) 37%,
        rgba(0,0,0,.48) 40%,
        rgba(0,0,0,.27) 43%,
        rgba(0,0,0,.12) 46%,
        rgba(0,0,0,.045) 48%,
        rgba(0,0,0,0) 51%,
        rgba(0,0,0,0) 100%);
  }

  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before,
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before,
  html body.resource-page.resource-page-advice #main-content > .article-hero > .article-hero-shade,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade {
    background: var(--jt-public-hero-desktop-fade) !important;
  }
}

/* Build 427 - authoritative phone/portrait hero fade.
   The desktop hero already fades the managed image into the black copy plane.
   Phones use a full-bleed image, so give the portrait treatment its own visible
   side-and-bottom fade instead of leaving the photograph visually unblended.
   This rule covers standard managed heroes, Recommended Suppliers and Wedding
   Advice articles. It deliberately does not alter desktop/tablet geometry. */
@media (max-width:640px) {
  html {
    --jt-public-hero-mobile-fade:
      linear-gradient(90deg,
        rgba(3,3,3,.94) 0%,
        rgba(3,3,3,.88) 20%,
        rgba(3,3,3,.72) 40%,
        rgba(3,3,3,.48) 60%,
        rgba(3,3,3,.24) 78%,
        rgba(3,3,3,.08) 91%,
        rgba(3,3,3,0) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.12) 0%,
        rgba(0,0,0,.04) 44%,
        rgba(0,0,0,.24) 70%,
        rgba(0,0,0,.68) 100%);
  }

  html body #main-content > .jt-standard-hero::before,
  html body.resource-page-advice #main-content > .resource-hero.jt-standard-hero::before,
  html body.credentials-page #main-content > .jt-credentials-standard-hero.jt-standard-hero::before,
  html body.resource-page-credentials.credentials-page #main-content > .jt-standard-hero.jt-credentials-standard-hero::before,
  html body.resource-page-suppliers #main-content > .supplier-page-hero .supplier-hero-shade,
  html body.resource-page.resource-page-advice #main-content > .article-hero > .article-hero-shade {
    background: var(--jt-public-hero-mobile-fade) !important;
  }
}


/* P31T42 - #YorkshireIrish desktop balance.
   The 4:3 source photograph no longer stretches to the full copy height. A
   smaller bounded media column gives the text more width, reducing wrapping and
   keeping the complete identity composition much more comfortably in view. */
@media (min-width: 901px) {
  body.page2-preview--to-hell-or-verona main > .thov-identity-section > .thov-identity-grid {
    grid-template-columns: minmax(320px, .68fr) minmax(0, 1.32fr) !important;
    gap: clamp(42px, 5vw, 82px) !important;
    align-items: center !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-media {
    width: min(100%, 540px) !important;
    max-width: 540px !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    align-self: center !important;
    justify-self: center !important;
    display: block !important;
    overflow: hidden !important;
  }

  body.page2-preview--to-hell-or-verona .thov-identity-media img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center 32% !important;
  }
}
