/* Homepage composition. Existing tokens, photography, font and interactive controls are reused. */
.homepage { --section-space: 80px; }
.homepage .section { padding: 80px max(32px,calc((100% - 1280px)/2)); }
.homepage .section > * { max-width: 1280px; margin-left: auto; margin-right: auto; }
.homepage .section::before { display: none; }
.homepage .section-green { background: #003b2c; }
.homepage .section-paper { background: var(--cream-light); }
.homepage .section-black { background: #051d16; }
.homepage .section-top { padding: 0; border: 0; margin-bottom: 22px; }
.homepage .section-label,.homepage .section-top .section-label { color: var(--orange); font-size: 11px; letter-spacing: 1.5px; }
.homepage .section-paper .section-label { color: var(--orange-dark); }
.homepage .section-label span { font: inherit; margin-right: 6px; color: inherit; }
.homepage .section-label span::after { content:' /'; }
.homepage .section-note { display: none; }
.homepage h2 { font-size: clamp(38px,3.8vw,58px); line-height: 1.05; letter-spacing: -.6px; }
.homepage .section-heading-row { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 60px; align-items: center; margin-bottom: 30px; }
.homepage .section-heading-row > p { align-self: center; max-width: 400px; font-size: 16px; line-height: 1.55; }
.homepage .section-paper .section-heading-row > p { color: #404b3d; }
.homepage .section:not(.section-paper) .section-heading-row > p { color: #c4d1c2; }
.homepage .button { font-size: 12px; text-transform: none; letter-spacing: 0; min-height: 48px; }
.homepage .site-header { gap: 24px; }
.homepage .nav { gap: clamp(14px,1.6vw,26px); }
.homepage .nav a { font-size: 12px; text-transform: none; letter-spacing: .1px; }
.homepage .header-contact { font-size: 12px; }
.homepage .hero-description { font-size: 17px; line-height: 1.5; max-width: 430px; }
.homepage .hero-actions { gap: 18px; }
.homepage .hero-proof { max-width: 550px; background: #003225c9; border: 0; margin-top: 28px; }
.homepage .hero-proof > div { border: 0; padding: 14px 12px; }
.homepage .hero-proof strong { font-size: 24px; color: var(--orange); }
.homepage .hero-proof span { font-size: 11px; line-height: 1.4; text-transform: none; }
.homepage .value-layout { display: grid; grid-template-columns: 1.1fr .85fr 1fr; gap: 48px; align-items: center; }
.homepage .value-copy .section-lead { font-size: 16px; line-height: 1.55; margin-top: 22px; }
.homepage .value-media { max-width: 300px; margin: 0 auto; transform: rotate(-3deg); }
.homepage .value-media img { width: 100%; max-height: 350px; object-fit: cover; object-position: center 30%; }
.homepage .value-media figcaption { font-size: 10px; }
.homepage .value-points > div { position: relative; padding: 16px 0 16px 52px; border: 0; }
.homepage .value-points > div::before { content: '♪'; position: absolute; left: 0; top: 18px; width: 36px; height: 40px; display: grid; place-items: center; background: var(--orange); color: var(--white); border-radius: 5px; font-size: 25px; }
.homepage .value-points > div:nth-child(2)::before { content: '≋'; }
.homepage .value-points > div:nth-child(3)::before { content: '♬'; }
.homepage .value-points strong { font-size: 24px; color: var(--orange-dark); }
.homepage .value-points span { font-size: 16px; line-height: 1.5; }
.homepage .about-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); align-items: center; gap: 64px; }
.homepage .about-media { margin: 0; transform: rotate(-2deg); }
.homepage .about-media img { width: 100%; height: auto; object-fit: contain; }
.homepage .about-media figcaption { font-size: 11px; }
.homepage .about-copy h2 { font-size: clamp(38px,3.8vw,58px); }
.homepage .about-copy > p { font-size: 16px; line-height: 1.5; margin-top: 20px; }
.homepage .member-roles { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 24px 0 0; gap: 16px 24px; }
.homepage .member-roles li { font-size: 17px; }
.homepage .member-roles li::before { content:'—'; color: var(--orange-dark); margin-right: 10px; }
.homepage .repertoire-filters { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.homepage .repertoire-filter { padding: 10px 18px; min-height: 44px; border: 1px solid #94a89280; border-radius: 24px; color: var(--white); background: none; }
.homepage .repertoire-filter.active { color: var(--ink); background: var(--orange); border-color: var(--orange); }
.homepage .repertoire-filter:hover { border-color: var(--orange); }
.homepage .repertoire-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; border: 0; }
.homepage .repertoire-grid article { min-height: 115px; padding: 22px; border: 0; background: var(--cream-light); border-radius: 3px; }
.homepage .repertoire-grid article > span { color: var(--orange-dark); font-size: 12px; }
.homepage .repertoire-grid article h3 { margin: 10px 0 0; color: var(--ink); font-size: 24px; text-transform: none; line-height: 1.2; }
.homepage [hidden] { display: none !important; }
.homepage .flow-title { margin-top: 28px; font-size: 19px; color: var(--orange); }
.homepage .repertoire .flow-compact { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin-top: 20px; padding: 0; background: none; }
.homepage .repertoire .flow-compact::before,.homepage .repertoire .flow-compact li::after { display: none; }
.homepage .repertoire .flow-compact li { min-height: 0; padding: 16px 0 0; border: 0; border-top: 1px solid #a7baa04d; }
.homepage .repertoire .flow-compact span { font-size: 24px; }
.homepage .repertoire .flow-compact strong { margin-top: 8px; font-size: 22px; text-transform: none; }
.homepage .live-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 20px; align-items: stretch; }
.homepage .live-feature img { width: 100%; height: 340px; min-height: 0; object-fit: cover; }
.homepage .live-feature p { font-size: 11px; }
.homepage .live-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.homepage .live-pair figure { min-width: 0; }
.homepage .live-pair figure:first-child { grid-column: 1 / -1; }
.homepage .live-pair img { width: 100%; height: 145px; object-fit: cover; object-position: center 35%; }
.homepage .live-pair figcaption { padding-top: 5px; font-size: 10px; }
.homepage .gallery-inline { margin-top: 30px; }
.homepage .gallery-inline > h3 { font-size: 23px; text-transform: none; }
.homepage .gallery-tabs { margin: 16px 0; }
.homepage .photo-grid { display: grid; grid-template-columns: 1.15fr .8fr .8fr 1.25fr; gap: 16px; margin-top: 0; }
.homepage .photo-grid .photo { grid-column: auto; grid-row: auto; height: 250px; min-height: 0; transform: none; }
.homepage .photo-grid .photo img { height: 100%; object-fit: cover; object-position: center 30%; }
.homepage .photo-grid .photo span { font-size: 11px; }
.homepage .photo-credit { margin-top: 16px; font-size: 12px; }
.homepage .trust-columns { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; }
.homepage .trust-columns > div { padding: 0; border: 0; }
.homepage .trust-columns span { color: var(--orange-dark); font-size: 19px; }
.homepage .trust-columns strong { margin-top: 8px; font-size: 24px; color: var(--ink); }
.homepage .trust-columns p { margin-top: 8px; color: #41483d; font-size: 16px; line-height: 1.5; }
.homepage .venue-list { margin-top: 36px; }
.homepage .venue-list p { margin-bottom: 12px; font-size: 14px; }
.homepage .venue-list > div { display: flex; flex-wrap: wrap; gap: 12px; }
.homepage .venue-list span { padding: 10px 22px; border: 1px solid #0c2a1d25; font-size: 14px; }
.homepage #reviews { margin-top: 30px; scroll-margin-top: 100px; }
.homepage #reviews > h3 { font-size: 20px; text-transform: none; }
.homepage .trust-quotes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 16px; }
.homepage .trust-quotes blockquote { display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 24px; border: 1px solid #0c2a1d15; background: #ffffff60; box-shadow: none; }
.homepage .trust-quotes blockquote p { font: 16px/1.5 Arial,sans-serif; color: #30392d; text-transform: none; }
.homepage .trust-quotes cite { margin-top: 20px; color: #46523e; font: 13px Arial,sans-serif; text-transform: none; }
.homepage .trust-quotes cite span { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-right: 8px; border-radius: 50%; background: #d9dfcc; color: var(--forest); }
.homepage .final-cta { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.1fr) minmax(0,1fr); gap: 40px; align-items: center; padding-top: 40px; }
.homepage .final-image { min-height: 0; height: 440px; align-self: stretch; }
.homepage .final-image img { height: 100%; object-fit: cover; object-position: 53% center; }
.homepage .final-image span { font-size: 10px; }
.homepage .booking-copy h2 { font-size: clamp(32px,3vw,44px); margin-top: 20px; line-height: 1.08; }
.homepage .booking-copy > p:not(.section-label) { font-size: 16px; line-height: 1.5; }
.homepage .booking-phone { font-size: clamp(21px,2.2vw,30px); }
.homepage .booking-form { width: 100%; margin: 0; padding: 28px; background: var(--deep); color: var(--white); box-shadow: none; }
.homepage .booking-form h3 { font-size: 23px; }
.homepage .booking-form .form-grid { grid-template-columns: 1fr; gap: 14px; }
.homepage .booking-form input,.homepage .booking-form select { min-width: 0; width: 100%; font-size: 16px; background: var(--cream-light); }
.homepage .booking-form .consent input { width: 16px; }
.homepage .booking-form .form-note,.homepage .booking-form label > span,.homepage .booking-form .consent { color: #ccd8c4; }
.homepage .footer { min-height: 90px; padding: 28px max(32px,calc((100% - 1280px)/2)); }
@media(min-width:901px) {
 .homepage .hero { min-height: min(760px,calc(100svh - 84px)); padding: 60px max(32px,calc((100% - 1280px)/2)); }
 .homepage .hero-copy { width: min(47%,580px); min-height: 0; padding: 0; }
 .homepage .hero h1 { font-size: clamp(42px,3.65vw,58px); white-space: normal; line-height: 1.02; }
 .homepage .hero-background img { object-position: 65% center; }
}
@media(max-width:1100px) {
 .homepage .section { padding: 64px 32px; }
 .homepage .site-header { gap: 16px; }
 .homepage .nav { gap: 14px; }
 .homepage .header-contact { padding: 12px; }
 .homepage .value-layout { gap: 28px; }
 .homepage .value-points > div { padding-left: 0; }
 .homepage .value-points > div::before { display: none; }
 .homepage .final-cta { grid-template-columns: 1fr 1fr; }
 .homepage .final-image { display: none; }
}
@media(max-width:900px) {
 .homepage .section { padding: 56px 24px; }
 .homepage .nav { gap: 0; }
 .homepage .section-heading-row { grid-template-columns: 1fr; gap: 20px; }
 .homepage .value-layout { grid-template-columns: 1fr 1fr; }
 .homepage .value-points { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
 .homepage .about-layout { grid-template-columns: 1fr; gap: 36px; }
 .homepage .about-media { max-width: 600px; margin: auto; }
 .homepage .about-media img { max-height: 540px; }
 .homepage .repertoire-grid,.homepage .trust-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .homepage .live-layout { grid-template-columns: 1fr; }
 .homepage .live-feature img { height: auto; }
 .homepage .live-pair { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .homepage .live-pair figure:first-child { grid-column: auto; }
 .homepage .photo-grid { grid-template-columns: 1fr 1fr; }
 .homepage .trust-quotes { grid-template-columns: 1fr; }
 .homepage .hero h1 { font-size: clamp(32px,6vw,54px); }
}
@media(max-width:600px) {
 .homepage .section { padding: 44px 20px; }
 .homepage h2,.homepage .about-copy h2 { font-size: 36px; }
 .homepage .value-layout { grid-template-columns: 1fr; }
 .homepage .value-media { max-width: 260px; }
 .homepage .value-points { display: block; grid-column: auto; }
 .homepage .value-points > div { padding-left: 52px; }
 .homepage .value-points > div::before { display: grid; }
 .homepage .repertoire-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
 .homepage .repertoire-grid article { padding: 18px; }
 .homepage .repertoire-grid article h3 { font-size: 21px; }
 .homepage .repertoire .flow-compact { grid-template-columns: 1fr 1fr; }
 .homepage .trust-columns { grid-template-columns: 1fr 1fr; gap: 24px; }
 .homepage .trust-columns strong { font-size: 22px; }
 .homepage .live-pair { grid-template-columns: 1fr 1fr; }
 .homepage .live-pair figure:first-child { grid-column: 1 / -1; }
 .homepage .photo-grid .photo { height: 235px; }
 .homepage .final-cta { display: block; }
 .homepage .booking-form { margin-top: 28px; padding: 24px; }
 .homepage .hero-description { font-size: 16px; }
 .homepage .hero-actions { gap: 12px; }
 .homepage .hero-proof strong { font-size: 22px; }
 .homepage .hero-proof > div { padding: 10px; }
}
/* Clear legacy mosaic and quote row spans after restructuring these sections. */
.homepage .photo-grid { grid-template-rows: auto; margin-left: 0; margin-right: 0; }
.homepage .trust-quotes { grid-template-rows: auto; }
.homepage .trust-quotes blockquote:first-child { grid-row: auto; }
.homepage .live-pair img { aspect-ratio: auto; object-position: center 20%; }
.homepage .trust-columns { opacity: 1; }
@media(min-width:901px) {
 .homepage .about-media img { max-height: 380px; }
}

/* Desktop scale: a full first screen, with readable navigation and primary actions. */
@media(min-width:901px) {
 .homepage .site-header { padding-left: 4vw; padding-right: 4vw; }
 .homepage .nav a { font-size: clamp(14px,1vw,19px); font-weight: 800; }
 .homepage .header-contact { font-size: clamp(14px,1vw,18px); padding: 16px 22px; }
 .homepage .hero { min-height: calc(100svh - 84px); padding: clamp(42px,7vh,86px) 4vw; align-items: center; }
 .homepage .hero-copy { width: 48%; max-width: 920px; display: flex; flex-direction: column; }
 .homepage .hero h1 { font-size: clamp(52px,4.1vw,88px); line-height: 1.03; margin-top: 24px; }
 .homepage .hero-eyebrow { font-size: clamp(14px,1vw,18px); }
 .homepage .hero-description { font-size: clamp(19px,1.4vw,27px); line-height: 1.5; max-width: 760px; margin-top: 24px; }
 .homepage .hero-proof { order: 2; width: 100%; max-width: 860px; margin-top: 28px; }
 .homepage .hero-proof > div { padding: 18px 16px; }
 .homepage .hero-proof strong { font-size: clamp(28px,2.1vw,40px); }
 .homepage .hero-proof span { font-size: clamp(12px,.85vw,16px); }
 .homepage .hero-actions { order: 3; margin-top: 28px; gap: 20px; }
 .homepage .hero-actions .button { min-height: 58px; padding: 16px 24px; font-size: clamp(15px,1.1vw,21px); }
}
@media(min-width:901px) and (max-height:800px) {
 .homepage .hero { padding-top: 32px; padding-bottom: 32px; }
 .homepage .hero h1 { font-size: clamp(48px,4.1vw,72px); margin-top: 14px; }
 .homepage .hero-description { margin-top: 18px; }
 .homepage .hero-proof,.homepage .hero-actions { margin-top: 20px; }
 .homepage .hero-proof > div { padding: 12px; }
}
.homepage .booking-form input,.homepage .booking-form select { color: var(--ink); color-scheme: light; }
.homepage .booking-form input::placeholder { color: #636c5f; opacity: 1; }
@media(min-width:901px) and (max-width:1250px) {
 .homepage .hero-actions { gap: 12px; flex-wrap: nowrap; }
 .homepage .hero-actions .button { padding: 15px 18px; font-size: 14px; }
}
@media(min-width:901px) {
 .homepage .value-copy h2 { font-size: clamp(32px,2.8vw,45px); }
}
/* The venue ribbon completes the first screen, as in the original site. */
.homepage .hero-venues { display: grid; grid-template-columns: 1.35fr repeat(4,1fr) 1.2fr; min-height: 70px; background: var(--orange); color: var(--ink); }
.homepage .hero-venues > * { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px 20px; border-right: 1px solid #102c2440; font-size: clamp(14px,1.1vw,21px); font-weight: 800; text-transform: uppercase; text-align: center; }
.homepage .hero-venues .hero-venues-label { flex-direction: column; gap: 4px; }
.homepage .hero-venues small { font-size: 10px; font-weight: 600; letter-spacing: .5px; }
.homepage .hero-venues a { color: var(--cream-light); background: var(--forest); text-decoration: none; border: 0; }
.homepage .hero-venues a:hover { background: var(--deep); }
.homepage .hero-venues a:focus-visible { outline: 3px solid var(--cream-light); outline-offset: -5px; }
@media(min-width:901px) {
 .homepage .hero { min-height: calc(100svh - 155px); }
}
@media(max-width:900px) {
 .homepage .hero-venues { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .homepage .hero-venues > * { font-size: 14px; padding: 18px 10px; border-bottom: 1px solid #102c2440; }
}
@media(max-width:520px) {
 .homepage .hero-venues { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(min-width:901px) {
 .homepage .hero-venues { height: 78px; min-height: 78px; }
 .homepage .hero { min-height: calc(100svh - 163px); }
}
@media(min-width:901px) {
 .homepage .hero-proof strong { font-size: clamp(24px,1.9vw,36px); white-space: nowrap; }
}
/* Natural-height photo columns, matching the original gallery rhythm. */
.homepage #live .photo-grid { display: block; columns: 4; column-gap: 16px; }
.homepage #live .photo-grid .photo,
.homepage #live .media-video { display: block; position: relative; width: 100%; height: auto; min-height: 0; margin: 0 0 16px; padding: 0; border: 0; border-radius: 7px; overflow: hidden; break-inside: avoid; background: #102c24; transform: none; }
.homepage #live .photo-grid .photo.is-hidden { display: none; }
.homepage #live .photo-grid img { display: block; position: static; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; filter: none; }
.homepage #live .photo::after { display: none; }
.homepage #live .photo:hover img { transform: none; }
.homepage #live .photo:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.homepage #live .media-video span { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; gap: 12px; background: #001b1450; color: var(--cream-light); font-size: 14px; font-weight: 700; }
.homepage #live .media-video b { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--cream-light); border-radius: 50%; }
@media(max-width:1100px) { .homepage #live .photo-grid { columns: 3; } }
@media(max-width:700px) { .homepage #live .photo-grid { columns: 2; column-gap: 12px; } .homepage #live .photo-grid .photo,.homepage #live .media-video { margin-bottom: 12px; } .homepage #live .media-video span { font-size: 11px; gap: 6px; } .homepage #live .media-video b { width: 30px; height: 30px; } }
/* Reviews follow the owner's reference, in Ginger colours. */
.homepage .review-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 32px 0 28px; }
.homepage .review-rating > strong { font: 700 56px/1 var(--display); color: var(--ink); }
.homepage .review-stars { color: var(--orange); font-size: 28px; letter-spacing: 3px; white-space: nowrap; }
.homepage .review-rating p { margin: 0; font-size: 16px; color: #53584e; }
.homepage .trust-quotes blockquote { justify-content: flex-start; padding: 28px; border-radius: 7px; }
.homepage .review-avatar { display: grid; place-items: center; flex-shrink: 0; width: 52px; height: 52px; margin-bottom: 22px; border-radius: 50%; background: var(--orange); color: var(--white); font: 800 20px/1 Arial,sans-serif; }
.homepage .trust-quotes cite { margin-top: 20px; font: 700 16px/1.5 Arial,sans-serif; color: var(--ink); }
@media(max-width:600px) { .homepage .review-rating { gap: 14px; } .homepage .review-rating p { flex-basis: 100%; } }
/* Contact section: generous text and direct contact choices beside the form. */
.homepage #booking { grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); align-items: start; gap: clamp(40px,6vw,100px); border-top: 0; padding-top: 80px; padding-bottom: 90px; }
.homepage #booking .booking-copy { padding: 0; }
.homepage #booking .booking-copy h2 { font-size: clamp(46px,4.5vw,72px); line-height: 1.08; margin: 24px 0 28px; }
.homepage #booking .booking-copy > p:not(.section-label) { font-size: 20px; line-height: 1.55; max-width: 680px; }
.homepage #booking .quick-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.homepage #booking .quick-actions a { display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 14px 20px; border: 1px solid #102c2433; border-radius: 28px; background: #fffaf0; color: var(--ink); font: 700 16px/1.2 Arial,sans-serif; text-decoration: none; }
.homepage #booking .quick-actions svg { width: 24px; height: 24px; flex-shrink: 0; color: var(--orange-dark); }
.homepage #booking .quick-actions a:hover { background: var(--orange); border-color: var(--orange); }
.homepage #booking .quick-actions a:hover svg { color: var(--ink); }
.homepage #booking .booking-form { padding: 32px; border-radius: 8px; box-shadow: 0 18px 50px #001b1426; }
.homepage #booking .booking-form h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.homepage #booking .form-grid { gap: 20px; }
.homepage #booking .form-grid label > span { font-size: 16px; color: var(--cream-light); margin-bottom: 8px; }
.homepage #booking .form-grid input,.homepage #booking .form-grid select { min-height: 54px; padding: 14px 16px; border-radius: 5px; background: #fffdf7; }
.homepage #booking .booking-form .button { min-height: 56px; border-radius: 30px; justify-content: center; font-size: 16px; box-shadow: none; }
.homepage #booking .form-note { font-size: 13px; line-height: 1.5; }
@media(max-width:900px) { .homepage #booking { grid-template-columns: 1fr; gap: 36px; padding-top: 56px; padding-bottom: 56px; } .homepage #booking .booking-copy h2 { font-size: 48px; } .homepage #booking .booking-form { max-width: 600px; margin: 0; } }
@media(max-width:600px) { .homepage #booking { padding-top: 44px; padding-bottom: 44px; } .homepage #booking .booking-copy h2 { font-size: 40px; } .homepage #booking .booking-copy > p:not(.section-label) { font-size: 17px; } .homepage #booking .quick-actions { gap: 10px; } .homepage #booking .quick-actions a { padding: 12px 16px; font-size: 14px; } .homepage #booking .booking-form { margin-top: 32px; padding: 24px; } }
/* Performance: headline, then portrait and a single content sequence. */
.homepage #value { padding-left: max(32px,calc((100% - 1360px)/2)); padding-right: max(32px,calc((100% - 1360px)/2)); }
.homepage #value > * { max-width: 1360px; }
.homepage #value .section-top { margin-bottom: 36px; }
.homepage #value > h2 { margin: 0 0 50px; max-width: 760px; font-size: clamp(48px,4.5vw,72px); line-height: 1.04; }
.homepage #value .value-layout { display: grid; grid-template-columns: minmax(0,520px) minmax(0,1fr); gap: 56px; align-items: center; }
.homepage #value .value-media { width: 100%; max-width: none; margin: 0; transform: rotate(-2deg); padding: 0; }
.homepage #value .value-media img { display: block; width: 100%; height: 390px; max-height: none; object-fit: cover; object-position: center 35%; }
.homepage #value .value-copy .section-lead { margin: 0 0 28px; max-width: none; font-size: 21px; line-height: 1.55; }
.homepage #value .value-points { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; border: 0; }
.homepage #value .value-points > div { padding: 24px 18px; border: 0; border-left: 4px solid var(--orange); border-radius: 6px; background: var(--forest); min-width: 0; }
.homepage #value .value-points > div::before { display: none; }
.homepage #value .value-points strong { display: block; font-size: 25px; line-height: 1.15; color: var(--cream-light); }
.homepage #value .value-points span { display: block; margin-top: 12px; font-size: 17px; line-height: 1.45; color: #e3e8df; }
.homepage #value .value-cta { display: inline-flex; align-items: center; justify-content: center; gap: 18px; margin-top: 28px; min-height: 58px; padding: 16px 28px; border-radius: 30px; background: var(--orange); color: var(--ink); font-size: 19px; font-weight: 800; text-decoration: none; }
.homepage #value .value-cta span { font-size: 28px; }
.homepage #value .value-cta:hover { background: var(--forest); color: var(--cream-light); }
.homepage #value .value-cta:focus-visible { outline: 3px solid var(--forest); outline-offset: 4px; }
@media(max-width:1200px) { .homepage #value .value-layout { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 36px; } .homepage #value .value-points > div { padding: 20px 14px; } .homepage #value .value-points strong { font-size: 22px; } }
@media(max-width:900px) { .homepage #value { padding-left: 24px; padding-right: 24px; } .homepage #value .value-layout { grid-template-columns: 1fr; gap: 36px; } .homepage #value .value-media { max-width: 520px; margin: 0 auto; } .homepage #value > h2 { font-size: 52px; } }
@media(max-width:600px) { .homepage #value { padding-left: 20px; padding-right: 20px; } .homepage #value .section-top { margin-bottom: 28px; } .homepage #value > h2 { font-size: 39px; margin-bottom: 36px; } .homepage #value .value-media img { height: 330px; } .homepage #value .value-copy .section-lead { font-size: 18px; } .homepage #value .value-points { grid-template-columns: 1fr; gap: 12px; } .homepage #value .value-points > div { padding: 20px; } .homepage #value .value-points > div::before { margin-bottom: 12px; } }

/* Pack photos in reading order while preserving their original proportions. */
.homepage #live .photo-grid { display: grid; columns: auto; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: 4px; grid-auto-flow: dense; gap: 16px; align-items: start; }
.homepage #live .photo-grid .photo,.homepage #live .photo-grid .media-video { margin: 0; grid-column: auto; }
.homepage #live .photo-grid .media-video[hidden] { display: none; }
@media(max-width:1100px) { .homepage #live .photo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .homepage #live .photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } }

/* Non-modal cookie notice, dismissed independently of the booking form. */
.homepage .cookie-notice { position: fixed; z-index: 120; left: 24px; right: 24px; bottom: max(20px,env(safe-area-inset-bottom)); max-width: 800px; margin: 0 auto; display: flex; align-items: center; gap: 24px; padding: 20px 24px; background: #f8f2e2; color: #102c24; border: 1px solid #153d2e40; border-radius: 10px; box-shadow: 0 8px 32px #001b1433; }
.homepage .cookie-notice[hidden] { display: none; }
.homepage .cookie-notice p { margin: 0; font: 15px/1.5 Arial,sans-serif; }
.homepage .cookie-notice button { flex-shrink: 0; min-height: 44px; padding: 12px 24px; border: 0; border-radius: 24px; background: var(--forest); color: var(--cream-light); font: 700 15px/1.3 Arial,sans-serif; cursor: pointer; }
.homepage .cookie-notice button:hover { background: #09271d; }
.homepage .cookie-notice button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
@media(max-width:600px) { .homepage .cookie-notice { left: 12px; right: 12px; bottom: max(12px,env(safe-area-inset-bottom)); padding: 16px; gap: 14px; flex-wrap: wrap; } .homepage .cookie-notice p { font-size: 14px; } .homepage .cookie-notice button { margin-left: auto; } }

/* Phone hero: one photograph behind the header and content. */
.hero-desktop-action { display: contents; }
.homepage .hero-actions .hero-desktop-action { font: inherit; }
.hero-mobile-occasions,.hero-mobile-action,.mobile-bottom-nav { display: none; }
@media(max-width:767px) {
 .homepage { padding-bottom: calc(94px + env(safe-area-inset-bottom)); }
 .homepage .site-header { position: absolute; inset: 0 0 auto; min-height: 84px; padding: 12px 24px 4px; background: transparent; border: 0; backdrop-filter: none; }
 .homepage .brand { width: 150px; }
 .homepage .nav { top: 100%; }
 .homepage .nav-toggle { width: 46px; height: 46px; margin: 0 0 0 auto; transform: none; gap: 5px; border: 0; border-radius: 50%; background: rgba(248,241,223,.08); }
 .homepage .nav-toggle span { width: 24px; height: 1.5px; background: #eee7d6; border-radius: 1px; }
 .homepage .nav-toggle:hover,.homepage .nav-toggle[aria-expanded="true"] { background: rgba(248,241,223,.12); }
 .homepage .nav-toggle:focus-visible { outline: 2px solid #eee7d6; outline-offset: 3px; }
 .homepage .hero { display: block; min-height: max(770px,calc(245vw - 130px)); padding: 90px 24px 100px; background: #061a16; }
 .homepage .hero-background { inset: 0; height: calc(100% + 130px); mask-image: none; }
 .homepage .hero-background img { object-fit: cover; object-position: 50% 0%; filter: none; }
 .homepage .hero-background::after,.homepage .hero::after { display: none; }
 .homepage .hero::before { background: linear-gradient(180deg,rgba(6,26,22,.60),rgba(6,26,22,.30) 20%,transparent 40%,transparent 85%,rgba(6,26,22,.15)),linear-gradient(110deg,rgba(6,26,22,.28),transparent 48%); }
 .homepage .hero-copy { width: 100%; min-height: 0; padding: 0; display: block; }
 .homepage .hero-kicker,.homepage .hero-description,.homepage .hero-proof,.homepage .hero-actions .button-outline,.homepage .hero-desktop-action,.homepage .hero-venues { display: none; }
 .homepage .hero h1 { font-size: clamp(34px,9.2vw,44px); line-height: .94; letter-spacing: -.5px; margin: 0; }
 .homepage .hero-opening { display: block; }
 .homepage .hero-mobile-occasions { display: block; margin: 14px 0 0; font-size: clamp(12px,3.4vw,16px); font-weight: 500; line-height: 1.5; letter-spacing: .1px; color: var(--cream-light); white-space: nowrap; }
 .homepage .hero-actions { margin-top: 16px; display: block; }
 .homepage .hero-actions .button-orange { width: 82%; min-height: 60px; padding: 14px 16px; border-radius: 14px; box-shadow: none; font-size: clamp(13px,3.4vw,16px); background: var(--cream-light); color: #0c3024; border-color: var(--cream-light); }
 .homepage .hero-actions .button-orange:hover { background: #fffaf0; color: #0c3024; border-color: #fffaf0; }
 .homepage .hero-actions .hero-mobile-action { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 8px; font: inherit; line-height: 1.25; }
 .homepage .hero-mobile-action > span { font-size: 22px; color: var(--orange); }
 .homepage .mobile-bottom-nav { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); position: fixed; inset: auto 0 0; z-index: 110; min-height: calc(76px + env(safe-area-inset-bottom)); padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); background: #061a16f5; border: 1px solid #b9cbb52b; border-radius: 20px 20px 0 0; backdrop-filter: blur(5px); }
 .homepage .mobile-bottom-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 44px; min-height: 60px; font: 500 11px/1.25 Arial,sans-serif; color: #b8c9c0; text-decoration: none; }
 .homepage .mobile-bottom-nav svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
 .homepage .mobile-bottom-nav a[aria-current] { color: var(--cream-light); font-weight: 700; background: transparent; }
 .homepage .mobile-bottom-nav a[aria-current] svg { color: var(--orange); }
 .homepage .mobile-bottom-nav a:focus-visible { outline: 2px solid var(--orange); outline-offset: -2px; border-radius: 8px; }
 .homepage .cookie-notice { bottom: calc(88px + env(safe-area-inset-bottom)); }
 .homepage .song-card { min-width: 0; overflow-wrap: anywhere; }
 .homepage .footer { flex-wrap: wrap; gap: 20px; }
}
@media(max-width:350px) {
 .homepage .hero { padding-top: 82px; min-height: 710px; }
 .homepage .hero h1 { font-size: 30px; }
 .homepage .hero-mobile-occasions { margin-top: 8px; }
 .homepage .hero-actions { margin-top: 12px; }
 .homepage .hero-mobile-occasions { font-size: 11px; letter-spacing: 0; }
}
