:root {
 --ink: #f8f2e8;
 --muted: #cfc3b2;
 --dark: #120d09;
 --peat: #1d140e;
 --wood: #4c2a16;
 --green: #0f5a3f;
 --green-bright: #20a06f;
 --gold: #d8a84d;
 --red: #aa342f;
 --cream: #fff7e8;
 --line: rgba(255, 247, 232, 0.16);
 --shadow: 0 24px 90px rgba(0, 0, 0, 0.42);
}

* {
 box-sizing: border-box;
}

html {
 scroll-behavior: smooth;
}

body {
 margin: 0;
 background: var(--dark);
 color: var(--ink);
 font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
 overflow-x: hidden;
}

body::before {
 content: "";
 position: fixed;
 z-index: 999;
 inset: 0;
 pointer-events: none;
 background:
 radial-gradient(circle at 50% 50%, rgba(216, 168, 77, 0.18), transparent 28%),
 linear-gradient(135deg, #0b0806, #211107 52%, #07140e);
 transform: translateY(100%);
 transition: transform 0.52s cubic-bezier(0.76, 0, 0.24, 1);
}

body::after {
 content: "Brennan's Snug";
 position: fixed;
 z-index: 1000;
 top: 50%;
 left: 50%;
 pointer-events: none;
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(34px, 7vw, 88px);
 font-weight: 800;
 opacity: 0;
 transform: translate(-50%, -42%);
 transition: opacity 0.25s ease 0.18s, transform 0.35s ease 0.18s;
}

body.page-leaving::before {
 transform: translateY(0);
}

body.page-leaving::after {
 opacity: 1;
 transform: translate(-50%, -50%);
}

.js-enabled .site-footer {
 opacity: 0;
 transform: translateY(14px);
}

.page-loaded .site-footer {
 opacity: 1;
 transform: translateY(0);
 transition: opacity 0.55s ease, transform 0.55s ease;
}

.page-leaving main,
.page-leaving .site-footer,
.page-leaving .site-header {
 opacity: 0;
 transform: translateY(-12px);
 transition: opacity 0.25s ease, transform 0.25s ease;
}

img {
 display: block;
 max-width: 100%;
}

a {
 color: inherit;
 text-decoration: none;
}

button,
input,
select {
 font: inherit;
}

.site-header {
 position: fixed;
 z-index: 20;
 top: 16px;
 left: clamp(14px, 3vw, 44px);
 right: clamp(14px, 3vw, 44px);
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 18px;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 999px;
 padding: 10px 12px 10px 14px;
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.08), rgba(255, 247, 232, 0.02)),
 rgba(18, 13, 9, 0.48);
 box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
 backdrop-filter: blur(22px) saturate(1.15);
 transition: background 0.25s ease, backdrop-filter 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, top 0.25s ease;
}

.site-header.is-scrolled {
 top: 10px;
 border-color: rgba(216, 168, 77, 0.24);
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.1), rgba(255, 247, 232, 0.03)),
 rgba(18, 13, 9, 0.76);
 box-shadow: 0 18px 60px rgba(0, 0, 0, 0.38);
 backdrop-filter: blur(24px) saturate(1.2);
}

.brand {
 display: flex;
 align-items: center;
 gap: 11px;
 min-width: 0;
 border-radius: 999px;
 padding-right: 10px;
 transition: transform 0.2s ease;
}

.brand:hover {
 transform: translateY(-1px);
}

.brand-mark {
 display: grid;
 width: 46px;
 height: 46px;
 place-items: center;
 border: 1px solid rgba(216, 168, 77, 0.92);
 border-radius: 50%;
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 28px;
 font-weight: 800;
 background:
 radial-gradient(circle at 35% 28%, rgba(255, 247, 232, 0.18), transparent 34%),
 linear-gradient(145deg, rgba(15, 90, 63, 0.92), rgba(8, 44, 31, 0.92));
 box-shadow:
 inset 0 0 0 1px rgba(255, 247, 232, 0.08),
 0 0 34px rgba(32, 160, 111, 0.22);
}

.brand strong,
.brand small {
 display: block;
}

.brand strong {
 color: var(--cream);
 font-size: 16px;
 line-height: 1.05;
 text-shadow: 0 8px 24px rgba(0, 0, 0, 0.42);
}

.brand small {
 margin-top: 3px;
 color: rgba(255, 247, 232, 0.7);
 font-size: 12px;
 font-weight: 700;
}

.main-nav {
 display: flex;
 align-items: center;
 gap: 4px;
 border: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 999px;
 padding: 4px;
 background: rgba(255, 247, 232, 0.05);
}

.main-nav a {
 position: relative;
 border-radius: 999px;
 padding: 11px 16px;
 color: rgba(255, 247, 232, 0.82);
 font-size: 14px;
 font-weight: 800;
 transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.main-nav a:hover,
.main-nav a.is-active {
 background: rgba(255, 247, 232, 0.13);
 color: var(--cream);
 transform: translateY(-1px);
}

.main-nav a.is-active::after {
 content: "";
 position: absolute;
 right: 18px;
 bottom: 6px;
 left: 18px;
 height: 2px;
 border-radius: 999px;
 background: linear-gradient(90deg, transparent, var(--gold), transparent);
 box-shadow: 0 0 14px rgba(216, 168, 77, 0.5);
}

.main-nav .nav-cta {
 margin-left: 4px;
 background: linear-gradient(135deg, #fff7e8, #f2d08a);
 color: #20150d;
 box-shadow: 0 12px 34px rgba(216, 168, 77, 0.22);
}

.main-nav .nav-cta.is-active,
.main-nav .nav-cta:hover {
 background: linear-gradient(135deg, var(--gold), #fff0b7);
 color: #20150d;
 box-shadow: 0 16px 42px rgba(216, 168, 77, 0.32);
}

.main-nav .nav-cta.is-active::after {
 background: rgba(32, 21, 13, 0.45);
 box-shadow: none;
}

.nav-toggle {
 display: none;
 width: 44px;
 height: 44px;
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 50%;
 background: rgba(255, 247, 232, 0.08);
 color: var(--cream);
}

.nav-toggle span {
 display: block;
 width: 18px;
 height: 2px;
 margin: 5px auto;
 background: var(--cream);
}

.hero {
 position: relative;
 display: grid;
 min-height: 100svh;
 align-items: end;
 padding: 118px clamp(18px, 5vw, 72px) 42px;
 isolation: isolate;
 overflow: hidden;
}

.hero-bg,
.hero-vignette {
 position: absolute;
 inset: 0;
 z-index: -2;
}

.hero-bg {
 background-position: center;
 background-size: cover;
 transform: scale(1.02);
 animation: slow-zoom 18s ease-out forwards;
}

.hero-vignette {
 z-index: -1;
 background:
 radial-gradient(circle at 76% 38%, rgba(216, 168, 77, 0.18), transparent 28%),
 linear-gradient(90deg, rgba(18, 13, 9, 0.94) 0%, rgba(18, 13, 9, 0.58) 43%, rgba(18, 13, 9, 0.2) 100%),
 linear-gradient(0deg, var(--dark) 0%, rgba(18, 13, 9, 0.3) 38%, rgba(18, 13, 9, 0.62) 100%);
 transition: background 0.12s linear;
}

.hero-content {
 max-width: 850px;
 padding-bottom: clamp(26px, 8vh, 80px);
}

.eyebrow {
 margin: 0 0 14px;
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0;
 text-transform: uppercase;
}

h1,
h2,
h3,
p {
 margin-top: 0;
}

h1,
h2 {
 font-family: "Playfair Display", Georgia, serif;
}

.home-hero h1 {
 margin-bottom: 14px;
 font-size: clamp(78px, 14vw, 178px);
 line-height: 0.82;
 text-shadow: 0 20px 70px rgba(0, 0, 0, 0.62);
}

.hero-copy {
 max-width: 680px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(19px, 2.2vw, 30px);
 font-weight: 700;
 line-height: 1.18;
}

.hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 28px;
}

.button {
 display: inline-flex;
 min-height: 48px;
 align-items: center;
 justify-content: center;
 border: 1px solid transparent;
 border-radius: 999px;
 padding: 13px 20px;
 font-weight: 900;
 transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.button:hover {
 transform: translateY(-2px);
}

.button-primary {
 background: linear-gradient(135deg, var(--gold), #fff0b7 52%, var(--gold));
 color: #25170c;
 box-shadow: 0 18px 45px rgba(216, 168, 77, 0.22);
}

.button-ghost {
 border-color: rgba(255, 247, 232, 0.35);
 background: rgba(255, 247, 232, 0.08);
 color: var(--cream);
 backdrop-filter: blur(12px);
}

.hero-panel {
 position: absolute;
 right: clamp(18px, 5vw, 72px);
 bottom: 42px;
 width: min(360px, calc(100vw - 36px));
 border: 1px solid var(--line);
 border-radius: 8px;
 padding: 18px;
 background: rgba(18, 13, 9, 0.64);
 box-shadow: var(--shadow);
 backdrop-filter: blur(18px);
}

.hero-panel span {
 color: var(--green-bright);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.hero-panel strong {
 display: block;
 margin: 8px 0;
 font-size: 22px;
}

.hero-panel p {
 margin-bottom: 0;
 color: var(--muted);
 line-height: 1.55;
}

.home-hero-wow {
 grid-template-columns: minmax(0, 0.98fr) minmax(360px, 0.82fr);
 gap: clamp(28px, 5vw, 72px);
 align-items: center;
 padding-bottom: clamp(34px, 6vh, 64px);
}

.home-hero-wow .hero-bg {
 filter: saturate(1.08) contrast(1.08);
 transform-origin: 70% 48%;
 animation: hero-room-drift 22s ease-in-out infinite alternate;
}

.home-hero-wow .hero-vignette {
 background:
 radial-gradient(circle at 74% 36%, rgba(216, 168, 77, 0.16), transparent 26%),
 radial-gradient(ellipse at 86% 52%, rgba(170, 52, 47, 0.3), transparent 28%),
 linear-gradient(90deg, rgba(10, 7, 5, 0.9) 0%, rgba(18, 13, 9, 0.62) 38%, rgba(18, 13, 9, 0.24) 100%),
 linear-gradient(0deg, #120d09 0%, rgba(18, 13, 9, 0.18) 42%, rgba(18, 13, 9, 0.68) 100%);
}

.hero-glow-lines {
 position: absolute;
 inset: 0;
 z-index: -1;
 opacity: 0.42;
 pointer-events: none;
 background:
 linear-gradient(115deg, transparent 0 36%, rgba(216, 168, 77, 0.16) 36.2% 36.5%, transparent 36.8% 100%),
 linear-gradient(115deg, transparent 0 56%, rgba(255, 247, 232, 0.12) 56.2% 56.35%, transparent 56.6% 100%),
 linear-gradient(115deg, transparent 0 68%, rgba(170, 52, 47, 0.16) 68.2% 68.5%, transparent 68.8% 100%);
 animation: hero-light-sweep 8s ease-in-out infinite;
}

.home-hero-wow .hero-content {
 position: relative;
 z-index: 2;
 max-width: 760px;
 padding-bottom: clamp(36px, 8vh, 88px);
}

.hero-kicker {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 border: 1px solid rgba(216, 168, 77, 0.42);
 border-radius: 999px;
 padding: 9px 13px;
 background: rgba(18, 13, 9, 0.52);
 color: #ffe2a3;
 box-shadow: 0 16px 42px rgba(0, 0, 0, 0.24);
 backdrop-filter: blur(14px);
}

.hero-kicker::before {
 content: "";
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: var(--green-bright);
 box-shadow: 0 0 18px rgba(32, 160, 111, 0.9);
}

.home-hero-wow h1 {
 position: relative;
 z-index: 3;
 max-width: 740px;
 margin: 0 0 54px;
 color: var(--cream);
 font-size: 9.5rem;
 line-height: 0.78;
 text-shadow:
 0 2px 0 rgba(216, 168, 77, 0.34),
 0 20px 72px rgba(0, 0, 0, 0.76);
}

.home-hero-wow h1::after {
 content: "";
 position: absolute;
 z-index: -1;
 inset: -8% -4% -2% -4%;
 background: radial-gradient(ellipse at 28% 48%, rgba(18, 13, 9, 0.64), transparent 64%);
 pointer-events: none;
}

.home-hero-wow h1 span {
 display: block;
}

.home-hero-wow h1 span:last-child {
 color: transparent;
 background: linear-gradient(110deg, #fff7e8 0%, #d8a84d 32%, #fff1bd 48%, #d8a84d 62%, #f5c56b 100%);
 background-size: 220% 100%;
 background-clip: text;
 -webkit-background-clip: text;
 animation: hero-title-gold 5.8s ease-in-out 1.1s infinite;
}

.home-hero-wow h1 .hero-since {
 display: inline-block;
 margin-left: 0.35em;
 color: #f5c56b;
 -webkit-text-fill-color: #f5c56b;
 font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
 font-size: 0.12em;
 font-weight: 700;
 line-height: 1;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 vertical-align: middle;
 white-space: nowrap;
}

.home-hero-wow .hero-copy {
 position: relative;
 z-index: 1;
 max-width: 660px;
 margin-left: 0;
 margin-top: 0;
 border-left: 0;
 padding: 0;
 background: transparent;
 color: rgba(255, 247, 232, 0.92);
 font-size: 1.72rem;
 line-height: 1.16;
 text-shadow:
 0 2px 12px rgba(0, 0, 0, 0.78),
 0 10px 30px rgba(0, 0, 0, 0.5);
}

.home-hero-wow .hero-copy::before {
 display: none;
}

.home-hero-wow .hero-actions {
 margin-top: 30px;
}

.hero-proof {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 10px;
 max-width: 720px;
 margin-top: 30px;
}

.hero-proof span {
 display: grid;
 min-height: 82px;
 align-content: center;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 13px 14px;
 background: rgba(18, 13, 9, 0.48);
 color: rgba(255, 247, 232, 0.72);
 font-size: 12px;
 font-weight: 800;
 text-transform: uppercase;
 backdrop-filter: blur(16px);
}

.hero-proof span:nth-child(1) {
 animation-delay: 0.5s;
}

.hero-proof span:nth-child(2) {
 animation-delay: 0.64s;
}

.hero-proof span:nth-child(3) {
 animation-delay: 0.78s;
}

.hero-proof strong {
 display: block;
 margin-bottom: 4px;
 color: var(--cream);
 font-size: 1.08rem;
 text-transform: none;
}

.hero-showcase {
 position: relative;
 z-index: 1;
 min-height: min(68svh, 720px);
 align-self: center;
}

.hero-plate {
 position: absolute;
 overflow: hidden;
 margin: 0;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 background: rgba(18, 13, 9, 0.5);
 box-shadow: 0 30px 90px rgba(0, 0, 0, 0.5);
}

.hero-plate::before {
 content: "";
 position: absolute;
 z-index: 1;
 inset: 0;
 background: linear-gradient(115deg, transparent 0 38%, rgba(255, 247, 232, 0.22) 46%, transparent 56% 100%);
 opacity: 0;
 transform: translateX(-70%);
 pointer-events: none;
}

.page-loaded .hero-plate::before {
 animation: hero-card-glint 6.5s ease-in-out 1.8s infinite;
}

.hero-plate img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(1.08) contrast(1.06);
}

.hero-plate figcaption {
 position: absolute;
 right: 12px;
 bottom: 12px;
 left: 12px;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 12px;
 background: rgba(18, 13, 9, 0.72);
 backdrop-filter: blur(12px);
}

.hero-plate figcaption span,
.hero-plate figcaption strong {
 display: block;
}

.hero-plate figcaption span {
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.hero-plate figcaption strong {
 margin-top: 4px;
 color: var(--cream);
 font-size: 18px;
}

.hero-plate-main {
 top: 7%;
 right: 8%;
 width: min(450px, 78%);
 aspect-ratio: 4 / 5;
 transform: rotate(2deg);
}

.hero-plate-side {
 top: 0;
 left: 1%;
 width: min(240px, 40%);
 aspect-ratio: 4 / 5;
 transform: rotate(-7deg);
}

.hero-plate-small {
 right: 1%;
 bottom: 5%;
 width: min(280px, 46%);
 aspect-ratio: 5 / 4;
 transform: rotate(-4deg);
}

.home-hero-wow .hero-panel {
 right: clamp(18px, 5vw, 72px);
 bottom: clamp(18px, 4vh, 40px);
 width: min(390px, 42vw);
 border-color: rgba(216, 168, 77, 0.38);
 background: linear-gradient(135deg, rgba(94, 35, 38, 0.82), rgba(18, 13, 9, 0.78));
}

.home-hero-wow .hero-panel span {
 color: #ffe2a3;
}

.section-band,
.menu-section,
.match-strip,
.reservation,
.gallery-grid,
.gallery-hero {
 padding: clamp(76px, 10vw, 132px) clamp(18px, 5vw, 72px);
}

.spirit-section {
 position: relative;
 overflow: hidden;
 padding-top: clamp(36px, 5vw, 64px);
 background:
 radial-gradient(ellipse at 14% 20%, rgba(32, 160, 111, 0.3), transparent 34%),
 radial-gradient(ellipse at 86% 10%, rgba(216, 168, 77, 0.22), transparent 30%),
 radial-gradient(ellipse at 70% 86%, rgba(170, 52, 47, 0.16), transparent 36%),
 linear-gradient(180deg, #100b08 0%, #1b100a 46%, #0d100b 100%);
}

.spirit-section::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(255, 247, 232, 0.025) 1px, transparent 1px);
 background-size: 72px 72px;
 mask-image: linear-gradient(180deg, transparent, #000 18%, #000 78%, transparent);
}

.spirit-section::after {
 content: "";
 position: absolute;
 inset: auto -8% -22% -8%;
 height: 42%;
 pointer-events: none;
 background: radial-gradient(ellipse at center, rgba(216, 168, 77, 0.18), transparent 68%);
 filter: blur(20px);
 opacity: 0.72;
}

.spirit-ambient {
 position: absolute;
 inset: 0;
 pointer-events: none;
 overflow: hidden;
}

.spirit-ambient span {
 position: absolute;
 display: block;
 width: 1px;
 height: 34%;
 background: linear-gradient(180deg, transparent, rgba(216, 168, 77, 0.38), transparent);
 opacity: 0;
 transform: rotate(18deg);
}

.spirit-ambient span:nth-child(1) {
 top: 4%;
 left: 16%;
}

.spirit-ambient span:nth-child(2) {
 top: 18%;
 left: 54%;
 height: 44%;
}

.spirit-ambient span:nth-child(3) {
 top: 2%;
 right: 18%;
 height: 38%;
}

.spirit-section.section-visible .spirit-ambient span {
 animation: spirit-ray 4.8s ease-in-out infinite;
}

.spirit-section.section-visible .spirit-ambient span:nth-child(2) {
 animation-delay: 0.8s;
}

.spirit-section.section-visible .spirit-ambient span:nth-child(3) {
 animation-delay: 1.6s;
}

.spirit-layout,
.spirit-features {
 position: relative;
 z-index: 1;
}

.spirit-layout {
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1fr);
 gap: clamp(28px, 6vw, 86px);
 align-items: center;
}

.spirit-copy {
 max-width: 780px;
}

.spirit-copy h2 {
 margin-bottom: 28px;
 font-size: 5.4rem;
 line-height: 0.86;
}

.spirit-copy h2 span {
 display: block;
}

.spirit-copy h2 span:last-child {
 color: transparent;
 background: linear-gradient(110deg, #fff7e8 0%, #d8a84d 38%, #fff0b7 52%, #d8a84d 100%);
 background-size: 220% 100%;
 background-clip: text;
 -webkit-background-clip: text;
}

.spirit-copy > p:last-of-type {
 max-width: 620px;
 color: rgba(255, 247, 232, 0.78);
 font-size: 1.22rem;
 line-height: 1.65;
}

.spirit-signature {
 display: grid;
 grid-template-columns: auto 1fr;
 gap: 10px 14px;
 max-width: 610px;
 margin-top: 26px;
 border: 1px solid rgba(216, 168, 77, 0.22);
 border-radius: 8px;
 padding: 15px 16px;
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.08), rgba(255, 247, 232, 0.02)),
 rgba(18, 13, 9, 0.34);
 box-shadow: 0 22px 70px rgba(0, 0, 0, 0.22);
 backdrop-filter: blur(14px);
}

.spirit-signature strong {
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 1.4rem;
 line-height: 1;
}

.spirit-signature span {
 color: rgba(255, 247, 232, 0.84);
 font-weight: 800;
 line-height: 1.35;
}

.spirit-notes {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 22px;
}

.spirit-notes span {
 border: 1px solid rgba(216, 168, 77, 0.34);
 border-radius: 999px;
 padding: 10px 14px;
 background: rgba(255, 247, 232, 0.07);
 color: var(--cream);
 font-size: 13px;
 font-weight: 900;
 box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
}

.spirit-visual {
 position: relative;
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(150px, 0.62fr);
 gap: 14px;
 min-height: 520px;
 align-items: end;
 perspective: 1200px;
}

.spirit-visual img {
 width: 100%;
 object-fit: cover;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 box-shadow: var(--shadow);
 filter: saturate(1.08) contrast(1.06);
}

.spirit-visual img:first-child {
 height: min(58vw, 520px);
 transform: rotate(-2deg);
}

.spirit-visual img:nth-child(2) {
 height: min(45vw, 390px);
 margin-bottom: 44px;
 transform: rotate(3deg);
}

.spirit-orbit {
 position: absolute;
 right: 18%;
 bottom: 15%;
 width: min(280px, 46%);
 aspect-ratio: 1;
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 50%;
 opacity: 0.54;
 pointer-events: none;
}

.spirit-orbit::before,
.spirit-orbit::after {
 content: "";
 position: absolute;
 border-radius: 50%;
}

.spirit-orbit::before {
 inset: 18%;
 border: 1px solid rgba(255, 247, 232, 0.14);
}

.spirit-orbit::after {
 top: 8%;
 left: 50%;
 width: 9px;
 height: 9px;
 background: var(--gold);
 box-shadow: 0 0 26px rgba(216, 168, 77, 0.8);
}

.spirit-badge {
 position: absolute;
 right: clamp(18px, 5vw, 58px);
 bottom: 0;
 width: min(230px, 62%);
 border: 1px solid rgba(216, 168, 77, 0.4);
 border-radius: 8px;
 padding: 18px;
 background:
 linear-gradient(135deg, rgba(15, 90, 63, 0.92), rgba(31, 18, 10, 0.84)),
 rgba(15, 90, 63, 0.78);
 box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
 backdrop-filter: blur(14px);
}

.spirit-badge span {
 color: rgba(255, 247, 232, 0.76);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.spirit-badge strong {
 display: block;
 margin: 2px 0 4px;
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 52px;
 line-height: 0.92;
}

.spirit-badge p {
 margin-bottom: 0;
 color: var(--cream);
 font-weight: 800;
 line-height: 1.35;
}

.spirit-features {
 margin-top: clamp(34px, 5vw, 64px);
}

.spirit-features .feature {
 position: relative;
 overflow: hidden;
 background:
 linear-gradient(180deg, rgba(255, 247, 232, 0.075), rgba(255, 247, 232, 0.035)),
 linear-gradient(135deg, rgba(15, 90, 63, 0.18), rgba(216, 168, 77, 0.08));
}

.spirit-features .feature::after {
 content: "";
 position: absolute;
 right: -42px;
 top: -42px;
 width: 120px;
 height: 120px;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 50%;
}

.section-copy {
 display: grid;
 grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.78fr);
 gap: clamp(20px, 5vw, 80px);
 align-items: end;
 margin-bottom: 34px;
}

.section-copy h2,
.match-copy h2,
.reservation-copy h1,
.reservation-copy h2,
.showcase-copy h2,
.page-hero h1,
.gallery-hero h1,
.wide-location h2,
.menu-category h2,
.event-card h2 {
 margin-bottom: 0;
 font-size: clamp(38px, 6vw, 78px);
 line-height: 0.95;
}

.section-copy p:last-child,
.showcase-copy p,
.page-hero p,
.reservation-copy p,
.wide-location p,
.event-card p {
 color: var(--muted);
 line-height: 1.65;
}

.feature-grid,
.location-grid,
.dish-grid,
.events {
 display: grid;
 gap: 14px;
}

.feature-grid.three {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.feature,
.location-card,
.event-card,
.dish-grid article,
.price-list,
.booking-form {
 border: 1px solid var(--line);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.055);
 box-shadow: 0 12px 60px rgba(0, 0, 0, 0.14);
}

.feature {
 min-height: 250px;
 padding: 24px;
}

.feature span,
.event-card span,
.menu-card span {
 color: var(--gold);
 font-weight: 900;
}

.feature h3,
.location-card h3,
.dish-grid h3 {
 margin: 24px 0 12px;
 font-size: clamp(24px, 2.6vw, 34px);
}

.feature p,
.location-card p,
.dish-grid p,
.price-list p {
 color: var(--muted);
 line-height: 1.65;
}

.image-marquee {
 display: grid;
 grid-template-columns: 1.2fr 0.8fr 1fr 0.8fr;
 gap: 12px;
 padding: 12px;
 background: #0b0806;
}

.image-marquee img,
.photo-stack img,
.location-card img,
.page-hero img,
.dish-grid img,
.wide-location img,
.gallery-grid img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.image-marquee img {
 aspect-ratio: 4 / 3;
 border-radius: 8px;
}

.split-showcase {
 display: grid;
 grid-template-columns: minmax(0, 0.74fr) minmax(320px, 1fr);
 gap: clamp(24px, 6vw, 72px);
 align-items: center;
 padding: clamp(76px, 10vw, 132px) clamp(18px, 5vw, 72px);
 background:
 radial-gradient(circle at 20% 0%, rgba(15, 90, 63, 0.42), transparent 34%),
 linear-gradient(135deg, #130d09, #26140b 56%, #0c160f);
}

.menu-showcase {
 position: relative;
 overflow: hidden;
 align-items: stretch;
 background:
 radial-gradient(circle at 14% 24%, rgba(216, 168, 77, 0.2), transparent 28%),
 radial-gradient(circle at 82% 80%, rgba(15, 90, 63, 0.34), transparent 30%),
 linear-gradient(135deg, #130d09 0%, #2a160c 48%, #0c160f 100%);
}

.menu-showcase::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background: linear-gradient(90deg, rgba(255, 247, 232, 0.06), transparent 1px);
 background-size: 96px 100%;
 mask-image: linear-gradient(90deg, #000, transparent 72%);
}

.menu-showcase > * {
 position: relative;
 z-index: 1;
}

.showcase-copy p {
 max-width: 640px;
}

.menu-tags {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 10px;
 max-width: 620px;
 margin: 30px 0;
}

.menu-tags span,
.menu-tags a {
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(255, 247, 232, 0.065);
 color: var(--cream);
 font-size: 14px;
 font-weight: 900;
 box-shadow: 0 14px 45px rgba(0, 0, 0, 0.12);
}

.menu-tags a {
 transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.menu-tags a:hover {
 border-color: rgba(216, 168, 77, 0.42);
 background: rgba(255, 247, 232, 0.1);
 transform: translateY(-2px);
}

.dish-card-hitarea {
 position: absolute;
 z-index: 3;
 inset: 0;
 border-radius: inherit;
 cursor: pointer;
}

.dish-card-hitarea:focus-visible {
 outline: 3px solid rgba(216, 168, 77, 0.72);
 outline-offset: -5px;
}

a.feature {
 color: inherit;
 cursor: pointer;
}

a.feature:focus-visible {
 outline: 3px solid rgba(216, 168, 77, 0.55);
 outline-offset: 4px;
}

.menu-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
}

.photo-stack {
 display: grid;
 grid-template-columns: 1fr 0.84fr;
 gap: 14px;
 align-items: end;
}

.photo-stack img,
.menu-photo img {
 min-height: 420px;
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.photo-stack img:last-child,
.menu-photo-side img {
 min-height: 320px;
 margin-bottom: -38px;
}

.menu-stack {
 position: relative;
 align-self: center;
 padding-bottom: 0;
}

.menu-photo {
 position: relative;
 margin: 0;
}

.menu-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 border: 1px solid rgba(255, 247, 232, 0.16);
}

.menu-photo figcaption {
 position: absolute;
 right: 14px;
 bottom: 14px;
 left: 14px;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 padding: 12px;
 background: rgba(18, 13, 9, 0.68);
 backdrop-filter: blur(14px);
}

.menu-photo figcaption span,
.menu-card-mini span {
 display: block;
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.menu-photo figcaption strong,
.menu-card-mini strong {
 display: block;
 margin-top: 4px;
 color: var(--cream);
 font-size: 19px;
}

.menu-card-mini {
 grid-column: 1 / -1;
 justify-self: center;
 width: min(360px, 100%);
 margin-top: 2px;
 border: 1px solid rgba(216, 168, 77, 0.38);
 border-radius: 8px;
 padding: 16px;
 background: rgba(170, 52, 47, 0.76);
 box-shadow: 0 22px 70px rgba(0, 0, 0, 0.34);
 backdrop-filter: blur(12px);
}

.match-strip {
 position: relative;
 overflow: hidden;
 display: grid;
 grid-template-columns: minmax(0, 0.72fr) minmax(360px, 1fr);
 gap: clamp(24px, 6vw, 72px);
 align-items: center;
 background:
 radial-gradient(ellipse at 12% 18%, rgba(32, 160, 111, 0.34), transparent 30%),
 radial-gradient(ellipse at 80% 20%, rgba(216, 168, 77, 0.2), transparent 28%),
 radial-gradient(ellipse at 80% 88%, rgba(170, 52, 47, 0.34), transparent 34%),
 linear-gradient(90deg, #061f18 0%, #120d09 46%, #411816 100%);
}

.match-strip::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(135deg, transparent 0 48%, rgba(255, 247, 232, 0.06) 48% 50%, transparent 50% 100%),
 linear-gradient(rgba(255, 247, 232, 0.03) 1px, transparent 1px);
 background-size: 34px 34px, 100% 72px;
 mask-image: linear-gradient(90deg, transparent, #000 18%, transparent 78%);
}

.rugby-strip::after {
 content: "RUGBY NIGHTS";
 position: absolute;
 right: -2vw;
 bottom: -18px;
 color: rgba(255, 247, 232, 0.045);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 9.5rem;
 font-weight: 800;
 line-height: 0.8;
 pointer-events: none;
}

.match-strip > * {
 position: relative;
 z-index: 1;
}

.match-copy p:not(.eyebrow) {
 max-width: 600px;
 color: rgba(255, 247, 232, 0.78);
 font-size: 18px;
 line-height: 1.65;
}

.match-copy h2 {
 color: var(--cream);
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.54);
}

.rugby-meta {
 display: grid;
 gap: 10px;
 max-width: 650px;
 margin: 26px 0 18px;
}

.rugby-meta span {
 display: grid;
 grid-template-columns: 150px 1fr;
 gap: 12px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 12px 14px;
 background: rgba(255, 247, 232, 0.055);
 color: rgba(255, 247, 232, 0.74);
 font-weight: 800;
 backdrop-filter: blur(12px);
}

.rugby-meta strong {
 color: var(--gold);
 text-transform: uppercase;
}

.match-copy .button {
 margin-top: 10px;
}

.match-board {
 display: grid;
 gap: 14px;
}

.match-photo {
 position: relative;
 min-height: 360px;
 overflow: hidden;
 border: 1px solid rgba(216, 168, 77, 0.24);
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.match-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.match-photo::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, transparent 30%, rgba(18, 13, 9, 0.84));
}

.match-photo::before {
 content: "";
 position: absolute;
 z-index: 1;
 inset: 0;
 border: 1px solid rgba(216, 168, 77, 0.16);
 background:
 linear-gradient(90deg, transparent, rgba(216, 168, 77, 0.16), transparent),
 linear-gradient(180deg, rgba(255, 247, 232, 0.08), transparent 18%, transparent 82%, rgba(255, 247, 232, 0.08));
 opacity: 0.5;
 pointer-events: none;
}

.rugby-score-card {
 position: absolute;
 z-index: 2;
 top: 16px;
 left: 16px;
 width: min(260px, calc(100% - 32px));
 border: 1px solid rgba(216, 168, 77, 0.32);
 border-radius: 8px;
 padding: 15px;
 background: linear-gradient(135deg, rgba(6, 31, 24, 0.88), rgba(18, 13, 9, 0.76));
 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.32);
 backdrop-filter: blur(14px);
}

.rugby-score-card span {
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.rugby-score-card strong {
 display: block;
 margin: 4px 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 2.2rem;
 line-height: 0.95;
}

.rugby-score-card p {
 margin: 0;
 color: rgba(255, 247, 232, 0.74);
 font-size: 0.88rem;
 line-height: 1.35;
}

.match-photo-label {
 position: absolute;
 z-index: 1;
 right: 16px;
 bottom: 16px;
 left: 16px;
 display: flex;
 align-items: end;
 justify-content: space-between;
 gap: 16px;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(18, 13, 9, 0.68);
 backdrop-filter: blur(14px);
}

.match-photo-label span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.match-photo-label strong {
 color: var(--cream);
 font-size: clamp(22px, 3vw, 34px);
}

.scoreboard {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 10px;
}

.scoreboard article {
 border: 1px solid rgba(255, 247, 232, 0.2);
 border-radius: 8px;
 padding: 18px;
 background:
 linear-gradient(180deg, rgba(255, 247, 232, 0.065), rgba(255, 247, 232, 0.02)),
 rgba(0, 0, 0, 0.24);
 box-shadow: 0 14px 44px rgba(0, 0, 0, 0.14);
}

.scoreboard span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
}

.scoreboard strong {
 display: block;
 margin: 12px 0 8px;
 color: var(--cream);
 font-size: 19px;
 line-height: 1.12;
}

.scoreboard p {
 margin-bottom: 0;
 color: var(--muted);
 font-size: 14px;
 line-height: 1.5;
}

.locations,
.menu-page {
 padding-top: clamp(32px, 5vw, 58px);
 opacity: 1 !important;
 transform: none !important;
 background:
 radial-gradient(circle at 82% 10%, rgba(216, 168, 77, 0.18), transparent 28%),
 radial-gradient(circle at 12% 82%, rgba(15, 90, 63, 0.26), transparent 30%),
 linear-gradient(180deg, #17100c, #0f0b08);
}

.menu-page .menu-jump,
.menu-page .menu-category {
 opacity: 1 !important;
 transform: none !important;
}

.locations {
 position: relative;
 overflow: hidden;
}

.locations::before {
 content: "";
 position: absolute;
 inset: auto 0 0;
 height: 42%;
 pointer-events: none;
 background: linear-gradient(180deg, transparent, rgba(216, 168, 77, 0.08));
}

.locations > * {
 position: relative;
 z-index: 1;
}

.location-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 18px;
}

.location-card {
 position: relative;
 overflow: hidden;
 transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}

.location-card:hover {
 transform: translateY(-4px);
 border-color: rgba(216, 168, 77, 0.36);
 background: rgba(255, 247, 232, 0.075);
}

.location-card img {
 aspect-ratio: 16 / 10;
 transition: transform 0.4s ease;
}

.location-card:hover img {
 transform: scale(1.035);
}

.location-card div {
 padding: 26px;
}

.location-label {
 color: var(--green-bright);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.location-points {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin: 20px 0 24px;
 padding: 0;
 list-style: none;
}

.location-points li {
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 999px;
 padding: 8px 11px;
 background: rgba(255, 247, 232, 0.06);
 color: var(--cream);
 font-size: 12px;
 font-weight: 900;
}

.location-card a,
.wide-location a {
 width: fit-content;
}

.location-card a {
 display: inline-flex;
 min-height: 42px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.42);
 border-radius: 999px;
 padding: 10px 14px;
 background: rgba(216, 168, 77, 0.08);
 color: var(--gold);
 font-weight: 900;
 transition: background 0.2s ease, color 0.2s ease;
}

.location-card a:hover {
 background: var(--gold);
 color: #25170c;
}

.visit-cta {
 position: relative;
 display: grid;
 min-height: min(760px, 92svh);
 align-items: end;
 overflow: hidden;
 padding: clamp(86px, 12vw, 150px) clamp(18px, 5vw, 72px) clamp(34px, 5vw, 64px);
 background: #0b0806;
}

.visit-cta > img,
.visit-overlay {
 position: absolute;
 inset: 0;
}

.visit-cta > img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.visit-overlay {
 background:
 linear-gradient(90deg, rgba(18, 13, 9, 0.92) 0%, rgba(18, 13, 9, 0.62) 42%, rgba(18, 13, 9, 0.2) 100%),
 linear-gradient(0deg, rgba(18, 13, 9, 0.96) 0%, rgba(18, 13, 9, 0.18) 54%, rgba(18, 13, 9, 0.64) 100%);
}

.visit-content,
.visit-locations {
 position: relative;
 z-index: 1;
}

.visit-content {
 max-width: 820px;
}

.visit-content h2 {
 margin-bottom: 22px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(48px, 8vw, 104px);
 line-height: 0.9;
}

.visit-content > p:last-of-type {
 max-width: 620px;
 color: rgba(255, 247, 232, 0.82);
 font-size: clamp(18px, 1.7vw, 23px);
 line-height: 1.55;
}

.visit-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 28px;
}

.visit-locations {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 12px;
 width: min(780px, 100%);
 margin-top: clamp(42px, 8vw, 90px);
}

.visit-locations span {
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 padding: 16px;
 background: rgba(18, 13, 9, 0.62);
 color: var(--muted);
 font-weight: 700;
 backdrop-filter: blur(14px);
}

.visit-locations strong {
 display: block;
 margin-bottom: 4px;
 color: var(--cream);
 font-size: 18px;
}

.page-hero {
 position: relative;
 display: grid;
 min-height: 78svh;
 grid-template-columns: minmax(0, 1fr) minmax(320px, 0.86fr);
 gap: clamp(24px, 6vw, 72px);
 align-items: end;
 padding: 132px clamp(18px, 5vw, 72px) clamp(44px, 7vw, 92px);
 background:
 radial-gradient(circle at 80% 10%, rgba(216, 168, 77, 0.18), transparent 28%),
 linear-gradient(135deg, #0d0907, #23130c 64%, #0d2d21);
}

.page-hero img {
 min-height: 460px;
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.page-hero p {
 font-size: 18px;
}

.menu-hero {
 position: relative;
 display: grid;
 min-height: 390px;
 align-items: center;
 overflow: hidden;
 padding: 118px clamp(18px, 5vw, 72px) 42px;
 background: #0b0806;
 isolation: isolate;
}

.menu-hero > img,
.menu-hero-overlay {
 position: absolute;
 inset: 0;
}

.menu-hero > img {
 z-index: -2;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center 48%;
 transform: scale(1.04);
 animation: slow-zoom 18s ease-out forwards;
}

.menu-hero-overlay {
 z-index: -1;
 background:
 radial-gradient(circle at 68% 34%, rgba(216, 168, 77, 0.22), transparent 28%),
 linear-gradient(90deg, rgba(11, 8, 6, 0.94) 0%, rgba(11, 8, 6, 0.68) 42%, rgba(11, 8, 6, 0.18) 100%),
 linear-gradient(0deg, rgba(11, 8, 6, 0.98) 0%, rgba(11, 8, 6, 0.18) 48%, rgba(11, 8, 6, 0.58) 100%);
}

.menu-hero-copy {
 max-width: 980px;
}

.menu-hero-copy h1 {
 max-width: 900px;
 margin-bottom: 24px;
 font-size: clamp(46px, 7.5vw, 108px);
 line-height: 0.9;
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.64);
}

.menu-hero-copy > p:not(.eyebrow) {
 max-width: 690px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(18px, 1.7vw, 24px);
 font-weight: 800;
 line-height: 1.25;
}

.menu-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 30px;
}

.menu-category + .menu-category {
 margin-top: 70px;
}

.menu-jump {
 position: sticky;
 z-index: 5;
 top: 92px;
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-bottom: clamp(34px, 5vw, 58px);
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 10px;
 background: rgba(18, 13, 9, 0.78);
 box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26);
 backdrop-filter: blur(18px);
}

.menu-jump a {
 display: inline-flex;
 min-height: 38px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 999px;
 padding: 9px 13px;
 color: rgba(255, 247, 232, 0.82);
 font-size: 13px;
 font-weight: 900;
 transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.menu-jump a:hover {
 border-color: rgba(216, 168, 77, 0.44);
 background: rgba(216, 168, 77, 0.13);
 color: var(--cream);
 transform: translateY(-1px);
}

.menu-category h2 {
 margin-bottom: 24px;
}

.menu-category-head {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(280px, 0.56fr);
 gap: clamp(20px, 5vw, 70px);
 align-items: end;
 margin-bottom: 28px;
}

.menu-inclusion-note {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 gap: 10px 24px;
 margin: 0 0 28px;
 border: 1px solid rgba(216, 168, 77, 0.38);
 border-radius: 8px;
 padding: 16px 18px;
 background: rgba(216, 168, 77, 0.1);
 color: var(--wood);
}

.menu-inclusion-note strong {
 color: var(--dark);
}

.menu-inclusion-note span {
 font-weight: 700;
}

.formula-or {
 color: var(--green);
 font-style: normal;
 font-weight: 900;
}

.kids-menu-choices {
 line-height: 1.75;
}

.kids-menu-choices b {
 color: var(--green);
 font-style: normal;
 font-weight: 900;
}

.group-formulas {
 scroll-margin-top: 130px;
}

.group-formula-intro {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 12px 28px;
 margin-bottom: 42px;
 border: 1px solid rgba(32, 160, 111, 0.3);
 border-radius: 10px;
 padding: 18px 20px;
 background:
 linear-gradient(135deg, rgba(32, 160, 111, 0.12), rgba(18, 13, 9, 0.3)),
 rgba(18, 13, 9, 0.72);
}

.group-formula-intro strong {
 color: var(--green-bright);
 font-size: 19px;
}

.group-formula-intro span {
 color: var(--muted);
 font-weight: 700;
}

.group-formula-intro a {
 margin-left: auto;
 color: var(--gold);
 font-weight: 900;
}

.group-formula-heading {
 display: flex;
 justify-content: space-between;
 gap: 30px;
 align-items: end;
 margin: 34px 0 20px;
}

.group-formula-heading h3 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(34px, 5vw, 64px);
 line-height: 0.95;
}

.group-formula-heading > p {
 max-width: 430px;
 margin: 0;
 color: var(--muted);
 line-height: 1.6;
}

.group-formula-heading-tapas {
 margin-top: clamp(52px, 8vw, 90px);
}

.group-formula-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 grid-auto-rows: 1fr;
 gap: 16px;
}

.group-formula-card {
 display: flex;
 flex-direction: column;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 12px;
 padding: clamp(20px, 3vw, 30px);
 background:
 radial-gradient(circle at 100% 0%, rgba(216, 168, 77, 0.14), transparent 34%),
 linear-gradient(135deg, rgba(255, 247, 232, 0.065), rgba(255, 247, 232, 0.02)),
 rgba(18, 13, 9, 0.74);
 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
 transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.group-formula-card:hover {
 border-color: rgba(216, 168, 77, 0.42);
 transform: translateY(-4px);
}

.group-formula-card-premium {
 border-color: rgba(216, 168, 77, 0.46);
 background:
 radial-gradient(circle at 100% 0%, rgba(216, 168, 77, 0.22), transparent 38%),
 linear-gradient(135deg, rgba(216, 168, 77, 0.09), rgba(15, 90, 63, 0.045)),
 rgba(18, 13, 9, 0.82);
}

.group-formula-card header {
 display: grid;
 grid-template-columns: 1fr auto;
 gap: 2px 18px;
 align-items: end;
 border-bottom: 1px solid rgba(255, 247, 232, 0.14);
 padding-bottom: 16px;
}

.group-formula-card header span {
 color: var(--green-bright);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.group-formula-card header strong {
 grid-column: 2;
 grid-row: 1 / span 2;
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 5vw, 68px);
 line-height: 0.8;
}

.group-formula-card header small {
 color: var(--muted);
 font-weight: 700;
}

.group-formula-card h4 {
 margin: 22px 0 18px;
 color: var(--cream);
 font-size: 21px;
}

.group-course + .group-course {
 margin-top: 16px;
}

.group-course:last-of-type {
 margin-bottom: 22px;
}

.group-course b {
 color: var(--green-bright);
 font-size: 12px;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.group-course p {
 margin: 5px 0 0;
 color: var(--muted);
 line-height: 1.55;
}

.group-course p strong {
 color: var(--gold);
 font-weight: 900;
}

.group-drinks {
 margin: auto 0 0;
 border-radius: 7px;
 padding: 11px 13px;
 border: 1px solid rgba(32, 160, 111, 0.2);
 background: rgba(32, 160, 111, 0.1);
 color: var(--green-bright);
 font-weight: 900;
}

.group-formula-grid-tapas {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.group-tapas-card ul {
 display: grid;
 gap: 13px;
 margin: 24px 0 0;
 padding-left: 20px;
 color: var(--muted);
 line-height: 1.55;
}

.group-tapas-card li::marker {
 color: var(--green-bright);
}

.group-formula-cta {
 display: flex;
 justify-content: space-between;
 gap: 28px;
 align-items: center;
 margin-top: 20px;
 border-radius: 12px;
 padding: clamp(22px, 4vw, 36px);
 background: var(--dark);
 color: var(--cream);
}

.group-formula-cta div {
 display: grid;
 gap: 6px;
}

.group-formula-cta span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.group-formula-cta strong {
 max-width: 680px;
 font-size: clamp(20px, 2.4vw, 30px);
 line-height: 1.25;
}

.group-formula-cta p {
 margin: 4px 0 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.5;
}

.call-advice-strip {
 position: relative;
 z-index: 2;
 display: grid;
 grid-template-columns: auto minmax(0, 1fr) auto;
 gap: 14px clamp(22px, 4vw, 54px);
 align-items: center;
 border-top: 1px solid rgba(216, 168, 77, 0.32);
 border-bottom: 1px solid rgba(216, 168, 77, 0.24);
 padding: 18px clamp(18px, 5vw, 72px);
 background:
 radial-gradient(circle at 8% 50%, rgba(216, 168, 77, 0.14), transparent 24%),
 linear-gradient(90deg, #17100b, #0b2117 58%, #120d09);
 box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}

.call-advice-strip strong {
 color: var(--cream);
 font-size: 16px;
}

.call-advice-strip span {
 color: var(--muted);
 font-size: 14px;
 line-height: 1.55;
}

.call-advice-strip a {
 display: inline-flex;
 min-height: 42px;
 align-items: center;
 justify-content: center;
 border: 1px solid rgba(216, 168, 77, 0.4);
 border-radius: 999px;
 padding: 10px 15px;
 background: rgba(216, 168, 77, 0.11);
 color: var(--gold);
 font-weight: 900;
 white-space: nowrap;
 transition: background 0.2s ease, transform 0.2s ease;
}

.call-advice-strip a:hover {
 background: rgba(216, 168, 77, 0.2);
 transform: translateY(-2px);
}

@media (max-width: 760px) {
 .group-formula-heading,
 .group-formula-cta {
 align-items: stretch;
 flex-direction: column;
 }

 .group-formula-grid,
 .group-formula-grid-tapas {
 grid-template-columns: 1fr;
 grid-auto-rows: auto;
 }

 .group-formula-intro a {
 width: 100%;
 margin-left: 0;
 overflow-wrap: anywhere;
 }

 .group-formula-cta .button {
 width: 100%;
 }

 .call-advice-strip {
 grid-template-columns: 1fr;
 }

 .call-advice-strip a {
 width: 100%;
 }
}

.menu-category-head .eyebrow {
 grid-column: 1 / -1;
 margin-bottom: -6px;
}

.menu-category-head h2 {
 margin-bottom: 0;
}

.menu-category-head p:last-child {
 color: var(--muted);
 font-size: 17px;
 line-height: 1.65;
}

.signature-category {
 position: relative;
}

.signature-category::before {
 content: "";
 position: absolute;
 inset: -34px -28px auto auto;
 width: 180px;
 height: 180px;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 50%;
 pointer-events: none;
}

.dish-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dish-grid.two {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dish-grid article {
 overflow: hidden;
}

.dish-grid img {
 aspect-ratio: 16 / 11;
}

.dish-grid article h3,
.dish-grid article p,
.dish-grid article span {
 margin-left: 20px;
 margin-right: 20px;
}

.dish-grid article span {
 display: block;
 margin-bottom: 22px;
 color: var(--gold);
 font-weight: 900;
}

.signature-grid {
 grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.72fr);
 align-items: stretch;
}

.signature-card {
 position: relative;
 min-height: 420px;
}

.signature-card-large {
 grid-row: span 2;
 min-height: 680px;
}

.signature-card img {
 aspect-ratio: auto;
 height: 100%;
 min-height: inherit;
 filter: saturate(1.06) contrast(1.02);
 transition: transform 0.45s ease;
}

.signature-card:hover img {
 transform: scale(1.035);
}

.signature-card::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, transparent 22%, rgba(18, 13, 9, 0.22) 52%, rgba(18, 13, 9, 0.9) 100%);
}

.signature-card > div {
 position: absolute;
 z-index: 1;
 right: 18px;
 bottom: 18px;
 left: 18px;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 18px;
 background: rgba(18, 13, 9, 0.68);
 backdrop-filter: blur(14px);
}

.signature-card h3,
.signature-card p,
.signature-card strong,
.signature-card .dish-kicker {
 margin-left: 0;
 margin-right: 0;
}

.signature-card h3 {
 margin-top: 10px;
}

.signature-card p {
 max-width: 520px;
}

.signature-card strong {
 display: inline-flex;
 min-height: 38px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.42);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(216, 168, 77, 0.12);
 color: var(--gold);
 font-weight: 900;
}

.signature-card .dish-kicker {
 margin-bottom: 0;
 color: var(--green-bright);
 font-size: 12px;
 text-transform: uppercase;
}

.price-list {
 padding: 10px;
}

.price-list p {
 display: flex;
 justify-content: space-between;
 gap: 18px;
 margin: 0;
 border-bottom: 1px solid var(--line);
 padding: 18px;
}

.price-list p:last-child {
 border-bottom: 0;
}

.price-list span {
 color: var(--gold);
 font-weight: 900;
}

.menu-list {
 display: grid;
 gap: 10px;
}

.menu-dish-link {
 display: grid;
 grid-template-columns: 112px minmax(0, 1fr);
 gap: 0;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
 transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.menu-dish-link:hover {
 border-color: rgba(216, 168, 77, 0.38);
 background: rgba(255, 247, 232, 0.07);
 transform: translateY(-2px);
}

.menu-dish-thumb {
 width: 112px;
 height: 100%;
 min-height: 116px;
 object-fit: cover;
}

.menu-list-feature {
 margin-top: 18px;
}

.menu-columns {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.menu-list p {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 gap: 8px 16px;
 align-items: start;
 margin: 0;
 border: 0;
 border-radius: 0;
 padding: 16px;
 background: transparent;
}

.menu-list > p {
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
}

.menu-dish-link p {
 min-height: 100%;
}

.menu-drink-link {
 grid-template-columns: 112px minmax(0, 1fr);
 min-height: 116px;
 height: 116px;
}

.menu-drink-thumb {
 width: 112px;
 height: 116px;
 min-height: 116px;
 object-fit: cover;
 object-position: center 44%;
}

.drink-brand-panel {
 position: relative;
 display: flex;
 grid-column: auto;
 grid-row: auto;
 min-height: 100%;
 align-items: center;
 justify-content: center;
 border-right: 1px solid rgba(42, 156, 111, 0.32);
 border-left: 1px solid rgba(42, 156, 111, 0.18);
 padding: 10px 12px;
 color: var(--cream);
 font-weight: 900;
 white-space: normal;
}

.drink-brand-logo-img {
 display: block;
 width: min(100%, 104px);
 height: auto;
 max-height: 48px;
 object-fit: contain;
 filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.24));
}

.menu-drink-link p {
 align-content: center;
 grid-template-columns: minmax(0, 1fr) auto;
 padding-right: 18px;
}

.drink-title-line {
 display: block;
 grid-column: 1;
 grid-row: 1;
 min-width: 0;
}

.drink-title-line > strong {
 min-width: 0;
}

.drink-title-logos {
 display: flex;
 grid-column: 2;
 grid-row: 1 / span 2;
 width: 178px;
 max-width: 178px;
 align-items: center;
 justify-content: center;
 gap: 7px;
 align-self: center;
 font-style: normal;
}

.drink-title-logo {
 display: block;
 width: 54px;
 height: 42px;
 max-width: 54px;
 max-height: 42px;
 flex: 0 0 54px;
 object-fit: contain;
 filter: none;
}

.drink-title-logos[data-logo-count="1"] .drink-title-logo {
 width: 138px;
 max-width: 138px;
 flex-basis: 138px;
}

.menu-drink-link[data-brand="coca-cola"] .drink-title-logos {
 width: 178px;
 max-width: 178px;
}

.menu-drink-link[data-brand="coca-cola"] .drink-title-logo {
 width: 150px;
 max-width: 150px;
 flex-basis: 150px;
}

.drink-title-logos[data-logo-count="2"] .drink-title-logo {
 flex-basis: 68px;
 max-width: 68px;
}

.drink-title-logos[data-logo-count="3"] .drink-title-logo {
 flex-basis: 48px;
 max-width: 48px;
}

.menu-drink-link p > em {
 grid-column: 1;
 grid-row: 2;
}

.menu-drink-link p > span:last-child {
 display: grid;
 min-width: 0;
 min-height: 0;
 place-items: center;
 border: 1px solid rgba(216, 168, 77, 0.24);
 border-radius: 999px;
 padding: 7px 10px;
 background: rgba(216, 168, 77, 0.1);
 box-shadow: none;
 text-align: center;
}

.menu-list strong {
 color: var(--cream);
 font-size: 16px;
 text-transform: uppercase;
}

.menu-list em {
 grid-column: 1;
 color: var(--muted);
 font-size: 14px;
 font-style: normal;
 line-height: 1.45;
}

.menu-list span {
 grid-column: 2;
 grid-row: 1 / span 2;
 color: var(--gold);
 font-weight: 900;
 white-space: nowrap;
}

.menu-drink-link .drink-brand-panel,
.menu-drink-link .drink-brand-logo-img {
 grid-column: auto;
 grid-row: auto;
}

.menu-drink-link .drink-brand-panel {
 white-space: normal;
}

.menu-drink-link p > span:last-child {
 grid-column: 3;
 grid-row: 1 / span 2;
}

.signature-card.is-clickable-dish {
 cursor: pointer;
}

.signature-card.is-clickable-dish:focus-visible,
.menu-pick-feature.is-clickable-dish:focus-visible,
.menu-pick-row.is-clickable-dish:focus-visible,
.menu-dish-link:focus-visible {
 outline: 3px solid rgba(216, 168, 77, 0.55);
 outline-offset: 4px;
}

.menu-pick-feature.is-clickable-dish,
.menu-pick-row.is-clickable-dish {
 cursor: pointer;
}

.dish-hero {
 display: grid;
 min-height: 100svh;
 grid-template-columns: minmax(0, 0.82fr) minmax(360px, 0.9fr);
 gap: clamp(28px, 6vw, 82px);
 align-items: center;
 padding: 132px clamp(18px, 5vw, 72px) clamp(42px, 7vw, 92px);
 background:
 radial-gradient(circle at 78% 24%, rgba(216, 168, 77, 0.18), transparent 28%),
 linear-gradient(135deg, #0d0907, #1a100b 58%, #0d2d21);
}

.back-link {
 display: inline-flex;
 width: fit-content;
 min-height: 40px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.22);
 border-radius: 999px;
 padding: 9px 14px;
 color: var(--cream);
 font-size: 13px;
 font-weight: 900;
}

.dish-hero h1 {
 margin: 18px 0 18px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(58px, 10vw, 138px);
 line-height: 0.84;
}

.dish-hero-copy > p:not(.eyebrow) {
 max-width: 720px;
 color: rgba(255, 247, 232, 0.82);
 font-size: clamp(18px, 1.8vw, 25px);
 font-weight: 750;
 line-height: 1.36;
}

.dish-price {
 display: inline-flex;
 min-height: 44px;
 align-items: center;
 margin-top: 18px;
 border: 1px solid rgba(216, 168, 77, 0.42);
 border-radius: 999px;
 padding: 10px 16px;
 background: rgba(216, 168, 77, 0.14);
 color: var(--gold);
 font-size: 20px;
 font-weight: 900;
}

.dish-main-photo,
.dish-secondary-photo {
 overflow: hidden;
 margin: 0;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.dish-main-photo img,
.dish-secondary-photo img {
 width: 100%;
 height: 100%;
 min-height: 430px;
 object-fit: cover;
}

.dish-composition {
 display: grid;
 grid-template-columns: minmax(0, 0.76fr) minmax(320px, 0.86fr);
 gap: clamp(28px, 6vw, 76px);
 align-items: center;
 background:
 radial-gradient(circle at 12% 20%, rgba(15, 90, 63, 0.24), transparent 28%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.dish-composition h2,
.ingredient-board-head h2,
.dish-not-found h1 {
 margin: 0 0 18px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 7vw, 94px);
 line-height: 0.9;
}

.dish-composition-copy > p:not(.eyebrow) {
 max-width: 620px;
 color: var(--muted);
 line-height: 1.65;
}

.dish-composition ul {
 display: grid;
 gap: 10px;
 margin: 28px 0 0;
 padding: 0;
 list-style: none;
}

.dish-composition li {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(255, 247, 232, 0.045);
 color: var(--cream);
 font-weight: 850;
}

.ingredient-board-section {
 position: relative;
 overflow: hidden;
 background:
 radial-gradient(circle at 12% 18%, rgba(15, 90, 63, 0.22), transparent 28%),
 radial-gradient(circle at 88% 18%, rgba(216, 168, 77, 0.14), transparent 28%),
 linear-gradient(180deg, #0f0b08, #140e0a);
}

.ingredient-board-head {
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(260px, 0.38fr);
 gap: clamp(20px, 5vw, 64px);
 align-items: end;
 margin-bottom: clamp(28px, 5vw, 54px);
}

.ingredient-board {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 14px;
}

.ingredient-tile {
 min-height: 280px;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 0;
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.075), rgba(255, 247, 232, 0.025)),
 rgba(18, 13, 9, 0.58);
 box-shadow: 0 18px 58px rgba(0, 0, 0, 0.16);
}

.ingredient-tile span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
}

.ingredient-tile strong {
 display: block;
 margin: 12px 0 10px;
 color: var(--cream);
 font-size: 21px;
 line-height: 1.1;
}

.ingredient-tile p {
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.55;
}

.dish-not-found {
 min-height: 100svh;
 padding-top: 160px;
}

/* Dish detail v2 */
.dish-detail .dish-hero {
 position: relative;
 grid-template-columns: minmax(0, 0.92fr) minmax(340px, 0.64fr);
 min-height: 92svh;
 overflow: hidden;
 isolation: isolate;
}

.dish-hero-bg,
.dish-hero-shade {
 position: absolute;
 inset: 0;
}

.dish-hero-bg {
 z-index: -3;
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(1.05) contrast(1.06);
 transform: scale(1.04);
}

.dish-hero-shade {
 z-index: -2;
 background:
 radial-gradient(circle at 78% 40%, rgba(216, 168, 77, 0.2), transparent 28%),
 linear-gradient(90deg, rgba(10, 7, 5, 0.94) 0%, rgba(10, 7, 5, 0.72) 45%, rgba(10, 7, 5, 0.3) 100%),
 linear-gradient(0deg, rgba(10, 7, 5, 0.98) 0%, rgba(10, 7, 5, 0.24) 46%, rgba(10, 7, 5, 0.76) 100%);
}

.dish-detail .dish-hero-copy {
 position: relative;
 z-index: 1;
 max-width: 860px;
}

.dish-detail .back-link {
 margin-bottom: 26px;
 background: rgba(18, 13, 9, 0.5);
 backdrop-filter: blur(12px);
}

.dish-detail .dish-hero h1 {
 max-width: 820px;
 font-size: clamp(64px, 12vw, 156px);
 text-shadow: 0 28px 92px rgba(0, 0, 0, 0.72);
}

.dish-detail .dish-hero-copy > p:not(.eyebrow) {
 max-width: 640px;
 color: rgba(255, 247, 232, 0.9);
}

.dish-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 align-items: center;
 margin-top: 28px;
}

.dish-detail .dish-price {
 margin-top: 0;
 background: linear-gradient(135deg, rgba(216, 168, 77, 0.22), rgba(255, 247, 232, 0.08));
 backdrop-filter: blur(12px);
}

.dish-feature-panel {
 position: relative;
 z-index: 1;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 background: rgba(18, 13, 9, 0.48);
 box-shadow: var(--shadow);
 backdrop-filter: blur(18px);
}

.dish-feature-panel .dish-main-photo {
 border: 0;
 border-radius: 0;
 box-shadow: none;
}

.dish-feature-panel .dish-main-photo img {
 min-height: 420px;
}

.dish-feature-meta {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 background: rgba(255, 247, 232, 0.12);
}

.dish-feature-meta span {
 display: grid;
 gap: 4px;
 padding: 18px;
 background: rgba(18, 13, 9, 0.86);
 color: var(--muted);
 line-height: 1.35;
}

.dish-feature-meta strong {
 color: var(--cream);
 font-size: 18px;
}

.dish-detail .dish-composition {
 grid-template-columns: minmax(0, 0.72fr) minmax(340px, 0.72fr);
}

.dish-ingredient-preview {
 display: grid;
 gap: 14px;
}

.dish-preview-note {
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 8px;
 padding: 20px;
 background:
 linear-gradient(145deg, rgba(216, 168, 77, 0.12), rgba(255, 247, 232, 0.035)),
 rgba(18, 13, 9, 0.58);
}

.dish-preview-note span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.dish-preview-note strong {
 display: block;
 margin: 8px 0;
 color: var(--cream);
 font-size: 24px;
 line-height: 1.1;
}

.dish-preview-note p {
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.55;
}

.dish-detail .dish-secondary-photo img {
 min-height: 360px;
}

.dish-detail .dish-composition li {
 display: flex;
 align-items: center;
 gap: 12px;
}

.dish-detail .dish-composition li::before {
 content: "";
 flex: 0 0 auto;
 width: 8px;
 height: 8px;
 border-radius: 999px;
 background: var(--gold);
 box-shadow: 0 0 18px rgba(216, 168, 77, 0.52);
}

.dish-detail .ingredient-board {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dish-detail .ingredient-tile {
 position: relative;
 overflow: hidden;
 min-height: 300px;
 padding: 0;
}

.ingredient-thumb {
 position: relative;
 height: 144px;
 background-position: center;
 background-size: cover;
 filter: saturate(1.05) contrast(1.08);
}

.ingredient-thumb::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, transparent, rgba(18, 13, 9, 0.72));
}

.ingredient-thumb span {
 position: absolute;
 z-index: 1;
 right: 14px;
 bottom: 12px;
 display: inline-flex;
 width: 42px;
 height: 42px;
 align-items: center;
 justify-content: center;
 border: 1px solid rgba(255, 247, 232, 0.34);
 border-radius: 999px;
 background: rgba(18, 13, 9, 0.58);
 color: var(--gold);
 font-size: 13px;
 font-weight: 900;
 backdrop-filter: blur(10px);
}

.ingredient-body {
 padding: 18px;
}

.ingredient-body small {
 display: inline-flex;
 margin-bottom: 10px;
 border: 1px solid rgba(216, 168, 77, 0.24);
 border-radius: 999px;
 padding: 6px 10px;
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.ingredient-body strong {
 min-height: 46px;
}

.dish-detail .ingredient-tile p {
 margin-top: 10px;
}

[data-burger-exploded][hidden] {
 display: none;
}

.burger-exploded-section {
 display: grid;
 grid-template-columns: minmax(260px, 0.42fr) minmax(0, 0.88fr);
 gap: clamp(28px, 6vw, 76px);
 align-items: start;
 background:
 radial-gradient(circle at 76% 18%, rgba(255, 247, 232, 0.09), transparent 28%),
 linear-gradient(180deg, #fffaf1, #f4eadb);
 color: #21150d;
}

.burger-exploded-copy {
 position: sticky;
 top: 118px;
}

.burger-exploded-copy .eyebrow {
 color: #7b4a17;
}

.burger-exploded-copy h2 {
 margin: 0 0 18px;
 color: #21150d;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 6vw, 88px);
 line-height: 0.9;
}

.burger-exploded-copy p:not(.eyebrow) {
 color: rgba(33, 21, 13, 0.72);
 line-height: 1.65;
}

.burger-exploded-stage {
 display: grid;
 grid-template-columns: minmax(280px, 0.68fr) minmax(220px, 0.42fr);
 gap: clamp(18px, 4vw, 42px);
 align-items: center;
 min-height: auto;
 padding: clamp(24px, 5vw, 54px);
 border: 1px solid rgba(76, 42, 22, 0.12);
 border-radius: 8px;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.46)),
 radial-gradient(circle at 50% 45%, rgba(216, 168, 77, 0.14), transparent 38%);
 box-shadow: 0 24px 80px rgba(76, 42, 22, 0.14);
}

.burger-exploded-photo {
 overflow: hidden;
 margin: 0;
 border: 1px solid rgba(76, 42, 22, 0.1);
 border-radius: 8px;
 background: #fff;
 box-shadow: 0 24px 70px rgba(76, 42, 22, 0.16);
}

.burger-exploded-photo img {
 width: 100%;
 height: auto;
 max-height: 980px;
 object-fit: contain;
 background: #fff;
}

.burger-layer-list {
 display: grid;
 gap: 10px;
}

.burger-layer-row {
 display: block;
}

.burger-layer-visual {
 position: relative;
 display: grid;
 min-height: 82px;
 place-items: center;
}

.burger-layer-visual::after {
 content: "";
 position: absolute;
 bottom: 4px;
 width: min(390px, 72%);
 height: 18px;
 border-radius: 999px;
 background: rgba(76, 42, 22, 0.11);
 filter: blur(14px);
}

.burger-art {
 position: relative;
 z-index: 1;
 display: block;
 width: min(420px, 92%);
 height: 70px;
 filter: drop-shadow(0 18px 18px rgba(76, 42, 22, 0.22));
}

.burger-layer-label {
 border: 1px solid rgba(76, 42, 22, 0.12);
 border-radius: 8px;
 padding: 14px;
 background: rgba(255, 255, 255, 0.62);
}

.burger-layer-label span {
 color: #a1621e;
 font-size: 12px;
 font-weight: 900;
}

.burger-layer-label strong {
 display: block;
 margin: 6px 0;
 color: #21150d;
 font-size: clamp(18px, 2vw, 25px);
 line-height: 1.08;
}

.burger-layer-label p {
 margin: 0;
 color: rgba(33, 21, 13, 0.66);
 line-height: 1.45;
}

.burger-art-bun-top {
 height: 88px;
 border-radius: 58% 58% 30% 30% / 78% 78% 28% 28%;
 background:
 radial-gradient(circle at 22% 32%, #fff2c6 0 3px, transparent 4px),
 radial-gradient(circle at 38% 20%, #fff2c6 0 3px, transparent 4px),
 radial-gradient(circle at 58% 28%, #fff2c6 0 3px, transparent 4px),
 radial-gradient(circle at 72% 18%, #fff2c6 0 3px, transparent 4px),
 linear-gradient(180deg, #d99037 0%, #b55f1d 72%, #f0c07a 100%);
}

.burger-art-bun-bottom {
 height: 58px;
 border-radius: 24% 24% 50% 50% / 26% 26% 62% 62%;
 background: linear-gradient(180deg, #f0c07a, #c8792d 62%, #a9551c);
}

.burger-art-bacon,
.burger-art-ham {
 height: 34px;
 border-radius: 44% 56% 42% 58% / 62% 38% 58% 42%;
 background:
 repeating-linear-gradient(110deg, rgba(255, 223, 164, 0.55) 0 12px, transparent 12px 26px),
 linear-gradient(90deg, #8d1f16, #d34b2d 28%, #8d1f16 54%, #ec764c 74%, #8d1f16);
 transform: rotate(-1deg);
}

.burger-art-ham {
 background: linear-gradient(90deg, #bd3d36, #f0a08d 45%, #b8322d);
}

.burger-art-salad {
 height: 54px;
 border-radius: 45% 55% 42% 58% / 54% 46% 58% 42%;
 background:
 radial-gradient(circle at 18% 50%, #9dea55 0 22px, transparent 23px),
 radial-gradient(circle at 34% 45%, #5fc421 0 28px, transparent 29px),
 radial-gradient(circle at 55% 55%, #8de542 0 26px, transparent 27px),
 radial-gradient(circle at 76% 42%, #62c820 0 24px, transparent 25px),
 linear-gradient(90deg, #44a817, #98e84c);
}

.burger-art-beef,
.burger-art-double-beef {
 height: 58px;
 border-radius: 48% 52% 43% 57% / 56% 44% 52% 48%;
 background:
 radial-gradient(circle at 20% 30%, rgba(255, 210, 150, 0.55) 0 5px, transparent 6px),
 radial-gradient(circle at 44% 64%, rgba(36, 16, 8, 0.35) 0 8px, transparent 9px),
 radial-gradient(circle at 72% 36%, rgba(255, 210, 150, 0.45) 0 5px, transparent 6px),
 linear-gradient(180deg, #7b3a21, #4a2013 58%, #2f130b);
}

.burger-art-double-beef {
 height: 72px;
 box-shadow: inset 0 -14px 0 rgba(20, 8, 5, 0.26);
}

.burger-art-cheddar,
.burger-art-raclette,
.burger-art-ossau {
 height: 34px;
 clip-path: polygon(0 20%, 16% 12%, 28% 32%, 42% 18%, 56% 30%, 72% 14%, 100% 24%, 100% 78%, 0 84%);
 background: linear-gradient(90deg, #f3b323, #ffdb63 44%, #ef9e16);
}

.burger-art-raclette {
 background: linear-gradient(90deg, #ffe58d, #f7c857 54%, #e8a63a);
}

.burger-art-ossau {
 background: linear-gradient(90deg, #f6d078, #f3b64a 55%, #d89325);
}

.burger-art-mushrooms {
 height: 46px;
 background:
 radial-gradient(ellipse at 20% 54%, #9d6c47 0 28px, transparent 29px),
 radial-gradient(ellipse at 42% 45%, #c09a71 0 30px, transparent 31px),
 radial-gradient(ellipse at 64% 55%, #8a5638 0 26px, transparent 27px),
 radial-gradient(ellipse at 82% 46%, #b48258 0 24px, transparent 25px);
}

.burger-art-rosti {
 height: 48px;
 border-radius: 999px;
 background:
 repeating-linear-gradient(18deg, rgba(116, 65, 16, 0.22) 0 5px, transparent 5px 12px),
 linear-gradient(180deg, #e0a338, #a96b1d);
}

.burger-art-onions,
.burger-art-pickles {
 height: 36px;
 background:
 radial-gradient(ellipse at 25% 50%, #8d4d9e 0 22px, transparent 23px),
 radial-gradient(ellipse at 45% 52%, #c99ad5 0 20px, transparent 21px),
 radial-gradient(ellipse at 67% 48%, #8d4d9e 0 22px, transparent 23px);
}

.burger-art-pickles {
 background:
 radial-gradient(ellipse at 24% 50%, #84b92e 0 24px, transparent 25px),
 radial-gradient(ellipse at 50% 50%, #c9e46f 0 22px, transparent 23px),
 radial-gradient(ellipse at 74% 50%, #79aa25 0 24px, transparent 25px);
}

.burger-art-eggplant {
 height: 46px;
 background:
 radial-gradient(ellipse at 28% 50%, #49215d 0 38px, transparent 39px),
 radial-gradient(ellipse at 58% 50%, #6d3d86 0 40px, transparent 41px),
 radial-gradient(ellipse at 78% 50%, #321643 0 32px, transparent 33px);
}

.burger-art-crispy-chicken {
 height: 58px;
 border-radius: 999px;
 background:
 radial-gradient(circle at 18% 36%, #fff0b1 0 7px, transparent 8px),
 radial-gradient(circle at 48% 62%, #9c5a12 0 8px, transparent 9px),
 radial-gradient(circle at 76% 40%, #fff0b1 0 7px, transparent 8px),
 linear-gradient(180deg, #d88d25, #9f5a12);
}

.burger-art-salmon {
 height: 38px;
 border-radius: 999px 40% 999px 45%;
 background:
 repeating-linear-gradient(110deg, rgba(255, 232, 213, 0.55) 0 8px, transparent 8px 20px),
 linear-gradient(90deg, #e47157, #ffad8e 48%, #d65744);
}

.burger-art-guacamole,
.burger-art-fresh-cheese,
.burger-art-tartar,
.burger-art-sauce-bbq,
.burger-art-sauce-mustard,
.burger-art-sauce-curry {
 height: 24px;
 border-radius: 999px;
 background: linear-gradient(90deg, #4a9d2b, #95d94f, #4a9d2b);
}

.burger-art-fresh-cheese,
.burger-art-tartar {
 background: linear-gradient(90deg, #f8f5df, #fffdf2, #e5dfbf);
}

.burger-art-sauce-bbq {
 background: linear-gradient(90deg, #5d1612, #b72a22, #5d1612);
}

.burger-art-sauce-mustard,
.burger-art-sauce-curry {
 background: linear-gradient(90deg, #be7b12, #f2c13d, #be7b12);
}

.location-hero {
 position: relative;
 display: grid;
 min-height: 92svh;
 align-items: end;
 overflow: hidden;
 padding: 150px clamp(18px, 5vw, 72px) clamp(54px, 8vw, 104px);
 background: #0b0806;
 isolation: isolate;
}

.location-hero > img,
.location-hero-overlay {
 position: absolute;
 inset: 0;
}

.location-hero > img {
 z-index: -2;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 transform: scale(1.04);
 animation: slow-zoom 18s ease-out forwards;
}

.location-hero-overlay {
 z-index: -1;
 background:
 radial-gradient(circle at 76% 28%, rgba(216, 168, 77, 0.18), transparent 28%),
 linear-gradient(90deg, rgba(11, 8, 6, 0.94) 0%, rgba(11, 8, 6, 0.62) 44%, rgba(11, 8, 6, 0.16) 100%),
 linear-gradient(0deg, rgba(11, 8, 6, 0.98) 0%, rgba(11, 8, 6, 0.22) 52%, rgba(11, 8, 6, 0.62) 100%);
}

.location-hero-copy {
 max-width: 980px;
}

.location-hero-copy h1 {
 max-width: 980px;
 margin-bottom: 24px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(66px, 11vw, 152px);
 line-height: 0.82;
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.64);
}

.location-hero-copy > p:not(.eyebrow) {
 max-width: 720px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(20px, 2vw, 28px);
 font-weight: 800;
 line-height: 1.28;
}

.location-hero-pills {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 30px;
}

.location-hero-pills span {
 border: 1px solid rgba(216, 168, 77, 0.34);
 border-radius: 999px;
 padding: 10px 14px;
 background: rgba(18, 13, 9, 0.58);
 color: var(--cream);
 font-size: 13px;
 font-weight: 900;
 backdrop-filter: blur(12px);
}

.location-detail {
 display: grid;
 gap: 24px;
}

.location-page {
 background:
 radial-gradient(circle at 12% 12%, rgba(15, 90, 63, 0.24), transparent 28%),
 radial-gradient(circle at 86% 38%, rgba(216, 168, 77, 0.16), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.location-intro {
 display: grid;
 gap: 24px;
 max-width: 1040px;
 justify-items: center;
 margin-bottom: clamp(14px, 3vw, 28px);
 margin-left: auto;
 margin-right: auto;
 text-align: center;
}

.location-intro h2 {
 max-width: 940px;
 margin-bottom: 0;
 font-size: clamp(46px, 7vw, 94px);
 line-height: 0.92;
}

.location-intro > p:not(.eyebrow) {
 max-width: 720px;
 color: rgba(255, 247, 232, 0.78);
 font-size: clamp(17px, 1.6vw, 21px);
 line-height: 1.65;
}

.location-intro-cards {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 12px;
 max-width: 860px;
 width: 100%;
}

.location-intro-cards span {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 16px;
 background: rgba(255, 247, 232, 0.055);
 color: var(--muted);
 line-height: 1.45;
}

.location-intro-cards strong {
 display: block;
 margin-bottom: 4px;
 color: var(--cream);
 font-size: 18px;
}

.wide-location {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
 gap: clamp(20px, 5vw, 58px);
 align-items: center;
}

.wide-location.reverse {
 grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1fr);
}

.wide-location.reverse img {
 order: 2;
}

.wide-location img {
 min-height: 470px;
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.location-showcase {
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: 14px;
 background: rgba(255, 247, 232, 0.045);
 box-shadow: 0 18px 70px rgba(0, 0, 0, 0.18);
}

.location-showcase > div {
 padding: clamp(12px, 2vw, 24px);
}

.location-choice {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 gap: 24px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 8px;
 padding: clamp(22px, 4vw, 38px);
 background:
 linear-gradient(135deg, rgba(170, 52, 47, 0.22), rgba(15, 90, 63, 0.18)),
 rgba(255, 247, 232, 0.055);
}

.location-choice h2 {
 max-width: 920px;
 margin-bottom: 12px;
 font-size: clamp(38px, 6vw, 78px);
 line-height: 0.92;
}

.location-choice p:not(.eyebrow) {
 max-width: 620px;
 margin-bottom: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.6;
}

.location-choice .button {
 min-width: 220px;
 white-space: nowrap;
}

.practical-grid,
.proof-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 12px;
}

.practical-grid {
 margin: clamp(28px, 5vw, 54px) 0;
}

.practical-grid article,
.proof-card {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: clamp(18px, 3vw, 26px);
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.075), rgba(255, 247, 232, 0.025)),
 rgba(18, 13, 9, 0.54);
 box-shadow: 0 18px 58px rgba(0, 0, 0, 0.18);
}

.practical-grid span,
.proof-card span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.practical-grid strong,
.proof-card strong {
 display: block;
 margin: 10px 0 8px;
 color: var(--cream);
 font-size: clamp(19px, 2vw, 26px);
 line-height: 1.08;
}

.practical-grid p,
.proof-card p {
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.58;
}

.proof-section {
 background:
 radial-gradient(circle at 14% 18%, rgba(15, 90, 63, 0.26), transparent 28%),
 radial-gradient(circle at 86% 76%, rgba(216, 168, 77, 0.16), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.proof-heading {
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(280px, 0.5fr);
 gap: clamp(20px, 5vw, 72px);
 align-items: end;
 margin-bottom: 28px;
}

.proof-heading .eyebrow {
 grid-column: 1 / -1;
}

.proof-heading h2 {
 margin: 0;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 7vw, 92px);
 line-height: 0.9;
}

.proof-heading p:not(.eyebrow) {
 margin: 0;
 color: var(--muted);
 font-size: 17px;
 line-height: 1.65;
}

.proof-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.proof-card-action {
 border-color: rgba(216, 168, 77, 0.32);
}

.proof-card .button {
 margin-top: 18px;
}

.event-hero {
 position: relative;
 display: grid;
 min-height: 96svh;
 align-items: end;
 overflow: hidden;
 padding: 150px clamp(18px, 5vw, 72px) clamp(54px, 8vw, 110px);
 background: #0b0806;
 isolation: isolate;
}

.event-hero > img,
.event-hero-overlay {
 position: absolute;
 inset: 0;
}

.event-hero > img {
 z-index: -2;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 transform: scale(1.04);
 animation: slow-zoom 18s ease-out forwards;
}

.event-hero-overlay {
 z-index: -1;
 background:
 radial-gradient(circle at 72% 34%, rgba(32, 160, 111, 0.2), transparent 28%),
 radial-gradient(circle at 82% 62%, rgba(170, 52, 47, 0.36), transparent 34%),
 linear-gradient(90deg, rgba(11, 8, 6, 0.94) 0%, rgba(11, 8, 6, 0.66) 42%, rgba(11, 8, 6, 0.2) 100%),
 linear-gradient(0deg, rgba(11, 8, 6, 0.98) 0%, rgba(11, 8, 6, 0.22) 50%, rgba(11, 8, 6, 0.62) 100%);
}

.event-hero-copy {
 max-width: 1040px;
}

.event-hero-copy h1 {
 max-width: 1040px;
 margin-bottom: 24px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: 8.2rem;
 line-height: 0.82;
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.64);
}

.event-hero-copy > p:not(.eyebrow) {
 max-width: 720px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(20px, 2vw, 28px);
 font-weight: 800;
 line-height: 1.28;
}

.event-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 30px;
}

.event-hero-stats {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 10px;
 max-width: 820px;
 margin-top: 30px;
}

.event-hero-stats span {
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 8px;
 padding: 14px;
 background: rgba(18, 13, 9, 0.5);
 color: rgba(255, 247, 232, 0.74);
 font-weight: 800;
 backdrop-filter: blur(14px);
}

.event-hero-stats strong {
 display: block;
 margin-bottom: 5px;
 color: var(--gold);
 font-size: 1.1rem;
 text-transform: uppercase;
}

.events-page {
 position: relative;
 overflow: hidden;
 background:
 radial-gradient(circle at 12% 12%, rgba(170, 52, 47, 0.26), transparent 28%),
 radial-gradient(circle at 84% 64%, rgba(15, 90, 63, 0.3), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.events-page::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(255, 247, 232, 0.025) 1px, transparent 1px);
 background-size: 80px 80px;
 mask-image: linear-gradient(180deg, transparent, #000 12%, #000 86%, transparent);
}

.events-intro {
 position: relative;
 z-index: 1;
 display: grid;
 justify-items: center;
 max-width: 980px;
 margin: 0 auto clamp(28px, 5vw, 54px);
 text-align: center;
}

.events-intro h2 {
 margin-bottom: 20px;
 font-size: 5.2rem;
 line-height: 0.92;
}

.rugby-feature {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(300px, 0.52fr);
 gap: clamp(22px, 4vw, 44px);
 align-items: stretch;
 margin-bottom: 18px;
 border: 1px solid rgba(216, 168, 77, 0.22);
 border-radius: 8px;
 padding: clamp(22px, 4vw, 42px);
 background:
 linear-gradient(135deg, rgba(6, 31, 24, 0.86), rgba(65, 24, 22, 0.54)),
 rgba(18, 13, 9, 0.52);
 box-shadow: 0 30px 100px rgba(0, 0, 0, 0.34);
 overflow: hidden;
}

.rugby-feature::after {
 content: "80";
 position: absolute;
 right: 24px;
 bottom: -44px;
 color: rgba(255, 247, 232, 0.06);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 12rem;
 font-weight: 800;
 line-height: 0.8;
}

.rugby-feature h2 {
 position: relative;
 z-index: 1;
 margin-bottom: 16px;
 font-size: 4.1rem;
 line-height: 0.9;
}

.rugby-feature p:not(.eyebrow) {
 position: relative;
 z-index: 1;
 max-width: 760px;
 color: rgba(255, 247, 232, 0.78);
 font-size: 1.1rem;
 line-height: 1.65;
}

.rugby-timeline {
 position: relative;
 z-index: 1;
 display: grid;
 gap: 10px;
}

.rugby-timeline span {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 14px;
 background: rgba(255, 247, 232, 0.06);
 color: rgba(255, 247, 232, 0.74);
 font-weight: 800;
}

.rugby-timeline strong {
 display: block;
 color: var(--gold);
 text-transform: uppercase;
}

.events-intro p:not(.eyebrow) {
 max-width: 760px;
 color: rgba(255, 247, 232, 0.76);
 font-size: 18px;
 line-height: 1.65;
}

.events-grid {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 14px;
}

.events-grid .event-card {
 position: relative;
 overflow: hidden;
}

.events-grid .event-card-rugby {
 background:
 linear-gradient(180deg, rgba(216, 168, 77, 0.1), rgba(255, 247, 232, 0.04)),
 linear-gradient(135deg, rgba(15, 90, 63, 0.5), rgba(170, 52, 47, 0.22));
 box-shadow: 0 28px 90px rgba(0, 0, 0, 0.28);
}

.events-grid .event-card h2 {
 font-size: clamp(34px, 4.2vw, 56px);
 line-height: 0.95;
}

.events-grid .event-card p {
 font-size: 16px;
}

.events-grid .event-card::after {
 content: "";
 position: absolute;
 right: -46px;
 top: -46px;
 width: 132px;
 height: 132px;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 50%;
}

.event-card a {
 position: relative;
 z-index: 1;
 display: inline-flex;
 width: fit-content;
 margin-top: 20px;
 border-bottom: 2px solid var(--gold);
 color: var(--gold);
 font-weight: 900;
}

.event-strip {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 12px;
 margin-top: 14px;
}

.event-strip span {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 16px;
 background: rgba(255, 247, 232, 0.05);
 color: var(--muted);
}

.event-strip strong {
 display: block;
 margin-bottom: 4px;
 color: var(--cream);
 font-size: 18px;
}

.events {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-card {
 min-height: 420px;
 padding: 28px;
 background:
 linear-gradient(180deg, rgba(255, 247, 232, 0.04), rgba(255, 247, 232, 0.08)),
 linear-gradient(135deg, rgba(15, 90, 63, 0.22), rgba(170, 52, 47, 0.12));
}

.gallery-hero {
 position: relative;
 display: grid;
 min-height: 92svh;
 align-items: end;
 overflow: hidden;
 padding: 150px clamp(18px, 5vw, 72px) clamp(54px, 8vw, 104px);
 background: #0b0806;
 isolation: isolate;
}

.gallery-hero > img,
.gallery-hero-overlay {
 position: absolute;
 inset: 0;
}

.gallery-hero > img {
 z-index: -2;
 width: 100%;
 height: 100%;
 object-fit: cover;
 transform: scale(1.04);
 animation: slow-zoom 18s ease-out forwards;
}

.gallery-hero-overlay {
 z-index: -1;
 background:
 radial-gradient(circle at 70% 32%, rgba(216, 168, 77, 0.2), transparent 28%),
 linear-gradient(90deg, rgba(11, 8, 6, 0.94) 0%, rgba(11, 8, 6, 0.62) 44%, rgba(11, 8, 6, 0.18) 100%),
 linear-gradient(0deg, rgba(11, 8, 6, 0.98) 0%, rgba(11, 8, 6, 0.2) 52%, rgba(11, 8, 6, 0.62) 100%);
}

.gallery-hero-copy {
 max-width: 980px;
}

.gallery-hero h1 {
 max-width: 960px;
 margin-bottom: 24px;
 font-size: clamp(66px, 11vw, 152px);
 line-height: 0.82;
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.64);
}

.gallery-hero-copy p:not(.eyebrow) {
 max-width: 700px;
 color: rgba(255, 247, 232, 0.86);
 font-size: clamp(20px, 2vw, 28px);
 font-weight: 800;
 line-height: 1.28;
}

.gallery-hero-copy .button {
 margin-top: 28px;
}

.gallery-page {
 background:
 radial-gradient(circle at 12% 16%, rgba(15, 90, 63, 0.24), transparent 28%),
 radial-gradient(circle at 86% 74%, rgba(216, 168, 77, 0.16), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.gallery-intro {
 display: grid;
 justify-items: center;
 max-width: 980px;
 margin: 0 auto clamp(28px, 5vw, 54px);
 text-align: center;
}

.gallery-intro h2 {
 margin-bottom: 20px;
 font-size: clamp(44px, 7vw, 94px);
 line-height: 0.92;
}

.gallery-intro p:not(.eyebrow) {
 max-width: 760px;
 color: rgba(255, 247, 232, 0.76);
 font-size: 18px;
 line-height: 1.65;
}

.gallery-grid {
 display: grid;
 grid-auto-flow: dense;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 grid-auto-rows: 210px;
 gap: 12px;
}

.gallery-grid figure {
 position: relative;
 min-width: 0;
 min-height: 0;
 margin: 0;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
 box-shadow: 0 18px 70px rgba(0, 0, 0, 0.16);
}

.gallery-grid figure::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, transparent 46%, rgba(18, 13, 9, 0.78));
 opacity: 0;
 transition: opacity 0.25s ease;
}

.gallery-grid figure:hover::after {
 opacity: 1;
}

.gallery-grid img {
 transition: transform 0.45s ease, filter 0.45s ease;
}

.gallery-grid figure:hover img {
 transform: scale(1.045);
 filter: saturate(1.08) contrast(1.04);
}

.gallery-grid figcaption {
 position: absolute;
 z-index: 1;
 right: 14px;
 bottom: 14px;
 left: 14px;
 color: var(--cream);
 font-weight: 900;
 opacity: 0;
 transform: translateY(8px);
 transition: opacity 0.25s ease, transform 0.25s ease;
}

.gallery-grid figure:hover figcaption {
 opacity: 1;
 transform: translateY(0);
}

.gallery-grid .big {
 grid-column: span 2;
 grid-row: span 2;
}

.gallery-grid .wide {
 grid-column: span 2;
}

.gallery-grid .tall {
 grid-row: span 2;
}

.reservation {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(320px, 1fr);
 gap: clamp(24px, 6vw, 72px);
 align-items: start;
 background:
 radial-gradient(circle at 14% 18%, rgba(216, 168, 77, 0.18), transparent 28%),
 radial-gradient(circle at 84% 72%, rgba(15, 90, 63, 0.24), transparent 30%),
 linear-gradient(135deg, #120d09 0%, #24130b 52%, #0a130d 100%);
 color: var(--ink);
}

.page-reservation {
 min-height: 100svh;
 padding-top: 150px;
}

.reservation .eyebrow {
 color: var(--gold);
}

.reservation-copy p {
 color: rgba(255, 247, 232, 0.76);
 font-size: 18px;
}

.reservation-copy h1 {
 text-shadow: 0 22px 76px rgba(0, 0, 0, 0.42);
}

.reservation-highlights {
 display: grid;
 gap: 10px;
 margin: 30px 0;
}

.reservation-highlights span {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 14px;
 background: rgba(255, 247, 232, 0.055);
 color: var(--muted);
 line-height: 1.45;
}

.reservation-highlights strong {
 display: block;
 color: var(--cream);
 font-size: 18px;
}

.reservation-photo {
 position: relative;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.reservation-photo img {
 width: 100%;
 min-height: 280px;
 object-fit: cover;
}

.reservation-photo p {
 position: absolute;
 right: 14px;
 bottom: 14px;
 left: 14px;
 margin: 0;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 12px;
 background: rgba(18, 13, 9, 0.72);
 color: var(--cream);
 font-size: 14px;
 font-weight: 800;
 backdrop-filter: blur(12px);
}

.booking-form {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 14px;
 border-color: rgba(216, 168, 77, 0.24);
 padding: clamp(18px, 3vw, 28px);
 background: rgba(18, 13, 9, 0.68);
 box-shadow: 0 28px 90px rgba(0, 0, 0, 0.32);
 backdrop-filter: blur(18px);
}

.form-heading {
 grid-column: 1 / -1;
 margin-bottom: 6px;
}

.form-heading h2 {
 margin-bottom: 0;
 color: var(--cream);
 font-size: clamp(30px, 4vw, 48px);
 line-height: 0.95;
}

.booking-form label {
 display: grid;
 gap: 8px;
 color: var(--muted);
 font-size: 13px;
 font-weight: 900;
 text-transform: uppercase;
}

.booking-form .full,
.booking-form button,
.form-note {
 grid-column: 1 / -1;
}

.booking-form input,
.booking-form select {
 width: 100%;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 13px 12px;
 background: rgba(255, 247, 232, 0.92);
 color: #20150d;
 outline: none;
}

.booking-form input:focus,
.booking-form select:focus {
 border-color: var(--gold);
 box-shadow: 0 0 0 3px rgba(216, 168, 77, 0.18);
}

.booking-form button {
 border: 0;
 cursor: pointer;
}

.form-note {
 min-height: 24px;
 margin: 0;
 color: var(--green-bright);
 font-weight: 800;
}

.site-footer {
 position: relative;
 overflow: hidden;
 padding: clamp(28px, 4vw, 44px) clamp(18px, 5vw, 72px) 18px;
 color: var(--muted);
 background:
 radial-gradient(circle at 18% 0%, rgba(216, 168, 77, 0.16), transparent 28%),
 radial-gradient(circle at 88% 82%, rgba(15, 90, 63, 0.18), transparent 28%),
 linear-gradient(180deg, #0b0806 0%, #120d09 100%);
}

.site-footer::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 border-top: 1px solid rgba(255, 247, 232, 0.16);
 background: linear-gradient(90deg, rgba(216, 168, 77, 0.1), transparent 38%, rgba(255, 247, 232, 0.05));
 opacity: 0.8;
}

.footer-main,
.footer-bottom {
 position: relative;
 z-index: 1;
}

.footer-main {
 display: grid;
 grid-template-columns: minmax(300px, 1fr) minmax(130px, 0.3fr) minmax(420px, 0.85fr);
 gap: clamp(22px, 3.5vw, 48px);
 align-items: start;
}

.footer-brand {
 display: flex;
 gap: 14px;
 align-items: start;
}

.footer-brand .brand-mark {
 flex: 0 0 auto;
 width: 40px;
 height: 40px;
 font-size: 23px;
}

.footer-brand h2 {
 margin: 0 0 8px;
 color: var(--cream);
 font-size: clamp(36px, 4.6vw, 62px);
 line-height: 0.92;
}

.footer-brand p:last-child {
 max-width: 500px;
 margin-bottom: 0;
 color: rgba(255, 247, 232, 0.72);
 font-size: 14px;
 line-height: 1.5;
}

.footer-nav,
.footer-visit {
 display: grid;
 gap: 7px;
}

.footer-visit {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.footer-nav a {
 width: fit-content;
 color: var(--cream);
 font-weight: 900;
 transition: color 0.2s ease, transform 0.2s ease;
}

.footer-nav a:hover {
 color: var(--gold);
 transform: translateX(4px);
}

.footer-visit span,
.footer-contact-link {
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 7px;
 padding: 9px 11px;
 background: rgba(255, 247, 232, 0.045);
 color: var(--muted);
 font-size: 12px;
 line-height: 1.35;
}

.footer-contact-link {
 transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.footer-contact-link:hover {
 border-color: rgba(216, 168, 77, 0.52);
 background: rgba(216, 168, 77, 0.1);
 transform: translateY(-2px);
}

.footer-visit strong,
.footer-contact-link strong {
 display: block;
 color: var(--cream);
 font-size: 14px;
}

.footer-visit .button {
 min-height: 42px;
 margin-top: 0;
 padding: 10px 16px;
}

.footer-bottom {
 display: flex;
 align-items: center;
 justify-content: flex-start;
 gap: 20px;
 margin-top: clamp(20px, 3vw, 32px);
 border-top: 1px solid rgba(255, 247, 232, 0.12);
 padding-top: 14px;
 font-size: 12px;
}

.footer-bottom p {
 margin: 0;
}

.footer-bottom a {
 color: var(--gold);
 font-weight: 800;
}

.footer-legal-links {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 8px 18px;
}

.footer-legal-links a {
 font-size: 12px;
 transition: color 0.2s ease;
}

.footer-legal-links a:hover {
 color: var(--cream);
}

.hero-content,
.hero-panel,
.hero-showcase {
 opacity: 0;
 transform: translateY(28px);
}

.page-loaded .hero-content {
 animation: hero-rise 0.95s cubic-bezier(0.2, 0.8, 0.2, 1) 0.12s forwards;
}

.page-loaded .hero-panel {
 animation: hero-rise 0.85s cubic-bezier(0.2, 0.8, 0.2, 1) 0.35s forwards;
}

.page-loaded .hero-showcase {
 animation: hero-showcase-in 1s cubic-bezier(0.2, 0.8, 0.2, 1) 0.25s forwards;
}

.page-loaded .hero-plate-main {
 animation: hero-float-main 7s ease-in-out 1.2s infinite;
}

.page-loaded .hero-plate-side {
 animation: hero-float-side 8s ease-in-out 1.1s infinite;
}

.page-loaded .hero-plate-small {
 animation: hero-float-small 7.5s ease-in-out 1.3s infinite;
}

.page-loaded .hero-proof span {
 animation-name: hero-proof-in;
 animation-duration: 0.7s;
 animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
 animation-fill-mode: both;
}

.spirit-section.section-visible .spirit-copy h2 span:last-child {
 animation: spirit-title-gold 5.8s ease-in-out infinite;
}

.spirit-section.section-visible .spirit-signature {
 animation: spirit-signature-in 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s both;
}

.spirit-section.section-visible .spirit-notes span {
 animation: spirit-note-in 0.62s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.spirit-section.section-visible .spirit-notes span:nth-child(1) {
 animation-delay: 0.3s;
}

.spirit-section.section-visible .spirit-notes span:nth-child(2) {
 animation-delay: 0.42s;
}

.spirit-section.section-visible .spirit-notes span:nth-child(3) {
 animation-delay: 0.54s;
}

.spirit-section.section-visible .spirit-visual img:first-child {
 animation: spirit-photo-left 8s ease-in-out 0.35s infinite;
}

.spirit-section.section-visible .spirit-visual img:nth-child(2) {
 animation: spirit-photo-right 8.5s ease-in-out 0.55s infinite;
}

.spirit-section.section-visible .spirit-orbit {
 animation: spirit-orbit-spin 15s linear infinite;
}

.spirit-section.section-visible .spirit-badge {
 animation: spirit-badge-in 0.85s cubic-bezier(0.2, 0.8, 0.2, 1) 0.4s both;
}

.spirit-section.section-visible .spirit-features .feature {
 animation: spirit-card-rise 0.72s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.spirit-section.section-visible .spirit-features .feature:nth-child(1) {
 animation-delay: 0.15s;
}

.spirit-section.section-visible .spirit-features .feature:nth-child(2) {
 animation-delay: 0.28s;
}

.spirit-section.section-visible .spirit-features .feature:nth-child(3) {
 animation-delay: 0.41s;
}

.section-visible .rugby-meta span,
.section-visible .event-hero-stats span,
.section-visible .rugby-timeline span {
 animation: rugby-item-in 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.section-visible .rugby-meta span:nth-child(2),
.section-visible .event-hero-stats span:nth-child(2),
.section-visible .rugby-timeline span:nth-child(2) {
 animation-delay: 0.12s;
}

.section-visible .rugby-meta span:nth-child(3),
.section-visible .event-hero-stats span:nth-child(3),
.section-visible .rugby-timeline span:nth-child(3) {
 animation-delay: 0.24s;
}

.section-visible .rugby-score-card,
.section-visible .rugby-feature {
 animation: rugby-board-in 0.85s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.section-visible .match-photo::before {
 animation: rugby-scan 4.8s ease-in-out infinite;
}

.page-loaded .event-hero-stats span {
 animation: rugby-item-in 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.page-loaded .event-hero-stats span:nth-child(1) {
 animation-delay: 0.35s;
}

.page-loaded .event-hero-stats span:nth-child(2) {
 animation-delay: 0.48s;
}

.page-loaded .event-hero-stats span:nth-child(3) {
 animation-delay: 0.61s;
}

.js-enabled .section-animate {
 opacity: 0;
 transform: translateY(34px);
 transition: opacity 0.85s ease, transform 0.85s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.js-enabled .section-animate.section-visible {
 opacity: 1;
 transform: translateY(0);
}

.js-enabled .reveal {
 opacity: 0;
 transform: translateY(32px);
 transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.js-enabled .reveal.is-visible {
 opacity: 1;
 transform: translateY(0);
}

/* The events page is taller than the viewport: never hide its whole wrapper
 while waiting for the section observer. Its individual blocks still reveal. */
.js-enabled .events-page.section-animate {
 opacity: 1;
 transform: translateY(0);
}

.js-enabled .event-schedule-detail.reveal {
 opacity: 1;
 transform: translateY(0);
}

.feature.reveal:nth-child(2),
.scoreboard article:nth-child(2),
.menu-tags :is(span, a):nth-child(2),
.visit-locations span:nth-child(2) {
 transition-delay: 0.08s;
}

.feature.reveal:nth-child(3),
.scoreboard article:nth-child(3),
.menu-tags :is(span, a):nth-child(3) {
 transition-delay: 0.16s;
}

.menu-tags :is(span, a),
.scoreboard article,
.visit-locations span,
.footer-nav a,
.footer-visit span {
 animation: soft-float-in 0.75s ease both;
 animation-play-state: paused;
}

.section-visible .menu-tags :is(span, a),
.section-visible .scoreboard article,
.section-visible .visit-locations span,
.section-visible .footer-nav a,
.section-visible .footer-visit span {
 animation-play-state: running;
}

.image-marquee img,
.menu-photo img,
.match-photo img,
.visit-cta > img,
.spirit-visual img {
 transition: transform 0.8s ease, filter 0.8s ease;
}

.section-visible .image-marquee img,
.section-visible .menu-photo img,
.section-visible .match-photo img,
.section-visible .visit-cta > img,
.section-visible .spirit-visual img {
 filter: saturate(1.08) contrast(1.03);
}

.image-marquee.section-visible img:nth-child(odd) {
 animation: photo-lift 0.8s ease both;
}

.image-marquee.section-visible img:nth-child(even) {
 animation: photo-lift 0.8s ease 0.12s both;
}

@keyframes slow-zoom {
 from {
 transform: scale(1.08);
 }
 to {
 transform: scale(1.02);
 }
}

@keyframes hero-room-drift {
 from {
 transform: scale(1.08) translate3d(0, 0, 0);
 }
 to {
 transform: scale(1.12) translate3d(-1.4%, -0.8%, 0);
 }
}

@keyframes hero-light-sweep {
 0%,
 100% {
 opacity: 0.26;
 transform: translateX(-2%);
 }
 45% {
 opacity: 0.5;
 transform: translateX(2%);
 }
}

@keyframes hero-title-gold {
 0%,
 100% {
 background-position: 0% 50%;
 }
 50% {
 background-position: 100% 50%;
 }
}

@keyframes hero-rise {
 from {
 opacity: 0;
 transform: translateY(34px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes hero-showcase-in {
 from {
 opacity: 0;
 transform: translateY(38px) scale(0.96);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes hero-float-main {
 0%,
 100% {
 transform: translateY(0) rotate(2deg);
 }
 50% {
 transform: translateY(-16px) rotate(1deg);
 }
}

@keyframes hero-float-side {
 0%,
 100% {
 transform: translateY(0) rotate(-7deg);
 }
 50% {
 transform: translateY(14px) rotate(-5deg);
 }
}

@keyframes hero-float-small {
 0%,
 100% {
 transform: translateY(0) rotate(-4deg);
 }
 50% {
 transform: translateY(-12px) rotate(-2deg);
 }
}

@keyframes hero-proof-in {
 from {
 opacity: 0;
 transform: translateY(18px) scale(0.96);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes hero-card-glint {
 0%,
 68%,
 100% {
 opacity: 0;
 transform: translateX(-70%);
 }
 76% {
 opacity: 0.42;
 }
 88% {
 opacity: 0;
 transform: translateX(75%);
 }
}

@keyframes spirit-ray {
 0%,
 100% {
 opacity: 0;
 transform: translateY(-12%) rotate(18deg);
 }
 42% {
 opacity: 0.6;
 }
 70% {
 opacity: 0;
 transform: translateY(18%) rotate(18deg);
 }
}

@keyframes spirit-title-gold {
 0%,
 100% {
 background-position: 0% 50%;
 }
 50% {
 background-position: 100% 50%;
 }
}

@keyframes spirit-signature-in {
 from {
 opacity: 0;
 transform: translateY(18px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes spirit-note-in {
 from {
 opacity: 0;
 transform: translateY(14px) scale(0.96);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes spirit-photo-left {
 0%,
 100% {
 transform: translateY(0) rotate(-2deg);
 }
 50% {
 transform: translateY(-14px) rotate(-1deg);
 }
}

@keyframes spirit-photo-right {
 0%,
 100% {
 transform: translateY(0) rotate(3deg);
 }
 50% {
 transform: translateY(12px) rotate(2deg);
 }
}

@keyframes spirit-orbit-spin {
 from {
 transform: rotate(0deg);
 }
 to {
 transform: rotate(360deg);
 }
}

@keyframes spirit-badge-in {
 from {
 opacity: 0;
 transform: translateY(22px) scale(0.96);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes spirit-card-rise {
 from {
 opacity: 0;
 transform: translateY(24px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes rugby-item-in {
 from {
 opacity: 0;
 transform: translateY(18px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes rugby-board-in {
 from {
 opacity: 0;
 transform: translateY(24px) scale(0.97);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes rugby-scan {
 0%,
 100% {
 opacity: 0.24;
 }
 50% {
 opacity: 0.62;
 }
}

@keyframes soft-float-in {
 from {
 opacity: 0;
 transform: translateY(18px) scale(0.98);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@keyframes photo-lift {
 from {
 opacity: 0;
 transform: translateY(24px) scale(0.98);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

@media (prefers-reduced-motion: reduce) {
 *,
 *::before,
 *::after {
 animation-duration: 0.01ms !important;
 animation-iteration-count: 1 !important;
 scroll-behavior: auto !important;
 transition-duration: 0.01ms !important;
 }

 .hero-content,
 .hero-panel,
 .hero-showcase,
 .section-animate,
 .reveal {
 opacity: 1 !important;
 transform: none !important;
 }
}

@media (max-width: 1080px) {
 .feature-grid.three,
 .dish-grid,
 .signature-grid,
 .menu-columns,
 .events-grid,
 .event-strip,
 .events,
 .event-hero-stats,
 .rugby-feature,
 .proof-grid,
 .practical-grid,
 .scoreboard {
 grid-template-columns: 1fr;
 }

 .gallery-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 980px) {
 .footer-main {
 gap: 22px;
 }

 .footer-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 7px 18px;
 }

 .footer-nav a {
 font-size: 13px;
 }

 .site-header {
 top: 12px;
 left: 12px;
 right: 12px;
 padding: 8px 8px 8px 10px;
 }

 .nav-toggle {
 display: block;
 flex: 0 0 auto;
 }

 .main-nav {
 position: fixed;
 top: 82px;
 right: 12px;
 left: 12px;
 display: none;
 flex-direction: column;
 align-items: stretch;
 gap: 6px;
 border: 1px solid rgba(216, 168, 77, 0.22);
 border-radius: 14px;
 padding: 12px;
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.08), rgba(255, 247, 232, 0.02)),
 rgba(18, 13, 9, 0.94);
 box-shadow: 0 30px 80px rgba(0, 0, 0, 0.46);
 backdrop-filter: blur(22px);
 }

 .main-nav.is-open {
 display: flex;
 }

 .main-nav a {
 border-radius: 10px;
 padding: 15px 16px;
 }

 .main-nav a.is-active::after {
 right: 16px;
 bottom: 7px;
 left: 16px;
 }

 .main-nav .nav-cta {
 margin-left: 0;
 margin-top: 4px;
 }

 .hero {
 align-items: center;
 min-height: 100svh;
 }

 .home-hero-wow {
 grid-template-columns: 1fr;
 gap: 22px;
 align-content: center;
 padding-bottom: 28px;
 }

 .home-hero-wow .hero-content {
 max-width: none;
 padding-bottom: 0;
 }

 .home-hero-wow h1 {
 font-size: 7.2rem;
 }

 .home-hero-wow .hero-copy {
 font-size: 1.45rem;
 }

 .home-hero-wow .hero-showcase {
 order: 2;
 width: min(620px, 100%);
 min-height: 340px;
 justify-self: center;
 }

 .hero-plate-main {
 right: 6%;
 width: min(360px, 64%);
 }

 .hero-plate-side {
 left: 4%;
 width: min(210px, 36%);
 }

 .hero-plate-small {
 width: min(240px, 42%);
 }

 .hero-panel {
 position: relative;
 right: auto;
 bottom: auto;
 margin-top: 20px;
 }

 .home-hero-wow .hero-panel {
 order: 3;
 width: min(620px, 100%);
 margin-top: 0;
 }

 .section-copy,
 .spirit-layout,
 .footer-main,
 .menu-category-head,
 .proof-heading,
 .dish-hero,
 .dish-composition,
 .location-choice,
 .location-intro-cards,
 .menu-hero,
 .split-showcase,
 .match-strip,
 .reservation,
 .page-hero,
 .wide-location,
 .wide-location.reverse,
 .location-grid {
 grid-template-columns: 1fr;
 }

 .rugby-meta span {
 grid-template-columns: 1fr;
 }

 .event-hero-copy h1 {
 font-size: 6rem;
 }

 .ingredient-board {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .dish-detail .ingredient-board {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .burger-exploded-section {
 grid-template-columns: 1fr;
 }

 .burger-exploded-copy {
 position: static;
 }

 .events-intro h2 {
 font-size: 4rem;
 }

 .rugby-feature h2 {
 font-size: 3.2rem;
 }

 .wide-location.reverse img {
 order: 0;
 }

 .image-marquee {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .photo-stack {
 grid-template-columns: 1fr;
 }

 .photo-stack img,
 .photo-stack img:last-child,
 .menu-photo-side img,
 .match-photo,
 .spirit-visual,
 .page-hero img,
 .wide-location img {
 min-height: 320px;
 margin-bottom: 0;
 }

 .menu-stack {
 padding-bottom: 0;
 }

 .menu-card-mini {
 width: 100%;
 margin-top: 12px;
 }

 .menu-jump {
 top: 78px;
 }

 .spirit-copy {
 max-width: none;
 }

 .spirit-copy h2 {
 font-size: 4.35rem;
 }

 .spirit-signature {
 max-width: none;
 }

 .spirit-visual img:first-child,
 .spirit-visual img:nth-child(2) {
 height: 420px;
 }

 .menu-hero {
 min-height: 390px;
 padding-top: 116px;
 }

 .signature-card,
 .signature-card-large {
 min-height: 460px;
 }
}

@media (max-width: 620px) {
 .site-header {
 border-radius: 18px;
 }

 .brand {
 gap: 9px;
 padding-right: 0;
 }

 .brand-mark {
 width: 42px;
 height: 42px;
 font-size: 25px;
 }

 .brand strong {
 font-size: 15px;
 }

 .brand small {
 display: none;
 }

 .hero {
 padding-top: 98px;
 }

 .home-hero h1 {
 font-size: clamp(64px, 22vw, 96px);
 }

 .home-hero-wow h1 {
 font-size: 4.35rem;
 }

 .hero-copy {
 font-size: 19px;
 }

 .home-hero-wow .hero-copy {
 margin-left: 0;
 padding: 0;
 }

 .spirit-copy h2 {
 font-size: 3rem;
 }

 .spirit-copy > p:last-of-type {
 font-size: 1.02rem;
 }

 .spirit-signature {
 grid-template-columns: 1fr;
 }

 .spirit-notes {
 align-items: stretch;
 flex-direction: column;
 }

 .spirit-notes span {
 text-align: center;
 }

 .spirit-visual {
 min-height: 0;
 }

 .spirit-visual img:first-child,
 .spirit-visual img:nth-child(2) {
 height: 280px;
 transform: none;
 }

 .spirit-orbit {
 display: none;
 }

 .hero-proof {
 grid-template-columns: 1fr;
 margin-top: 20px;
 }

 .hero-proof span {
 min-height: 64px;
 }

 .home-hero-wow .hero-showcase {
 min-height: 280px;
 }

 .hero-plate figcaption {
 padding: 9px;
 }

 .hero-plate figcaption strong {
 font-size: 14px;
 }

 .hero-actions,
 .menu-hero-actions,
 .event-hero-actions,
 .visit-actions,
 .button {
 width: 100%;
 }

 .menu-hero-copy h1 {
 font-size: clamp(44px, 14vw, 72px);
 }

 .page-reservation {
 padding-top: 118px;
 }

 .reservation-photo img {
 min-height: 220px;
 }

 .location-hero {
 min-height: 86svh;
 }

 .event-hero {
 min-height: 86svh;
 }

 .rugby-strip::after {
 font-size: 4.8rem;
 right: 0;
 bottom: -8px;
 }

 .event-hero-copy h1 {
 font-size: 4.05rem;
 }

 .events-intro h2,
 .rugby-feature h2 {
 font-size: 2.75rem;
 }

 .event-hero-stats,
 .rugby-timeline {
 grid-template-columns: 1fr;
 }

 .rugby-score-card {
 position: relative;
 top: auto;
 left: auto;
 width: auto;
 margin: 14px;
 }

 .gallery-hero {
 min-height: 86svh;
 }

 .location-hero-copy h1 {
 font-size: clamp(54px, 16vw, 86px);
 }

 .event-hero-copy h1 {
 font-size: clamp(54px, 16vw, 86px);
 }

 .gallery-hero h1 {
 font-size: clamp(54px, 16vw, 86px);
 }

 .gallery-hero-copy .button {
 width: 100%;
 }

 .location-hero-pills {
 align-items: stretch;
 flex-direction: column;
 }

 .location-choice .button {
 width: 100%;
 }

 .menu-category-head {
 margin-bottom: 22px;
 }

 .signature-card,
 .signature-card-large {
 min-height: 410px;
 }

 .signature-card > div {
 right: 12px;
 bottom: 12px;
 left: 12px;
 padding: 14px;
 }

 .menu-list p {
 grid-template-columns: 1fr;
 }

 .menu-dish-link {
 grid-template-columns: 92px minmax(0, 1fr);
 }

 .menu-drink-link {
 grid-template-columns: 92px minmax(0, 1fr);
 height: 116px;
 }

 .menu-dish-thumb {
 width: 92px;
 }

 .menu-drink-thumb {
 grid-row: 1 / span 2;
 width: 92px;
 height: 116px;
 }

 .drink-brand-panel {
 min-height: 0;
 border-right: 0;
 border-bottom: 1px solid rgba(42, 156, 111, 0.2);
 padding: 9px 13px 7px;
 }

 .drink-brand-logo-img {
 width: min(100%, 150px);
 max-height: 52px;
 }

 .menu-drink-link p {
 grid-template-columns: minmax(0, 1fr) auto;
 padding: 10px 13px 13px;
 }

 .drink-title-line {
 grid-column: 1 / -1;
 }

 .drink-title-logos {
 grid-column: 1;
 grid-row: 3;
 width: 136px;
 max-width: 136px;
 justify-content: flex-start;
 gap: 5px;
 }

 .drink-title-logo {
 width: 42px;
 height: 34px;
 max-width: 42px;
 max-height: 34px;
 flex-basis: 42px;
 }

 .drink-title-logos[data-logo-count="1"] .drink-title-logo {
 width: 112px;
 max-width: 112px;
 flex-basis: 112px;
 }

 .menu-drink-link[data-brand="coca-cola"] .drink-title-logos {
 width: 136px;
 max-width: 136px;
 }

 .menu-drink-link[data-brand="coca-cola"] .drink-title-logo {
 width: 122px;
 max-width: 122px;
 flex-basis: 122px;
 }

 .drink-title-logos[data-logo-count="2"] .drink-title-logo {
 flex-basis: 54px;
 max-width: 54px;
 }

 .drink-title-logos[data-logo-count="3"] .drink-title-logo {
 flex-basis: 38px;
 max-width: 38px;
 }

 .menu-drink-link p > em {
 grid-column: 1 / -1;
 grid-row: 2;
 }

 .menu-drink-link p > span:last-child {
 min-width: 0;
 min-height: 0;
 width: fit-content;
 place-items: start;
 padding: 7px 10px;
 }

 .menu-list span {
 grid-column: 1;
 grid-row: auto;
 }

 .menu-drink-link .drink-brand-panel,
 .menu-drink-link .drink-brand-logo-img {
 grid-column: auto;
 grid-row: auto;
 }

 .menu-drink-link p > span:last-child {
 grid-column: 2;
 grid-row: 3;
 }

 .visit-cta {
 min-height: 82svh;
 }

 .visit-locations {
 grid-template-columns: 1fr;
 }

 .menu-tags {
 grid-template-columns: 1fr;
 margin: 24px 0;
 }

 .menu-actions {
 width: 100%;
 }

 .menu-photo img,
 .menu-photo-side img {
 min-height: 0;
 aspect-ratio: 4 / 3;
 }

 .menu-photo figcaption {
 position: static;
 border-top: 0;
 border-radius: 0 0 8px 8px;
 background: rgba(18, 13, 9, 0.84);
 }

 .match-photo {
 min-height: 300px;
 }

 .match-photo-label {
 align-items: start;
 flex-direction: column;
 }

 .spirit-copy h2 {
 font-size: clamp(42px, 13vw, 62px);
 }

 .spirit-notes {
 align-items: stretch;
 flex-direction: column;
 }

 .spirit-notes span {
 text-align: center;
 }

 .spirit-visual {
 grid-template-columns: 1fr;
 gap: 12px;
 }

 .spirit-visual img:first-child,
 .spirit-visual img:nth-child(2) {
 height: auto;
 aspect-ratio: 4 / 3;
 margin-bottom: 0;
 }

 .spirit-badge {
 position: relative;
 right: auto;
 bottom: auto;
 width: 100%;
 }

 .booking-form,
 .dish-grid.two,
 .gallery-grid,
 .ingredient-board,
 .image-marquee {
 grid-template-columns: 1fr;
 }

 .dish-hero {
 min-height: auto;
 padding-top: 124px;
 }

 .dish-main-photo img,
 .dish-secondary-photo img {
 min-height: 280px;
 }

 .dish-detail .dish-hero {
 min-height: auto;
 grid-template-columns: 1fr;
 }

 .dish-feature-panel .dish-main-photo img {
 min-height: 260px;
 }

 .dish-detail .dish-hero h1 {
 font-size: clamp(48px, 15vw, 84px);
 }

 .dish-feature-meta {
 grid-template-columns: 1fr;
 }

 .dish-detail .ingredient-board {
 grid-template-columns: 1fr;
 }

 .burger-exploded-stage {
 grid-template-columns: 1fr;
 min-height: auto;
 padding: 18px;
 }

 .burger-layer-row {
 grid-template-columns: 1fr;
 gap: 10px;
 }

 .burger-layer-label {
 border-left: 0;
 border-top: 1px solid rgba(76, 42, 22, 0.14);
 padding: 12px 0 0;
 }

 .burger-art {
 width: 100%;
 }

 .menu-dish-link {
 grid-template-columns: 1fr;
 }

 .menu-dish-thumb {
 width: 100%;
 height: 168px;
 min-height: 168px;
 }

 .gallery-grid {
 grid-auto-rows: 240px;
 }

 .gallery-grid .big,
 .gallery-grid .wide,
 .gallery-grid .tall {
 grid-column: span 1;
 grid-row: span 1;
 }

 .footer-brand {
 display: flex;
 }

 .footer-visit {
 gap: 6px;
 }

 .footer-contact-link {
 overflow-wrap: anywhere;
 }

 .menu-jump {
 position: static;
 }

 .footer-bottom {
 flex-direction: column;
 }

}

/* Dish detail final overrides */
.dish-detail .dish-hero {
 min-height: 84svh;
 padding-top: clamp(126px, 13vh, 168px);
 padding-bottom: clamp(42px, 7vh, 76px);
}

.dish-detail .dish-hero h1 {
 max-width: 760px;
 font-size: clamp(58px, 9vw, 128px);
 letter-spacing: 0;
}

.dish-detail .dish-hero-copy > p:not(.eyebrow) {
 max-width: 580px;
 font-size: clamp(17px, 1.5vw, 21px);
}

.dish-feature-panel {
 align-self: end;
 max-width: 520px;
 justify-self: end;
}

.dish-feature-panel .dish-main-photo img {
 min-height: clamp(300px, 38vw, 470px);
}

.dish-feature-meta span {
 min-height: 92px;
}

.dish-quick-info {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1px;
 padding: 1px;
 background: rgba(255, 247, 232, 0.14);
}

.dish-quick-info span {
 display: grid;
 gap: 6px;
 min-height: 104px;
 align-content: center;
 padding: clamp(20px, 3vw, 34px);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 54%),
 #15100c;
 color: rgba(255, 247, 232, 0.72);
}

.dish-quick-info strong {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.burger-exploded-section {
 grid-template-columns: minmax(220px, 0.28fr) minmax(0, 0.95fr);
 padding-top: clamp(54px, 8vw, 108px);
 padding-bottom: clamp(54px, 8vw, 108px);
}

.burger-exploded-copy h2 {
 max-width: 420px;
 font-size: clamp(38px, 4.8vw, 72px);
}

.burger-exploded-copy p:not(.eyebrow) {
 max-width: 390px;
}

.burger-exploded-stage {
 grid-template-columns: minmax(320px, 0.78fr) minmax(210px, 0.28fr);
 padding: clamp(18px, 3vw, 36px);
}

.burger-exploded-photo {
 justify-self: center;
 width: min(100%, 690px);
}

.burger-exploded-photo img {
 display: block;
 max-height: 1040px;
}

.burger-layer-list {
 align-content: center;
}

.burger-layer-label {
 padding: 12px;
 background: rgba(255, 255, 255, 0.72);
}

.burger-layer-label strong {
 font-size: clamp(17px, 1.35vw, 22px);
}

.burger-layer-label p {
 font-size: 14px;
}

.dish-suggestions {
 background:
 radial-gradient(circle at 16% 12%, rgba(216, 168, 77, 0.12), transparent 28%),
 #0f0b08;
}

.dish-suggestions-head {
 display: flex;
 align-items: end;
 justify-content: space-between;
 gap: 24px;
 margin-bottom: clamp(24px, 4vw, 42px);
}

.dish-suggestions-head h2 {
 max-width: 620px;
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 6vw, 82px);
 line-height: 0.92;
}

.dish-suggestion-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 16px;
}

.dish-suggestion-card {
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
 color: var(--cream);
 text-decoration: none;
 transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.dish-suggestion-card:hover {
 transform: translateY(-4px);
 border-color: rgba(216, 168, 77, 0.42);
 background: rgba(255, 247, 232, 0.075);
}

.dish-suggestion-card img {
 width: 100%;
 height: 230px;
 object-fit: cover;
}

.dish-suggestion-card span,
.dish-suggestion-card strong,
.dish-suggestion-card p {
 margin-right: 18px;
 margin-left: 18px;
}

.dish-suggestion-card span {
 display: block;
 margin-top: 18px;
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.dish-suggestion-card strong {
 display: block;
 margin-top: 8px;
 font-size: 24px;
 line-height: 1.1;
}

.dish-suggestion-card p {
 margin-top: 10px;
 margin-bottom: 20px;
 color: rgba(255, 247, 232, 0.68);
}

@media (max-width: 980px) {
 .dish-feature-panel {
 max-width: none;
 justify-self: stretch;
 }

 .dish-quick-info,
 .dish-suggestion-grid {
 grid-template-columns: 1fr;
 }

 .burger-exploded-section,
 .burger-exploded-stage {
 grid-template-columns: 1fr;
 }

 .burger-exploded-copy {
 position: static;
 }

 .dish-suggestions-head {
 display: grid;
 }
}

/* Souvenirs - conclusion en diptyque */
.memory-next {
 display: grid;
 min-height: 0;
 grid-template-columns: minmax(360px, 0.82fr) minmax(0, 1.18fr);
 place-items: stretch;
 padding: 0;
 background: #0d3527;
 text-align: left;
}

.memory-next > img {
 position: static;
 z-index: auto;
 grid-column: 2;
 grid-row: 1;
 width: 100%;
 height: 100%;
 min-height: 620px;
 object-fit: contain;
 object-position: center;
 padding: clamp(22px, 3vw, 44px);
 background: #090b09;
 filter: saturate(0.92) contrast(1.03);
}

.memory-next-overlay {
 display: none;
}

.memory-next-copy {
 position: relative;
 z-index: auto;
 grid-column: 1;
 grid-row: 1;
 width: auto;
 max-width: none;
 min-height: 620px;
 align-content: center;
 justify-items: start;
 border: 0;
 padding: clamp(50px, 7vw, 110px);
 background:
 radial-gradient(circle at 0 100%, rgba(216, 168, 77, 0.12), transparent 36%),
 #0d3527;
 box-shadow: none;
 text-align: left;
 backdrop-filter: none;
}

.memory-next h2 {
 max-width: 600px;
 color: #fff7e8;
 font-size: clamp(52px, 6.4vw, 94px);
 line-height: 0.88;
 text-shadow: none;
}

.memory-next-copy > p:not(.memory-overline) {
 max-width: 430px;
 margin-top: 24px;
 color: rgba(255, 247, 232, 0.72);
 font-size: clamp(16px, 1.3vw, 19px);
 text-shadow: none;
}

.memory-next-actions {
 margin-top: 28px;
}

@media (max-width: 820px) {
 .memory-next {
 grid-template-columns: 1fr;
 }

 .memory-next > img {
 grid-column: 1;
 grid-row: 1;
 min-height: 0;
 height: auto;
 padding: 18px;
 }

 .memory-next-copy {
 grid-column: 1;
 grid-row: 2;
 min-height: 0;
 padding: 54px var(--page-pad) 64px;
 }
}

@media (max-width: 620px) {
 .memory-next {
 min-height: 0;
 padding: 0;
 }

 .memory-next-copy {
 width: auto;
 padding: 46px 20px 56px;
 }

 .memory-next h2 {
 font-size: clamp(48px, 14vw, 68px);
 }
}

/* Signature historique dans le header */
.site-header .brand strong {
 display: flex;
 gap: 9px;
 align-items: center;
}

.site-header .brand strong::after {
 content: "Since 1973";
 display: inline-flex;
 min-height: 20px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.48);
 border-radius: 999px;
 padding: 3px 7px;
 color: var(--gold);
 font-family: Inter, system-ui, sans-serif;
 font-size: 8px;
 font-weight: 900;
 line-height: 1;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 white-space: nowrap;
}

@media (max-width: 420px) {
 .site-header .brand strong {
 gap: 6px;
 font-size: 14px;
 }

 .site-header .brand strong::after {
 padding: 3px 5px;
 font-size: 7px;
 }
}

/* Souvenirs - conclusion simplifi\0000e9e */
.memory-next {
 min-height: 68svh;
 place-items: center start;
 padding-top: clamp(74px, 9vw, 120px);
 padding-bottom: clamp(74px, 9vw, 120px);
}

.memory-next-copy {
 width: min(660px, 72vw);
 padding: clamp(26px, 3vw, 40px);
 background: rgba(7, 18, 13, 0.7);
}

.memory-next h2 {
 max-width: 620px;
 font-size: clamp(48px, 6vw, 82px);
 line-height: 0.9;
}

.memory-next-copy > p:not(.memory-overline) {
 max-width: 520px;
 margin-top: 20px;
 font-size: clamp(15px, 1.2vw, 18px);
}

.memory-next-actions {
 margin-top: 24px;
}

@media (max-width: 620px) {
 .memory-next {
 min-height: 620px;
 padding-top: 100px;
 padding-bottom: 64px;
 }

 .memory-next-copy {
 width: 100%;
 padding: 24px 20px;
 }

 .memory-next h2 {
 font-size: clamp(44px, 13vw, 62px);
 }
}

@media (max-width: 620px) {
 .dish-detail .dish-hero {
 min-height: auto;
 padding-top: 120px;
 }

 .dish-detail .dish-hero h1 {
 font-size: clamp(46px, 14vw, 72px);
 }

 .dish-feature-meta {
 grid-template-columns: 1fr;
 }

 .dish-quick-info span {
 min-height: auto;
 }

 .burger-exploded-section,
 .dish-suggestions {
 padding-right: 18px;
 padding-left: 18px;
 }

 .burger-layer-label {
 border-left: 1px solid rgba(76, 42, 22, 0.12);
 border-top: 0;
 }
}

/* Place page max */
.place-page {
 background: #0f0b08;
}

.place-hero {
 position: relative;
 display: grid;
 min-height: 94svh;
 grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
 gap: clamp(24px, 5vw, 64px);
 align-items: end;
 overflow: hidden;
 isolation: isolate;
 padding: clamp(128px, 15vh, 184px) var(--page-pad) clamp(36px, 7vw, 82px);
}

.place-hero > img,
.place-hero-overlay {
 position: absolute;
 inset: 0;
}

.place-hero > img {
 z-index: -3;
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(1.08) contrast(1.04);
 transform: scale(1.03);
}

.place-hero-overlay {
 z-index: -2;
 background:
 radial-gradient(circle at 82% 28%, rgba(216, 168, 77, 0.18), transparent 27%),
 linear-gradient(90deg, rgba(9, 6, 4, 0.96) 0%, rgba(9, 6, 4, 0.74) 44%, rgba(9, 6, 4, 0.22) 100%),
 linear-gradient(0deg, rgba(9, 6, 4, 0.98) 0%, rgba(9, 6, 4, 0.18) 54%, rgba(9, 6, 4, 0.74) 100%);
}

.place-hero-content {
 max-width: 980px;
}

.place-hero-content h1 {
 max-width: 980px;
 margin-bottom: 24px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(62px, 10.5vw, 146px);
 line-height: 0.86;
 letter-spacing: 0;
 text-shadow: 0 28px 92px rgba(0, 0, 0, 0.68);
}

.place-hero-content > p:not(.eyebrow) {
 max-width: 720px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(19px, 1.75vw, 26px);
 font-weight: 800;
 line-height: 1.45;
}

.place-hero-actions,
.place-access-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 30px;
}

.place-hero-card {
 display: grid;
 gap: 1px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.16);
 box-shadow: var(--shadow);
 backdrop-filter: blur(18px);
}

.place-hero-card span {
 display: grid;
 gap: 5px;
 min-height: 98px;
 align-content: center;
 padding: 18px;
 background: rgba(18, 13, 9, 0.78);
 color: rgba(255, 247, 232, 0.74);
}

.place-hero-card strong {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.place-quickbar {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1px;
 padding: 1px;
 background: rgba(255, 247, 232, 0.14);
}

.place-quickbar article {
 min-height: 170px;
 padding: clamp(22px, 3vw, 34px);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 56%),
 #15100c;
}

.place-quickbar span,
.place-moment span,
.place-map-card span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.place-quickbar strong {
 display: block;
 margin: 10px 0 8px;
 color: var(--cream);
 font-size: clamp(22px, 2vw, 30px);
 line-height: 1.05;
}

.place-quickbar p {
 margin: 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.55;
}

.place-intro {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(320px, 0.65fr);
 gap: clamp(28px, 6vw, 80px);
 align-items: end;
}

.place-intro h2,
.place-showcase h2,
.place-access h2,
.place-final h2 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(44px, 7vw, 94px);
 line-height: 0.92;
 letter-spacing: 0;
}

.place-intro > p {
 margin: 0;
 color: rgba(255, 247, 232, 0.76);
 font-size: clamp(18px, 1.55vw, 22px);
 line-height: 1.7;
}

.place-intro-mobile-notes {
 display: none;
}

.place-moments {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 16px;
 padding-top: 0;
}

.place-moment {
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
}

.place-moment img {
 width: 100%;
 height: 360px;
 object-fit: cover;
 transition: transform 0.4s ease;
}

.place-moment:hover img {
 transform: scale(1.035);
}

.place-moment div {
 padding: 24px;
}

.place-moment h2 {
 margin: 10px 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(34px, 4vw, 58px);
 line-height: 0.95;
}

.place-moment p {
 margin: 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.6;
}

.place-showcase {
 display: grid;
 grid-template-columns: minmax(320px, 0.58fr) minmax(0, 0.84fr);
 gap: clamp(28px, 6vw, 76px);
 align-items: center;
 background:
 radial-gradient(circle at 14% 18%, rgba(15, 90, 63, 0.22), transparent 28%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.place-showcase-copy > p:not(.eyebrow),
.place-access-panel > p,
.place-final p {
 max-width: 620px;
 color: rgba(255, 247, 232, 0.74);
 line-height: 1.65;
}

.place-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin: 24px 0 30px;
 padding: 0;
 list-style: none;
}

.place-tags li {
 border: 1px solid rgba(216, 168, 77, 0.3);
 border-radius: 999px;
 padding: 8px 11px;
 background: rgba(255, 247, 232, 0.06);
 color: rgba(255, 247, 232, 0.76);
 font-size: 13px;
 font-weight: 800;
}

.place-photo-stack {
 display: grid;
 grid-template-columns: minmax(0, 0.76fr) minmax(180px, 0.46fr);
 gap: 14px;
 align-items: end;
}

.place-photo-stack img {
 width: 100%;
 min-height: 520px;
 object-fit: cover;
 border-radius: 8px;
 box-shadow: var(--shadow);
}

.place-photo-stack img:nth-child(2) {
 min-height: 360px;
 margin-bottom: clamp(28px, 6vw, 80px);
}

.place-access {
 display: grid;
 grid-template-columns: minmax(0, 0.78fr) minmax(320px, 0.64fr);
 gap: clamp(24px, 5vw, 64px);
 align-items: stretch;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.11), transparent 44%),
 #f6ead8;
 color: #22160e;
}

.place-access h2,
.place-access .eyebrow {
 color: #22160e;
}

.place-access-panel > p {
 color: rgba(34, 22, 14, 0.72);
}

.place-map-card {
 position: relative;
 display: grid;
 min-height: 420px;
 align-content: end;
 overflow: hidden;
 border: 1px solid rgba(76, 42, 22, 0.14);
 border-radius: 8px;
 padding: clamp(24px, 4vw, 42px);
 background:
 linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.42)),
 repeating-linear-gradient(45deg, rgba(76, 42, 22, 0.08) 0 1px, transparent 1px 18px),
 radial-gradient(circle at 72% 28%, rgba(216, 168, 77, 0.28), transparent 30%);
 box-shadow: 0 24px 80px rgba(76, 42, 22, 0.16);
}

.place-map-card::before,
.place-map-card::after {
 content: "";
 position: absolute;
 border-radius: 999px;
}

.place-map-card::before {
 top: 34%;
 left: 48%;
 width: 34px;
 height: 34px;
 border: 10px solid var(--green);
 background: var(--gold);
 box-shadow: 0 18px 50px rgba(15, 90, 63, 0.32);
}

.place-map-card::after {
 top: calc(34% + 46px);
 left: calc(48% + 18px);
 width: 140px;
 height: 2px;
 background: rgba(15, 90, 63, 0.35);
 transform: rotate(-18deg);
}

.place-map-card strong {
 position: relative;
 display: block;
 margin: 10px 0;
 color: #22160e;
 font-size: clamp(28px, 3.4vw, 46px);
 line-height: 0.98;
}

.place-map-card p {
 position: relative;
 max-width: 360px;
 margin: 0;
 color: rgba(34, 22, 14, 0.72);
 line-height: 1.55;
}

.place-gallery {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 12px;
 padding-top: 32px;
 padding-bottom: 32px;
}

.place-gallery-track {
 display: contents;
}

.place-gallery-track > [aria-hidden="true"] {
 display: none;
}

.place-gallery img {
 width: 100%;
 height: clamp(230px, 28vw, 420px);
 object-fit: cover;
 border-radius: 8px;
}

.place-gallery img:nth-child(2) {
 margin-top: 34px;
}

.place-gallery img:nth-child(3) {
 margin-top: 68px;
}

.place-final {
 display: grid;
 min-height: 72svh;
 align-content: center;
 justify-items: center;
 text-align: center;
 background:
 linear-gradient(0deg, rgba(9, 6, 4, 0.82), rgba(9, 6, 4, 0.82)),
 url("images/webp/location-exterior.webp") center / cover;
}

.place-final p:not(.eyebrow) {
 margin-right: auto;
 margin-left: auto;
}

.place-final .button {
 margin-top: 24px;
}

.place-final-mobile-content,
.place-final-phone-mobile {
 display: none;
}

@media (max-width: 980px) {
 .place-hero,
 .place-intro,
 .place-showcase,
 .place-access {
 grid-template-columns: 1fr;
 }

 .place-hero-card {
 max-width: 520px;
 }

 .place-quickbar,
 .place-moments,
 .place-gallery {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .place-photo-stack {
 grid-template-columns: 1fr;
 }

 .place-photo-stack img,
 .place-photo-stack img:nth-child(2) {
 min-height: 340px;
 margin-bottom: 0;
 }
}

@media (max-width: 620px) {
 .place-hero {
 min-height: auto;
 padding-top: 122px;
 }

 .place-hero-content h1 {
 font-size: clamp(48px, 15vw, 78px);
 }

 .place-hero-actions,
 .place-access-actions,
 .place-hero-actions .button,
 .place-access-actions .button {
 width: 100%;
 }

 .place-quickbar,
 .place-moments,
 .place-gallery {
 grid-template-columns: 1fr;
 }

 .place-moment img,
 .place-gallery img {
 height: 260px;
 }

 .place-gallery img:nth-child(2),
 .place-gallery img:nth-child(3) {
 margin-top: 0;
 }

 .place-map-card {
 min-height: 340px;
 }
}

/* Place page wow layer */
.place-page {
 background:
 linear-gradient(180deg, #100b08 0%, #15100c 34%, #f6ead8 34.1%, #f6ead8 52%, #0f0b08 52.1%),
 #0f0b08;
}

.place-hero {
 min-height: calc(100svh - 18px);
 grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
 align-items: center;
 padding-top: clamp(126px, 13vh, 172px);
 padding-bottom: clamp(76px, 10vh, 118px);
}

.place-hero-bg {
 transform-origin: 72% 42%;
 animation: place-hero-drift 22s ease-in-out infinite alternate;
}

.place-hero-overlay {
 background:
 linear-gradient(115deg, rgba(255, 247, 232, 0.11) 0 0.08%, transparent 0.1% 38%, rgba(216, 168, 77, 0.22) 38.1% 38.32%, transparent 38.5% 100%),
 radial-gradient(ellipse at 78% 20%, rgba(216, 168, 77, 0.3), transparent 28%),
 radial-gradient(ellipse at 88% 68%, rgba(170, 52, 47, 0.28), transparent 26%),
 linear-gradient(90deg, rgba(8, 6, 4, 0.98) 0%, rgba(10, 7, 5, 0.82) 39%, rgba(10, 7, 5, 0.26) 100%),
 linear-gradient(0deg, #100b08 0%, rgba(16, 11, 8, 0.08) 48%, rgba(16, 11, 8, 0.72) 100%);
}

.place-hero-shine {
 position: absolute;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 opacity: 0.52;
 background:
 linear-gradient(116deg, transparent 0 56%, rgba(255, 247, 232, 0.2) 56.1% 56.28%, transparent 56.45% 100%),
 linear-gradient(116deg, transparent 0 68%, rgba(216, 168, 77, 0.28) 68.1% 68.35%, transparent 68.55% 100%);
 animation: place-light-sweep 7.5s ease-in-out infinite;
}

.place-hero-content {
 position: relative;
 z-index: 1;
 max-width: 900px;
}

.place-hero-content .eyebrow {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 border: 1px solid rgba(216, 168, 77, 0.34);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(18, 13, 9, 0.42);
 color: #f4c867;
 backdrop-filter: blur(12px);
}

.place-hero-content .eyebrow::before {
 content: "";
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: var(--green-bright);
 box-shadow: 0 0 22px rgba(32, 160, 111, 0.85);
}

.place-hero-content h1 {
 max-width: 820px;
 margin-bottom: 22px;
 font-size: clamp(76px, 12vw, 168px);
 line-height: 0.78;
}

.place-hero-content > p:not(.eyebrow) {
 max-width: 690px;
 border-left: 3px solid rgba(216, 168, 77, 0.74);
 padding-left: clamp(16px, 2vw, 24px);
 font-size: clamp(20px, 1.85vw, 28px);
}

.place-arrival-card {
 position: relative;
 z-index: 2;
 align-self: end;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 padding: clamp(22px, 3vw, 34px);
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.17), rgba(255, 247, 232, 0.05)),
 rgba(15, 12, 9, 0.7);
 box-shadow: 0 26px 90px rgba(0, 0, 0, 0.46);
 backdrop-filter: blur(22px) saturate(1.12);
}

.place-arrival-card span,
.place-scroll-cue {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0;
 text-transform: uppercase;
}

.place-arrival-card strong {
 display: block;
 margin: 10px 0 14px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(28px, 3vw, 44px);
 line-height: 0.96;
}

.place-arrival-card p {
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.65;
}

.place-hero-gallery {
 position: absolute;
 z-index: 3;
 right: clamp(18px, 5vw, 72px);
 bottom: 24px;
 display: grid;
 width: min(620px, 44vw);
 grid-template-columns: 1.15fr 0.86fr 0.72fr;
 gap: 10px;
 align-items: end;
 pointer-events: none;
}

.place-hero-gallery img {
 width: 100%;
 height: clamp(118px, 14vw, 210px);
 object-fit: cover;
 border: 1px solid rgba(255, 247, 232, 0.24);
 border-radius: 8px;
 box-shadow: 0 18px 52px rgba(0, 0, 0, 0.42);
}

.place-hero-gallery img:nth-child(2) {
 height: clamp(148px, 17vw, 250px);
}

.place-hero-gallery img:nth-child(3) {
 height: clamp(96px, 12vw, 178px);
}

.place-scroll-cue {
 position: absolute;
 z-index: 4;
 bottom: 28px;
 left: var(--page-pad);
 display: inline-flex;
 align-items: center;
 gap: 10px;
 color: rgba(255, 247, 232, 0.78);
}

.place-scroll-cue::before {
 content: "";
 width: 38px;
 height: 1px;
 background: linear-gradient(90deg, var(--gold), transparent);
}

.place-quickbar {
 position: relative;
 z-index: 5;
 margin-top: -1px;
 border-top: 1px solid rgba(255, 247, 232, 0.12);
}

.place-quickbar article {
 position: relative;
 overflow: hidden;
}

.place-quickbar article::after {
 content: "";
 position: absolute;
 right: -42px;
 bottom: -54px;
 width: 130px;
 height: 130px;
 border: 1px solid rgba(216, 168, 77, 0.18);
 border-radius: 50%;
}

.place-intro,
.place-showcase {
 position: relative;
 overflow: hidden;
}

.place-intro::before {
 content: "Brennan's";
 position: absolute;
 right: -4vw;
 bottom: -0.22em;
 color: rgba(255, 247, 232, 0.035);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(120px, 18vw, 300px);
 font-weight: 800;
 line-height: 1;
 pointer-events: none;
}

.place-moment {
 position: relative;
 transform: translateY(0);
 transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.place-moment:hover {
 border-color: rgba(216, 168, 77, 0.34);
 box-shadow: 0 26px 82px rgba(0, 0, 0, 0.28);
 transform: translateY(-6px);
}

.place-moment div {
 background:
 linear-gradient(180deg, rgba(255, 247, 232, 0.035), rgba(255, 247, 232, 0)),
 rgba(15, 11, 8, 0.86);
}

.place-showcase {
 border-top: 1px solid rgba(255, 247, 232, 0.08);
 border-bottom: 1px solid rgba(255, 247, 232, 0.08);
 background:
 radial-gradient(circle at 88% 16%, rgba(216, 168, 77, 0.18), transparent 24%),
 radial-gradient(circle at 12% 68%, rgba(15, 90, 63, 0.3), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.place-photo-stack {
 position: relative;
}

.place-photo-stack::before {
 content: "";
 position: absolute;
 inset: 8% 18% auto auto;
 z-index: 0;
 width: 46%;
 aspect-ratio: 1;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 50%;
}

.place-photo-stack img {
 position: relative;
 z-index: 1;
}

.place-access {
 overflow: hidden;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.18), transparent 40%),
 radial-gradient(circle at 88% 20%, rgba(15, 90, 63, 0.12), transparent 30%),
 #f6ead8;
}

.place-map-card {
 background:
 linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.52)),
 linear-gradient(90deg, rgba(76, 42, 22, 0.07) 1px, transparent 1px),
 linear-gradient(0deg, rgba(76, 42, 22, 0.07) 1px, transparent 1px),
 radial-gradient(circle at 72% 28%, rgba(216, 168, 77, 0.28), transparent 30%);
 background-size: auto, 36px 36px, 36px 36px, auto;
}

.place-gallery img {
 filter: saturate(1.06) contrast(1.04);
 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.24);
 transition: transform 0.25s ease, filter 0.25s ease;
}

.place-gallery img:hover {
 filter: saturate(1.14) contrast(1.08);
 transform: translateY(-5px);
}

.place-final {
 position: relative;
 overflow: hidden;
 background:
 linear-gradient(0deg, rgba(9, 6, 4, 0.84), rgba(9, 6, 4, 0.74)),
 url("images/webp/location-exterior.webp") center / cover;
}

.place-final::before {
 content: "";
 position: absolute;
 inset: 10% 8%;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 8px;
 pointer-events: none;
}

.place-final > * {
 position: relative;
}

@keyframes place-hero-drift {
 0% {
 transform: scale(1.03) translate3d(0, 0, 0);
 }

 100% {
 transform: scale(1.08) translate3d(-1.6%, 1%, 0);
 }
}

@keyframes place-light-sweep {
 0%,
 100% {
 opacity: 0.18;
 transform: translateX(-3%);
 }

 50% {
 opacity: 0.55;
 transform: translateX(3%);
 }
}

@media (max-width: 980px) {
 .place-hero {
 min-height: auto;
 padding-bottom: 170px;
 }

 .place-arrival-card {
 max-width: 560px;
 }

 .place-hero-gallery {
 right: var(--page-pad);
 left: var(--page-pad);
 width: auto;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-top: 112px;
 padding-bottom: 28px;
 }

 .place-hero-content h1 {
 max-width: 390px;
 font-size: clamp(58px, 20vw, 88px);
 }

 .place-hero-content > p:not(.eyebrow) {
 font-size: 18px;
 }

 .place-arrival-card {
 padding: 20px;
 }

 .place-hero-gallery,
 .place-scroll-cue {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: 100%;
 margin-top: 24px;
 }

 .place-hero-gallery {
 grid-template-columns: 1fr 1fr;
 }

 .place-hero-gallery img,
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 height: 138px;
 }

 .place-hero-gallery img:nth-child(3) {
 grid-column: 1 / -1;
 }

 .place-scroll-cue {
 margin-top: 18px;
 }

 .place-final::before {
 inset: 18px;
 }
}

/* Place hero composition refresh */
.place-hero {
 grid-template-columns: minmax(0, 0.82fr) minmax(320px, 0.48fr);
 align-items: end;
 padding-top: clamp(118px, 12vh, 156px);
 padding-bottom: clamp(118px, 15vh, 176px);
}

.place-hero::after {
 content: "";
 position: absolute;
 z-index: -1;
 right: clamp(18px, 5vw, 72px);
 bottom: clamp(92px, 13vh, 150px);
 width: min(46vw, 640px);
 height: min(46vw, 640px);
 border: 1px solid rgba(216, 168, 77, 0.18);
 border-radius: 50%;
 background: radial-gradient(circle, rgba(216, 168, 77, 0.12), transparent 58%);
 pointer-events: none;
}

.place-hero-bg {
 object-position: 62% center;
 filter: saturate(1.12) contrast(1.08) brightness(0.92);
}

.place-hero-overlay {
 background:
 linear-gradient(115deg, rgba(255, 247, 232, 0.1) 0 0.08%, transparent 0.1% 38%, rgba(216, 168, 77, 0.18) 38.1% 38.32%, transparent 38.5% 100%),
 radial-gradient(ellipse at 78% 20%, rgba(216, 168, 77, 0.25), transparent 28%),
 radial-gradient(ellipse at 88% 68%, rgba(170, 52, 47, 0.24), transparent 26%),
 linear-gradient(90deg, rgba(8, 6, 4, 0.92) 0%, rgba(10, 7, 5, 0.58) 42%, rgba(10, 7, 5, 0.12) 100%),
 linear-gradient(0deg, #100b08 0%, rgba(16, 11, 8, 0.06) 52%, rgba(16, 11, 8, 0.7) 100%);
}

.place-hero-content {
 align-self: end;
 max-width: 1040px;
 margin-bottom: clamp(10px, 2vh, 28px);
}

.place-hero-content .eyebrow {
 margin-bottom: 18px;
}

.place-hero-content h1 {
 max-width: 980px;
 margin-bottom: 20px;
 font-size: clamp(74px, 12vw, 166px);
 line-height: 0.82;
}

.place-hero-content > p:not(.eyebrow) {
 max-width: 660px;
 margin-left: 0;
 border-left: 3px solid rgba(216, 168, 77, 0.72);
 padding-left: clamp(16px, 2vw, 24px);
 color: rgba(255, 247, 232, 0.84);
 font-size: clamp(18px, 1.45vw, 24px);
}

.place-hero-actions {
 margin-left: 0;
}

.place-arrival-card {
 align-self: start;
 margin-top: clamp(18px, 5vh, 68px);
 transform: translateX(-18px);
}

.place-hero-gallery {
 right: clamp(20px, 4vw, 58px);
 bottom: clamp(36px, 6vh, 76px);
 width: min(430px, 31vw);
 grid-template-columns: 1fr 1fr;
 gap: 12px;
}

.place-hero-gallery img {
 height: clamp(132px, 14vw, 212px);
}

.place-hero-gallery img:nth-child(1) {
 grid-row: span 2;
 height: clamp(276px, 29vw, 438px);
}

.place-hero-gallery img:nth-child(2) {
 height: clamp(150px, 16vw, 244px);
 transform: translateY(-18px);
}

.place-hero-gallery img:nth-child(3) {
 height: clamp(120px, 13vw, 182px);
}

.place-scroll-cue {
 bottom: clamp(42px, 6vh, 76px);
}

@media (max-width: 980px) {
 .place-hero {
 grid-template-columns: 1fr;
 padding-bottom: 210px;
 }

 .place-hero-content h1 {
 font-size: clamp(72px, 16vw, 138px);
 }

 .place-arrival-card {
 align-self: auto;
 margin-top: 12px;
 transform: none;
 }

 .place-hero-gallery {
 right: var(--page-pad);
 left: var(--page-pad);
 bottom: 28px;
 width: auto;
 grid-template-columns: 1.15fr 0.8fr 0.8fr;
 }

 .place-hero-gallery img:nth-child(1),
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 grid-row: auto;
 height: 150px;
 transform: none;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-hero::after {
 right: -22vw;
 bottom: 36%;
 width: 86vw;
 height: 86vw;
 }

 .place-hero-content h1 {
 max-width: 420px;
 font-size: clamp(56px, 19vw, 86px);
 }

 .place-hero-content > p:not(.eyebrow),
 .place-hero-actions {
 margin-left: 0;
 }

 .place-hero-content > p:not(.eyebrow) {
 padding-left: 16px;
 }

 .place-hero-gallery {
 grid-template-columns: 1fr 1fr;
 }

 .place-hero-gallery img:nth-child(1),
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 height: 138px;
 }

 .place-hero-gallery img:nth-child(3) {
 grid-column: 1 / -1;
 }
}

/* Final hero replacement safeguard */
.place-hero-gallery {
 display: none;
}

.place-hero-highlights {
 position: absolute;
 z-index: 4;
 right: clamp(22px, 4vw, 64px);
 bottom: clamp(34px, 6vh, 72px);
 display: grid;
 width: min(520px, 42vw);
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.12);
 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
 backdrop-filter: blur(18px) saturate(1.12);
}

.place-hero-highlights span {
 display: grid;
 gap: 6px;
 min-height: 104px;
 align-content: center;
 padding: 18px;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 56%),
 rgba(16, 11, 8, 0.78);
 color: rgba(255, 247, 232, 0.72);
 font-size: 14px;
 font-weight: 800;
 line-height: 1.35;
}

.place-hero-highlights strong {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

@media (max-width: 1180px) {
 .place-hero {
 padding-bottom: clamp(150px, 22vh, 210px);
 }

 .place-hero-highlights {
 right: var(--page-pad);
 left: var(--page-pad);
 bottom: 28px;
 width: auto;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-hero-highlights {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: 100%;
 grid-template-columns: 1fr;
 margin-top: 22px;
 }

.place-hero-highlights span {
 min-height: auto;
 padding: 16px 18px;
 }
}

/* Dish detail premium experience */
.dish-detail {
 overflow: clip;
 background: #0f0b08;
}

.dish-detail .dish-hero {
 min-height: 92svh;
 grid-template-columns: minmax(0, 0.9fr) minmax(380px, 0.58fr);
}

.dish-detail .dish-hero h1 {
 max-width: 850px;
 font-size: clamp(58px, 8vw, 116px);
}

.dish-detail .dish-hero-bg {
 animation: dish-hero-breathe 16s ease-in-out infinite alternate;
}

.dish-detail .dish-hero-copy {
 opacity: 0;
 transform: translateY(24px);
 animation: dish-panel-enter 780ms cubic-bezier(0.2, 0.76, 0.2, 1) 60ms forwards;
}

.dish-feature-panel {
 transform: translateY(18px);
 opacity: 0;
 animation: dish-panel-enter 850ms cubic-bezier(0.2, 0.76, 0.2, 1) 180ms forwards;
}

.dish-feature-panel .dish-main-photo {
 position: relative;
 overflow: hidden;
}

.dish-feature-panel .dish-main-photo img {
 transition: transform 900ms cubic-bezier(0.2, 0.76, 0.2, 1);
}

.dish-feature-panel:hover .dish-main-photo img {
 transform: scale(1.035);
}

.dish-feature-panel figcaption {
 position: absolute;
 right: 12px;
 bottom: 12px;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 999px;
 padding: 7px 10px;
 background: rgba(12, 9, 7, 0.68);
 color: rgba(255, 247, 232, 0.7);
 font-size: 10px;
 font-weight: 800;
 text-transform: uppercase;
 backdrop-filter: blur(10px);
}

.dish-badges {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-top: 24px;
}

.dish-badges span {
 border: 1px solid rgba(216, 168, 77, 0.3);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(18, 13, 9, 0.54);
 color: var(--cream);
 font-size: 11px;
 font-weight: 850;
 text-transform: uppercase;
 backdrop-filter: blur(12px);
}

.dish-composition-pro {
 display: grid;
 grid-template-columns: minmax(230px, 0.52fr) minmax(340px, 0.88fr) minmax(240px, 0.42fr);
 gap: clamp(28px, 5vw, 70px);
 align-items: start;
 background:
 linear-gradient(rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 radial-gradient(circle at 82% 20%, rgba(31, 91, 64, 0.24), transparent 28%),
 #15100c;
 background-size: 54px 54px, 54px 54px, auto, auto;
}

.dish-composition-heading {
 position: sticky;
 top: 118px;
}

.dish-composition-heading h2,
.dish-call-band h2 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(40px, 5vw, 72px);
 line-height: 0.94;
}

.dish-composition-heading > p:last-child {
 margin: 20px 0 0;
 color: rgba(255, 247, 232, 0.67);
 line-height: 1.65;
}

.dish-ingredient-list {
 border-top: 1px solid rgba(255, 247, 232, 0.14);
}

.dish-ingredient-item {
 display: grid;
 grid-template-columns: 42px minmax(0, 1fr);
 gap: 16px;
 padding: 19px 0;
 border-bottom: 1px solid rgba(255, 247, 232, 0.14);
}

.dish-ingredient-item > span {
 display: grid;
 width: 36px;
 height: 36px;
 place-items: center;
 border: 1px solid rgba(216, 168, 77, 0.36);
 border-radius: 50%;
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
}

.dish-ingredient-item strong {
 display: block;
 color: var(--cream);
 font-size: clamp(17px, 1.4vw, 22px);
 line-height: 1.15;
}

.dish-ingredient-item p {
 margin: 6px 0 0;
 color: rgba(255, 247, 232, 0.58);
 font-size: 14px;
 line-height: 1.45;
}

.dish-composition-alt {
 grid-column: 1 / -1;
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(230px, 0.52fr);
 gap: clamp(22px, 4vw, 54px);
 align-items: center;
}

.dish-composition-alt[hidden] {
 display: none;
}

.dish-composition-alt-copy h2 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(30px, 3.4vw, 48px);
 line-height: 1;
 white-space: nowrap;
}

.dish-composition-alt-copy > p:not(.eyebrow) {
 max-width: 650px;
 margin: 14px 0 22px;
 color: rgba(255, 247, 232, 0.66);
 line-height: 1.55;
}

.dish-composition-alt-list {
 display: grid;
 gap: 10px;
}

.dish-composition-alt-item {
 display: grid;
 grid-template-columns: 34px minmax(0, 1fr);
 gap: 13px;
 padding: 13px 0;
 border-bottom: 1px solid rgba(255, 247, 232, 0.12);
}

.dish-composition-alt-item > span {
 display: grid;
 width: 30px;
 height: 30px;
 place-items: center;
 border: 1px solid rgba(216, 168, 77, 0.34);
 border-radius: 50%;
 color: var(--gold);
 font-size: 10px;
 font-weight: 900;
}

.dish-composition-alt-item strong {
 display: block;
 color: var(--cream);
 font-size: clamp(16px, 1.25vw, 20px);
 line-height: 1.15;
}

.dish-composition-alt-item p {
 margin: 5px 0 0;
 color: rgba(255, 247, 232, 0.56);
 font-size: 13px;
 line-height: 1.4;
}

.dish-composition-alt-allergens {
 margin-top: 20px;
 padding: 18px 0 0;
 border-top: 2px solid var(--gold);
}

.dish-composition-alt-allergens span {
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.dish-composition-alt-allergens strong {
 display: block;
 margin-top: 8px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(22px, 2vw, 28px);
 line-height: 1.05;
}

.dish-composition-alt-allergens p {
 margin: 10px 0 12px;
 color: rgba(255, 247, 232, 0.64);
 font-size: 14px;
 line-height: 1.55;
}

.dish-composition-alt-allergens a {
 color: var(--gold);
 font-size: 18px;
 font-weight: 900;
}

.dish-composition-alt-photo {
 justify-self: center;
 width: min(100%, 360px);
 margin: 0;
}

.dish-composition-alt-photo img {
 display: block;
 width: 100%;
 max-height: 520px;
 object-fit: contain;
 border: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 18px;
 background: rgba(255, 247, 232, 0.045);
 box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);
}

.dish-allergen-note {
 border-top: 2px solid var(--gold);
 padding: 22px 0;
}

.dish-allergen-note span {
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.dish-allergen-note strong {
 display: block;
 margin-top: 10px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 28px;
 line-height: 1.05;
}

.dish-allergen-note p {
 color: rgba(255, 247, 232, 0.66);
 line-height: 1.6;
}

.dish-allergen-note a {
 color: var(--gold);
 font-size: 19px;
 font-weight: 900;
}

.dish-detail .burger-exploded-section {
 background:
 radial-gradient(circle at 72% 20%, rgba(216, 168, 77, 0.14), transparent 28%),
 #0d1510;
 color: var(--cream);
}

.dish-detail .burger-exploded-copy h2 {
 color: var(--cream);
}

.dish-detail .burger-exploded-copy p:not(.eyebrow) {
 color: rgba(255, 247, 232, 0.66);
}

.dish-detail .burger-exploded-stage {
 border-color: rgba(255, 247, 232, 0.12);
 background: rgba(255, 247, 232, 0.045);
 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.dish-detail .burger-exploded-photo,
.dish-detail .burger-exploded-photo img {
 border-color: rgba(255, 247, 232, 0.1);
 background: #17110d;
}

.dish-detail .burger-exploded-section.is-avocado-toasts .burger-exploded-photo {
 width: min(100%, 400px);
}

.dish-detail .burger-exploded-section.is-avocado-toasts .burger-exploded-photo img {
 max-height: none;
}

.dish-detail .burger-layer-label {
 border-color: rgba(255, 247, 232, 0.12);
 background: rgba(255, 247, 232, 0.055);
}

.dish-detail .burger-layer-label strong {
 color: var(--cream);
}

.dish-detail .burger-layer-label p {
 color: rgba(255, 247, 232, 0.58);
}

.dish-pagination {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 padding-top: 1px;
 padding-bottom: 1px;
 background: rgba(255, 247, 232, 0.14);
}

.dish-page-link {
 position: relative;
 display: grid;
 min-height: 180px;
 align-content: center;
 padding: clamp(24px, 4vw, 52px);
 overflow: hidden;
 background: #15100c;
 color: var(--cream);
 text-decoration: none;
 transition: background 220ms ease;
}

.dish-page-link::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(120deg, transparent 30%, rgba(216, 168, 77, 0.1), transparent 70%);
 transform: translateX(-110%);
 transition: transform 700ms ease;
}

.dish-page-link:hover {
 background: #1d1712;
}

.dish-page-link:hover::after {
 transform: translateX(110%);
}

.dish-page-link span,
.dish-page-link strong {
 position: relative;
 z-index: 1;
}

.dish-page-link span {
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.dish-page-link strong {
 max-width: 560px;
 margin-top: 10px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(24px, 3vw, 42px);
 line-height: 1;
}

.dish-page-next {
 text-align: right;
}

.dish-page-next strong {
 justify-self: end;
}

.dish-call-band {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 36px;
 padding-top: clamp(28px, 4vw, 52px);
 padding-bottom: clamp(28px, 4vw, 52px);
 background:
 linear-gradient(90deg, rgba(24, 77, 53, 0.68), rgba(15, 11, 8, 0.84)),
 #10291d;
}

.dish-call-band h2 {
 max-width: 850px;
 font-size: clamp(30px, 4vw, 52px);
}

.dish-call-band .button {
 flex: 0 0 auto;
}

.dish-mobile-call {
 display: none;
}

.dish-motion,
.dish-ingredient-item,
.burger-layer-row {
 opacity: 0;
 transform: translateY(32px);
 transition:
 opacity 620ms ease var(--dish-delay, 0ms),
 transform 720ms cubic-bezier(0.2, 0.76, 0.2, 1) var(--dish-delay, 0ms);
}

.dish-motion.is-visible,
.dish-ingredient-item.is-visible,
.burger-layer-row.is-visible {
 opacity: 1;
 transform: translateY(0);
}

@keyframes dish-panel-enter {
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes dish-hero-breathe {
 from { transform: scale(1.04); }
 to { transform: scale(1.095); }
}

@media (max-width: 1080px) {
 .dish-composition-pro {
 grid-template-columns: minmax(220px, 0.55fr) minmax(340px, 1fr);
 }

 .dish-composition-alt {
 grid-template-columns: minmax(0, 1fr) minmax(210px, 0.46fr);
 }

 .dish-allergen-note {
 grid-column: 1 / -1;
 }
}

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

 .dish-composition-pro {
 grid-template-columns: 1fr;
 }

 .dish-composition-heading {
 position: static;
 }

 .dish-composition-alt {
 grid-template-columns: 1fr;
 }

 .dish-composition-alt-copy h2 {
 white-space: normal;
 }

 .dish-composition-alt-photo {
 justify-self: start;
 width: min(100%, 320px);
 }

 .dish-allergen-note {
 grid-column: auto;
 }

 .dish-call-band {
 display: grid;
 }

 .dish-call-band .button {
 justify-self: start;
 }
}

@media (max-width: 720px) {
 body:has(.dish-detail) {
 padding-bottom: 76px;
 }

 .dish-detail .dish-hero {
 padding-top: 112px;
 }

 .dish-badges span {
 white-space: normal;
 }

 .dish-pagination {
 grid-template-columns: 1fr;
 }

 .dish-page-next {
 text-align: left;
 }

 .dish-page-next strong {
 justify-self: start;
 }

 .dish-mobile-call {
 position: fixed;
 z-index: 120;
 right: 10px;
 bottom: 10px;
 left: 10px;
 display: flex;
 min-height: 58px;
 align-items: center;
 justify-content: space-between;
 gap: 12px;
 border: 1px solid rgba(255, 247, 232, 0.24);
 border-radius: 8px;
 padding: 10px 16px;
 background: #d8a84d;
 box-shadow: 0 18px 46px rgba(0, 0, 0, 0.42);
 color: #17100a;
 text-decoration: none;
 }

 .dish-mobile-call span {
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
 }

 .dish-mobile-call strong {
 white-space: nowrap;
 font-size: 16px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .dish-detail .dish-hero-bg,
 .dish-detail .dish-hero-copy,
 .dish-feature-panel {
 animation: none;
 }

 .dish-detail .dish-hero-copy,
 .dish-feature-panel,
 .dish-motion,
 .dish-ingredient-item,
 .burger-layer-row {
 opacity: 1;
 transform: none;
 transition: none;
 }
}

/* Carte premium refresh */
.menu-hero-premium {
 min-height: min(820px, 92svh);
 grid-template-columns: minmax(0, 1fr) minmax(280px, 370px);
 gap: clamp(24px, 5vw, 70px);
 padding-bottom: clamp(42px, 8vw, 96px);
}

.menu-hero-premium > img {
 object-position: center 58%;
 filter: saturate(1.12) contrast(1.04) brightness(0.82);
}

.menu-hero-premium .menu-hero-overlay {
 background:
 radial-gradient(circle at 82% 72%, rgba(13, 117, 70, 0.28), transparent 30%),
 radial-gradient(circle at 18% 24%, rgba(216, 168, 77, 0.26), transparent 28%),
 linear-gradient(90deg, rgba(8, 6, 4, 0.94) 0%, rgba(8, 6, 4, 0.72) 42%, rgba(8, 6, 4, 0.28) 100%),
 linear-gradient(0deg, rgba(8, 6, 4, 0.98) 0%, rgba(8, 6, 4, 0.22) 54%, rgba(8, 6, 4, 0.66) 100%);
}

.menu-hero-premium .menu-hero-copy {
 align-self: end;
 max-width: 900px;
}

.menu-hero-premium .menu-hero-copy h1 {
 max-width: 820px;
 font-size: clamp(54px, 8.4vw, 126px);
}

.menu-hero-board {
 align-self: end;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 22px;
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.12), rgba(255, 247, 232, 0.045)),
 rgba(18, 13, 9, 0.64);
 box-shadow: 0 26px 70px rgba(0, 0, 0, 0.32);
 backdrop-filter: blur(18px);
}

.menu-hero-board span,
.menu-service-strip span,
.menu-highlight-card span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0;
 text-transform: uppercase;
}

.menu-hero-board strong {
 display: block;
 margin-top: 10px;
 color: var(--cream);
 font-family: "Playfair Display", serif;
 font-size: clamp(30px, 3vw, 44px);
 line-height: 0.95;
}

.menu-hero-board p {
 margin: 14px 0 0;
 color: rgba(255, 247, 232, 0.78);
 font-size: 15px;
 line-height: 1.55;
}

.menu-page {
 padding-top: clamp(22px, 4vw, 44px);
}

.menu-jump {
 top: 94px;
 gap: 9px;
 margin-bottom: clamp(22px, 4vw, 36px);
 border-color: rgba(216, 168, 77, 0.22);
 background:
 linear-gradient(135deg, rgba(31, 24, 17, 0.93), rgba(12, 9, 6, 0.88)),
 rgba(18, 13, 9, 0.88);
}

.menu-jump a {
 background: rgba(255, 247, 232, 0.04);
}

.menu-jump a[href="#burgers"],
.menu-jump a[href="#tapas"],
.menu-jump a[href="#bar"] {
 border-color: rgba(216, 168, 77, 0.38);
 color: var(--cream);
}

.menu-service-strip {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 12px;
 margin-bottom: clamp(44px, 6vw, 76px);
}

.menu-service-strip > div {
 min-height: 132px;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: 20px;
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.09), rgba(255, 247, 232, 0.025)),
 rgba(20, 14, 10, 0.72);
}

.menu-service-strip strong {
 display: block;
 margin-top: 10px;
 color: var(--cream);
 font-size: clamp(17px, 1.8vw, 23px);
 line-height: 1.15;
}

.menu-service-strip p {
 margin: 10px 0 0;
 color: var(--muted);
 font-size: 14px;
 line-height: 1.5;
}

.menu-highlights {
 margin-bottom: clamp(58px, 8vw, 96px);
}

.menu-highlights-head {
 display: grid;
 grid-template-columns: minmax(0, 0.84fr) minmax(260px, 0.42fr);
 gap: clamp(20px, 5vw, 64px);
 align-items: end;
 margin-bottom: 24px;
}

.menu-highlights-head .eyebrow {
 grid-column: 1 / -1;
 margin-bottom: -6px;
}

.menu-highlights-head h2 {
 margin: 0;
 max-width: 760px;
 font-size: clamp(38px, 5vw, 76px);
 line-height: 0.95;
}

.menu-highlights-head p:last-child {
 margin: 0;
 color: var(--muted);
 font-size: 17px;
 line-height: 1.65;
}

.menu-highlight-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.14fr) repeat(2, minmax(220px, 0.62fr));
 gap: 14px;
}

.menu-highlight-card {
 position: relative;
 min-height: 350px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 background: rgba(18, 13, 9, 0.76);
 box-shadow: 0 22px 60px rgba(0, 0, 0, 0.24);
}

.menu-highlight-card-large {
 grid-row: span 2;
 min-height: 714px;
}

.menu-highlight-card img {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 transform: scale(1.01);
 transition: transform 0.45s ease, filter 0.45s ease;
}

.menu-highlight-card::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, rgba(10, 7, 5, 0.04) 18%, rgba(10, 7, 5, 0.48) 54%, rgba(10, 7, 5, 0.94) 100%);
}

.menu-highlight-card:hover img {
 filter: saturate(1.12) contrast(1.04);
 transform: scale(1.045);
}

.menu-highlight-card > div {
 position: absolute;
 z-index: 1;
 right: 16px;
 bottom: 16px;
 left: 16px;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 17px;
 background: rgba(16, 11, 8, 0.72);
 backdrop-filter: blur(14px);
}

.menu-highlight-card h3 {
 margin: 9px 0 8px;
 color: var(--cream);
 font-family: "Playfair Display", serif;
 font-size: clamp(28px, 3vw, 44px);
 line-height: 0.96;
}

.menu-highlight-card p {
 margin: 0 0 14px;
 color: rgba(255, 247, 232, 0.76);
 font-size: 14px;
 line-height: 1.5;
}

.menu-highlight-card strong {
 display: inline-flex;
 min-height: 36px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.42);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(216, 168, 77, 0.13);
 color: var(--gold);
 font-weight: 900;
}

.menu-category {
 scroll-margin-top: 150px;
}

.menu-list > p,
.menu-dish-link {
 border-color: rgba(255, 247, 232, 0.14);
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.064), rgba(255, 247, 232, 0.024)),
 rgba(19, 13, 9, 0.68);
}

.menu-list > p:hover,
.menu-dish-link:hover {
 border-color: rgba(216, 168, 77, 0.34);
}

.menu-list strong {
 font-size: 15px;
 line-height: 1.25;
}

.menu-list em {
 max-width: 62ch;
}

.menu-list span {
 border: 1px solid rgba(216, 168, 77, 0.24);
 border-radius: 999px;
 padding: 7px 10px;
 background: rgba(216, 168, 77, 0.1);
 line-height: 1;
}

@media (max-width: 980px) {
 .menu-hero-premium {
 min-height: 760px;
 grid-template-columns: 1fr;
 align-content: end;
 }

 .menu-hero-board {
 max-width: 520px;
 }

 .menu-service-strip,
 .menu-highlights-head {
 grid-template-columns: 1fr;
 }

 .menu-highlight-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .menu-highlight-card-large {
 grid-column: 1 / -1;
 min-height: 520px;
 }
}

@media (max-width: 720px) {
 .menu-hero-premium {
 min-height: 700px;
 padding-top: 112px;
 }

 .menu-hero-premium .menu-hero-copy h1 {
 font-size: clamp(43px, 13vw, 68px);
 }

 .menu-jump {
 position: sticky;
 top: 76px;
 flex-wrap: nowrap;
 overflow-x: auto;
 padding: 9px;
 scrollbar-width: none;
 }

 .menu-jump::-webkit-scrollbar {
 display: none;
 }

 .menu-jump a {
 flex: 0 0 auto;
 white-space: nowrap;
 }

 .menu-service-strip,
 .menu-highlight-grid {
 grid-template-columns: 1fr;
 }

 .menu-service-strip > div {
 min-height: auto;
 }

 .menu-highlight-card,
 .menu-highlight-card-large {
 min-height: 420px;
 }

 .menu-category {
 scroll-margin-top: 118px;
 }

 .menu-list span {
 justify-self: start;
 }
}

/* Home premium refresh */
.home-hero-wow {
 min-height: min(920px, 100svh);
}

.home-hero-wow .hero-bg {
 background-position: center 54%;
}

.home-hero-wow .hero-vignette {
 background:
 radial-gradient(circle at 72% 35%, rgba(216, 168, 77, 0.2), transparent 28%),
 radial-gradient(circle at 88% 74%, rgba(13, 117, 70, 0.25), transparent 30%),
 linear-gradient(90deg, rgba(7, 5, 4, 0.95) 0%, rgba(8, 6, 4, 0.74) 44%, rgba(8, 6, 4, 0.28) 100%),
 linear-gradient(0deg, rgba(8, 6, 4, 0.98) 0%, rgba(8, 6, 4, 0.22) 54%, rgba(8, 6, 4, 0.66) 100%);
}

.home-hero-wow .hero-panel {
 border-color: rgba(216, 168, 77, 0.28);
 background:
 linear-gradient(145deg, rgba(216, 168, 77, 0.12), rgba(255, 247, 232, 0.035)),
 rgba(16, 11, 8, 0.76);
}

.home-match-callout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 gap: clamp(20px, 4vw, 54px);
 align-items: end;
 border-top: 1px solid rgba(216, 168, 77, 0.22);
 border-bottom: 1px solid rgba(255, 247, 232, 0.1);
 padding: clamp(34px, 5vw, 58px) clamp(18px, 5vw, 72px);
 background:
 radial-gradient(circle at 9% 32%, rgba(170, 52, 47, 0.22), transparent 30%),
 linear-gradient(135deg, rgba(28, 17, 10, 0.96), rgba(8, 12, 8, 0.96));
}

.home-match-copy {
 max-width: 960px;
}

.home-match-copy h2 {
 max-width: 760px;
 margin: 0 0 14px;
 font-size: clamp(42px, 6vw, 88px);
 line-height: 0.92;
}

.home-match-copy p:last-child {
 max-width: 820px;
 margin: 0;
 color: rgba(255, 247, 232, 0.78);
 font-size: clamp(16px, 1.45vw, 20px);
 line-height: 1.6;
}

.home-match-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 10px;
}

.home-routes {
 background:
 radial-gradient(circle at 82% 16%, rgba(216, 168, 77, 0.13), transparent 26%),
 radial-gradient(circle at 12% 78%, rgba(13, 117, 70, 0.16), transparent 28%),
 #120d09;
}

.home-routes-head {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 margin-bottom: clamp(22px, 4vw, 34px);
}

.home-routes-head h2 {
 max-width: 860px;
 margin: 0;
 font-size: clamp(44px, 6vw, 86px);
 line-height: 0.93;
}

.home-route-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.08fr) repeat(2, minmax(210px, 0.58fr));
 gap: 14px;
}

.home-route-card {
 position: relative;
 display: grid;
 min-height: 360px;
 align-content: end;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 padding: 20px;
 background: rgba(18, 13, 9, 0.72);
 box-shadow: 0 22px 64px rgba(0, 0, 0, 0.25);
}

.home-route-card-large {
 grid-row: span 2;
 min-height: 734px;
}

.home-route-card img {
 position: absolute;
 inset: 0;
 z-index: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(1.05) contrast(1.03);
 transform: scale(1.01);
 transition: transform 0.45s ease, filter 0.45s ease;
}

.home-route-card::after {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 1;
 background: linear-gradient(180deg, rgba(8, 6, 4, 0.04) 20%, rgba(8, 6, 4, 0.44) 58%, rgba(8, 6, 4, 0.94) 100%);
}

.home-route-card:hover img {
 filter: saturate(1.14) contrast(1.06);
 transform: scale(1.045);
}

.home-route-card span,
.home-route-card strong {
 position: relative;
 z-index: 2;
}

.home-route-card span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.home-route-card strong {
 max-width: 520px;
 margin-top: 8px;
 color: var(--cream);
 font-family: "Playfair Display", serif;
 font-size: clamp(28px, 3vw, 48px);
 line-height: 0.98;
}

.proof-section .proof-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.visit-cta .visit-locations {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 width: 100%;
}

.visit-cta .visit-locations span {
 min-height: 94px;
}

@media (max-width: 1080px) {
 .home-match-callout,
 .home-route-grid {
 grid-template-columns: 1fr;
 }

 .home-match-actions {
 justify-content: flex-start;
 }

 .home-route-card,
 .home-route-card-large {
 min-height: 430px;
 }

 .proof-section .proof-grid,
 .visit-cta .visit-locations {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 720px) {
 .home-match-callout {
 padding-top: 30px;
 padding-bottom: 32px;
 }

 .home-match-actions,
 .home-match-actions .button {
 width: 100%;
 }

 .home-routes {
 padding-top: 58px;
 }

 .home-route-card,
 .home-route-card-large {
 min-height: 380px;
 }

 .proof-section .proof-grid,
 .visit-cta .visit-locations {
 grid-template-columns: 1fr;
 }
}

/* Home motion layer */
:root {
 --pointer-x: 0;
 --pointer-y: 0;
}

.home-hero-wow::before,
.home-hero-wow::after {
 content: "";
 position: absolute;
 z-index: -1;
 pointer-events: none;
}

.home-hero-wow::before {
 inset: 8% 4% auto auto;
 width: min(520px, 38vw);
 aspect-ratio: 1;
 border: 1px solid rgba(216, 168, 77, 0.18);
 border-radius: 50%;
 opacity: 0.68;
 transform: translate3d(calc(var(--pointer-x) * -18px), calc(var(--pointer-y) * -18px), 0);
 animation: home-ring-pulse 7s ease-in-out infinite;
}

.home-hero-wow::after {
 inset: auto auto 10% 5%;
 width: min(430px, 34vw);
 height: 1px;
 background: linear-gradient(90deg, transparent, rgba(216, 168, 77, 0.58), transparent);
 transform: translate3d(calc(var(--pointer-x) * 24px), calc(var(--pointer-y) * 12px), 0) rotate(-12deg);
 animation: home-line-drift 6s ease-in-out infinite;
}

.home-hero-wow .hero-content {
 transform: translate3d(calc(var(--pointer-x) * -8px), calc(var(--pointer-y) * -5px), 0);
 transition: transform 0.18s ease-out;
}

.home-hero-wow .hero-showcase {
 transform: translate3d(calc(var(--pointer-x) * 16px), calc(var(--pointer-y) * 12px), 0);
 transition: transform 0.18s ease-out;
}

.home-hero-wow .hero-panel {
 transform: translate3d(calc(var(--pointer-x) * 10px), calc(var(--pointer-y) * -8px), 0);
 transition: transform 0.18s ease-out, border-color 0.25s ease, background 0.25s ease;
}

.home-hero-wow .hero-panel::after,
.home-match-callout::after,
.home-route-card::before,
.proof-card::after,
.visit-cta::after {
 content: "";
 position: absolute;
 pointer-events: none;
}

.home-hero-wow .hero-panel::after {
 inset: -1px;
 border-radius: inherit;
 background: linear-gradient(110deg, transparent 0 36%, rgba(255, 247, 232, 0.24) 45%, transparent 54% 100%);
 opacity: 0;
 transform: translateX(-42%);
 animation: home-card-sheen 5.8s ease-in-out 1.6s infinite;
}

.button {
 position: relative;
 overflow: hidden;
}

.button::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(110deg, transparent 0 32%, rgba(255, 255, 255, 0.34) 48%, transparent 64% 100%);
 opacity: 0;
 transform: translateX(-120%);
 transition: transform 0.55s ease, opacity 0.25s ease;
}

.button:hover::after {
 opacity: 1;
 transform: translateX(120%);
}

.home-match-callout {
 position: relative;
 overflow: hidden;
}

.home-match-callout::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(120deg, transparent 0 45%, rgba(216, 168, 77, 0.16) 45.2% 45.45%, transparent 45.8% 100%),
 linear-gradient(120deg, transparent 0 64%, rgba(255, 247, 232, 0.08) 64.2% 64.38%, transparent 64.7% 100%);
 opacity: 0.55;
 animation: home-rugby-sweep 7.5s ease-in-out infinite;
}

.home-match-callout::after {
 right: 10%;
 bottom: -92px;
 width: min(420px, 36vw);
 aspect-ratio: 1;
 border: 1px solid rgba(216, 168, 77, 0.16);
 border-radius: 50%;
 animation: home-ring-pulse 8s ease-in-out 0.8s infinite;
}

.home-route-card::before {
 inset: 0;
 z-index: 2;
 background: linear-gradient(105deg, transparent 0 38%, rgba(255, 247, 232, 0.18) 48%, transparent 58% 100%);
 opacity: 0;
 transform: translateX(-100%);
 transition: transform 0.65s ease, opacity 0.3s ease;
}

.home-route-card:hover::before {
 opacity: 1;
 transform: translateX(110%);
}

.home-route-card {
 transform: translateY(0);
 transition: transform 0.32s ease, border-color 0.32s ease, box-shadow 0.32s ease;
}

.home-route-card:hover {
 border-color: rgba(216, 168, 77, 0.42);
 box-shadow: 0 30px 82px rgba(0, 0, 0, 0.35);
 transform: translateY(-6px);
}

.image-marquee img {
 animation: home-photo-breathe 7.5s ease-in-out infinite;
}

.image-marquee img:nth-child(2) {
 animation-delay: 0.7s;
}

.image-marquee img:nth-child(3) {
 animation-delay: 1.35s;
}

.image-marquee img:nth-child(4) {
 animation-delay: 2s;
}

.menu-photo-main {
 animation: home-photo-float-a 7s ease-in-out infinite;
}

.menu-photo-side {
 animation: home-photo-float-b 8s ease-in-out 0.4s infinite;
}

.menu-card-mini,
.rugby-score-card {
 animation: home-soft-pulse 4.8s ease-in-out infinite;
}

.proof-card {
 position: relative;
 overflow: hidden;
 transition: transform 0.28s ease, border-color 0.28s ease, background 0.28s ease;
}

.proof-card::after {
 inset: auto 18px 0;
 height: 1px;
 background: linear-gradient(90deg, transparent, rgba(216, 168, 77, 0.62), transparent);
 opacity: 0;
 transform: scaleX(0.3);
 transition: opacity 0.28s ease, transform 0.28s ease;
}

.proof-card:hover {
 border-color: rgba(216, 168, 77, 0.36);
 background: rgba(255, 247, 232, 0.07);
 transform: translateY(-5px);
}

.proof-card:hover::after {
 opacity: 1;
 transform: scaleX(1);
}

.visit-cta {
 overflow: hidden;
}

.visit-cta::after {
 inset: 0;
 z-index: 0;
 background:
 linear-gradient(112deg, transparent 0 52%, rgba(216, 168, 77, 0.15) 52.15% 52.35%, transparent 52.6% 100%),
 radial-gradient(circle at 88% 24%, rgba(216, 168, 77, 0.18), transparent 26%);
 animation: home-rugby-sweep 9s ease-in-out infinite reverse;
}

.visit-content,
.visit-locations {
 z-index: 2;
}

@keyframes home-ring-pulse {
 0%,
 100% {
 opacity: 0.36;
 transform: translate3d(calc(var(--pointer-x) * -18px), calc(var(--pointer-y) * -18px), 0) scale(0.96);
 }
 50% {
 opacity: 0.78;
 transform: translate3d(calc(var(--pointer-x) * -18px), calc(var(--pointer-y) * -18px), 0) scale(1.04);
 }
}

@keyframes home-line-drift {
 0%,
 100% {
 opacity: 0.24;
 }
 50% {
 opacity: 0.72;
 }
}

@keyframes home-card-sheen {
 0%,
 60%,
 100% {
 opacity: 0;
 transform: translateX(-42%);
 }
 72% {
 opacity: 0.58;
 }
 88% {
 opacity: 0;
 transform: translateX(42%);
 }
}

@keyframes home-rugby-sweep {
 0%,
 100% {
 opacity: 0.26;
 transform: translateX(-3%);
 }
 50% {
 opacity: 0.68;
 transform: translateX(3%);
 }
}

@keyframes home-photo-breathe {
 0%,
 100% {
 filter: saturate(1.04) contrast(1.03);
 transform: scale(1);
 }
 50% {
 filter: saturate(1.14) contrast(1.08);
 transform: scale(1.025);
 }
}

@keyframes home-photo-float-a {
 0%,
 100% {
 transform: translateY(0) rotate(-2deg);
 }
 50% {
 transform: translateY(-12px) rotate(-1deg);
 }
}

@keyframes home-photo-float-b {
 0%,
 100% {
 transform: translateY(0) rotate(3deg);
 }
 50% {
 transform: translateY(10px) rotate(2deg);
 }
}

@keyframes home-soft-pulse {
 0%,
 100% {
 box-shadow: 0 18px 52px rgba(0, 0, 0, 0.24);
 transform: translateY(0);
 }
 50% {
 box-shadow: 0 24px 70px rgba(216, 168, 77, 0.12);
 transform: translateY(-4px);
 }
}

@media (prefers-reduced-motion: reduce) {
 .home-hero-wow::before,
 .home-hero-wow::after,
 .home-hero-wow .hero-content,
 .home-hero-wow .hero-showcase,
 .home-hero-wow .hero-panel,
 .image-marquee img,
 .menu-photo-main,
 .menu-photo-side,
 .menu-card-mini,
 .rugby-score-card,
 .home-match-callout::before,
 .home-match-callout::after,
 .visit-cta::after {
 animation: none !important;
 transform: none !important;
 }
}

/* Reversible spirit photo slides */
.js-enabled .spirit-section.spirit-motion-ready .spirit-visual {
 overflow: visible;
}

.js-enabled .spirit-section.spirit-motion-ready .spirit-visual img,
.js-enabled .spirit-section.spirit-motion-ready .spirit-badge,
.js-enabled .spirit-section.spirit-motion-ready .spirit-orbit {
 will-change: transform, opacity, filter;
}

.js-enabled .spirit-section.spirit-motion-ready .spirit-visual img:first-child {
 opacity: 0;
 filter: blur(8px) saturate(0.86) contrast(0.96);
 transform: translate3d(-86px, 28px, 0) rotate(-8deg) scale(0.94);
 transition:
 opacity 0.72s ease,
 filter 0.72s ease,
 transform 0.95s cubic-bezier(0.2, 0.82, 0.18, 1);
}

.js-enabled .spirit-section.spirit-motion-ready .spirit-visual img:nth-child(2) {
 opacity: 0;
 filter: blur(8px) saturate(0.86) contrast(0.96);
 transform: translate3d(86px, 54px, 0) rotate(8deg) scale(0.92);
 transition:
 opacity 0.72s ease 0.08s,
 filter 0.72s ease 0.08s,
 transform 0.95s cubic-bezier(0.2, 0.82, 0.18, 1) 0.08s;
}

.js-enabled .spirit-section.spirit-motion-ready .spirit-badge {
 opacity: 0;
 transform: translate3d(0, 34px, 0) scale(0.94);
 transition:
 opacity 0.58s ease 0.2s,
 transform 0.72s cubic-bezier(0.2, 0.82, 0.18, 1) 0.2s;
}

.js-enabled .spirit-section.spirit-motion-ready .spirit-orbit {
 opacity: 0;
 transform: scale(0.84) rotate(-18deg);
 transition:
 opacity 0.72s ease 0.12s,
 transform 0.9s cubic-bezier(0.2, 0.82, 0.18, 1) 0.12s;
}

.js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-visual img:first-child {
 opacity: 1;
 filter: saturate(1.08) contrast(1.03);
 transform: translate3d(0, 0, 0) rotate(-2deg) scale(1);
}

.js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-visual img:nth-child(2) {
 opacity: 1;
 filter: saturate(1.08) contrast(1.03);
 transform: translate3d(0, 0, 0) rotate(3deg) scale(1);
}

.js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-badge {
 opacity: 1;
 transform: translate3d(0, 0, 0) scale(1);
}

.js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-orbit {
 opacity: 1;
 transform: scale(1) rotate(0deg);
}

.js-enabled .spirit-section.spirit-motion-ready.section-visible .spirit-visual img:first-child,
.js-enabled .spirit-section.spirit-motion-ready.section-visible .spirit-visual img:nth-child(2),
.js-enabled .spirit-section.spirit-motion-ready.section-visible .spirit-badge {
 animation: none;
}

@media (max-width: 620px) {
 .js-enabled .spirit-section.spirit-motion-ready .spirit-visual img:first-child,
 .js-enabled .spirit-section.spirit-motion-ready .spirit-visual img:nth-child(2) {
 transform: translate3d(0, 42px, 0) rotate(0deg) scale(0.96);
 }

 .js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-visual img:first-child,
 .js-enabled .spirit-section.spirit-motion-ready.spirit-in-view .spirit-visual img:nth-child(2) {
 transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
 }
}

@media (prefers-reduced-motion: reduce) {
 .js-enabled .spirit-section.spirit-motion-ready .spirit-visual img,
 .js-enabled .spirit-section.spirit-motion-ready .spirit-badge,
 .js-enabled .spirit-section.spirit-motion-ready .spirit-orbit {
 opacity: 1 !important;
 filter: none !important;
 transform: none !important;
 transition: none !important;
 }
}

/* Horizontal gallery carousel */
.image-carousel {
 position: relative;
 display: block;
 overflow: hidden;
 padding: 14px 0;
 background:
 linear-gradient(90deg, #0b0806, rgba(18, 13, 9, 0.92), #0b0806);
}

.image-carousel::before,
.image-carousel::after {
 content: "";
 position: absolute;
 z-index: 2;
 top: 0;
 bottom: 0;
 width: min(150px, 18vw);
 pointer-events: none;
}

.image-carousel::before {
 left: 0;
 background: linear-gradient(90deg, #0b0806, transparent);
}

.image-carousel::after {
 right: 0;
 background: linear-gradient(270deg, #0b0806, transparent);
}

.image-carousel-track {
 display: flex;
 width: max-content;
 gap: 14px;
 padding-inline: 14px;
 animation: image-carousel-scroll 78s linear infinite;
}

.image-carousel img {
 flex: 0 0 clamp(260px, 30vw, 520px);
 width: clamp(260px, 30vw, 520px);
 height: clamp(190px, 20vw, 320px);
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 object-fit: cover;
 filter: saturate(1.06) contrast(1.03);
 transform: translateZ(0);
 animation: none;
 transition: transform 0.35s ease, filter 0.35s ease, border-color 0.35s ease;
}

.image-carousel img:nth-child(3n + 1) {
 width: clamp(300px, 36vw, 620px);
 flex-basis: clamp(300px, 36vw, 620px);
}

.image-carousel img:nth-child(4n) {
 width: clamp(230px, 26vw, 450px);
 flex-basis: clamp(230px, 26vw, 450px);
}

.image-carousel img:hover {
 border-color: rgba(216, 168, 77, 0.38);
 filter: saturate(1.14) contrast(1.08);
 transform: translateY(-4px) scale(1.015);
}

@keyframes image-carousel-scroll {
 from {
 transform: translate3d(0, 0, 0);
 }
 to {
 transform: translate3d(calc(-50% - 7px), 0, 0);
 }
}

@media (max-width: 720px) {
 .image-carousel {
 padding-block: 10px;
 }

 .image-carousel-track {
 gap: 10px;
 padding-inline: 10px;
 animation-duration: 58s;
 }

 .image-carousel img,
 .image-carousel img:nth-child(3n + 1),
 .image-carousel img:nth-child(4n) {
 flex-basis: 78vw;
 width: 78vw;
 height: 240px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .image-carousel-track {
 animation: none !important;
 }
}


/* Sur place premium section */
.place-showcase {
 position: relative;
 isolation: isolate;
 grid-template-columns: minmax(320px, 0.62fr) minmax(0, 0.86fr);
 align-items: center;
 border-top: 1px solid rgba(216, 168, 77, 0.14);
 border-bottom: 1px solid rgba(216, 168, 77, 0.12);
 background:
 linear-gradient(115deg, rgba(255, 247, 232, 0.05) 0 0.08%, transparent 0.1% 48%, rgba(216, 168, 77, 0.12) 48.1% 48.22%, transparent 48.4% 100%),
 radial-gradient(circle at 82% 18%, rgba(216, 168, 77, 0.2), transparent 26%),
 radial-gradient(circle at 12% 74%, rgba(15, 90, 63, 0.32), transparent 32%),
 linear-gradient(180deg, #150f0b, #0e0a07);
}

.place-showcase::before {
 content: "Sur place";
 position: absolute;
 z-index: -1;
 right: -0.08em;
 top: 0.04em;
 color: rgba(255, 247, 232, 0.035);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(96px, 15vw, 230px);
 font-weight: 800;
 line-height: 0.8;
}

.place-showcase-copy {
 max-width: 680px;
}

.place-showcase-copy > p:not(.eyebrow) {
 max-width: 600px;
 color: rgba(255, 247, 232, 0.78);
 font-size: clamp(17px, 1.2vw, 20px);
}

.place-showcase-cues {
 display: grid;
 gap: 10px;
 margin-top: 26px;
}

.place-showcase-cues span {
 display: grid;
 gap: 4px;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: 15px 16px;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 58%),
 rgba(255, 247, 232, 0.055);
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.45;
}

.place-showcase-cues strong {
 color: var(--cream);
 font-size: 15px;
}

.place-showcase-cues small {
 color: inherit;
 font: inherit;
}

.place-showcase-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 28px;
}

.place-showcase .place-tags {
 margin: 24px 0 0;
}

.place-showcase .place-tags li {
 border-color: rgba(216, 168, 77, 0.28);
 background: rgba(216, 168, 77, 0.08);
}

.place-photo-stack {
 grid-template-columns: minmax(0, 0.74fr) minmax(170px, 0.44fr);
 gap: 16px;
}

.place-photo-stack::before {
 inset: auto 8% 6% auto;
 z-index: 0;
 width: 58%;
 background: radial-gradient(circle, rgba(216, 168, 77, 0.08), transparent 60%);
}

.place-photo-stack img {
 border: 1px solid rgba(255, 247, 232, 0.16);
 filter: saturate(1.08) contrast(1.04);
}

.place-photo-stack img:first-child {
 min-height: 560px;
}

.place-photo-stack img:nth-child(2) {
 min-height: 360px;
 margin-bottom: clamp(34px, 5vw, 72px);
}

.place-photo-stack > span {
 position: absolute;
 z-index: 3;
 right: clamp(18px, 3vw, 34px);
 bottom: clamp(18px, 3vw, 34px);
 max-width: 260px;
 border: 1px solid rgba(255, 247, 232, 0.18);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(15, 11, 8, 0.72);
 color: var(--cream);
 font-size: 13px;
 font-weight: 900;
 text-transform: uppercase;
 box-shadow: 0 18px 54px rgba(0, 0, 0, 0.35);
 backdrop-filter: blur(16px);
}

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

 .place-showcase-cues {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }

 .place-photo-stack img:first-child,
 .place-photo-stack img:nth-child(2) {
 min-height: 340px;
 margin-bottom: 0;
 }
}

@media (max-width: 620px) {
 .place-showcase-cues {
 grid-template-columns: 1fr;
 }

 .place-showcase-actions,
 .place-showcase-actions .button {
 width: 100%;
 }

 .place-photo-stack > span {
 right: 14px;
 bottom: 14px;
 left: 14px;
 max-width: none;
 }
}

/* Access premium section */
.place-access {
 position: relative;
 isolation: isolate;
 grid-template-columns: minmax(0, 0.76fr) minmax(320px, 0.68fr);
 align-items: center;
 color: #22160e;
 background:
 radial-gradient(circle at 86% 12%, rgba(15, 90, 63, 0.16), transparent 30%),
 radial-gradient(circle at 8% 88%, rgba(216, 168, 77, 0.24), transparent 28%),
 linear-gradient(135deg, #fff4df, #f2dfc2);
}

.place-access::before {
 content: "";
 position: absolute;
 z-index: -1;
 inset: 28px;
 border: 1px solid rgba(76, 42, 22, 0.1);
 border-radius: 8px;
 pointer-events: none;
}

.place-access h2,
.place-access .eyebrow {
 color: #22160e;
}

.place-access-panel {
 max-width: 700px;
}

.place-access-panel > p {
 max-width: 620px;
 color: rgba(34, 22, 14, 0.72);
 font-size: clamp(17px, 1.2vw, 20px);
}

.place-access-list {
 display: grid;
 gap: 10px;
 margin-top: 26px;
}

.place-access-list span {
 display: grid;
 gap: 5px;
 border: 1px solid rgba(76, 42, 22, 0.12);
 border-radius: 8px;
 padding: 15px 16px;
 background:
 linear-gradient(135deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.22)),
 rgba(255, 247, 232, 0.46);
 color: rgba(34, 22, 14, 0.72);
 line-height: 1.45;
}

.place-access-list strong {
 color: #22160e;
 font-size: 13px;
 font-weight: 900;
 text-transform: uppercase;
}

.place-access-list small {
 color: inherit;
 font: inherit;
}

.place-access-route-mobile {
 display: none;
}

.place-access .button-ghost {
 border-color: rgba(34, 22, 14, 0.22);
 background: rgba(255, 255, 255, 0.38);
 color: #22160e;
}

.place-map-card {
 display: grid;
 min-height: 480px;
 align-content: space-between;
 overflow: hidden;
 border: 1px solid rgba(76, 42, 22, 0.16);
 border-radius: 8px;
 padding: clamp(24px, 4vw, 42px);
 background:
 linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.32)),
 linear-gradient(90deg, rgba(76, 42, 22, 0.08) 1px, transparent 1px),
 linear-gradient(0deg, rgba(76, 42, 22, 0.08) 1px, transparent 1px),
 radial-gradient(circle at 55% 35%, rgba(15, 90, 63, 0.18), transparent 22%),
 radial-gradient(circle at 76% 64%, rgba(216, 168, 77, 0.24), transparent 26%);
 background-size: auto, 34px 34px, 34px 34px, auto, auto;
 box-shadow: 0 26px 90px rgba(76, 42, 22, 0.16);
}

.place-map-card::before {
 top: 32%;
 left: 52%;
 width: 38px;
 height: 38px;
 border: 11px solid var(--green);
 background: var(--gold);
}

.place-map-card::after {
 top: calc(32% + 52px);
 left: calc(52% + 20px);
 width: 160px;
 background: rgba(15, 90, 63, 0.32);
}

.place-map-pin,
.place-map-meta {
 position: relative;
 z-index: 2;
}

.place-map-pin {
 max-width: 380px;
 border: 1px solid rgba(76, 42, 22, 0.12);
 border-radius: 8px;
 padding: 20px;
 background: rgba(255, 250, 241, 0.72);
 box-shadow: 0 18px 54px rgba(76, 42, 22, 0.12);
 backdrop-filter: blur(14px);
}

.place-map-pin span,
.place-map-meta span {
 color: var(--green);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.place-map-pin strong {
 display: block;
 margin: 8px 0 10px;
 color: #22160e;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(32px, 3.8vw, 52px);
 line-height: 0.94;
}

.place-map-pin p {
 margin: 0;
 color: rgba(34, 22, 14, 0.72);
 line-height: 1.55;
}

.place-map-meta {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 align-self: end;
}

.place-map-meta span {
 border: 1px solid rgba(15, 90, 63, 0.18);
 border-radius: 999px;
 padding: 9px 11px;
 background: rgba(255, 255, 255, 0.48);
 color: #22160e;
}

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

 .place-access-list {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

@media (max-width: 620px) {
 .place-access::before {
 inset: 14px;
 }

 .place-access-list {
 grid-template-columns: 1fr;
 }

 .place-map-card {
 min-height: 380px;
 }
}

/* Access dark theme correction */
.place-access {
 color: var(--cream);
 background:
 linear-gradient(115deg, rgba(255, 247, 232, 0.045) 0 0.08%, transparent 0.1% 48%, rgba(216, 168, 77, 0.13) 48.1% 48.25%, transparent 48.45% 100%),
 radial-gradient(circle at 84% 16%, rgba(216, 168, 77, 0.18), transparent 28%),
 radial-gradient(circle at 10% 86%, rgba(15, 90, 63, 0.3), transparent 30%),
 linear-gradient(180deg, #15100c, #0f0b08);
}

.place-access::before {
 border-color: rgba(255, 247, 232, 0.09);
}

.place-access h2,
.place-access .eyebrow {
 color: var(--cream);
}

.place-access-panel > p {
 color: rgba(255, 247, 232, 0.74);
}

.place-access-list span {
 border-color: rgba(255, 247, 232, 0.12);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 58%),
 rgba(255, 247, 232, 0.055);
 color: rgba(255, 247, 232, 0.68);
}

.place-access-list strong {
 color: var(--gold);
}

.place-access .button-ghost {
 border-color: rgba(255, 247, 232, 0.28);
 background: rgba(255, 247, 232, 0.08);
 color: var(--cream);
}

.place-map-card {
 border-color: rgba(255, 247, 232, 0.13);
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.1), rgba(255, 247, 232, 0.025)),
 linear-gradient(90deg, rgba(255, 247, 232, 0.055) 1px, transparent 1px),
 linear-gradient(0deg, rgba(255, 247, 232, 0.055) 1px, transparent 1px),
 radial-gradient(circle at 55% 35%, rgba(15, 90, 63, 0.34), transparent 24%),
 radial-gradient(circle at 76% 64%, rgba(216, 168, 77, 0.18), transparent 28%),
 rgba(16, 11, 8, 0.84);
 background-size: auto, 34px 34px, 34px 34px, auto, auto, auto;
 box-shadow: 0 26px 90px rgba(0, 0, 0, 0.32);
}

.place-map-pin {
 border-color: rgba(255, 247, 232, 0.14);
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.12), rgba(255, 247, 232, 0.045)),
 rgba(15, 11, 8, 0.72);
 box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26);
}

.place-map-pin span,
.place-map-meta span {
 color: var(--gold);
}

.place-map-pin strong {
 color: var(--cream);
}

.place-map-pin p {
 color: rgba(255, 247, 232, 0.7);
}

.place-map-meta span {
 border-color: rgba(216, 168, 77, 0.24);
 background: rgba(216, 168, 77, 0.09);
 color: rgba(255, 247, 232, 0.82);
}

/* Google Maps embed */
.place-map-embed {
 padding: 0;
 background: #120d09;
}

.place-map-embed::before,
.place-map-embed::after {
 display: none;
}

.place-map-embed iframe {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 border: 0;
 filter: saturate(0.92) contrast(1.02) brightness(0.9);
}

.place-map-embed::selection {
 background: transparent;
}

.place-map-embed .place-map-pin {
 margin: clamp(18px, 3vw, 30px);
}

.place-map-embed .place-map-meta {
 margin: clamp(18px, 3vw, 30px);
}

.place-map-embed .place-map-meta {
 position: absolute;
 right: clamp(14px, 2vw, 24px);
 bottom: clamp(14px, 2vw, 24px);
 margin: 0;
}

.private-map-placeholder {
 position: absolute;
 z-index: 3;
 inset: 0;
 display: grid;
 place-content: center;
 justify-items: start;
 gap: 14px;
 padding: clamp(28px, 6vw, 64px);
 background:
 linear-gradient(135deg, rgba(18, 13, 9, 0.98), rgba(36, 25, 17, 0.94)),
 radial-gradient(circle at top right, rgba(216, 168, 77, 0.18), transparent 45%);
 color: #fff7e8;
}

.private-map-placeholder[hidden] {
 display: none;
}

.private-map-placeholder strong {
 font-family: "Playfair Display", serif;
 font-size: clamp(28px, 4vw, 44px);
 line-height: 1.02;
}

.private-map-placeholder > p:not(.eyebrow) {
 max-width: 600px;
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.65;
}

.private-map-placeholder > a {
 color: #f0c66e;
 font-size: 13px;
 font-weight: 800;
 text-decoration: underline;
 text-underline-offset: 4px;
}

.place-map-embed.is-map-loaded .place-map-meta {
 z-index: 2;
}

/* Phone-only booking */
.phone-booking-card {
 align-content: center;
}

.phone-booking-card .form-heading h2 {
 color: var(--cream);
 font-size: clamp(42px, 6vw, 78px);
 line-height: 0.9;
}

.phone-booking-card > p {
 grid-column: 1 / -1;
 color: rgba(255, 247, 232, 0.74);
 font-size: 18px;
 line-height: 1.65;
}

.phone-booking-card .button {
 width: 100%;
}

/* Contact page */
.contact-hero {
 display: grid;
 grid-template-columns: minmax(0, 0.78fr) minmax(420px, 1fr);
 gap: clamp(34px, 7vw, 96px);
 align-items: center;
 min-height: 100svh;
 padding: clamp(140px, 15vh, 190px) clamp(18px, 5vw, 72px) clamp(70px, 10vh, 120px);
 color: var(--ink);
 background:
 radial-gradient(circle at 12% 18%, rgba(216, 168, 77, 0.2), transparent 28%),
 radial-gradient(circle at 86% 74%, rgba(15, 90, 63, 0.3), transparent 32%),
 linear-gradient(135deg, #120d09 0%, #24130b 50%, #08150e 100%);
}

.contact-intro h1 {
 max-width: 720px;
 margin-bottom: 24px;
 color: var(--cream);
 font-size: clamp(72px, 11vw, 170px);
 line-height: 0.78;
 text-shadow: 0 24px 80px rgba(0, 0, 0, 0.52);
}

.contact-intro > p:not(.eyebrow) {
 max-width: 650px;
 color: rgba(255, 247, 232, 0.76);
 font-size: clamp(18px, 2vw, 22px);
 line-height: 1.65;
}

.contact-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 30px;
}

.contact-card-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 14px;
}

.contact-card {
 display: flex;
 min-height: 220px;
 flex-direction: column;
 justify-content: flex-end;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 12px;
 padding: clamp(20px, 3vw, 30px);
 background: rgba(255, 247, 232, 0.055);
 box-shadow: 0 24px 70px rgba(0, 0, 0, 0.2);
 backdrop-filter: blur(16px);
 transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}

.contact-card:hover {
 border-color: rgba(216, 168, 77, 0.55);
 background: rgba(216, 168, 77, 0.1);
 transform: translateY(-5px);
}

.contact-card span {
 margin-bottom: 10px;
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.contact-card strong {
 overflow-wrap: anywhere;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(24px, 3vw, 42px);
 line-height: 1;
}

.contact-card p {
 margin: 14px 0 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.5;
}

.contact-details {
 display: grid;
 grid-template-columns: minmax(0, 0.72fr) minmax(420px, 1fr);
 gap: clamp(28px, 6vw, 80px);
 align-items: stretch;
}

.contact-hours h2 {
 font-size: clamp(54px, 7vw, 104px);
 line-height: 0.86;
}

.contact-detail-list {
 display: grid;
 gap: 12px;
 margin-top: 30px;
}

.contact-detail-list span {
 border-top: 1px solid rgba(76, 42, 22, 0.18);
 padding: 16px 0;
 color: #5d4d41;
 line-height: 1.55;
}

.contact-detail-list strong {
 display: block;
 margin-bottom: 5px;
 color: var(--dark);
 font-size: 18px;
}

.contact-map {
 position: relative;
 overflow: hidden;
 min-height: 520px;
 border: 1px solid rgba(76, 42, 22, 0.16);
 border-radius: 12px;
 box-shadow: var(--shadow);
}

.contact-map iframe {
 width: 100%;
 height: 100%;
 min-height: 520px;
 border: 0;
}

@media (max-width: 980px) {
 .contact-hero,
 .contact-details {
 grid-template-columns: 1fr;
 }

 .contact-hero {
 padding-top: 132px;
 }
}

@media (max-width: 620px) {
 .contact-card-grid {
 grid-template-columns: 1fr;
 }

 .contact-card {
 min-height: 180px;
 }

 .contact-actions,
 .contact-actions .button {
 width: 100%;
 }

 .contact-map,
 .contact-map iframe {
 min-height: 380px;
 }
}

/* Rugby final event page */
.event-hero {
 min-height: 100svh;
 grid-template-columns: minmax(0, 0.78fr) minmax(280px, 420px);
 gap: clamp(28px, 5vw, 72px);
 align-items: end;
 padding-top: clamp(132px, 14vh, 178px);
 padding-bottom: clamp(54px, 8vh, 96px);
}

.event-hero > img {
 filter: saturate(1.08) contrast(1.08);
 object-position: 62% center;
}

.event-hero-overlay {
 background:
 radial-gradient(circle at 76% 32%, rgba(216, 168, 77, 0.22), transparent 28%),
 radial-gradient(circle at 86% 70%, rgba(170, 52, 47, 0.38), transparent 30%),
 linear-gradient(90deg, rgba(7, 5, 4, 0.96) 0%, rgba(10, 7, 5, 0.74) 44%, rgba(10, 7, 5, 0.2) 100%),
 linear-gradient(0deg, rgba(11, 8, 6, 0.98) 0%, rgba(11, 8, 6, 0.18) 52%, rgba(11, 8, 6, 0.7) 100%);
}

.event-hero-lines {
 position: absolute;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 opacity: 0.42;
 background:
 linear-gradient(116deg, transparent 0 38%, rgba(255, 247, 232, 0.16) 38.1% 38.25%, transparent 38.42% 100%),
 linear-gradient(116deg, transparent 0 62%, rgba(216, 168, 77, 0.18) 62.1% 62.32%, transparent 62.48% 100%),
 repeating-linear-gradient(90deg, transparent 0 84px, rgba(255, 247, 232, 0.045) 84px 85px);
}

.event-hero-copy {
 position: relative;
 z-index: 2;
 max-width: 940px;
}

.event-hero-copy .eyebrow {
 display: inline-flex;
 border: 1px solid rgba(216, 168, 77, 0.35);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(18, 13, 9, 0.52);
 color: #f3c867;
 backdrop-filter: blur(12px);
}

.event-hero-copy h1 {
 max-width: 900px;
 font-size: clamp(68px, 10.5vw, 146px);
 line-height: 0.8;
}

.event-hero-copy > p:not(.eyebrow) {
 max-width: 700px;
 border-left: 3px solid rgba(216, 168, 77, 0.78);
 padding-left: clamp(16px, 2vw, 24px);
}

.event-hero-stats {
 max-width: 900px;
}

.event-hero-stats span {
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.13), transparent 58%),
 rgba(18, 13, 9, 0.66);
}

.final-score-panel {
 position: relative;
 z-index: 2;
 align-self: center;
 border: 1px solid rgba(216, 168, 77, 0.26);
 border-radius: 8px;
 padding: clamp(22px, 3vw, 34px);
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.13), rgba(255, 247, 232, 0.04)),
 rgba(13, 9, 7, 0.72);
 box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42);
 backdrop-filter: blur(20px) saturate(1.1);
}

.final-score-panel span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.final-score-panel strong {
 display: block;
 margin: 8px 0 12px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(54px, 7vw, 96px);
 line-height: 0.82;
}

.final-score-panel p {
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.58;
}

.final-score-panel a {
 display: inline-flex;
 margin-top: 12px;
 border-bottom: 2px solid var(--gold);
 color: var(--gold);
 font-weight: 900;
}

.events-page {
 background:
 radial-gradient(circle at 14% 12%, rgba(170, 52, 47, 0.28), transparent 28%),
 radial-gradient(circle at 88% 34%, rgba(216, 168, 77, 0.14), transparent 25%),
 radial-gradient(circle at 84% 78%, rgba(15, 90, 63, 0.34), transparent 30%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.final-night {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(300px, 0.52fr);
 gap: clamp(22px, 5vw, 56px);
 align-items: stretch;
 margin-bottom: 16px;
 overflow: hidden;
 border: 1px solid rgba(216, 168, 77, 0.28);
 border-radius: 8px;
 padding: clamp(24px, 5vw, 58px);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.15), transparent 44%),
 linear-gradient(180deg, rgba(255, 247, 232, 0.075), rgba(255, 247, 232, 0.035)),
 rgba(18, 13, 9, 0.78);
 box-shadow: 0 28px 90px rgba(0, 0, 0, 0.24);
}

.final-night::after {
 content: "FINALE";
 position: absolute;
 right: -0.1em;
 bottom: -0.22em;
 color: rgba(255, 247, 232, 0.045);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(104px, 18vw, 260px);
 font-weight: 800;
 line-height: 1;
}

.final-night > * {
 position: relative;
 z-index: 1;
}

.final-night h2 {
 max-width: 780px;
 margin: 0 0 16px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(46px, 7vw, 92px);
 line-height: 0.9;
}

.final-night p:not(.eyebrow) {
 max-width: 740px;
 color: rgba(255, 247, 232, 0.76);
 font-size: 18px;
 line-height: 1.65;
}

.final-night-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 26px;
}

.final-night-board {
 display: grid;
 gap: 10px;
}

.final-night-board span {
 display: grid;
 gap: 5px;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 8px;
 padding: 16px;
 background: rgba(255, 247, 232, 0.06);
 color: rgba(255, 247, 232, 0.72);
 font-weight: 800;
 line-height: 1.45;
}

.final-night-board strong {
 color: var(--gold);
 text-transform: uppercase;
}

.rugby-feature {
 margin-top: 16px;
}

.events-grid .event-card-rugby {
 border-color: rgba(216, 168, 77, 0.34);
 background:
 linear-gradient(180deg, rgba(216, 168, 77, 0.13), rgba(255, 247, 232, 0.04)),
 linear-gradient(135deg, rgba(15, 90, 63, 0.56), rgba(170, 52, 47, 0.26));
}

.match-calendar {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: minmax(260px, 0.42fr) minmax(0, 0.9fr);
 gap: clamp(22px, 5vw, 56px);
 align-items: start;
 margin-bottom: 16px;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: clamp(24px, 5vw, 52px);
 background:
 linear-gradient(135deg, rgba(15, 90, 63, 0.22), transparent 48%),
 rgba(255, 247, 232, 0.045);
}

.match-calendar::before {
 content: "CALENDRIER";
 position: absolute;
 right: -0.06em;
 top: -0.12em;
 color: rgba(255, 247, 232, 0.035);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(82px, 13vw, 184px);
 font-weight: 800;
 pointer-events: none;
}

.match-calendar-head,
.match-list {
 position: relative;
 z-index: 1;
}

.match-calendar-head h2 {
 margin: 0 0 14px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(42px, 6vw, 78px);
 line-height: 0.9;
}

.match-calendar-head p:not(.eyebrow) {
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.65;
}

.match-list {
 display: grid;
 gap: 10px;
}

.match-row {
 display: grid;
 grid-template-columns: 118px minmax(0, 1fr) auto;
 gap: 18px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: 14px;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.08), transparent 54%),
 rgba(18, 13, 9, 0.62);
}

.match-row.is-featured {
 border-color: rgba(216, 168, 77, 0.34);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.16), rgba(170, 52, 47, 0.12)),
 rgba(18, 13, 9, 0.72);
}

.match-date {
 display: grid;
 min-height: 86px;
 align-content: center;
 justify-items: center;
 border: 1px solid rgba(216, 168, 77, 0.18);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.06);
 text-align: center;
}

.match-date span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.match-date strong {
 color: var(--cream);
 font-size: 18px;
 line-height: 1.05;
}

.match-info span {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.match-info h3 {
 margin: 6px 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(26px, 3vw, 38px);
 line-height: 0.95;
}

.match-info p {
 margin: 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.5;
}

.match-row a {
 display: inline-flex;
 min-height: 42px;
 align-items: center;
 justify-content: center;
 border: 1px solid rgba(216, 168, 77, 0.3);
 border-radius: 999px;
 padding: 10px 14px;
 color: var(--gold);
 font-size: 13px;
 font-weight: 900;
 white-space: nowrap;
}

@media (max-width: 980px) {
 .event-hero,
 .final-night,
 .match-calendar {
 grid-template-columns: 1fr;
 }

 .final-score-panel {
 max-width: 560px;
 }

 .match-row {
 grid-template-columns: 104px minmax(0, 1fr);
 }

 .match-row a {
 grid-column: 2;
 width: fit-content;
 }
}

/* Souvenirs page */
.memories-page {
 background: #0f0b08;
}

.memories-hero {
 position: relative;
 display: grid;
 min-height: 96svh;
 grid-template-columns: minmax(0, 0.86fr) minmax(280px, 420px);
 gap: clamp(26px, 5vw, 70px);
 align-items: end;
 overflow: hidden;
 isolation: isolate;
 padding: clamp(126px, 14vh, 178px) var(--page-pad) clamp(50px, 8vh, 94px);
}

.memories-hero > img,
.memories-hero-overlay {
 position: absolute;
 inset: 0;
}

.memories-hero > img {
 z-index: -3;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center 42%;
 filter: saturate(1.08) contrast(1.06) brightness(0.84);
 transform: scale(1.04);
}

.memories-hero-overlay {
 z-index: -2;
 background:
 radial-gradient(circle at 78% 28%, rgba(216, 168, 77, 0.18), transparent 28%),
 radial-gradient(circle at 88% 68%, rgba(15, 90, 63, 0.28), transparent 30%),
 linear-gradient(90deg, rgba(8, 6, 4, 0.96), rgba(12, 8, 6, 0.7) 44%, rgba(12, 8, 6, 0.26)),
 linear-gradient(0deg, #0f0b08 0%, rgba(15, 11, 8, 0.12) 52%, rgba(15, 11, 8, 0.72) 100%);
}

.memories-hero-copy {
 position: relative;
 z-index: 1;
 max-width: 900px;
}

.memories-hero-copy h1 {
 max-width: 880px;
 margin-bottom: 22px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(68px, 10vw, 142px);
 line-height: 0.82;
 text-shadow: 0 28px 90px rgba(0, 0, 0, 0.66);
}

.memories-hero-copy > p:not(.eyebrow) {
 max-width: 680px;
 border-left: 3px solid rgba(216, 168, 77, 0.72);
 padding-left: clamp(16px, 2vw, 24px);
 color: rgba(255, 247, 232, 0.86);
 font-size: clamp(19px, 1.7vw, 26px);
 font-weight: 800;
 line-height: 1.42;
}

.memories-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 28px;
}

.memories-hero-card {
 position: relative;
 z-index: 1;
 align-self: center;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: clamp(22px, 3vw, 34px);
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.14), rgba(255, 247, 232, 0.045)),
 rgba(14, 10, 7, 0.72);
 box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42);
 backdrop-filter: blur(20px);
}

.memories-hero-card span,
.memory-feature span,
.memory-card figcaption {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.memories-hero-card strong {
 display: block;
 margin: 10px 0 12px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(30px, 3.2vw, 48px);
 line-height: 0.96;
}

.memories-hero-card p {
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.6;
}

.memories-intro {
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(320px, 0.6fr);
 gap: clamp(28px, 6vw, 78px);
 align-items: end;
 background:
 radial-gradient(circle at 84% 18%, rgba(216, 168, 77, 0.12), transparent 26%),
 linear-gradient(180deg, #130d09, #0f0b08);
}

.memories-intro h2,
.memory-wall-head h2,
.memories-final h2 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(44px, 7vw, 92px);
 line-height: 0.92;
}

.memories-intro > p,
.memory-wall-head p,
.memories-final p {
 color: rgba(255, 247, 232, 0.74);
 font-size: clamp(17px, 1.25vw, 21px);
 line-height: 1.7;
}

.memories-signatures {
 grid-column: 1 / -1;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 overflow: hidden;
 margin-top: clamp(10px, 2vw, 26px);
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 10px;
 background: rgba(255, 247, 232, 0.035);
}

.memories-signatures span {
 display: grid;
 min-height: 126px;
 align-content: center;
 gap: 5px;
 padding: clamp(18px, 3vw, 30px);
 color: rgba(255, 247, 232, 0.62);
 font-size: 12px;
 font-weight: 800;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.memories-signatures span + span {
 border-left: 1px solid rgba(255, 247, 232, 0.1);
}

.memories-signatures strong {
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(34px, 4vw, 56px);
 line-height: 0.9;
 letter-spacing: -0.03em;
}

.memory-feature {
 display: grid;
 grid-template-columns: 1.1fr 0.82fr 0.82fr;
 gap: 14px;
 padding-top: 0;
}

.memory-feature article,
.memory-card {
 position: relative;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.045);
 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
}

.memory-feature img,
.memory-card img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: var(--memory-x, 50%) var(--memory-y, 50%);
 filter: saturate(1.05) contrast(1.04);
 transition: transform 0.35s ease, filter 0.35s ease;
}

.memory-feature article:hover img,
.memory-card:hover img {
 filter: saturate(1.14) contrast(1.06);
 transform: scale(1.035);
}

.memory-feature article {
 min-height: clamp(380px, 46vw, 620px);
}

.memory-feature article:nth-child(2),
.memory-feature article:nth-child(3) {
 min-height: clamp(300px, 35vw, 500px);
 align-self: end;
}

.memory-feature div,
.memory-card figcaption {
 position: absolute;
 right: 16px;
 bottom: 16px;
 left: 16px;
 z-index: 1;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(14, 10, 7, 0.7);
 backdrop-filter: blur(14px);
}

.memory-feature strong {
 display: block;
 margin-top: 5px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(24px, 3vw, 40px);
 line-height: 1;
}

.memory-wall {
 background:
 radial-gradient(circle at 12% 18%, rgba(15, 90, 63, 0.24), transparent 28%),
 radial-gradient(circle at 88% 56%, rgba(170, 52, 47, 0.14), transparent 28%),
 #0f0b08;
}

.memory-wall-head {
 max-width: 880px;
 margin-bottom: clamp(28px, 5vw, 54px);
}

.memory-wall-index {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-top: 22px;
}

.memory-wall-index span {
 border: 1px solid rgba(216, 168, 77, 0.26);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(216, 168, 77, 0.07);
 color: rgba(255, 247, 232, 0.72);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.memory-grid {
 display: grid;
 grid-auto-flow: dense;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 14px;
}

.memory-card {
 min-height: 360px;
}

.memory-card > button {
 display: block;
 width: 100%;
 height: 100%;
 border: 0;
 padding: 0;
 background: transparent;
 cursor: zoom-in;
}

.memory-card > button:focus-visible {
 outline: 3px solid var(--gold);
 outline-offset: -5px;
}

.memory-card-tall {
 grid-row: span 2;
 min-height: 740px;
}

.memory-card-wide {
 grid-column: span 2;
}

.memory-card figcaption {
 right: 12px;
 bottom: 12px;
 left: 12px;
 width: fit-content;
 color: var(--cream);
 pointer-events: none;
}

.memory-lightbox {
 width: min(94vw, 1480px);
 max-width: none;
 height: min(92svh, 980px);
 max-height: none;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 12px;
 padding: 0;
 background: #0b0806;
 color: var(--cream);
 box-shadow: 0 40px 140px rgba(0, 0, 0, 0.72);
}

.memory-lightbox::backdrop {
 background: rgba(5, 3, 2, 0.9);
 backdrop-filter: blur(10px);
}

.memory-lightbox[open] {
 display: grid;
 grid-template-columns: 72px minmax(0, 1fr) 72px;
 place-items: center;
}

.memory-lightbox figure {
 display: grid;
 width: 100%;
 height: 100%;
 min-height: 0;
 grid-template-rows: minmax(0, 1fr) auto;
 place-items: center;
 margin: 0;
 padding: clamp(18px, 3vw, 34px) 0;
}

.memory-lightbox figure img {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 0;
 object-fit: contain;
}

.memory-lightbox figcaption {
 padding-top: 16px;
 color: rgba(255, 247, 232, 0.72);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.memory-lightbox-close,
.memory-lightbox-nav {
 border: 1px solid rgba(255, 247, 232, 0.18);
 background: rgba(255, 247, 232, 0.08);
 color: var(--cream);
 cursor: pointer;
 transition: border-color 0.2s ease, background 0.2s ease;
}

.memory-lightbox-close:hover,
.memory-lightbox-nav:hover {
 border-color: rgba(216, 168, 77, 0.56);
 background: rgba(216, 168, 77, 0.15);
}

.memory-lightbox-close {
 position: absolute;
 z-index: 2;
 top: 18px;
 right: 18px;
 border-radius: 999px;
 padding: 10px 14px;
 font-size: 11px;
 font-weight: 900;
 text-transform: uppercase;
}

.memory-lightbox-nav {
 display: grid;
 width: 48px;
 height: 48px;
 place-items: center;
 border-radius: 50%;
 font-size: 22px;
}

.memories-final {
 display: grid;
 min-height: 64svh;
 align-content: center;
 justify-items: center;
 text-align: center;
 background:
 linear-gradient(0deg, rgba(10, 7, 5, 0.84), rgba(10, 7, 5, 0.74)),
 url("images/souvenirs/souvenir-07.jpg") center / cover;
}

.memories-final p:not(.eyebrow) {
 max-width: 620px;
}

.memories-final .button {
 margin-top: 24px;
}

@media (max-width: 980px) {
 .memories-hero,
 .memories-intro,
 .memory-feature {
 grid-template-columns: 1fr;
 }

 .memory-feature article,
 .memory-feature article:nth-child(2),
 .memory-feature article:nth-child(3) {
 min-height: 420px;
 }

 .memory-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .memory-card-tall {
 min-height: 560px;
 }

 .memories-signatures {
 grid-template-columns: 1fr;
 }

 .memories-signatures span {
 min-height: 104px;
 }

 .memories-signatures span + span {
 border-top: 1px solid rgba(255, 247, 232, 0.1);
 border-left: 0;
 }
}

@media (max-width: 620px) {
 .memories-hero {
 min-height: auto;
 padding-top: 122px;
 }

 .memories-hero-copy h1 {
 font-size: clamp(52px, 16vw, 82px);
 }

 .memories-actions,
 .memories-actions .button {
 width: 100%;
 }

 .memory-grid {
 grid-template-columns: 1fr;
 }

 .memory-card,
 .memory-card-tall,
 .memory-card-wide {
 grid-column: auto;
 grid-row: auto;
 min-height: 420px;
 }

 .memory-lightbox {
 width: 100vw;
 height: 100svh;
 border: 0;
 border-radius: 0;
 }

 .memory-lightbox[open] {
 grid-template-columns: 52px minmax(0, 1fr) 52px;
 }

 .memory-lightbox figure {
 padding: 72px 0 24px;
 }

 .memory-lightbox-nav {
 width: 40px;
 height: 40px;
 }
}

/* Souvenirs - refonte \0000e9ditoriale v2 */
.memories-page-v2 {
 overflow: clip;
 background:
 radial-gradient(circle at 76% 8%, rgba(15, 90, 63, 0.18), transparent 24%),
 #0d0907;
}

.memory-v2-hero {
 position: relative;
 display: grid;
 min-height: 100svh;
 grid-template-columns: minmax(320px, 0.7fr) minmax(520px, 1.3fr);
 gap: clamp(36px, 6vw, 96px);
 align-items: center;
 padding: clamp(126px, 14vh, 178px) var(--page-pad) clamp(72px, 9vh, 112px);
 background:
 linear-gradient(90deg, rgba(216, 168, 77, 0.06) 1px, transparent 1px),
 linear-gradient(0deg, rgba(216, 168, 77, 0.045) 1px, transparent 1px);
 background-size: 72px 72px;
}

.memory-v2-hero::before {
 content: "";
 position: absolute;
 top: 12%;
 left: -14vw;
 width: 52vw;
 height: 52vw;
 border-radius: 50%;
 background: radial-gradient(circle, rgba(170, 52, 47, 0.17), transparent 66%);
 pointer-events: none;
}

.memory-v2-hero-copy {
 position: relative;
 z-index: 2;
}

.memory-v2-hero-copy h1 {
 max-width: 760px;
 margin: 16px 0 28px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(74px, 9vw, 142px);
 line-height: 0.78;
 letter-spacing: -0.055em;
}

.memory-v2-hero-copy h1 em {
 color: var(--gold);
 font-weight: 700;
}

.memory-v2-hero-copy > p:not(.eyebrow) {
 max-width: 590px;
 border-left: 3px solid rgba(216, 168, 77, 0.68);
 padding-left: 20px;
 color: rgba(255, 247, 232, 0.76);
 font-size: clamp(18px, 1.35vw, 23px);
 font-weight: 700;
 line-height: 1.55;
}

.memory-v2-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 30px;
}

.memory-v2-hero-note {
 display: flex;
 flex-wrap: wrap;
 gap: 24px;
 margin-top: 34px;
 color: rgba(255, 247, 232, 0.44);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.memory-v2-collage {
 position: relative;
 z-index: 1;
 display: grid;
 height: min(72vh, 760px);
 min-height: 570px;
 grid-template-columns: repeat(12, minmax(0, 1fr));
 grid-template-rows: repeat(12, minmax(0, 1fr));
 gap: 12px;
}

.memory-v2-shot,
.memory-v2-chapter figure,
.memory-v2-tile {
 position: relative;
 overflow: hidden;
 margin: 0;
 border: 1px solid rgba(255, 247, 232, 0.15);
 border-radius: 10px;
 background: #17100c;
 box-shadow: 0 24px 72px rgba(0, 0, 0, 0.32);
}

.memory-v2-shot-main {
 z-index: 2;
 grid-column: 1 / 9;
 grid-row: 2 / 13;
}

.memory-v2-shot-top {
 grid-column: 8 / 13;
 grid-row: 1 / 7;
 transform: rotate(1.5deg);
}

.memory-v2-shot-bottom {
 z-index: 3;
 grid-column: 8 / 13;
 grid-row: 7 / 13;
 transform: rotate(-1.4deg);
}

.memory-v2-shot button,
.memory-v2-chapter figure button,
.memory-v2-tile button {
 display: block;
 width: 100%;
 height: 100%;
 border: 0;
 padding: 0;
 background: transparent;
 cursor: zoom-in;
}

.memory-v2-shot button:focus-visible,
.memory-v2-chapter figure button:focus-visible,
.memory-v2-tile button:focus-visible {
 outline: 3px solid var(--gold);
 outline-offset: -5px;
}

.memory-v2-shot img,
.memory-v2-chapter img,
.memory-v2-tile img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: var(--memory-x, 50%) var(--memory-y, 50%);
 filter: saturate(1.04) contrast(1.05);
 transition: transform 0.55s cubic-bezier(0.22, 0.8, 0.28, 1), filter 0.35s ease;
}

.memory-v2-shot:hover img,
.memory-v2-chapter figure:hover img,
.memory-v2-tile:hover img {
 filter: saturate(1.12) contrast(1.07);
 transform: scale(1.035);
}

.memory-v2-shot figcaption {
 position: absolute;
 right: 14px;
 bottom: 14px;
 left: 14px;
 z-index: 2;
 border: 1px solid rgba(255, 247, 232, 0.15);
 border-radius: 8px;
 padding: 12px 14px;
 background: rgba(10, 7, 5, 0.72);
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(18px, 1.8vw, 28px);
 line-height: 1;
 pointer-events: none;
 backdrop-filter: blur(14px);
}

.memory-v2-shot figcaption span {
 display: block;
 margin-bottom: 5px;
 color: var(--gold);
 font-family: Inter, system-ui, sans-serif;
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.09em;
 text-transform: uppercase;
}

.memory-v2-scroll {
 position: absolute;
 bottom: 28px;
 left: var(--page-pad);
 display: flex;
 align-items: center;
 gap: 12px;
 color: rgba(255, 247, 232, 0.48);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.memory-v2-scroll span {
 color: var(--gold);
 font-size: 18px;
}

.memory-v2-marquee {
 overflow: hidden;
 border-top: 1px solid rgba(216, 168, 77, 0.16);
 border-bottom: 1px solid rgba(216, 168, 77, 0.16);
 padding: 17px 0;
 background: #d8a84d;
 color: #17100c;
}

.memory-v2-marquee div {
 width: max-content;
 font-size: clamp(14px, 1.4vw, 20px);
 font-weight: 950;
 letter-spacing: 0.1em;
 word-spacing: 0.5em;
 animation: memory-marquee 28s linear infinite;
}

.memory-v2-marquee i {
 color: #7c241f;
 font-style: normal;
}

@keyframes memory-marquee {
 to {
 transform: translateX(-50%);
 }
}

.memory-v2-story {
 display: grid;
 grid-template-columns: minmax(280px, 0.42fr) minmax(0, 1fr);
 gap: clamp(42px, 8vw, 132px);
 align-items: center;
 background:
 radial-gradient(circle at 14% 50%, rgba(15, 90, 63, 0.28), transparent 30%),
 linear-gradient(180deg, #100b08, #0d0907);
}

.memory-v2-story-mark {
 display: grid;
 justify-items: start;
 border-left: 1px solid rgba(216, 168, 77, 0.32);
 padding: 16px 0 16px clamp(22px, 4vw, 52px);
}

.memory-v2-story-mark span {
 color: rgba(255, 247, 232, 0.52);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.memory-v2-story-mark strong {
 color: var(--gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(88px, 14vw, 188px);
 line-height: 0.78;
 letter-spacing: -0.07em;
}

.memory-v2-story-copy {
 max-width: 920px;
}

.memory-v2-story-copy h2,
.memory-v2-section-head h2,
.memory-v2-final h2 {
 margin: 10px 0 24px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(48px, 7vw, 98px);
 line-height: 0.91;
 letter-spacing: -0.035em;
}

.memory-v2-story-copy > p:not(.eyebrow),
.memory-v2-album-head > p,
.memory-v2-final > p:not(.eyebrow) {
 max-width: 760px;
 color: rgba(255, 247, 232, 0.68);
 font-size: clamp(17px, 1.35vw, 22px);
 line-height: 1.7;
}

.memory-v2-chapters {
 background:
 linear-gradient(90deg, rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 #120d09;
 background-size: 120px 100%;
}

.memory-v2-section-head {
 max-width: 980px;
 margin-bottom: clamp(34px, 6vw, 74px);
}

.memory-v2-chapter-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: clamp(16px, 2vw, 28px);
}

.memory-v2-chapter {
 min-width: 0;
}

.memory-v2-chapter:nth-child(2) {
 margin-top: 78px;
}

.memory-v2-chapter figure {
 aspect-ratio: 0.82;
}

.memory-v2-chapter figure figcaption {
 position: absolute;
 top: 14px;
 left: 14px;
 border-radius: 999px;
 padding: 8px 11px;
 background: rgba(13, 9, 7, 0.78);
 color: var(--gold);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 pointer-events: none;
 backdrop-filter: blur(10px);
}

.memory-v2-chapter > div {
 padding: 22px 4px 0;
}

.memory-v2-chapter > div span,
.memory-v2-tile figcaption span {
 display: block;
 margin-bottom: 7px;
 color: var(--gold);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.09em;
 text-transform: uppercase;
}

.memory-v2-chapter h3 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(28px, 3vw, 42px);
 line-height: 1;
}

.memory-v2-chapter p {
 margin: 13px 0 0;
 color: rgba(255, 247, 232, 0.58);
 line-height: 1.65;
}

.memory-v2-album {
 background:
 radial-gradient(circle at 92% 16%, rgba(170, 52, 47, 0.18), transparent 28%),
 radial-gradient(circle at 8% 78%, rgba(15, 90, 63, 0.2), transparent 28%),
 #0d0907;
}

.memory-v2-album-head {
 display: grid;
 max-width: none;
 grid-template-columns: minmax(0, 1fr) minmax(280px, 0.45fr);
 gap: clamp(32px, 6vw, 90px);
 align-items: end;
}

.memory-v2-grid {
 display: grid;
 grid-template-columns: repeat(12, minmax(0, 1fr));
 grid-template-rows: 350px 390px 430px;
 gap: 14px;
}

.memory-v2-tile-a {
 grid-column: 1 / 6;
 grid-row: 1 / 3;
}

.memory-v2-tile-b {
 grid-column: 6 / 9;
 grid-row: 1;
}

.memory-v2-tile-c {
 grid-column: 9 / 13;
 grid-row: 1;
}

.memory-v2-tile-d {
 grid-column: 6 / 13;
 grid-row: 2;
}

.memory-v2-tile-e {
 grid-column: 1 / 8;
 grid-row: 3;
}

.memory-v2-tile-f {
 grid-column: 8 / 13;
 grid-row: 3;
}

.memory-v2-tile figcaption {
 position: absolute;
 right: 14px;
 bottom: 14px;
 left: 14px;
 z-index: 2;
 width: fit-content;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 padding: 11px 14px;
 background: rgba(10, 7, 5, 0.76);
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(18px, 2vw, 28px);
 line-height: 1;
 pointer-events: none;
 backdrop-filter: blur(12px);
}

.memory-v2-tile figcaption span {
 margin-bottom: 4px;
 font-family: Inter, system-ui, sans-serif;
}

.memory-v2-final {
 position: relative;
 display: grid;
 min-height: 72svh;
 place-content: center;
 justify-items: center;
 overflow: hidden;
 text-align: center;
 background:
 radial-gradient(circle at 50% 52%, rgba(216, 168, 77, 0.16), transparent 28%),
 linear-gradient(135deg, rgba(15, 90, 63, 0.18), transparent 40%),
 #110c09;
}

.memory-v2-final::before {
 content: "";
 position: absolute;
 width: min(72vw, 980px);
 height: min(72vw, 980px);
 border: 1px solid rgba(216, 168, 77, 0.12);
 border-radius: 50%;
}

.memory-v2-final-index {
 position: absolute;
 top: 30px;
 color: rgba(255, 247, 232, 0.25);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.14em;
 text-transform: uppercase;
}

.memory-v2-final > * {
 position: relative;
 z-index: 1;
}

.memory-v2-final h2 {
 max-width: 980px;
}

.memory-v2-final > p:not(.eyebrow) {
 max-width: 650px;
}

.memory-v2-final > div {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 12px;
 margin-top: 28px;
}

@media (max-width: 1100px) {
 .memory-v2-hero {
 grid-template-columns: 1fr;
 }

 .memory-v2-hero-copy {
 max-width: 780px;
 }

 .memory-v2-collage {
 height: 72svh;
 }

 .memory-v2-story {
 grid-template-columns: 1fr;
 }

 .memory-v2-story-mark {
 border-left: 0;
 border-bottom: 1px solid rgba(216, 168, 77, 0.22);
 padding-left: 0;
 padding-bottom: 30px;
 }

 .memory-v2-story-mark strong {
 font-size: clamp(92px, 22vw, 180px);
 }

 .memory-v2-grid {
 grid-template-rows: 320px 360px 390px;
 }
}

@media (max-width: 760px) {
 .memory-v2-hero {
 min-height: auto;
 padding-top: 124px;
 }

 .memory-v2-hero-copy h1 {
 font-size: clamp(58px, 18vw, 92px);
 }

 .memory-v2-actions,
 .memory-v2-actions .button {
 width: 100%;
 }

 .memory-v2-collage {
 height: 640px;
 min-height: 0;
 }

 .memory-v2-shot-main {
 grid-column: 1 / 11;
 grid-row: 1 / 9;
 }

 .memory-v2-shot-top {
 grid-column: 7 / 13;
 grid-row: 8 / 13;
 }

 .memory-v2-shot-bottom {
 grid-column: 1 / 7;
 grid-row: 9 / 13;
 }

 .memory-v2-scroll {
 display: none;
 }

 .memory-v2-chapter-grid {
 grid-template-columns: 1fr;
 gap: 44px;
 }

 .memory-v2-chapter:nth-child(2) {
 margin-top: 0;
 }

 .memory-v2-chapter figure {
 aspect-ratio: 1 / 1.05;
 }

 .memory-v2-album-head {
 grid-template-columns: 1fr;
 }

 .memory-v2-grid {
 grid-template-columns: 1fr;
 grid-template-rows: none;
 }

 .memory-v2-tile-a,
 .memory-v2-tile-b,
 .memory-v2-tile-c,
 .memory-v2-tile-d,
 .memory-v2-tile-e,
 .memory-v2-tile-f {
 grid-column: auto;
 grid-row: auto;
 min-height: 430px;
 }

 .memory-v2-final > div,
 .memory-v2-final .button {
 width: 100%;
 }
}

@media (prefers-reduced-motion: reduce) {
 .memory-v2-marquee div {
 animation: none;
 }
}

@media (max-width: 620px) {
 .event-hero {
 min-height: auto;
 padding-top: 124px;
 }

 .event-hero-copy h1 {
 font-size: clamp(54px, 16vw, 82px);
 }

 .final-night-actions,
 .final-night-actions .button {
 width: 100%;
 }

 .match-row {
 grid-template-columns: 1fr;
 }

 .match-date {
 min-height: auto;
 justify-items: start;
 padding: 13px 14px;
 }

 .match-row a {
 grid-column: auto;
 width: 100%;
 }
}

/* Place hero replacement block */
.place-hero-gallery {
 display: none;
}

.place-hero-highlights {
 position: absolute;
 z-index: 4;
 right: clamp(22px, 4vw, 64px);
 bottom: clamp(34px, 6vh, 72px);
 display: grid;
 width: min(520px, 42vw);
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.12);
 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
 backdrop-filter: blur(18px) saturate(1.12);
}

.place-hero-highlights span {
 display: grid;
 gap: 6px;
 min-height: 104px;
 align-content: center;
 padding: 18px;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 56%),
 rgba(16, 11, 8, 0.78);
 color: rgba(255, 247, 232, 0.72);
 font-size: 14px;
 font-weight: 800;
 line-height: 1.35;
}

.place-hero-highlights strong {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

@media (max-width: 1180px) {
 .place-hero {
 padding-bottom: clamp(150px, 22vh, 210px);
 }

 .place-hero-highlights {
 right: var(--page-pad);
 left: var(--page-pad);
 bottom: 28px;
 width: auto;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-hero-highlights {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: 100%;
 grid-template-columns: 1fr;
 margin-top: 22px;
 }

 .place-hero-highlights span {
 min-height: auto;
 padding: 16px 18px;
 }
}

/* Place hero overlap fix */
.place-arrival-card {
 z-index: 5;
 max-width: 410px;
 padding: clamp(20px, 2.5vw, 28px);
}

.place-arrival-card strong {
 font-size: clamp(24px, 2.15vw, 32px);
 line-height: 1;
}

.place-arrival-card p {
 font-size: 15px;
 line-height: 1.55;
}

.place-hero-gallery {
 z-index: 3;
 right: clamp(22px, 3.2vw, 52px);
 bottom: clamp(26px, 4vh, 48px);
 width: min(360px, 25vw);
 gap: 10px;
}

.place-hero-gallery img:nth-child(1) {
 height: clamp(178px, 18vw, 230px);
}

.place-hero-gallery img:nth-child(2) {
 height: clamp(104px, 10vw, 140px);
 transform: translateY(0);
}

.place-hero-gallery img:nth-child(3) {
 height: clamp(92px, 9vw, 122px);
}

@media (max-width: 1180px) {
 .place-hero {
 grid-template-columns: minmax(0, 1fr);
 padding-bottom: clamp(34px, 6vw, 72px);
 }

 .place-hero-content {
 max-width: 740px;
 margin-bottom: 12px;
 padding-left: clamp(10px, 2vw, 24px);
 }

 .place-arrival-card {
 justify-self: end;
 width: min(430px, 100%);
 margin-top: 0;
 }

 .place-hero-gallery {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: min(680px, 100%);
 margin-top: 26px;
 justify-self: end;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }

 .place-hero-gallery img:nth-child(1),
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 grid-row: auto;
 height: 150px;
 transform: none;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-arrival-card {
 width: 100%;
 }

 .place-hero-gallery {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: 100%;
 margin-top: 22px;
 grid-template-columns: 1fr 1fr;
 }

 .place-hero-gallery img:nth-child(1),
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 height: 132px;
 }

 .place-hero-gallery img:nth-child(3) {
 grid-column: 1 / -1;
 }
}

/* Place hero title placement fix */
.place-hero {
 grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.46fr);
 gap: clamp(26px, 5vw, 76px);
 align-items: end;
 padding-top: clamp(126px, 13vh, 166px);
 padding-bottom: clamp(92px, 12vh, 132px);
}

.place-hero-content {
 max-width: 820px;
 margin-bottom: clamp(58px, 10vh, 116px);
 padding-left: clamp(18px, 3vw, 46px);
}

.place-hero-content h1 {
 max-width: 760px;
 margin-bottom: 20px;
 font-size: clamp(62px, 9.3vw, 128px);
 line-height: 0.86;
}

.place-hero-content > p:not(.eyebrow) {
 max-width: 680px;
}

.place-arrival-card {
 max-width: 430px;
 align-self: start;
 margin-top: clamp(28px, 7vh, 86px);
 transform: none;
}

.place-arrival-card strong {
 font-size: clamp(25px, 2.5vw, 36px);
}

.place-hero-gallery {
 right: clamp(24px, 4vw, 62px);
 bottom: clamp(36px, 6vh, 70px);
 width: min(420px, 30vw);
}

.place-hero-gallery img:nth-child(1) {
 height: clamp(214px, 21vw, 326px);
}

.place-hero-gallery img:nth-child(2) {
 height: clamp(126px, 13vw, 198px);
 transform: translateY(-10px);
}

.place-hero-gallery img:nth-child(3) {
 height: clamp(108px, 11vw, 168px);
}

@media (max-width: 980px) {
 .place-hero {
 padding-bottom: 198px;
 }

 .place-hero-content {
 margin-bottom: 12px;
 padding-left: 0;
 }

 .place-hero-content h1 {
 max-width: 760px;
 font-size: clamp(64px, 14vw, 120px);
 }

 .place-arrival-card {
 margin-top: 4px;
 }

 .place-hero-gallery {
 width: auto;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-hero-content h1 {
 max-width: 370px;
 font-size: clamp(48px, 16vw, 74px);
 }

 .place-hero-gallery img:nth-child(1),
 .place-hero-gallery img:nth-child(2),
 .place-hero-gallery img:nth-child(3) {
 height: 132px;
 transform: none;
 }
}

/* Final override: no floating gallery in the hero */
.place-hero-gallery {
 display: none;
}

.place-hero-highlights {
 position: absolute;
 z-index: 4;
 right: clamp(22px, 4vw, 64px);
 bottom: clamp(34px, 6vh, 72px);
 display: grid;
 width: min(520px, 42vw);
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.12);
 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
 backdrop-filter: blur(18px) saturate(1.12);
}

.place-hero-highlights span {
 display: grid;
 gap: 6px;
 min-height: 104px;
 align-content: center;
 padding: 18px;
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.1), transparent 56%),
 rgba(16, 11, 8, 0.78);
 color: rgba(255, 247, 232, 0.72);
 font-size: 14px;
 font-weight: 800;
 line-height: 1.35;
}

.place-hero-highlights strong {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

@media (max-width: 1180px) {
 .place-hero {
 padding-bottom: clamp(150px, 22vh, 210px);
 }

 .place-hero-highlights {
 right: var(--page-pad);
 left: var(--page-pad);
 bottom: 28px;
 width: auto;
 }
}

@media (max-width: 620px) {
 .place-hero {
 padding-bottom: 28px;
 }

 .place-hero-highlights {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 width: 100%;
 grid-template-columns: 1fr;
 margin-top: 22px;
 }

 .place-hero-highlights span {
 min-height: auto;
 padding: 16px 18px;
 }
}

/* Events multisport */
.event-hero-copy h1 {
 max-width: 980px;
 font-size: clamp(56px, 8vw, 112px);
}

.sports-calendar {
 grid-template-rows: auto auto auto;
}

.sports-calendar .match-calendar-head {
 position: sticky;
 top: 116px;
 grid-row: 1 / span 3;
}

.sport-filters {
 position: relative;
 z-index: 2;
 display: flex;
 grid-column: 2;
 flex-wrap: wrap;
 gap: 8px;
}

.sport-filters button {
 min-height: 40px;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 999px;
 padding: 9px 14px;
 background: rgba(255, 247, 232, 0.045);
 color: rgba(255, 247, 232, 0.7);
 font: inherit;
 font-size: 12px;
 font-weight: 850;
 cursor: pointer;
 transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.sport-filters button:hover,
.sport-filters button:focus-visible {
 border-color: rgba(216, 168, 77, 0.55);
 color: var(--cream);
}

.sport-filters button.is-active {
 border-color: var(--gold);
 background: var(--gold);
 color: #181009;
}

.sports-calendar .match-list,
.sports-calendar-note {
 grid-column: 2;
}

.match-row {
 transition: opacity 180ms ease, transform 220ms ease, border-color 180ms ease;
}

.match-row:hover {
 border-color: rgba(216, 168, 77, 0.32);
 transform: translateX(4px);
}

.match-row.is-filtered-out {
 display: none;
}

.match-info span {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 align-items: center;
}

.match-info span b {
 border: 1px solid rgba(216, 168, 77, 0.3);
 border-radius: 999px;
 padding: 4px 7px;
 background: rgba(216, 168, 77, 0.1);
 color: var(--gold);
 font-size: 10px;
}

.match-status {
 display: inline-flex;
 width: fit-content;
 margin-top: 2px;
 border: 1px solid rgba(255, 247, 232, 0.14);
 border-radius: 999px;
 padding: 5px 8px;
 color: rgba(255, 247, 232, 0.72);
 font-size: 11px;
 font-style: normal;
 font-weight: 900;
 text-transform: uppercase;
}

.match-row.is-live {
 border-color: rgba(80, 198, 129, 0.5);
 background:
 linear-gradient(135deg, rgba(80, 198, 129, 0.09), transparent 44%),
 rgba(255, 247, 232, 0.04);
}

.match-row.is-live .match-status,
.event-program-row.is-live em {
 border-color: rgba(80, 198, 129, 0.48);
 color: var(--green-bright);
}

.match-row.is-finished,
.event-program-row.is-finished {
 opacity: 0.72;
}

.match-row.is-finished .match-status,
.event-program-row.is-finished em {
 border-color: rgba(196, 90, 67, 0.5);
 background: rgba(196, 90, 67, 0.12);
 color: #ff8d74;
}

.sports-calendar-note {
 position: relative;
 z-index: 1;
 margin: 4px 0 0;
 color: rgba(255, 247, 232, 0.54);
 font-size: 13px;
 line-height: 1.5;
}

.sports-universe {
 margin: 16px 0;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: clamp(28px, 6vw, 70px);
 background:
 linear-gradient(rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(255, 247, 232, 0.035) 1px, transparent 1px),
 radial-gradient(circle at 88% 14%, rgba(36, 106, 75, 0.28), transparent 26%),
 #13100c;
 background-size: 56px 56px, 56px 56px, auto, auto;
}

.sports-universe-head {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(280px, 0.5fr);
 gap: 18px 48px;
 align-items: end;
 margin-bottom: clamp(28px, 5vw, 54px);
}

.sports-universe-head .eyebrow {
 grid-column: 1 / -1;
 margin-bottom: 0;
}

.sports-universe-head h2 {
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(44px, 6.5vw, 88px);
 line-height: 0.92;
}

.sports-universe-head > p:last-child {
 margin: 0;
 color: rgba(255, 247, 232, 0.68);
 line-height: 1.65;
}

.sports-universe-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.13);
}

.sports-universe-grid article {
 position: relative;
 min-height: 225px;
 padding: 24px;
 overflow: hidden;
 cursor: pointer;
 background:
 linear-gradient(145deg, rgba(216, 168, 77, 0.08), transparent 52%),
 #18120e;
 transition: background 220ms ease, transform 220ms ease;
}

.sports-universe-grid article:hover,
.sports-universe-grid article:focus-visible {
 z-index: 1;
 outline: 1px solid rgba(216, 168, 77, 0.72);
 outline-offset: -1px;
 background:
 linear-gradient(145deg, rgba(216, 168, 77, 0.16), transparent 58%),
 #1d1712;
 transform: translateY(-2px);
}

.sports-universe-grid article::after {
 content: "Voir dans l\002019agenda ";
 position: absolute;
 right: 24px;
 bottom: 20px;
 color: var(--gold);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 opacity: 0.72;
 transition: opacity 220ms ease, transform 220ms ease;
}

.sports-universe-grid article:hover::after,
.sports-universe-grid article:focus-visible::after {
 opacity: 1;
 transform: translateX(3px);
}

.sports-calendar.is-jump-highlighted {
 animation: agenda-jump-highlight 1.3s ease;
}

#agenda-sportif {
 scroll-margin-top: 110px;
}

@keyframes agenda-jump-highlight {
 0%,
 100% {
 border-color: rgba(255, 247, 232, 0.12);
 }
 35% {
 border-color: rgba(216, 168, 77, 0.78);
 box-shadow: 0 0 0 4px rgba(216, 168, 77, 0.08);
 }
}

/* Legal, privacy and allergen information */
.legal-page {
 min-height: 100vh;
 background:
 radial-gradient(circle at 86% 8%, rgba(15, 90, 63, 0.2), transparent 24%),
 radial-gradient(circle at 12% 28%, rgba(216, 168, 77, 0.12), transparent 28%),
 #0e0a07;
}

.legal-hero {
 min-height: 54svh;
 padding: clamp(140px, 18vh, 190px) clamp(18px, 7vw, 110px) clamp(54px, 8vw, 92px);
 border-bottom: 1px solid rgba(255, 247, 232, 0.12);
}

.legal-hero h1 {
 max-width: 980px;
 margin: 0;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(64px, 12vw, 160px);
 line-height: 0.82;
}

.legal-hero > p:not(.eyebrow) {
 max-width: 700px;
 margin: 28px 0 0;
 color: rgba(255, 247, 232, 0.72);
 font-size: clamp(17px, 1.7vw, 22px);
 line-height: 1.6;
}

.legal-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 28px;
}

.legal-content {
 display: grid;
 gap: 14px;
 padding: clamp(34px, 7vw, 90px) clamp(18px, 7vw, 110px);
}

.legal-card {
 display: grid;
 grid-template-columns: minmax(180px, 0.28fr) minmax(0, 0.72fr);
 gap: 10px clamp(24px, 5vw, 80px);
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 10px;
 padding: clamp(24px, 4vw, 48px);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.055), transparent 45%),
 rgba(255, 247, 232, 0.028);
}

.legal-card .eyebrow {
 grid-row: 1 / span 5;
 margin: 5px 0 0;
}

.legal-card h2,
.legal-card > p,
.legal-card > dl,
.legal-card > div {
 grid-column: 2;
}

.legal-card h2 {
 margin: 0 0 8px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(34px, 4vw, 58px);
 line-height: 0.98;
}

.legal-card > p {
 max-width: 900px;
 margin: 4px 0;
 color: rgba(255, 247, 232, 0.7);
 line-height: 1.7;
}

.legal-card a {
 color: var(--gold);
 font-weight: 800;
}

.legal-card-alert {
 border-color: rgba(216, 168, 77, 0.36);
 background: rgba(216, 168, 77, 0.075);
}

.legal-card-featured {
 border-color: rgba(42, 156, 111, 0.38);
 background: rgba(15, 90, 63, 0.1);
}

.legal-data {
 display: grid;
 gap: 1px;
 margin: 8px 0 0;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.11);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.11);
}

.legal-data div {
 display: grid;
 grid-template-columns: minmax(170px, 0.35fr) minmax(0, 0.65fr);
 gap: 16px;
 padding: 13px 15px;
 background: #15100c;
}

.legal-data dt {
 color: var(--gold);
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.legal-data dd {
 margin: 0;
 color: var(--cream);
}

.allergen-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 margin-top: 8px;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.11);
 border-radius: 8px;
 background: rgba(255, 247, 232, 0.11);
}

.allergen-grid span {
 padding: 14px 16px;
 background: #15100c;
 color: rgba(255, 247, 232, 0.78);
 font-weight: 700;
}

.allergen-menu-card {
 align-items: start;
}

.allergen-dish-list {
 display: grid;
 gap: 24px;
 margin-top: 12px;
}

.allergen-menu-group {
 display: grid;
 gap: 10px;
}

.allergen-menu-group h3 {
 margin: 0;
 color: var(--gold);
 font-size: 13px;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.allergen-dish-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 8px;
}

.allergen-dish-card {
 display: grid;
 gap: 6px;
 border: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 8px;
 padding: 13px 14px;
 background: rgba(255, 247, 232, 0.035);
}

.allergen-dish-card a {
 color: var(--cream);
 font-size: 14px;
 font-weight: 900;
 text-transform: uppercase;
}

.allergen-dish-card p {
 margin: 0;
 color: rgba(255, 247, 232, 0.66);
 font-size: 13px;
 line-height: 1.45;
}

.legal-update {
 margin: 10px 0 0;
 color: rgba(255, 247, 232, 0.48);
 font-size: 12px;
}

.menu-alcohol-warning {
 margin: 28px 0 0;
 border-top: 1px solid rgba(255, 247, 232, 0.12);
 padding-top: 18px;
 color: rgba(255, 247, 232, 0.62);
 font-size: 13px;
 font-weight: 700;
 text-align: center;
}

.menu-consumer-info {
 display: grid;
 gap: 12px;
 margin-top: 32px;
 border: 1px solid rgba(216, 168, 77, 0.2);
 border-radius: 12px;
 padding: clamp(18px, 3vw, 26px);
 background: rgba(216, 168, 77, 0.06);
}

.menu-consumer-info p {
 display: grid;
 grid-template-columns: minmax(110px, 0.22fr) 1fr;
 gap: 18px;
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 line-height: 1.55;
}

.menu-consumer-info strong {
 color: #f0c66e;
}

.menu-consumer-info a {
 color: #fff7e8;
 font-weight: 800;
 text-decoration: underline;
 text-underline-offset: 3px;
}

/* Hero Lieu - \0000e9talonnage photographique de la terrasse */
.place-page .place-hero-bg {
 object-position: 50% 52%;
 filter:
 saturate(1.08)
 contrast(1.12)
 brightness(0.86);
}

.place-page .place-hero-overlay {
 background:
 radial-gradient(ellipse at 67% 35%, rgba(244, 198, 103, 0.15), transparent 34%),
 radial-gradient(ellipse at 86% 74%, rgba(135, 18, 23, 0.2), transparent 30%),
 linear-gradient(90deg, rgba(8, 5, 4, 0.94) 0%, rgba(10, 6, 5, 0.73) 38%, rgba(10, 7, 5, 0.22) 72%, rgba(10, 7, 5, 0.34) 100%),
 linear-gradient(0deg, rgba(12, 8, 6, 0.98) 0%, rgba(14, 9, 7, 0.08) 49%, rgba(12, 7, 5, 0.62) 100%);
}

.place-page .place-hero-shine {
 opacity: 0.42;
 background:
 linear-gradient(112deg, transparent 0 54%, rgba(255, 231, 183, 0.13) 54.1% 54.28%, transparent 54.5% 100%),
 radial-gradient(ellipse at 72% 22%, rgba(255, 213, 133, 0.16), transparent 32%);
 mix-blend-mode: screen;
}

@media (max-width: 760px) {
 .place-page .place-hero-bg {
 object-position: 48% 50%;
 filter:
 saturate(1.04)
 contrast(1.1)
 brightness(0.8);
 }

 .place-page .place-hero-overlay {
 background:
 linear-gradient(0deg, rgba(10, 6, 5, 0.98) 0%, rgba(10, 6, 5, 0.28) 55%, rgba(10, 6, 5, 0.68) 100%),
 linear-gradient(90deg, rgba(9, 6, 4, 0.78), rgba(9, 6, 4, 0.18));
 }
}

@media (max-width: 760px) {
 .legal-hero {
 min-height: auto;
 }

 .legal-card {
 grid-template-columns: 1fr;
 }

 .legal-card .eyebrow {
 grid-row: auto;
 }

 .legal-card h2,
 .legal-card > p,
 .legal-card > dl,
 .legal-card > div {
 grid-column: 1;
 }

 .legal-data div,
 .allergen-grid,
 .allergen-dish-grid {
 grid-template-columns: 1fr;
 }

 .menu-consumer-info p {
 grid-template-columns: 1fr;
 gap: 4px;
 }
}

.sports-universe-grid span {
 color: rgba(216, 168, 77, 0.62);
 font-size: 11px;
 font-weight: 900;
}

.sports-universe-grid strong {
 display: block;
 margin-top: 34px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(25px, 2.2vw, 34px);
 line-height: 1;
}

.sports-universe-grid p {
 margin: 12px 0 0;
 color: rgba(255, 247, 232, 0.62);
 font-size: 14px;
 line-height: 1.5;
}

.sports-universe > .button {
 margin-top: 28px;
}

@media (max-width: 1120px) {
 .sports-universe-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 980px) {
 .sports-calendar .match-calendar-head {
 position: static;
 grid-row: auto;
 }

 .sport-filters,
 .sports-calendar .match-list,
 .sports-calendar-note {
 grid-column: auto;
 }

 .sports-universe-head {
 grid-template-columns: 1fr;
 }

 .sports-universe-head .eyebrow {
 grid-column: auto;
 }
}

@media (max-width: 620px) {
 .event-hero-copy h1 {
 font-size: clamp(48px, 14vw, 72px);
 }

 .sport-filters {
 flex-wrap: nowrap;
 margin-right: -18px;
 margin-left: -18px;
 padding: 0 18px 8px;
 overflow-x: auto;
 scrollbar-width: none;
 }

 .sport-filters::-webkit-scrollbar {
 display: none;
 }

 .sport-filters button {
 flex: 0 0 auto;
 }

 .sports-universe {
 padding-right: 18px;
 padding-left: 18px;
 }

 .sports-universe-grid {
 grid-template-columns: 1fr;
 }

 .sports-universe-grid article {
 min-height: 190px;
 }
}

/* Detailed multisport agenda */
.event-schedule-detail {
 margin-top: clamp(22px, 4vw, 44px);
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 14px;
 padding: clamp(20px, 4vw, 42px);
 background:
 radial-gradient(circle at 92% 4%, rgba(216, 168, 77, 0.14), transparent 28%),
 rgba(18, 13, 9, 0.66);
}

.event-schedule-detail-head {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(280px, 0.45fr);
 gap: 20px 50px;
 align-items: end;
}

.event-schedule-detail-head .eyebrow {
 grid-column: 1 / -1;
}

.event-schedule-detail-head h2 {
 margin: 0;
 color: var(--cream);
 font-size: clamp(48px, 7vw, 94px);
 line-height: 0.88;
}

.event-schedule-detail-head > p:last-child {
 margin: 0;
 color: var(--muted);
 line-height: 1.65;
}

.event-schedule-legend {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin: 30px 0 18px;
}

.event-schedule-legend span {
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 999px;
 padding: 8px 12px;
 color: var(--muted);
 font-size: 12px;
}

.event-schedule-legend strong {
 margin-right: 5px;
 color: var(--gold);
}

.event-schedule-accordions {
 display: grid;
 gap: 10px;
}

.event-program-empty {
 margin: 0;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 8px;
 padding: 14px 16px;
 background: rgba(255, 247, 232, 0.045);
 color: var(--muted);
}

.event-program {
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 10px;
 background: rgba(255, 247, 232, 0.035);
}

.event-program[open] {
 border-color: rgba(216, 168, 77, 0.34);
 background: rgba(255, 247, 232, 0.055);
}

.event-program summary {
 display: grid;
 grid-template-columns: 86px minmax(0, 1fr) auto;
 gap: 16px;
 align-items: center;
 padding: 18px;
 cursor: pointer;
 list-style: none;
}

.event-program summary::-webkit-details-marker {
 display: none;
}

.event-program summary > span {
 color: var(--green-bright);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

.event-program summary div {
 display: grid;
 gap: 3px;
}

.event-program summary strong {
 color: var(--cream);
 font-size: clamp(17px, 2vw, 23px);
}

.event-program summary small {
 color: var(--muted);
}

.event-program summary > b {
 display: grid;
 width: 34px;
 height: 34px;
 place-items: center;
 border: 1px solid rgba(216, 168, 77, 0.32);
 border-radius: 50%;
 color: var(--gold);
 font-size: 22px;
 transition: transform 0.2s ease;
}

.event-program[open] summary > b {
 transform: rotate(45deg);
}

.event-program-body {
 border-top: 1px solid rgba(255, 247, 232, 0.1);
 padding: 18px;
}

.event-program-meta {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 10px;
 margin-bottom: 16px;
}

.event-program-meta p {
 margin: 0;
 border-radius: 8px;
 padding: 13px;
 background: rgba(15, 90, 63, 0.13);
 color: var(--muted);
 line-height: 1.5;
}

.event-program-meta strong {
 display: block;
 margin-bottom: 3px;
 color: var(--green-bright);
}

.event-program-body ul {
 display: grid;
 gap: 7px;
 margin: 0;
 padding: 0;
 list-style: none;
}

.event-program-row {
 display: grid;
 grid-template-columns: 140px 120px minmax(0, 1fr);
 gap: 12px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.08);
 border-radius: 7px;
 padding: 11px 13px;
 background: rgba(18, 13, 9, 0.42);
}

.event-program-row > span {
 color: var(--muted);
 font-size: 13px;
 font-weight: 700;
}

.event-program-row > strong {
 color: var(--gold);
 font-size: 14px;
}

.event-program-row > p {
 margin: 0;
 color: var(--cream);
 line-height: 1.4;
}

.event-program-row small {
 display: block;
 margin-top: 3px;
 color: rgba(255, 247, 232, 0.52);
 font-size: 12px;
 line-height: 1.35;
}

.event-program-row em {
 display: inline-flex;
 margin-top: 6px;
 border: 1px solid rgba(255, 247, 232, 0.12);
 border-radius: 999px;
 padding: 3px 7px;
 color: rgba(255, 247, 232, 0.66);
 font-size: 10px;
 font-style: normal;
 font-weight: 900;
 text-transform: uppercase;
 white-space: nowrap;
}

@media (max-width: 760px) {
 .event-schedule-detail-head,
 .event-program-meta {
 grid-template-columns: 1fr;
 }

 .event-schedule-detail-head .eyebrow {
 grid-column: auto;
 }

 .event-program summary {
 grid-template-columns: 1fr auto;
 }

 .event-program summary > span {
 grid-column: 1 / -1;
 }

 .event-program-row {
 grid-template-columns: 1fr auto;
 }

 .event-program-row > p {
 grid-column: 1 / -1;
 }
}

/* Souvenirs - album \0000e9ditorial v3 */
.memory-archive {
 --page-pad: clamp(18px, 6vw, 96px);
 --memory-paper: #120d09;
 --memory-paper-soft: #1c1510;
 --memory-ink: #f3e7d3;
 --memory-green: #14543b;
 --memory-red: #c45a43;
 --memory-yellow: #d8a84d;
 overflow: clip;
 background: var(--memory-paper);
 color: var(--memory-ink);
}

.memory-progress {
 position: fixed;
 z-index: 100;
 top: 0;
 right: 0;
 left: 0;
 height: 3px;
 pointer-events: none;
}

.memory-progress span {
 display: block;
 width: 100%;
 height: 100%;
 background: var(--gold);
 transform: scaleX(0);
 transform-origin: left;
 will-change: transform;
}

.memory-cover {
 position: relative;
 display: grid;
 min-height: 100svh;
 align-items: end;
 isolation: isolate;
 overflow: hidden;
 padding: clamp(138px, 18vh, 190px) var(--page-pad) clamp(70px, 9vh, 106px);
 background: #0b1712;
}

.memory-cover-image,
.memory-cover-wash {
 position: absolute;
 z-index: -2;
 inset: 0;
 width: 100%;
 height: 100%;
}

.memory-cover-image {
 object-fit: cover;
 object-position: 53% 44%;
 filter: saturate(0.72) contrast(1.12) brightness(0.78);
 transform: scale(1.015);
}

.memory-cover-wash {
 z-index: -1;
 background:
 linear-gradient(90deg, rgba(5, 18, 13, 0.98) 0%, rgba(7, 24, 17, 0.88) 35%, rgba(6, 17, 13, 0.2) 72%),
 linear-gradient(0deg, rgba(6, 14, 11, 0.94) 0%, transparent 45%, rgba(4, 12, 9, 0.46) 100%),
 radial-gradient(circle at 72% 34%, transparent 0 20%, rgba(7, 22, 16, 0.28) 68%);
}

.memory-cover::after {
 content: "";
 position: absolute;
 z-index: 0;
 inset: 0;
 opacity: 0.17;
 pointer-events: none;
 background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
 mix-blend-mode: soft-light;
}

.memory-cover-copy {
 position: relative;
 z-index: 2;
 width: min(900px, 72vw);
}

.memory-kicker {
 display: flex;
 gap: 14px;
 align-items: center;
 margin: 0 0 24px;
 color: rgba(255, 247, 232, 0.72);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.14em;
 text-transform: uppercase;
}

.memory-kicker span {
 border-radius: 999px;
 padding: 8px 11px;
 background: var(--memory-yellow);
 color: #17251e;
}

.memory-cover h1 {
 max-width: 940px;
 margin: 0;
 color: #fff8e9;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(78px, 11.2vw, 172px);
 line-height: 0.72;
 letter-spacing: -0.065em;
}

.memory-cover h1 em,
.memory-spread h2 em,
.memory-album h2 em,
.memory-next h2 em,
.memory-manifesto h2 em {
 color: var(--memory-yellow);
 font-weight: 600;
}

.memory-cover-intro {
 max-width: 690px;
 margin: 34px 0 0;
 border-left: 2px solid var(--memory-yellow);
 padding-left: 20px;
 color: rgba(255, 247, 232, 0.78);
 font-size: clamp(17px, 1.35vw, 22px);
 line-height: 1.6;
}

.memory-cover-actions,
.memory-next-copy > div {
 display: flex;
 flex-wrap: wrap;
 gap: 22px;
 align-items: center;
 margin-top: 30px;
}

.memory-button {
 display: inline-flex;
 min-height: 52px;
 align-items: center;
 justify-content: center;
 gap: 24px;
 border-radius: 999px;
 padding: 12px 22px;
 font-size: 13px;
 font-weight: 900;
 transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.memory-button:hover {
 transform: translateY(-2px);
}

.memory-button-light {
 background: #fff8e9;
 color: #17251e;
}

.memory-button-light:hover {
 background: var(--memory-yellow);
}

.memory-text-link {
 display: inline-flex;
 gap: 9px;
 align-items: center;
 color: #fff8e9;
 font-size: 13px;
 font-weight: 900;
}

.memory-text-link span {
 color: var(--memory-yellow);
 font-size: 18px;
 transition: transform 180ms ease;
}

.memory-text-link:hover span {
 transform: translate(3px, -3px);
}

.memory-cover-card {
 position: absolute;
 z-index: 2;
 right: var(--page-pad);
 bottom: clamp(78px, 10vh, 116px);
 width: min(260px, 20vw);
 min-height: 310px;
 padding: 24px;
 border: 1px solid rgba(255, 248, 233, 0.36);
 background: rgba(13, 42, 30, 0.62);
 color: #fff8e9;
 transform: rotate(2.2deg);
 backdrop-filter: blur(14px);
}

.memory-card-number {
 color: var(--memory-yellow);
 font-size: 11px;
 font-weight: 900;
 letter-spacing: 0.13em;
}

.memory-cover-card p {
 margin: 54px 0 28px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(28px, 2.8vw, 42px);
 line-height: 0.95;
}

.memory-card-rule {
 display: block;
 width: 100%;
 height: 1px;
 margin-bottom: 14px;
 background: rgba(255, 248, 233, 0.32);
}

.memory-cover-card small {
 color: rgba(255, 248, 233, 0.66);
 font-size: 9px;
 font-weight: 800;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.memory-cover-scroll {
 position: absolute;
 z-index: 2;
 right: 26px;
 bottom: 38px;
 display: flex;
 gap: 12px;
 align-items: center;
 color: rgba(255, 248, 233, 0.54);
 font-size: 9px;
 font-weight: 900;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 transform: rotate(90deg);
 transform-origin: right center;
}

.memory-cover-scroll span {
 display: block;
 width: 42px;
 height: 1px;
 background: var(--memory-yellow);
}

.memory-index {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 border-bottom: 1px solid rgba(23, 37, 30, 0.18);
 background: var(--memory-paper-soft);
}

.memory-index a {
 display: flex;
 min-height: 88px;
 gap: 14px;
 align-items: center;
 padding: 18px clamp(18px, 3vw, 46px);
 color: var(--memory-ink);
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 transition: background 180ms ease, color 180ms ease;
}

.memory-index a + a {
 border-left: 1px solid rgba(23, 37, 30, 0.18);
}

.memory-index a:hover {
 background: var(--memory-green);
 color: var(--memory-paper-soft);
}

.memory-index span {
 color: var(--memory-red);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 22px;
 letter-spacing: 0;
}

.memory-manifesto {
 display: grid;
 grid-template-columns: minmax(130px, 0.22fr) minmax(0, 1fr);
 gap: clamp(38px, 7vw, 112px);
 padding: clamp(82px, 11vw, 160px) var(--page-pad);
 background:
 linear-gradient(rgba(23, 37, 30, 0.055) 1px, transparent 1px),
 linear-gradient(90deg, rgba(23, 37, 30, 0.055) 1px, transparent 1px),
 var(--memory-paper);
 background-size: 46px 46px;
}

.memory-section-label {
 align-self: start;
 border-top: 2px solid var(--memory-ink);
 padding-top: 13px;
}

.memory-section-label span {
 color: var(--memory-red);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 36px;
 font-weight: 800;
}

.memory-section-label p {
 margin: 16px 0 0;
 font-size: 11px;
 font-weight: 900;
 line-height: 1.35;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

.memory-overline {
 margin: 0 0 18px;
 color: var(--memory-red);
 font-size: 11px;
 font-weight: 950;
 letter-spacing: 0.14em;
 text-transform: uppercase;
}

.memory-manifesto h2 {
 max-width: 1120px;
 margin: 0;
 color: var(--memory-green);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(60px, 8.7vw, 128px);
 line-height: 0.88;
 letter-spacing: -0.055em;
}

.memory-manifesto-text {
 display: grid;
 max-width: 920px;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: clamp(24px, 5vw, 70px);
 margin-top: 48px;
}

.memory-manifesto-text p {
 margin: 0;
 color: rgba(23, 37, 30, 0.76);
 font-size: clamp(16px, 1.3vw, 20px);
 line-height: 1.75;
}

.memory-quote {
 position: relative;
 grid-column: 2;
 max-width: 820px;
 margin: clamp(60px, 8vw, 112px) 0 0 auto;
 border-top: 1px solid rgba(23, 37, 30, 0.28);
 border-bottom: 1px solid rgba(23, 37, 30, 0.28);
 padding: 32px 0 36px 100px;
}

.memory-quote > span {
 position: absolute;
 top: 20px;
 left: 0;
 color: var(--memory-red);
 font-family: Georgia, serif;
 font-size: 110px;
 line-height: 1;
}

.memory-quote p {
 margin: 0;
 color: var(--memory-green);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(32px, 4.5vw, 62px);
 font-style: italic;
 line-height: 1;
}

.memory-spread {
 padding: clamp(78px, 10vw, 150px) var(--page-pad);
 background:
 radial-gradient(circle at 88% 8%, rgba(225, 174, 75, 0.13), transparent 22%),
 #123e2e;
 color: var(--memory-paper-soft);
}

.memory-spread-head,
.memory-album-head {
 display: grid;
 grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.38fr);
 gap: clamp(34px, 8vw, 130px);
 align-items: end;
 margin-bottom: clamp(54px, 8vw, 110px);
}

.memory-spread h2,
.memory-album h2,
.memory-next h2 {
 margin: 0;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(58px, 8.2vw, 120px);
 line-height: 0.84;
 letter-spacing: -0.055em;
}

.memory-spread-head > p,
.memory-album-head > p {
 margin: 0;
 color: rgba(247, 240, 226, 0.7);
 font-size: clamp(16px, 1.3vw, 20px);
 line-height: 1.7;
}

.memory-spread .memory-overline,
.memory-next .memory-overline {
 color: var(--memory-yellow);
}

.memory-spread-grid {
 position: relative;
 display: grid;
 grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.62fr);
 grid-template-rows: auto auto;
 gap: clamp(24px, 5vw, 80px);
}

.memory-spread figure {
 margin: 0;
}

.memory-spread button,
.memory-film button,
.memory-gallery-item > button {
 display: block;
 width: 100%;
 height: 100%;
 border: 0;
 padding: 0;
 background: transparent;
 cursor: zoom-in;
}

.memory-spread button:focus-visible,
.memory-film button:focus-visible,
.memory-gallery-item > button:focus-visible {
 outline: 4px solid var(--memory-yellow);
 outline-offset: -4px;
}

.memory-spread img,
.memory-film img,
.memory-gallery-item img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: filter 420ms ease, transform 620ms cubic-bezier(0.22, 0.8, 0.28, 1);
}

.memory-spread button:hover img,
.memory-film button:hover img,
.memory-gallery-item > button:hover img {
 filter: saturate(1.08) contrast(1.04);
 transform: scale(1.025);
}

.memory-spread-main {
 position: relative;
 grid-row: 1 / span 2;
 min-height: 820px;
 overflow: hidden;
}

.memory-spread-main img {
 filter: saturate(0.82) contrast(1.06);
}

.memory-spread-main figcaption {
 position: absolute;
 right: 0;
 bottom: 0;
 left: 0;
 display: grid;
 grid-template-columns: auto 1fr;
 gap: 5px 20px;
 align-items: center;
 padding: 24px;
 background: linear-gradient(0deg, rgba(7, 25, 18, 0.92), rgba(7, 25, 18, 0));
 pointer-events: none;
}

.memory-spread-main figcaption span {
 grid-row: 1 / 3;
 color: var(--memory-yellow);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 38px;
 font-weight: 800;
}

.memory-spread-main figcaption strong {
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(24px, 2.6vw, 38px);
}

.memory-spread-main figcaption small {
 color: rgba(247, 240, 226, 0.64);
}

.memory-polaroid {
 position: relative;
 z-index: 2;
 width: min(430px, 88%);
 padding: 12px 12px 46px;
 background: var(--memory-paper-soft);
 color: var(--memory-ink);
 box-shadow: 0 26px 70px rgba(0, 0, 0, 0.32);
}

.memory-polaroid button {
 aspect-ratio: 1.1;
 overflow: hidden;
}

.memory-polaroid figcaption {
 padding: 15px 8px 0;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(18px, 2vw, 25px);
 font-style: italic;
 font-weight: 700;
}

.memory-polaroid-one {
 justify-self: start;
 margin-left: -8%;
 transform: rotate(2.5deg);
}

.memory-polaroid-two {
 justify-self: end;
 margin-right: 3%;
 transform: rotate(-3.5deg);
}

.memory-spread-note {
 position: absolute;
 right: 3%;
 bottom: 6%;
 width: min(250px, 22vw);
 padding: 20px;
 border: 1px solid rgba(247, 240, 226, 0.25);
 transform: translateY(100%);
}

.memory-spread-note span {
 color: var(--memory-yellow);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.memory-spread-note strong {
 display: block;
 margin-top: 24px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(28px, 3vw, 42px);
 line-height: 0.92;
}

.memory-spread-note p {
 margin: 16px 0 0;
 color: rgba(247, 240, 226, 0.62);
 font-size: 13px;
 line-height: 1.5;
}

.memory-film {
 padding: 42px 0 54px;
 background: #0d1612;
 color: var(--memory-paper-soft);
}

.memory-film-heading {
 display: flex;
 justify-content: space-between;
 padding: 0 var(--page-pad) 22px;
}

.memory-film-heading p,
.memory-film-heading span {
 margin: 0;
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.14em;
 text-transform: uppercase;
}

.memory-film-heading span {
 color: var(--memory-yellow);
}

.memory-film-track {
 display: flex;
 gap: 10px;
 overflow-x: auto;
 padding: 0 var(--page-pad) 14px;
 scroll-snap-type: x mandatory;
 scrollbar-color: var(--memory-yellow) rgba(255, 255, 255, 0.08);
 scrollbar-width: thin;
}

.memory-film-track figure {
 flex: 0 0 clamp(250px, 24vw, 390px);
 margin: 0;
 scroll-snap-align: start;
}

.memory-film-track button {
 height: clamp(300px, 34vw, 510px);
 overflow: hidden;
}

.memory-film-track img {
 filter: saturate(0.65) contrast(1.1);
}

.memory-film-track figcaption {
 padding: 12px 2px 0;
 color: rgba(247, 240, 226, 0.64);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

.memory-album {
 padding: clamp(82px, 11vw, 160px) var(--page-pad);
 background:
 radial-gradient(circle at 92% 4%, rgba(159, 48, 44, 0.1), transparent 24%),
 var(--memory-paper-soft);
 color: var(--memory-ink);
}

.memory-album-head > p {
 color: rgba(23, 37, 30, 0.68);
}

.memory-album h2 {
 color: var(--memory-green);
}

.memory-filters {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-bottom: 34px;
 border-top: 1px solid rgba(23, 37, 30, 0.22);
 border-bottom: 1px solid rgba(23, 37, 30, 0.22);
 padding: 14px 0;
}

.memory-filters button {
 display: inline-flex;
 gap: 12px;
 align-items: center;
 border: 1px solid rgba(23, 37, 30, 0.2);
 border-radius: 999px;
 padding: 10px 14px;
 background: transparent;
 color: var(--memory-ink);
 font-size: 11px;
 font-weight: 900;
 cursor: pointer;
 transition: color 180ms ease, background 180ms ease, border-color 180ms ease;
}

.memory-filters button:hover,
.memory-filters button.is-active {
 border-color: var(--memory-green);
 background: var(--memory-green);
 color: var(--memory-paper-soft);
}

.memory-filters button span {
 display: grid;
 min-width: 21px;
 height: 21px;
 place-items: center;
 border-radius: 50%;
 background: rgba(23, 37, 30, 0.1);
 font-size: 9px;
}

.memory-filters button.is-active span {
 background: var(--memory-yellow);
 color: var(--memory-ink);
}

.memory-gallery {
 display: grid;
 grid-auto-flow: dense;
 grid-auto-rows: 290px;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 12px;
}

.memory-gallery-item {
 position: relative;
 min-width: 0;
 margin: 0;
 overflow: hidden;
 background: #2b1c12;
}

.memory-gallery-item[hidden] {
 display: none;
}

.memory-gallery-item > button {
 overflow: hidden;
}

.memory-gallery-item img {
 filter: saturate(0.8) contrast(1.04);
}

.memory-gallery-item::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(0deg, rgba(7, 20, 14, 0.78), transparent 55%);
 pointer-events: none;
}

.memory-gallery-item figcaption {
 position: absolute;
 z-index: 2;
 right: 18px;
 bottom: 16px;
 left: 18px;
 color: var(--memory-paper-soft);
 pointer-events: none;
}

.memory-gallery-item figcaption span {
 display: block;
 margin-bottom: 6px;
 color: var(--memory-yellow);
 font-size: 9px;
 font-weight: 900;
 letter-spacing: 0.11em;
 text-transform: uppercase;
}

.memory-gallery-item figcaption strong {
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(19px, 2vw, 28px);
 line-height: 1;
}

.memory-gallery-tall {
 grid-row: span 2;
}

.memory-gallery-wide {
 grid-column: span 2;
}

.memory-empty {
 margin: 28px 0 0;
 color: rgba(23, 37, 30, 0.6);
 text-align: center;
}

.memory-callout {
 margin: 0;
 padding: 22px var(--page-pad);
 background: var(--memory-yellow);
 color: var(--memory-ink);
 text-align: center;
}

.memory-callout p {
 margin: 0;
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(18px, 2vw, 27px);
 font-style: italic;
 font-weight: 700;
}

.memory-callout span {
 margin-right: 9px;
 font-family: Inter, system-ui, sans-serif;
 font-size: 10px;
 font-style: normal;
 font-weight: 950;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

.memory-callout a {
 text-decoration: underline;
 text-underline-offset: 4px;
}

.memory-next {
 position: relative;
 display: grid;
 min-height: 86svh;
 place-items: center;
 isolation: isolate;
 overflow: hidden;
 padding: clamp(90px, 12vw, 170px) var(--page-pad);
 color: var(--memory-paper-soft);
 text-align: center;
}

.memory-next > img,
.memory-next-overlay {
 position: absolute;
 z-index: -2;
 inset: 0;
 width: 100%;
 height: 100%;
}

.memory-next > img {
 object-fit: cover;
 object-position: 50% 44%;
 filter: saturate(0.66) brightness(0.58);
}

.memory-next-overlay {
 z-index: -1;
 background:
 radial-gradient(circle at 50% 45%, rgba(16, 62, 45, 0.18), rgba(5, 16, 11, 0.86) 68%),
 linear-gradient(0deg, #07130e 0%, transparent 45%);
}

.memory-next-copy {
 display: grid;
 max-width: 1060px;
 justify-items: center;
}

.memory-next h2 {
 color: var(--memory-paper-soft);
}

.memory-next-copy > p:not(.memory-overline) {
 max-width: 620px;
 margin: 30px 0 0;
 color: rgba(247, 240, 226, 0.74);
 font-size: clamp(17px, 1.4vw, 21px);
 line-height: 1.65;
}

.memory-viewer {
 width: 100vw;
 max-width: none;
 height: 100svh;
 max-height: none;
 overflow: hidden;
 border: 0;
 padding: 0;
 background: #08100d;
 color: var(--memory-paper-soft);
}

.memory-viewer::backdrop {
 background: rgba(3, 8, 6, 0.96);
}

.memory-viewer[open] {
 display: grid;
 grid-template-columns: 82px minmax(0, 1fr) 82px;
 place-items: center;
}

.memory-viewer-top {
 position: absolute;
 z-index: 3;
 top: 0;
 right: 0;
 left: 0;
 display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 20px clamp(18px, 3vw, 42px);
 color: rgba(247, 240, 226, 0.58);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.memory-viewer-top button {
 display: flex;
 gap: 10px;
 align-items: center;
 border: 0;
 padding: 8px;
 background: transparent;
 color: var(--memory-paper-soft);
 font-size: 10px;
 font-weight: 900;
 cursor: pointer;
 text-transform: uppercase;
}

.memory-viewer-top b {
 display: grid;
 width: 34px;
 height: 34px;
 place-items: center;
 border: 1px solid rgba(247, 240, 226, 0.28);
 border-radius: 50%;
 font-size: 22px;
 font-weight: 400;
}

.memory-viewer figure {
 display: grid;
 width: 100%;
 height: 100svh;
 min-height: 0;
 grid-template-rows: minmax(0, 1fr) auto;
 place-items: center;
 margin: 0;
 padding: 74px 0 26px;
}

.memory-viewer figure img {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 0;
 object-fit: contain;
}

.memory-viewer figcaption {
 max-width: 760px;
 padding: 18px 24px 0;
 color: rgba(247, 240, 226, 0.68);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(17px, 1.8vw, 24px);
 font-style: italic;
 text-align: center;
}

.memory-viewer-nav {
 display: grid;
 width: 48px;
 height: 48px;
 place-items: center;
 border: 1px solid rgba(247, 240, 226, 0.25);
 border-radius: 50%;
 background: transparent;
 color: var(--memory-paper-soft);
 font-size: 20px;
 cursor: pointer;
 transition: color 180ms ease, background 180ms ease;
}

.memory-viewer-nav:hover {
 background: var(--memory-yellow);
 color: var(--memory-ink);
}

.memory-viewer-open {
 overflow: hidden;
}

@media (max-width: 1100px) {
 .memory-cover-copy {
 width: min(820px, 82vw);
 }

 .memory-cover-card {
 display: none;
 }

 .memory-spread-main {
 min-height: 680px;
 }

 .memory-spread-note {
 display: none;
 }

 .memory-gallery {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

@media (max-width: 760px) {
 .memory-cover {
 min-height: 920px;
 align-items: end;
 padding-top: 128px;
 padding-bottom: 74px;
 }

 .memory-cover-image {
 object-position: 59% 48%;
 }

 .memory-cover-wash {
 background:
 linear-gradient(0deg, rgba(5, 18, 13, 0.99) 0%, rgba(6, 20, 14, 0.85) 46%, rgba(5, 15, 11, 0.12) 75%),
 linear-gradient(90deg, rgba(5, 18, 13, 0.72), transparent);
 }

 .memory-cover-copy {
 width: 100%;
 }

 .memory-cover h1 {
 font-size: clamp(67px, 21vw, 112px);
 line-height: 0.76;
 }

 .memory-cover-intro {
 margin-top: 26px;
 font-size: 16px;
 }

 .memory-cover-actions,
 .memory-cover-actions .memory-button {
 width: 100%;
 }

 .memory-cover-scroll {
 display: none;
 }

 .memory-index {
 grid-template-columns: repeat(2, 1fr);
 }

 .memory-index a:nth-child(3),
 .memory-index a:nth-child(4) {
 border-top: 1px solid rgba(23, 37, 30, 0.18);
 }

 .memory-index a:nth-child(3) {
 border-left: 0;
 }

 .memory-index a {
 min-height: 70px;
 padding: 14px 18px;
 font-size: 10px;
 }

 .memory-manifesto {
 grid-template-columns: 1fr;
 }

 .memory-section-label {
 display: flex;
 gap: 16px;
 align-items: center;
 }

 .memory-section-label p {
 margin: 0;
 }

 .memory-manifesto h2 {
 font-size: clamp(52px, 15vw, 84px);
 }

 .memory-manifesto-text {
 grid-template-columns: 1fr;
 margin-top: 34px;
 }

 .memory-quote {
 grid-column: 1;
 padding-left: 68px;
 }

 .memory-quote > span {
 font-size: 84px;
 }

 .memory-spread-head,
 .memory-album-head {
 grid-template-columns: 1fr;
 margin-bottom: 48px;
 }

 .memory-spread h2,
 .memory-album h2,
 .memory-next h2 {
 font-size: clamp(52px, 15vw, 82px);
 }

 .memory-spread-grid {
 grid-template-columns: 1fr 1fr;
 gap: 28px 12px;
 }

 .memory-spread-main {
 grid-column: 1 / -1;
 grid-row: auto;
 min-height: 610px;
 }

 .memory-polaroid {
 width: 105%;
 }

 .memory-polaroid-one,
 .memory-polaroid-two {
 align-self: start;
 margin: 0;
 }

 .memory-polaroid figcaption {
 font-size: 16px;
 }

 .memory-film-track figure {
 flex-basis: 72vw;
 }

 .memory-gallery {
 grid-auto-rows: 260px;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .memory-gallery-tall {
 grid-row: span 2;
 }

 .memory-gallery-wide {
 grid-column: span 2;
 }

 .memory-filters {
 flex-wrap: nowrap;
 margin-right: calc(var(--page-pad) * -1);
 margin-left: calc(var(--page-pad) * -1);
 padding-right: var(--page-pad);
 padding-left: var(--page-pad);
 overflow-x: auto;
 scrollbar-width: none;
 }

 .memory-filters::-webkit-scrollbar {
 display: none;
 }

 .memory-filters button {
 flex: 0 0 auto;
 }

 .memory-viewer[open] {
 grid-template-columns: 54px minmax(0, 1fr) 54px;
 }

 .memory-viewer-nav {
 width: 38px;
 height: 38px;
 }
}

@media (max-width: 480px) {
 .memory-cover {
 min-height: 840px;
 }

 .memory-kicker {
 align-items: flex-start;
 flex-direction: column;
 }

 .memory-spread-main {
 min-height: 500px;
 }

 .memory-spread-main figcaption {
 grid-template-columns: 1fr;
 }

 .memory-spread-main figcaption span {
 grid-row: auto;
 font-size: 28px;
 }

 .memory-polaroid {
 padding: 8px 8px 36px;
 }

 .memory-polaroid figcaption {
 padding: 11px 4px 0;
 font-size: 13px;
 }

 .memory-gallery {
 display: block;
 }

 .memory-gallery-item {
 min-height: 420px;
 margin-bottom: 10px;
 }

 .memory-gallery-item.memory-gallery-wide {
 min-height: 300px;
 }

 .memory-viewer[open] {
 grid-template-columns: 44px minmax(0, 1fr) 44px;
 }

 .memory-viewer figure {
 padding-top: 82px;
 }

 .memory-viewer-nav {
 width: 34px;
 height: 34px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .memory-cover-image,
 .memory-spread img,
 .memory-film img,
 .memory-gallery-item img {
 transition: none;
 }
}

/* Souvenirs v3 - palette pub : bois, tourbe, cuir et laiton */
.memory-index {
 border-color: rgba(243, 231, 211, 0.14);
 background:
 linear-gradient(180deg, rgba(216, 168, 77, 0.035), transparent),
 #18100c;
}

.memory-index a {
 color: rgba(243, 231, 211, 0.82);
}

.memory-index a + a {
 border-color: rgba(243, 231, 211, 0.14);
}

.memory-index a:hover {
 background: #164c37;
 color: #fff7e8;
}

.memory-index span {
 color: var(--memory-yellow);
}

.memory-manifesto {
 background:
 linear-gradient(rgba(243, 231, 211, 0.028) 1px, transparent 1px),
 linear-gradient(90deg, rgba(243, 231, 211, 0.028) 1px, transparent 1px),
 radial-gradient(circle at 86% 18%, rgba(20, 84, 59, 0.18), transparent 30%),
 radial-gradient(circle at 8% 88%, rgba(111, 51, 28, 0.14), transparent 28%),
 #120d09;
 background-size: 46px 46px, 46px 46px, auto, auto, auto;
}

.memory-section-label {
 border-color: rgba(243, 231, 211, 0.7);
}

.memory-manifesto h2,
.memory-quote p,
.memory-album h2 {
 color: #f3e7d3;
}

.memory-manifesto-text p,
.memory-album-head > p,
.memory-empty {
 color: rgba(243, 231, 211, 0.67);
}

.memory-quote {
 border-color: rgba(243, 231, 211, 0.2);
}

.memory-spread {
 background:
 radial-gradient(circle at 88% 8%, rgba(216, 168, 77, 0.12), transparent 22%),
 radial-gradient(circle at 12% 92%, rgba(97, 35, 26, 0.16), transparent 28%),
 #0d3527;
}

.memory-polaroid {
 border: 1px solid rgba(216, 168, 77, 0.18);
 background: #211710;
 color: #eadcc6;
}

.memory-film {
 border-top: 1px solid rgba(216, 168, 77, 0.15);
 border-bottom: 1px solid rgba(216, 168, 77, 0.15);
 background: #090d0b;
}

.memory-album {
 background:
 radial-gradient(circle at 92% 4%, rgba(196, 90, 67, 0.09), transparent 24%),
 radial-gradient(circle at 5% 74%, rgba(20, 84, 59, 0.16), transparent 30%),
 #19110c;
}

.memory-filters {
 border-color: rgba(243, 231, 211, 0.16);
}

.memory-filters button {
 border-color: rgba(243, 231, 211, 0.2);
 color: rgba(243, 231, 211, 0.78);
}

.memory-filters button:hover,
.memory-filters button.is-active {
 border-color: #267a57;
 background: #14543b;
 color: #fff7e8;
}

.memory-filters button span {
 background: rgba(243, 231, 211, 0.1);
}

.memory-filters button.is-active span {
 background: var(--memory-yellow);
 color: #17100c;
}

.memory-callout {
 background:
 linear-gradient(90deg, #b7792e, #d8a84d 48%, #b7792e);
 color: #17100c;
}

@media (max-width: 760px) {
 .memory-index a:nth-child(3),
 .memory-index a:nth-child(4) {
 border-color: rgba(243, 231, 211, 0.14);
 }
}

/* Souvenirs v3 - cadrages photographiques naturels */
@media (min-width: 761px) {
 .memory-cover {
 min-height: 940px;
 background:
 radial-gradient(circle at 82% 20%, rgba(24, 103, 72, 0.18), transparent 27%),
 linear-gradient(135deg, #08130e, #120c08 68%);
 }

 .memory-cover-image {
 top: 112px;
 right: clamp(28px, 4vw, 72px);
 bottom: 54px;
 left: auto;
 width: min(56vw, 940px);
 height: calc(100% - 166px);
 border: 1px solid rgba(216, 168, 77, 0.22);
 padding: 10px;
 background: #0b0a08;
 object-fit: contain;
 object-position: center;
 filter: saturate(0.88) contrast(1.05) brightness(0.88);
 box-shadow: 0 32px 100px rgba(0, 0, 0, 0.52);
 transform: rotate(0.7deg);
 }

 .memory-cover-wash {
 background:
 linear-gradient(90deg, #07130e 0%, rgba(7, 19, 14, 0.98) 35%, rgba(7, 19, 14, 0.76) 49%, rgba(7, 19, 14, 0.08) 72%),
 linear-gradient(0deg, rgba(8, 13, 10, 0.84), transparent 38%);
 }

 .memory-cover-copy {
 width: min(690px, 49vw);
 }

 .memory-cover h1 {
 font-size: clamp(74px, 8.5vw, 138px);
 line-height: 0.76;
 }
}

.memory-spread-main {
 min-height: 0;
 align-self: start;
 background: #0b0a08;
}

.memory-spread-main button,
.memory-polaroid button {
 height: auto;
}

.memory-spread-main img,
.memory-polaroid img {
 height: auto;
 object-fit: contain;
 filter: saturate(0.96) contrast(1.02);
}

.memory-film-track {
 align-items: flex-start;
}

.memory-film-track figure {
 flex-basis: clamp(250px, 22vw, 350px);
}

.memory-film-track button {
 height: auto;
 border: 8px solid #19110c;
 border-bottom-width: 28px;
 background: #19110c;
}

.memory-film-track img {
 height: auto;
 aspect-ratio: auto;
 object-fit: contain;
 filter: saturate(0.9) contrast(1.04);
}

.memory-gallery {
 display: block;
 columns: 3;
 column-gap: 14px;
}

.memory-gallery-item,
.memory-gallery-tall,
.memory-gallery-wide {
 display: inline-block;
 width: 100%;
 min-height: 0;
 margin: 0 0 14px;
 break-inside: avoid;
 vertical-align: top;
}

.memory-gallery-item[hidden] {
 display: none;
}

.memory-gallery-item > button {
 height: auto;
}

.memory-gallery-item img {
 height: auto;
 aspect-ratio: auto;
 object-fit: contain;
 filter: saturate(0.96) contrast(1.02);
}

.memory-gallery-item figcaption {
 padding-top: 54px;
 background: linear-gradient(0deg, rgba(7, 20, 14, 0.9), transparent);
}

@media (max-width: 1100px) {
 .memory-gallery {
 columns: 2;
 }
}

@media (max-width: 760px) {
 .memory-cover {
 display: block;
 min-height: 0;
 padding: 0 var(--page-pad) 72px;
 background:
 radial-gradient(circle at 12% 72%, rgba(104, 47, 27, 0.2), transparent 32%),
 #08130e;
 }

 .memory-cover-image {
 position: relative;
 inset: auto;
 width: calc(100% + (var(--page-pad) * 2));
 height: auto;
 max-width: none;
 margin-left: calc(var(--page-pad) * -1);
 padding-top: 106px;
 background: #090b09;
 object-fit: contain;
 object-position: center;
 filter: saturate(0.86) contrast(1.05) brightness(0.82);
 transform: none;
 }

 .memory-cover-wash {
 display: none;
 }

 .memory-cover-copy {
 width: 100%;
 margin-top: -18px;
 border-top: 3px solid var(--memory-yellow);
 padding-top: 34px;
 }

 .memory-cover h1 {
 font-size: clamp(62px, 19vw, 100px);
 }

 .memory-spread-main {
 min-height: 0;
 }
}

@media (max-width: 600px) {
 .memory-gallery {
 columns: 1;
 }

 .memory-gallery-item,
 .memory-gallery-item.memory-gallery-wide {
 min-height: 0;
 }
}

/* Souvenirs - lisibilit\0000e9 du dernier chapitre */
.memory-next > img {
 filter: saturate(0.58) brightness(0.38) contrast(1.08);
}

.memory-next-overlay {
 background:
 radial-gradient(ellipse at 50% 48%, rgba(5, 13, 9, 0.5) 0%, rgba(5, 13, 9, 0.82) 58%, rgba(4, 10, 7, 0.94) 100%),
 linear-gradient(0deg, #050d09 0%, rgba(5, 13, 9, 0.35) 58%, rgba(5, 13, 9, 0.72) 100%);
}

.memory-next-copy {
 border: 1px solid rgba(216, 168, 77, 0.18);
 border-radius: 12px;
 padding: clamp(30px, 5vw, 64px);
 background: rgba(7, 18, 13, 0.58);
 box-shadow: 0 30px 100px rgba(0, 0, 0, 0.42);
 backdrop-filter: blur(7px);
}

.memory-next h2 {
 color: #fff7e8;
 text-shadow: 0 4px 30px rgba(0, 0, 0, 0.75);
}

.memory-next-copy > p:not(.memory-overline) {
 color: rgba(255, 247, 232, 0.88);
 text-shadow: 0 2px 14px rgba(0, 0, 0, 0.72);
}

/* Souvenirs - dernier chapitre enrichi */
.memory-next {
 min-height: 94svh;
 place-items: end start;
 text-align: left;
}

.memory-next > img {
 object-position: 67% 45%;
}

.memory-next-overlay {
 background:
 linear-gradient(90deg, rgba(4, 12, 8, 0.98) 0%, rgba(5, 15, 10, 0.91) 43%, rgba(5, 14, 10, 0.42) 72%, rgba(4, 11, 8, 0.72) 100%),
 linear-gradient(0deg, #050d09 0%, transparent 56%, rgba(5, 13, 9, 0.58) 100%);
}

.memory-next-copy {
 position: relative;
 z-index: 2;
 width: min(900px, 72vw);
 max-width: none;
 justify-items: start;
 border: 0;
 border-left: 3px solid var(--memory-yellow);
 border-radius: 0;
 padding: clamp(28px, 4vw, 54px);
 background:
 linear-gradient(135deg, rgba(216, 168, 77, 0.07), transparent 46%),
 rgba(7, 18, 13, 0.76);
 text-align: left;
 backdrop-filter: blur(12px);
}

.memory-next h2 {
 max-width: 850px;
 font-size: clamp(64px, 8.6vw, 126px);
}

.memory-next-copy > p:not(.memory-overline) {
 max-width: 690px;
}

.memory-next-actions {
 justify-content: flex-start;
}

.memory-next-details {
 display: grid;
 width: 100%;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1px;
 margin: clamp(34px, 5vw, 56px) 0 0;
 border: 1px solid rgba(255, 247, 232, 0.14);
 background: rgba(255, 247, 232, 0.14);
}

.memory-next-details > div {
 padding: 17px 18px;
 background: rgba(8, 22, 15, 0.9);
}

.memory-next-details dt {
 margin-bottom: 9px;
 color: var(--memory-yellow);
 font-size: 9px;
 font-weight: 950;
 letter-spacing: 0.13em;
 text-transform: uppercase;
}

.memory-next-details dd {
 margin: 0;
 color: rgba(255, 247, 232, 0.78);
 font-size: 13px;
 font-weight: 750;
 line-height: 1.45;
}

.memory-next-number {
 position: absolute;
 z-index: 1;
 right: var(--page-pad);
 bottom: clamp(72px, 10vw, 140px);
 display: grid;
 justify-items: end;
 color: rgba(216, 168, 77, 0.48);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(150px, 20vw, 320px);
 font-weight: 800;
 line-height: 0.68;
 letter-spacing: -0.08em;
 pointer-events: none;
}

.memory-next-number small {
 margin: 0 12px 28px 0;
 color: rgba(255, 247, 232, 0.62);
 font-family: Inter, system-ui, sans-serif;
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.16em;
 text-transform: uppercase;
}

@media (max-width: 980px) {
 .memory-next-copy {
 width: min(780px, 86vw);
 }

 .memory-next-number {
 top: 120px;
 right: 24px;
 bottom: auto;
 opacity: 0.65;
 }
}

@media (max-width: 620px) {
 .memory-next {
 min-height: auto;
 padding-top: 110px;
 padding-bottom: 72px;
 }

 .memory-next > img {
 object-position: 58% 50%;
 }

 .memory-next-copy {
 width: 100%;
 padding: 26px 22px;
 }

 .memory-next h2 {
 font-size: clamp(50px, 15vw, 74px);
 }

 .memory-next-actions,
 .memory-next-actions .memory-button {
 width: 100%;
 }

 .memory-next-details {
 grid-template-columns: 1fr;
 }

 .memory-next-number {
 display: none;
 }
}
[data-floating-call].floating-call {
 position: fixed;
 z-index: 160;
 top: 50%;
 right: max(14px, env(safe-area-inset-right));
 display: inline-flex;
 min-height: 52px;
 align-items: center;
 justify-content: center;
 gap: 9px;
 transform: translateY(-50%);
 border: 1px solid rgba(255, 255, 255, 0.2);
 border-radius: 999px;
 padding: 13px 17px;
 background: #d8a84d;
 box-shadow: 0 14px 38px rgba(0, 0, 0, 0.35);
 color: #17100a;
 font-size: 12px;
 font-weight: 900;
 letter-spacing: 0.08em;
 line-height: 1;
 text-decoration: none;
 text-transform: uppercase;
 transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease, opacity 180ms ease, visibility 180ms ease;
}

[data-floating-call].floating-call.is-footer-call-visible {
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
}

[data-floating-call].floating-call svg {
 flex: 0 0 auto;
 fill: currentColor;
}

[data-floating-call].floating-call:hover,
[data-floating-call].floating-call:focus-visible {
 transform: translateY(-50%) scale(1.05);
 background: #efc66f;
 box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
}

@media (max-width: 760px) {
 [data-floating-call].floating-call {
 top: auto;
 right: max(14px, env(safe-area-inset-right));
 bottom: max(14px, env(safe-area-inset-bottom));
 min-height: 54px;
 transform: none;
 padding: 14px 18px;
 }

 [data-floating-call].floating-call:hover,
 [data-floating-call].floating-call:focus-visible {
 transform: scale(1.04);
 }

 .js-enabled .dish-mobile-call {
 display: none;
 }
}

@media (prefers-reduced-motion: reduce) {
 [data-floating-call].floating-call {
 transition: none;
 }
}

/* Carte hero max polish */
.menu-hero-premium {
 min-height: min(860px, 94svh);
 grid-template-columns: minmax(0, 1.05fr) minmax(310px, 430px);
 gap: clamp(30px, 5vw, 82px);
 align-items: end;
 padding: clamp(132px, 14vw, 190px) clamp(18px, 6vw, 92px) clamp(40px, 7vw, 92px);
 background: #080605;
}

.menu-hero-premium::before,
.menu-hero-premium::after {
 content: "";
 position: absolute;
 pointer-events: none;
}

.menu-hero-premium::before {
 z-index: -1;
 inset: auto 0 0;
 height: 34%;
 background:
 linear-gradient(0deg, rgba(8, 6, 5, 0.98), rgba(8, 6, 5, 0));
}

.menu-hero-premium::after {
 z-index: 0;
 left: clamp(18px, 6vw, 92px);
 right: clamp(18px, 6vw, 92px);
 bottom: clamp(14px, 2vw, 24px);
 height: 1px;
 background: linear-gradient(90deg, rgba(216, 168, 77, 0), rgba(216, 168, 77, 0.7), rgba(15, 90, 63, 0.45), rgba(216, 168, 77, 0));
 opacity: 0.74;
}

.menu-hero-premium > img {
 object-position: center 52%;
 transform: scale(1.08);
 filter: saturate(1.18) contrast(1.08) brightness(0.78);
}

.menu-hero-premium .menu-hero-overlay {
 background:
 linear-gradient(115deg, rgba(7, 5, 4, 0.98) 0%, rgba(10, 8, 6, 0.84) 36%, rgba(12, 9, 6, 0.34) 66%, rgba(8, 6, 5, 0.18) 100%),
 linear-gradient(0deg, rgba(8, 6, 5, 0.99) 0%, rgba(8, 6, 5, 0.34) 44%, rgba(8, 6, 5, 0.72) 100%),
 linear-gradient(150deg, rgba(216, 168, 77, 0.2), transparent 38%, rgba(15, 90, 63, 0.2));
}

.menu-hero-shine {
 position: absolute;
 z-index: -1;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(105deg, transparent 0%, rgba(255, 247, 232, 0.1) 28%, transparent 44%),
 repeating-linear-gradient(90deg, rgba(255, 247, 232, 0.045) 0 1px, transparent 1px 112px);
 mix-blend-mode: screen;
 opacity: 0.42;
 transform: translateX(calc(var(--pointer-x, 0) * 16px));
}

.menu-hero-premium .menu-hero-copy {
 position: relative;
 z-index: 1;
 max-width: 930px;
 padding-bottom: clamp(0px, 1.6vw, 22px);
}

.menu-hero-premium .menu-hero-copy .eyebrow {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 border: 1px solid rgba(216, 168, 77, 0.34);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(8, 6, 5, 0.42);
 color: #f0c46b;
 box-shadow: 0 16px 44px rgba(0, 0, 0, 0.24);
 backdrop-filter: blur(12px);
}

.menu-hero-premium .menu-hero-copy .eyebrow::before {
 content: "";
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: var(--green-bright);
 box-shadow: 0 0 0 5px rgba(32, 160, 111, 0.16);
}

.menu-hero-premium .menu-hero-copy h1 {
 max-width: 880px;
 margin-top: 18px;
 margin-bottom: 20px;
 font-size: clamp(58px, 8.7vw, 132px);
 line-height: 0.86;
 text-wrap: balance;
 text-shadow: 0 28px 86px rgba(0, 0, 0, 0.72);
}

.menu-hero-premium .menu-hero-copy > p:not(.eyebrow) {
 max-width: 760px;
 color: rgba(255, 247, 232, 0.9);
 font-size: clamp(18px, 1.45vw, 23px);
 font-weight: 750;
 line-height: 1.42;
 text-shadow: 0 14px 42px rgba(0, 0, 0, 0.74);
}

.menu-hero-pills {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 24px;
}

.menu-hero-pills span {
 display: inline-flex;
 align-items: center;
 min-height: 42px;
 border: 1px solid rgba(255, 247, 232, 0.16);
 border-radius: 999px;
 padding: 9px 13px;
 background: rgba(18, 13, 9, 0.58);
 color: rgba(255, 247, 232, 0.78);
 font-size: 13px;
 font-weight: 850;
 backdrop-filter: blur(14px);
}

.menu-hero-pills strong {
 margin-right: 6px;
 color: var(--cream);
}

.menu-hero-premium .menu-hero-actions {
 gap: 14px;
 margin-top: 28px;
}

.menu-hero-premium .button {
 box-shadow: 0 18px 46px rgba(0, 0, 0, 0.32);
}

.menu-hero-board {
 position: relative;
 z-index: 1;
 overflow: hidden;
 border-color: rgba(216, 168, 77, 0.3);
 padding: clamp(20px, 2.4vw, 28px);
 background:
 linear-gradient(155deg, rgba(255, 247, 232, 0.16), rgba(255, 247, 232, 0.045) 44%, rgba(15, 90, 63, 0.14)),
 rgba(15, 11, 8, 0.72);
 box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42);
}

.menu-hero-board::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(120deg, rgba(255, 247, 232, 0.16), transparent 34%),
 repeating-linear-gradient(0deg, rgba(255, 247, 232, 0.045) 0 1px, transparent 1px 10px);
 opacity: 0.62;
}

.menu-hero-board > * {
 position: relative;
 z-index: 1;
}

.menu-hero-board strong {
 max-width: 8ch;
}

.menu-hero-board-grid {
 display: grid;
 gap: 0;
 margin-top: 24px;
 border-top: 1px solid rgba(255, 247, 232, 0.14);
}

.menu-hero-board-grid a {
 display: grid;
 grid-template-columns: 1fr auto;
 align-items: center;
 gap: 16px;
 min-height: 62px;
 border-bottom: 1px solid rgba(255, 247, 232, 0.12);
 color: var(--cream);
 transition: color 180ms ease, transform 180ms ease;
}

.menu-hero-board-grid a:hover,
.menu-hero-board-grid a:focus-visible {
 color: #f0c46b;
 transform: translateX(4px);
}

.menu-hero-board-grid span {
 color: rgba(255, 247, 232, 0.66);
 font-size: 12px;
 font-weight: 850;
 text-transform: uppercase;
}

.menu-hero-board-grid strong {
 max-width: none;
 margin: 0;
 color: currentColor;
 font-family: Inter, system-ui, sans-serif;
 font-size: 15px;
 font-weight: 950;
 line-height: 1;
 text-transform: uppercase;
}

@media (max-width: 980px) {
 .menu-hero-premium {
 min-height: auto;
 grid-template-columns: 1fr;
 gap: 26px;
 padding-top: 132px;
 }

 .menu-hero-board {
 width: min(100%, 620px);
 }
}

@media (max-width: 720px) {
 .menu-hero-premium {
 padding: 112px 18px 34px;
 }

 .menu-hero-premium .menu-hero-copy h1 {
 font-size: clamp(42px, 13vw, 72px);
 line-height: 0.92;
 }

 .menu-hero-premium .menu-hero-copy > p:not(.eyebrow) {
 font-size: 17px;
 }

 .menu-hero-pills {
 display: grid;
 grid-template-columns: 1fr;
 }

 .menu-hero-pills span {
 width: 100%;
 border-radius: 8px;
 }

 .menu-hero-board {
 padding: 18px;
 }

 .menu-hero-board-grid a {
 min-height: 56px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .menu-hero-shine,
 .menu-hero-board-grid a {
 transition: none;
 transform: none;
 }
}

/* Carte hero full redesign */
.menu-hero-redesign {
 min-height: min(760px, 88svh);
 grid-template-columns: minmax(0, 620px) minmax(280px, 380px);
 align-items: center;
 justify-content: space-between;
 gap: clamp(24px, 5vw, 72px);
 padding: clamp(118px, 13vw, 164px) clamp(18px, 6vw, 90px) clamp(36px, 6vw, 76px);
 background: #080605;
}

.menu-hero-redesign > img {
 object-position: center 50%;
 transform: scale(1.02);
 filter: saturate(1.08) contrast(1.05) brightness(0.84);
 animation: none;
}

.menu-hero-redesign .menu-hero-overlay {
 background:
 linear-gradient(90deg, rgba(7, 5, 4, 0.92) 0%, rgba(9, 7, 5, 0.74) 36%, rgba(9, 7, 5, 0.22) 66%, rgba(9, 7, 5, 0.52) 100%),
 linear-gradient(0deg, rgba(8, 6, 5, 0.97) 0%, rgba(8, 6, 5, 0.2) 42%, rgba(8, 6, 5, 0.58) 100%);
}

.menu-hero-redesign .menu-hero-shine {
 opacity: 0.22;
 background:
 linear-gradient(115deg, transparent 12%, rgba(216, 168, 77, 0.12) 38%, transparent 58%),
 repeating-linear-gradient(90deg, rgba(255, 247, 232, 0.035) 0 1px, transparent 1px 140px);
}

.menu-hero-redesign .menu-hero-copy {
 max-width: 620px;
 border-left: 3px solid rgba(216, 168, 77, 0.72);
 padding: clamp(22px, 3vw, 34px) 0 clamp(22px, 3vw, 34px) clamp(20px, 3vw, 34px);
}

.menu-hero-redesign .menu-hero-copy .eyebrow {
 border: 0;
 padding: 0;
 background: transparent;
 box-shadow: none;
 color: #efc66f;
 backdrop-filter: none;
}

.menu-hero-redesign .menu-hero-copy .eyebrow::before {
 display: none;
}

.menu-hero-redesign .menu-hero-copy h1 {
 max-width: 620px;
 margin: 14px 0 18px;
 font-size: clamp(34px, 4.6vw, 68px);
 line-height: 1.02;
 letter-spacing: 0;
 text-wrap: balance;
 text-shadow: 0 20px 70px rgba(0, 0, 0, 0.74);
}

.menu-hero-redesign .menu-hero-copy > p:not(.eyebrow) {
 max-width: 570px;
 color: rgba(255, 247, 232, 0.88);
 font-size: clamp(16px, 1.2vw, 19px);
 font-weight: 650;
 line-height: 1.62;
}

.menu-hero-redesign .menu-hero-pills {
 gap: 8px;
 margin-top: 22px;
}

.menu-hero-redesign .menu-hero-pills span {
 min-height: 38px;
 border-color: rgba(216, 168, 77, 0.22);
 border-radius: 8px;
 padding: 8px 11px;
 background: rgba(10, 8, 6, 0.66);
 font-size: 12px;
}

.menu-hero-redesign .menu-hero-actions {
 margin-top: 24px;
}

.menu-hero-redesign .menu-hero-board {
 align-self: center;
 border-color: rgba(255, 247, 232, 0.18);
 padding: 20px;
 background:
 linear-gradient(180deg, rgba(16, 12, 9, 0.88), rgba(16, 12, 9, 0.7)),
 rgba(16, 12, 9, 0.78);
 box-shadow: 0 26px 80px rgba(0, 0, 0, 0.38);
 backdrop-filter: blur(18px);
}

.menu-hero-redesign .menu-hero-board::before {
 opacity: 0.28;
}

.menu-hero-redesign .menu-hero-board > span {
 color: #efc66f;
}

.menu-hero-redesign .menu-hero-board > strong {
 max-width: 12ch;
 margin-top: 12px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(27px, 2.5vw, 38px);
 line-height: 1.02;
 text-transform: none;
}

.menu-hero-redesign .menu-hero-board > p {
 color: rgba(255, 247, 232, 0.76);
}

.menu-hero-redesign .menu-hero-board-grid {
 margin-top: 20px;
}

.menu-hero-redesign .menu-hero-board-grid a {
 min-height: 54px;
}

@media (max-width: 980px) {
 .menu-hero-redesign {
 min-height: auto;
 grid-template-columns: 1fr;
 padding-top: 126px;
 }

 .menu-hero-redesign .menu-hero-copy {
 max-width: 680px;
 }

 .menu-hero-redesign .menu-hero-board {
 width: min(100%, 560px);
 justify-self: start;
 }
}

@media (max-width: 720px) {
 .menu-hero-redesign {
 padding: 108px 18px 32px;
 }

 .menu-hero-redesign > img {
 object-position: 60% center;
 }

 .menu-hero-redesign .menu-hero-overlay {
 background:
 linear-gradient(90deg, rgba(7, 5, 4, 0.9) 0%, rgba(9, 7, 5, 0.78) 62%, rgba(9, 7, 5, 0.42) 100%),
 linear-gradient(0deg, rgba(8, 6, 5, 0.98) 0%, rgba(8, 6, 5, 0.38) 52%, rgba(8, 6, 5, 0.7) 100%);
 }

 .menu-hero-redesign .menu-hero-copy {
 border-left-width: 2px;
 padding: 18px 0 18px 18px;
 }

 .menu-hero-redesign .menu-hero-copy h1 {
 font-size: clamp(32px, 10.5vw, 48px);
 line-height: 1.05;
 }

 .menu-hero-redesign .menu-hero-pills {
 grid-template-columns: 1fr;
 }

 .menu-hero-redesign .menu-hero-board > strong {
 max-width: 14ch;
 }
}

/* Carte incontournables redesign */
.menu-highlights-redesign {
 position: relative;
 margin-bottom: clamp(58px, 8vw, 98px);
 border-top: 1px solid rgba(216, 168, 77, 0.22);
 padding-top: clamp(28px, 5vw, 54px);
}

.menu-highlights-redesign::before {
 content: "";
 position: absolute;
 top: -1px;
 left: 0;
 width: min(240px, 42vw);
 height: 1px;
 background: #efc66f;
}

.menu-highlights-redesign .menu-highlights-head {
 grid-template-columns: minmax(0, 0.76fr) minmax(260px, 0.48fr);
 margin-bottom: clamp(22px, 4vw, 38px);
}

.menu-highlights-redesign .menu-highlights-head h2 {
 max-width: 620px;
 font-size: clamp(32px, 4.2vw, 58px);
 line-height: 1.03;
}

.menu-highlights-redesign .menu-highlights-head p:last-child {
 max-width: 440px;
 font-size: 16px;
}

.menu-picks-layout {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.78fr);
 gap: clamp(16px, 3vw, 28px);
 align-items: stretch;
}

.menu-pick-feature,
.menu-pick-row {
 position: relative;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 background: rgba(17, 12, 9, 0.76);
 box-shadow: 0 22px 64px rgba(0, 0, 0, 0.22);
}

.menu-pick-feature {
 min-height: 560px;
 display: grid;
 align-items: end;
}

.menu-pick-feature img {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(1.08) contrast(1.04) brightness(0.86);
 transition: transform 420ms ease, filter 420ms ease;
}

.menu-pick-feature::after {
 content: "";
 position: absolute;
 inset: 0;
 background:
 linear-gradient(180deg, rgba(8, 6, 5, 0.04) 14%, rgba(8, 6, 5, 0.38) 52%, rgba(8, 6, 5, 0.94) 100%),
 linear-gradient(90deg, rgba(8, 6, 5, 0.78), rgba(8, 6, 5, 0.18) 62%);
}

.menu-pick-feature:hover img {
 filter: saturate(1.16) contrast(1.06) brightness(0.9);
 transform: scale(1.035);
}

.menu-pick-feature-copy {
 position: relative;
 z-index: 1;
 max-width: 520px;
 padding: clamp(20px, 3vw, 32px);
}

.menu-pick-feature-copy span,
.menu-pick-row span {
 color: #efc66f;
 font-size: 12px;
 font-weight: 900;
 text-transform: uppercase;
}

.menu-pick-feature-copy h3 {
 margin: 12px 0 12px;
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: clamp(36px, 4.8vw, 70px);
 line-height: 0.95;
}

.menu-pick-feature-copy p {
 max-width: 420px;
 margin: 0 0 18px;
 color: rgba(255, 247, 232, 0.8);
 font-size: 16px;
 line-height: 1.58;
}

.menu-pick-feature-copy strong,
.menu-pick-row > strong {
 display: inline-flex;
 min-height: 36px;
 align-items: center;
 border: 1px solid rgba(216, 168, 77, 0.46);
 border-radius: 999px;
 padding: 8px 12px;
 color: var(--cream);
 background: rgba(216, 168, 77, 0.12);
 font-weight: 950;
}

.menu-pick-feature-copy a,
.menu-pick-row a,
.menu-pick-category-link {
 display: inline-flex;
 align-items: center;
 min-height: 36px;
 margin-left: 8px;
 border-bottom: 1px solid rgba(239, 198, 111, 0.54);
 color: #efc66f;
 font-size: 13px;
 font-weight: 900;
 text-transform: uppercase;
}

.menu-pick-list {
 display: grid;
 gap: 12px;
}

.menu-pick-row {
 display: grid;
 grid-template-columns: 118px minmax(0, 1fr) auto;
 gap: 16px;
 align-items: center;
 min-height: 170px;
 padding: 14px;
 transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.menu-pick-row:hover {
 border-color: rgba(216, 168, 77, 0.34);
 background: rgba(22, 16, 12, 0.9);
 transform: translateY(-2px);
}

.menu-pick-row img {
 width: 118px;
 height: 132px;
 border-radius: 8px;
 object-fit: cover;
 filter: saturate(1.08) contrast(1.02);
}

.menu-pick-row h3 {
 margin: 8px 0 8px;
 color: var(--cream);
 font-size: clamp(21px, 2vw, 28px);
 line-height: 1.05;
}

.menu-pick-row p {
 max-width: 420px;
 margin: 0;
 color: rgba(255, 247, 232, 0.72);
 font-size: 14px;
 line-height: 1.45;
}

.menu-pick-row > strong {
 justify-self: end;
 white-space: nowrap;
}

@media (max-width: 980px) {
 .menu-highlights-redesign .menu-highlights-head,
 .menu-picks-layout {
 grid-template-columns: 1fr;
 }

 .menu-pick-feature {
 min-height: 470px;
 }
}

@media (max-width: 720px) {
 .menu-highlights-redesign .menu-highlights-head h2 {
 font-size: clamp(30px, 9vw, 42px);
 }

 .menu-pick-feature {
 min-height: 430px;
 }

 .menu-pick-feature-copy a,
 .menu-pick-feature-copy .menu-pick-category-link {
 margin-top: 10px;
 margin-left: 0;
 }

 .menu-pick-row {
 grid-template-columns: 92px minmax(0, 1fr);
 min-height: auto;
 gap: 12px;
 padding: 12px;
 }

 .menu-pick-row img {
 width: 92px;
 height: 108px;
 }

 .menu-pick-row > strong {
 grid-column: 2;
 justify-self: start;
 margin-top: 8px;
 }

 .menu-pick-row a,
 .menu-pick-row .menu-pick-category-link {
 margin-top: 8px;
 margin-left: 0;
 }
}

@media (prefers-reduced-motion: reduce) {
 .menu-pick-feature img,
 .menu-pick-row {
 transition: none;
 transform: none;
 }
}

/* Burgers compact cards */
.signature-category .signature-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 12px;
 align-items: stretch;
}

.signature-category .signature-card,
.signature-category .signature-card-large {
 display: grid;
 grid-template-rows: 230px auto;
 grid-row: auto;
 min-height: 0;
 overflow: hidden;
 border: 1px solid rgba(255, 247, 232, 0.13);
 border-radius: 8px;
 background: rgba(17, 12, 9, 0.78);
 box-shadow: 0 18px 54px rgba(0, 0, 0, 0.2);
}

.signature-category .signature-card::after {
 display: none;
}

.signature-category .signature-card img {
 position: static;
 width: 100%;
 height: 230px;
 min-height: 0;
 aspect-ratio: auto;
 object-fit: cover;
 filter: saturate(1.05) contrast(1.02) brightness(0.94);
 transform: none;
 transition: filter 180ms ease, transform 180ms ease;
}

.signature-category .signature-card:hover img {
 filter: saturate(1.12) contrast(1.04) brightness(0.98);
 transform: scale(1.025);
}

.signature-category .signature-card:nth-child(2) img {
 height: 255px;
 object-fit: cover;
 object-position: center 43%;
 padding: 0;
 background: transparent;
}

.signature-category .signature-card:nth-child(2) {
 grid-template-rows: 255px auto;
}

.signature-category .signature-card:nth-child(2):hover img {
 transform: scale(1.018);
}

.signature-category .signature-card > div {
 position: static;
 display: grid;
 grid-template-rows: auto auto auto;
 min-height: 0;
 border: 0;
 border-radius: 0;
 padding: 14px 16px 16px;
 background: transparent;
 backdrop-filter: none;
}

.signature-category .signature-card .dish-kicker {
 margin-bottom: 6px;
 color: #efc66f;
 font-size: 11px;
 font-weight: 950;
 text-transform: uppercase;
}

.signature-category .signature-card h3 {
 margin: 0 0 8px;
 color: var(--cream);
 font-size: clamp(22px, 1.9vw, 30px);
 line-height: 1.02;
}

.signature-category .signature-card p {
 max-width: none;
 margin: 0 0 12px;
 color: rgba(255, 247, 232, 0.72);
 font-size: 13px;
 line-height: 1.38;
}

.signature-category .signature-card strong {
 align-self: end;
 justify-self: start;
 min-height: 32px;
 padding: 6px 10px;
 color: var(--cream);
}

.signature-category .menu-list-feature {
 margin-top: 12px;
}

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

 .signature-category .signature-card,
 .signature-category .signature-card-large {
 grid-template-columns: 260px minmax(0, 1fr);
 grid-template-rows: auto;
 }

 .signature-category .signature-card img {
 width: 260px;
 height: 100%;
 min-height: 210px;
 }

 .signature-category .signature-card > div {
 min-height: 210px;
 }

 .signature-category .signature-card:nth-child(2) {
 grid-template-rows: auto;
 }
}

@media (max-width: 620px) {
 .signature-category .signature-card,
 .signature-category .signature-card-large {
 grid-template-columns: 1fr;
 grid-template-rows: 190px auto;
 }

 .signature-category .signature-card img {
 width: 100%;
 height: 190px;
 min-height: 0;
 }

 .signature-category .signature-card:nth-child(2) {
 grid-template-rows: 210px auto;
 }

 .signature-category .signature-card:nth-child(2) img {
 height: 210px;
 object-position: center 44%;
 }

 .signature-category .signature-card > div {
 min-height: auto;
 padding: 15px;
 }
}

.menu-title-mobile {
 display: none;
}

.menu-category-toggle,
.menu-category-sheet {
 display: none;
}

/* ==========================================================
   Mobile experience v1 \002014 isolated from tablet/desktop layouts
   ========================================================== */
@media (max-width: 760px) {
 :root {
 --mobile-pad: clamp(16px, 4.8vw, 22px);
 --mobile-card-radius: 18px;
 --mobile-gold: #efc66f;
 }

 html {
 scroll-padding-top: 96px;
 }

 body {
 overflow-x: hidden;
 -webkit-tap-highlight-color: transparent;
 }

 body.mobile-menu-open {
 overflow: hidden;
 }

 main {
 overflow: clip;
 }

 .section-band,
 .menu-section {
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 }

 .section-band {
 padding-top: clamp(58px, 16vw, 78px);
 padding-bottom: clamp(58px, 16vw, 78px);
 }

 .eyebrow {
 letter-spacing: 0.13em;
 line-height: 1.35;
 }

 :is(.section-band, .split-showcase, .match-strip, .home-match-callout) h2 {
 text-wrap: balance;
 }

 p {
 text-wrap: pretty;
 }

 /* Header and navigation */
 .site-header {
 top: max(10px, env(safe-area-inset-top));
 right: 10px;
 left: 10px;
 min-height: 62px;
 border-color: rgba(239, 198, 111, 0.24);
 border-radius: 20px;
 padding: 8px 8px 8px 10px;
 background:
 linear-gradient(130deg, rgba(255, 247, 232, 0.09), transparent 48%),
 rgba(13, 9, 7, 0.88);
 box-shadow: 0 14px 38px rgba(0, 0, 0, 0.32);
 backdrop-filter: blur(20px) saturate(1.2);
 -webkit-backdrop-filter: blur(20px) saturate(1.2);
 }

 .site-header.is-scrolled {
 top: max(6px, env(safe-area-inset-top));
 background: rgba(13, 9, 7, 0.96);
 box-shadow: 0 12px 34px rgba(0, 0, 0, 0.42);
 }

 .brand {
 min-width: 0;
 }

 .brand-mark {
 flex: 0 0 42px;
 width: 42px;
 height: 42px;
 border-color: rgba(239, 198, 111, 0.64);
 background:
 radial-gradient(circle at 34% 25%, rgba(255, 255, 255, 0.2), transparent 30%),
 linear-gradient(145deg, #d8a84d, #8c5c20);
 box-shadow: inset 0 1px rgba(255, 255, 255, 0.25), 0 7px 20px rgba(216, 168, 77, 0.2);
 color: #140d08;
 }

 .brand strong {
 overflow: hidden;
 max-width: 53vw;
 font-size: 15px;
 text-overflow: ellipsis;
 white-space: nowrap;
 }

 .nav-toggle {
 position: relative;
 display: inline-flex;
 flex: 0 0 94px;
 width: 94px;
 height: 46px;
 align-items: center;
 justify-content: center;
 gap: 9px;
 border: 1px solid rgba(239, 198, 111, 0.26);
 border-radius: 14px;
 background: rgba(255, 247, 232, 0.055);
 color: var(--cream);
 }

 .nav-toggle::before,
 .nav-toggle::after {
 content: "";
 position: static;
 transition: opacity 180ms ease, transform 220ms ease;
 }

 .nav-toggle::before {
 content: "Menu";
 width: auto;
 height: auto;
 background: none;
 color: var(--cream);
 font-size: 11px;
 font-weight: 950;
 line-height: 1;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 }

 .nav-toggle::after {
 width: 18px;
 height: 14px;
 border-radius: 0;
 background:
 linear-gradient(var(--cream), var(--cream)) 0 0 / 18px 2px no-repeat,
 linear-gradient(var(--cream), var(--cream)) 0 6px / 18px 2px no-repeat,
 linear-gradient(var(--cream), var(--cream)) 0 12px / 18px 2px no-repeat;
 }

 .nav-toggle[aria-expanded="true"]::before {
 content: "Fermer";
 transform: none;
 }

 .nav-toggle[aria-expanded="true"]::after {
 background:
 linear-gradient(var(--cream), var(--cream)) center / 18px 2px no-repeat,
 linear-gradient(90deg, var(--cream), var(--cream)) center / 2px 18px no-repeat;
 transform: rotate(45deg);
 box-shadow: none;
 }

 .main-nav {
 top: max(84px, calc(env(safe-area-inset-top) + 74px));
 right: 10px;
 left: 10px;
 display: flex;
 max-height: calc(100dvh - 100px);
 gap: 4px;
 border-color: rgba(239, 198, 111, 0.25);
 border-radius: 22px;
 padding: 10px;
 overflow-y: auto;
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.08), transparent 42%),
 rgba(14, 10, 8, 0.98);
 box-shadow: 0 30px 90px rgba(0, 0, 0, 0.66);
 opacity: 0;
 visibility: hidden;
 transform: translateY(-10px) scale(0.985);
 transform-origin: top;
 pointer-events: none;
 transition: opacity 180ms ease, transform 220ms ease, visibility 220ms;
 }

 .main-nav.is-open {
 opacity: 1;
 visibility: visible;
 transform: translateY(0) scale(1);
 pointer-events: auto;
 }

 .main-nav a {
 display: flex;
 min-height: 50px;
 align-items: center;
 justify-content: space-between;
 border: 1px solid transparent;
 border-radius: 13px;
 padding: 12px 15px;
 font-size: 14px;
 }

 .main-nav a::before {
 content: "\002197";
 order: 2;
 color: rgba(239, 198, 111, 0.68);
 font-size: 16px;
 }

 .main-nav a.is-active {
 border-color: rgba(239, 198, 111, 0.18);
 background: rgba(239, 198, 111, 0.08);
 }

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

 .main-nav .nav-cta {
 justify-content: center;
 margin-top: 5px;
 background: linear-gradient(135deg, #efc66f, #b47a2d);
 color: #1a1008;
 }

 .main-nav .nav-cta::before {
 display: none;
 }

 /* Touch targets and controls */
 .button {
 min-height: 52px;
 justify-content: center;
 border-radius: 14px;
 padding: 14px 18px;
 font-size: 13px;
 letter-spacing: 0.04em;
 }

 .button-primary {
 box-shadow: 0 12px 26px rgba(180, 122, 45, 0.2);
 }

 .hero-actions,
 .menu-actions,
 .menu-hero-actions,
 .event-hero-actions,
 .visit-actions,
 .place-showcase-actions,
 .memory-cover-actions {
 gap: 10px;
 }

 :is(input, select, textarea) {
 min-height: 52px;
 border-radius: 13px;
 font-size: 16px;
 }

 /* Home hero */
 .home-hero-wow {
 min-height: auto;
 padding: 112px var(--mobile-pad) 38px;
 gap: 24px;
 align-content: start;
 }

 .home-hero-wow .hero-bg {
 background-position: 58% center;
 filter: saturate(0.98) contrast(1.06) brightness(0.82);
 }

 .home-hero-wow .hero-vignette {
 background:
 linear-gradient(180deg, rgba(9, 6, 5, 0.3) 0%, rgba(9, 6, 5, 0.76) 45%, #0b0806 100%),
 linear-gradient(90deg, rgba(9, 6, 5, 0.42), transparent 70%);
 }

 .home-hero-wow .hero-content {
 width: 100%;
 min-width: 0;
 max-width: 100%;
 padding-top: 2px;
 transform: none;
 }

 .hero-kicker {
 margin-bottom: 16px;
 font-size: 11px;
 }

 .home-hero-wow h1 {
 max-width: 100%;
 margin-bottom: 18px;
 font-size: clamp(55px, 17vw, 76px);
 line-height: 0.8;
 letter-spacing: -0.055em;
 }

 .home-hero-wow h1 .hero-since {
 right: 0;
 bottom: -17px;
 font-size: 9px;
 letter-spacing: 0.14em;
 }

 .home-hero-wow .hero-copy {
 max-width: 36ch;
 margin: 0 0 22px;
 font-size: clamp(16px, 4.6vw, 19px);
 line-height: 1.56;
 }

 .home-hero-wow .hero-actions {
 display: grid;
 grid-template-columns: 1fr 1fr;
 width: 100%;
 }

 .home-hero-wow .hero-actions .button {
 width: auto;
 min-width: 0;
 padding-inline: 12px;
 }

 .hero-proof {
 display: flex;
 gap: 9px;
 margin: 18px calc(var(--mobile-pad) * -1) 0 0;
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 }

 .hero-proof::-webkit-scrollbar {
 display: none;
 }

 .hero-proof span {
 flex: 0 0 min(62vw, 220px);
 min-height: 74px;
 border-color: rgba(239, 198, 111, 0.18);
 border-radius: 14px;
 padding: 13px;
 scroll-snap-align: start;
 background: rgba(14, 10, 8, 0.66);
 backdrop-filter: blur(12px);
 }

 .home-hero-wow .hero-showcase {
 display: none;
 }

 .home-hero-wow .hero-panel {
 position: relative;
 right: auto;
 bottom: auto;
 width: 100%;
 min-width: 0;
 margin: 0;
 border-radius: 18px;
 padding: 18px;
 background:
 linear-gradient(120deg, rgba(239, 198, 111, 0.12), transparent 55%),
 rgba(18, 13, 9, 0.78);
 transform: none;
 }

 .call-advice-strip {
 gap: 7px;
 padding: 18px var(--mobile-pad);
 text-align: left;
 }

 .call-advice-strip a {
 display: flex;
 min-height: 44px;
 align-items: center;
 justify-content: center;
 margin-top: 4px;
 border: 1px solid rgba(239, 198, 111, 0.34);
 border-radius: 12px;
 }

 /* Mobile card language */
 :is(.feature, .proof-card, .event-card, .contact-card, .sports-universe-grid article) {
 border-radius: var(--mobile-card-radius);
 }

 .home-match-callout,
 .split-showcase,
 .match-strip {
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 }

 .home-match-callout {
 gap: 24px;
 }

 .home-match-copy h2,
 .home-routes-head h2 {
 font-size: clamp(37px, 11vw, 50px);
 line-height: 0.98;
 }

 .spirit-section {
 position: relative;
 overflow: hidden;
 padding-top: 76px;
 padding-bottom: 72px;
 background:
 radial-gradient(circle at 92% 12%, rgba(216, 168, 77, 0.16), transparent 28%),
 radial-gradient(circle at 8% 62%, rgba(15, 90, 63, 0.2), transparent 34%),
 linear-gradient(180deg, #120c08, #0d0907);
 }

 .spirit-section::before {
 inset: auto;
 top: 22px;
 right: var(--mobile-pad);
 bottom: auto;
 left: var(--mobile-pad);
 width: auto;
 height: 1px;
 background: linear-gradient(90deg, var(--mobile-gold), rgba(239, 198, 111, 0.08), transparent);
 mask-image: none;
 opacity: 0.8;
 }

 .spirit-layout {
 gap: 42px;
 }

 .spirit-copy {
 position: relative;
 }

 .spirit-copy .eyebrow {
 display: inline-flex;
 align-items: center;
 gap: 9px;
 margin-bottom: 18px;
 }

 .spirit-copy .eyebrow::before {
 content: "";
 width: 7px;
 height: 7px;
 border-radius: 50%;
 background: var(--green-bright);
 box-shadow: 0 0 18px rgba(32, 160, 111, 0.72);
 }

 .spirit-copy h2 {
 width: 100%;
 max-width: none;
 margin-bottom: 22px;
 font-size: clamp(38px, 10vw, 48px);
 line-height: 0.96;
 letter-spacing: -0.025em;
 }

 .spirit-copy > p:last-of-type {
 max-width: 37ch;
 color: rgba(255, 247, 232, 0.78);
 font-size: 16px;
 line-height: 1.65;
 }

 .spirit-signature {
 position: relative;
 grid-template-columns: 1fr;
 gap: 7px;
 margin-top: 25px;
 border-color: rgba(239, 198, 111, 0.25);
 border-radius: 16px;
 padding: 18px 18px 18px 21px;
 overflow: hidden;
 background:
 linear-gradient(125deg, rgba(15, 90, 63, 0.2), transparent 58%),
 rgba(255, 247, 232, 0.045);
 }

 .spirit-signature::before {
 content: "";
 position: absolute;
 top: 14px;
 bottom: 14px;
 left: 0;
 width: 3px;
 border-radius: 0 3px 3px 0;
 background: linear-gradient(180deg, var(--mobile-gold), #8f5d24);
 }

 .spirit-signature strong {
 font-size: 22px;
 }

 .spirit-signature span {
 color: rgba(255, 247, 232, 0.74);
 font-size: 14px;
 line-height: 1.5;
 }

 .spirit-notes {
 flex-flow: row nowrap;
 gap: 7px;
 margin-right: calc(var(--mobile-pad) * -1);
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 scrollbar-width: none;
 }

 .spirit-notes::-webkit-scrollbar {
 display: none;
 }

 .spirit-notes span {
 flex: 0 0 auto;
 min-height: 39px;
 padding: 9px 12px;
 font-size: 11px;
 }

 .spirit-visual {
 display: grid;
 min-height: 0;
 grid-template-columns: 128px minmax(0, 1fr);
 gap: 10px;
 align-items: stretch;
 perspective: none;
 }

 .spirit-visual img:first-child {
 position: static;
 grid-column: 1 / -1;
 width: 100%;
 height: 318px;
 border-color: rgba(239, 198, 111, 0.26);
 border-radius: 20px;
 object-fit: cover;
 box-shadow: 0 24px 64px rgba(0, 0, 0, 0.42);
 transform: none;
 }

 .spirit-visual img:nth-child(2) {
 position: static;
 grid-column: 1;
 width: 100%;
 height: 148px;
 margin: 0;
 border-color: rgba(255, 247, 232, 0.15);
 border-radius: 16px;
 object-fit: cover;
 box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
 transform: none;
 }

 .spirit-badge {
 position: static;
 display: flex;
 width: 100%;
 max-width: none;
 min-width: 0;
 grid-column: 2;
 align-items: flex-start;
 justify-content: center;
 flex-direction: column;
 border-color: rgba(239, 198, 111, 0.32);
 border-radius: 16px;
 padding: 16px 17px;
 background:
 linear-gradient(135deg, rgba(15, 90, 63, 0.94), rgba(13, 49, 35, 0.92));
 box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3);
 transform: none;
 }

 .spirit-badge span {
 font-size: 10px;
 letter-spacing: 0.12em;
 }

 .spirit-badge strong {
 margin: 4px 0 3px;
 font-size: clamp(29px, 9vw, 39px);
 line-height: 0.88;
 }

 .spirit-badge p {
 font-size: 12px;
 }

 .spirit-features {
 margin-top: 38px;
 }

 .spirit-features .feature {
 min-height: 260px;
 border-color: rgba(239, 198, 111, 0.18);
 padding: 22px;
 background:
 radial-gradient(circle at 94% 8%, rgba(216, 168, 77, 0.16), transparent 32%),
 linear-gradient(155deg, rgba(15, 90, 63, 0.18), rgba(255, 247, 232, 0.04));
 }

 .menu-showcase {
 display: block;
 padding-top: 64px;
 padding-bottom: 64px;
 background:
 radial-gradient(circle at 92% 12%, rgba(216, 168, 77, 0.13), transparent 28%),
 linear-gradient(180deg, #120d09, #0d0907);
 }

 .menu-showcase h2 {
 max-width: 12ch;
 margin-bottom: 18px;
 font-size: clamp(36px, 10.5vw, 47px);
 line-height: 0.98;
 }

 .menu-showcase .showcase-copy > p:not(.eyebrow) {
 max-width: 36ch;
 margin-bottom: 24px;
 color: rgba(255, 247, 232, 0.74);
 font-size: 15px;
 line-height: 1.62;
 }

 .menu-showcase .menu-tags,
 .menu-showcase .menu-stack,
 .menu-showcase .menu-actions .button-ghost {
 display: none;
 }

 .menu-showcase .menu-actions {
 width: 100%;
 margin-top: 0;
 }

 .menu-showcase .menu-actions .button-primary {
 width: 100%;
 }

 .match-strip h2,
 .visit-cta h2 {
 font-size: clamp(37px, 11vw, 52px);
 line-height: 1;
 }

 .menu-tags {
 display: flex;
 flex-wrap: nowrap;
 margin-right: calc(var(--mobile-pad) * -1);
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 scroll-snap-type: x proximity;
 scrollbar-width: none;
 }

 .menu-tags::-webkit-scrollbar {
 display: none;
 }

 .menu-tags a,
 .menu-tags span {
 flex: 0 0 auto;
 scroll-snap-align: start;
 }

 .menu-stack {
 display: grid;
 grid-template-columns: 1fr 0.74fr;
 gap: 10px;
 }

 .menu-photo {
 min-height: 280px;
 border-radius: 17px;
 overflow: hidden;
 }

 .menu-photo-side {
 margin-top: 48px;
 }

 .menu-photo img,
 .menu-photo-side img {
 height: 100%;
 min-height: 280px;
 }

 .menu-card-mini {
 grid-column: 1 / -1;
 margin-top: 0;
 border-radius: 15px;
 }

 .proof-section {
 overflow: hidden;
 }

 .visit-cta {
 min-height: auto;
 padding: 76px var(--mobile-pad) calc(42px + env(safe-area-inset-bottom));
 }

 .visit-content {
 width: 100%;
 }

 .visit-locations {
 gap: 8px;
 margin-top: 28px;
 }

 .visit-locations span {
 min-height: 0;
 border-radius: 13px;
 padding: 14px;
 }

 /* Page heroes */
 :is(.place-hero, .event-hero, .contact-hero, .dish-hero, .legal-hero, .menu-hero, .memory-cover) {
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 }

 :is(.place-hero, .event-hero, .contact-hero) {
 min-height: max(720px, 88svh);
 padding-top: 118px;
 padding-bottom: 48px;
 }

 :is(.place-hero h1, .event-hero h1, .contact-hero h1, .legal-hero h1) {
 font-size: clamp(52px, 15vw, 76px);
 line-height: 0.88;
 text-wrap: balance;
 }

 .menu-hero-redesign {
 position: relative;
 display: block;
 min-height: auto;
 padding-top: 116px;
 padding-bottom: 38px;
 overflow: hidden;
 background: #0b0806;
 }

 .menu-hero-redesign > img {
 object-position: 64% center;
 filter: saturate(0.92) contrast(1.07) brightness(0.72);
 transform: scale(1.015);
 }

 .menu-hero-redesign .menu-hero-overlay {
 background:
 linear-gradient(180deg, rgba(8, 6, 5, 0.3) 0%, rgba(8, 6, 5, 0.72) 42%, #0b0806 100%),
 linear-gradient(90deg, rgba(8, 6, 5, 0.92), rgba(8, 6, 5, 0.25) 88%);
 }

 .menu-hero-redesign .menu-hero-shine {
 opacity: 0.35;
 }

 .menu-hero-redesign .menu-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 min-width: 0;
 max-width: 100%;
 padding: 0;
 }

 .menu-hero-redesign .menu-hero-copy .eyebrow {
 display: inline-flex;
 min-height: 34px;
 align-items: center;
 margin-bottom: 20px;
 border: 1px solid rgba(239, 198, 111, 0.32);
 border-radius: 999px;
 padding: 8px 12px;
 background: rgba(10, 8, 6, 0.48);
 backdrop-filter: blur(10px);
 }

 .menu-hero-redesign .menu-hero-copy h1 {
 max-width: 8ch;
 margin: 0 0 20px;
 font-size: clamp(50px, 14vw, 66px);
 line-height: 0.87;
 letter-spacing: -0.045em;
 text-wrap: balance;
 }

 .menu-title-desktop {
 display: none;
 }

 .menu-title-mobile {
 display: inline;
 }

 .menu-hero-redesign .menu-hero-copy > p:not(.eyebrow) {
 max-width: 34ch;
 margin-bottom: 0;
 color: rgba(255, 247, 232, 0.8);
 font-size: 16px;
 font-weight: 650;
 line-height: 1.55;
 }

 .menu-hero-redesign .menu-hero-pills {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 8px;
 margin: 24px 0 0;
 }

 .menu-hero-redesign .menu-hero-pills span {
 display: grid;
 width: auto;
 min-width: 0;
 min-height: 66px;
 align-content: center;
 border-color: rgba(239, 198, 111, 0.22);
 border-radius: 13px;
 padding: 10px;
 background: rgba(10, 8, 6, 0.62);
 color: rgba(255, 247, 232, 0.68);
 font-size: 10px;
 line-height: 1.25;
 backdrop-filter: blur(10px);
 }

 .menu-hero-redesign .menu-hero-pills strong {
 display: block;
 margin: 0 0 3px;
 color: #efc66f;
 font-size: 9px;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 }

 .menu-hero-redesign .menu-hero-actions {
 display: grid;
 grid-template-columns: 1fr;
 gap: 9px;
 width: 100%;
 margin-top: 22px;
 }

 .menu-hero-redesign .menu-hero-actions .button {
 width: 100%;
 min-height: 52px;
 }

 .menu-hero-redesign .menu-hero-actions .button-ghost {
 min-height: 46px;
 border-color: rgba(255, 247, 232, 0.22);
 background: rgba(10, 8, 6, 0.42);
 }

 .menu-hero-redesign .menu-hero-board {
 position: relative;
 z-index: 2;
 width: 100%;
 min-width: 0;
 margin-top: 22px;
 border-color: rgba(239, 198, 111, 0.22);
 border-radius: 18px;
 padding: 17px;
 background:
 linear-gradient(135deg, rgba(239, 198, 111, 0.08), transparent 46%),
 rgba(12, 9, 7, 0.78);
 box-shadow: 0 20px 54px rgba(0, 0, 0, 0.28);
 backdrop-filter: blur(16px);
 }

 .menu-hero-redesign .menu-hero-board > span {
 display: block;
 margin-bottom: 3px;
 font-size: 9px;
 letter-spacing: 0.12em;
 }

 .menu-hero-redesign .menu-hero-board > strong {
 max-width: none;
 margin: 0 0 14px;
 font-size: 22px;
 line-height: 1;
 }

 .menu-hero-redesign .menu-hero-board > p {
 display: none;
 }

 .menu-hero-board-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 7px;
 margin: 0;
 padding: 0;
 overflow: visible;
 }

 .menu-hero-board-grid a {
 display: grid;
 min-width: 0;
 min-height: 62px;
 align-content: center;
 border: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 12px;
 padding: 9px;
 background: rgba(255, 247, 232, 0.035);
 }

 .menu-hero-board-grid span {
 overflow: hidden;
 font-size: 8px;
 text-overflow: ellipsis;
 white-space: nowrap;
 }

 .menu-hero-board-grid strong {
 margin-top: 3px;
 font-size: 13px;
 }

 .menu-jump {
 top: 80px;
 margin-top: 0;
 margin-right: calc(var(--mobile-pad) * -1);
 margin-left: calc(var(--mobile-pad) * -1);
 border-radius: 0;
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 scroll-padding-left: var(--mobile-pad);
 box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
 }

 .menu-page.section-band {
 padding-top: 0;
 }

 .menu-category-toggle {
 position: fixed;
 z-index: 145;
 right: 14px;
 bottom: calc(80px + env(safe-area-inset-bottom));
 display: inline-flex;
 min-height: 48px;
 align-items: center;
 justify-content: center;
 border: 1px solid rgba(239, 198, 111, 0.48);
 border-radius: 999px;
 padding: 11px 17px 11px 14px;
 background:
 linear-gradient(135deg, rgba(239, 198, 111, 0.15), transparent 48%),
 rgba(13, 10, 8, 0.96);
 box-shadow: 0 14px 38px rgba(0, 0, 0, 0.42);
 color: var(--cream);
 opacity: 0;
 transform: translateY(12px);
 pointer-events: none;
 backdrop-filter: blur(16px);
 transition: opacity 180ms ease, transform 180ms ease;
 }

 .menu-category-toggle::before {
 content: "";
 width: 17px;
 height: 12px;
 margin-right: 9px;
 background:
 linear-gradient(#efc66f, #efc66f) 0 0 / 17px 2px no-repeat,
 linear-gradient(#efc66f, #efc66f) 0 5px / 12px 2px no-repeat,
 linear-gradient(#efc66f, #efc66f) 0 10px / 15px 2px no-repeat;
 }

 .menu-category-toggle span {
 font-size: 10px;
 font-weight: 950;
 letter-spacing: 0.09em;
 text-transform: uppercase;
 }

 .menu-category-toggle.is-visible {
 opacity: 1;
 transform: translateY(0);
 pointer-events: auto;
 }

 body.menu-category-open {
 overflow: hidden;
 }

 .menu-category-sheet {
 position: fixed;
 z-index: 220;
 inset: 0;
 display: grid;
 align-items: end;
 }

 .menu-category-sheet[hidden] {
 display: none;
 }

 .menu-category-backdrop {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 border: 0;
 padding: 0;
 background: rgba(4, 3, 2, 0.72);
 opacity: 0;
 backdrop-filter: blur(6px);
 transition: opacity 220ms ease;
 }

 .menu-category-panel {
 position: relative;
 z-index: 1;
 width: 100%;
 max-height: min(74dvh, 620px);
 border: 1px solid rgba(239, 198, 111, 0.28);
 border-radius: 24px 24px 0 0;
 padding: 20px var(--mobile-pad) calc(24px + env(safe-area-inset-bottom));
 overflow-y: auto;
 background:
 radial-gradient(circle at 92% 4%, rgba(216, 168, 77, 0.16), transparent 28%),
 linear-gradient(165deg, #18110c, #0a1811);
 box-shadow: 0 -24px 70px rgba(0, 0, 0, 0.5);
 transform: translateY(102%);
 transition: transform 240ms cubic-bezier(0.22, 0.76, 0.3, 1);
 }

 .menu-category-sheet.is-open .menu-category-backdrop {
 opacity: 1;
 }

 .menu-category-sheet.is-open .menu-category-panel {
 transform: translateY(0);
 }

 .menu-category-panel::before {
 content: "";
 display: block;
 width: 42px;
 height: 4px;
 margin: -8px auto 17px;
 border-radius: 999px;
 background: rgba(255, 247, 232, 0.24);
 }

 .menu-category-panel-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 18px;
 margin-bottom: 18px;
 }

 .menu-category-panel-head span,
 .menu-category-panel-head strong {
 display: block;
 }

 .menu-category-panel-head span {
 margin-bottom: 4px;
 color: #efc66f;
 font-size: 9px;
 font-weight: 950;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 }

 .menu-category-panel-head strong {
 color: var(--cream);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 26px;
 line-height: 1;
 }

 .menu-category-panel-head button {
 flex: 0 0 42px;
 width: 42px;
 height: 42px;
 border: 1px solid rgba(255, 247, 232, 0.15);
 border-radius: 13px;
 background: rgba(255, 247, 232, 0.055);
 color: var(--cream);
 font-size: 25px;
 line-height: 1;
 }

 .menu-category-panel-links {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 8px;
 }

 .menu-category-panel-links a {
 display: flex;
 min-height: 49px;
 align-items: center;
 justify-content: space-between;
 border: 1px solid rgba(255, 247, 232, 0.11);
 border-radius: 13px;
 padding: 11px 12px;
 background: rgba(255, 247, 232, 0.04);
 color: rgba(255, 247, 232, 0.82);
 font-size: 11px;
 font-weight: 850;
 }

 .menu-category-panel-links a::after {
 content: "\002193";
 color: #efc66f;
 }

 .menu-category-panel-links .menu-category-top-link {
 grid-column: 1 / -1;
 justify-content: center;
 border-color: rgba(239, 198, 111, 0.28);
 color: #efc66f;
 }

 .menu-category-panel-links .menu-category-top-link::after {
 content: "\002191";
 margin-left: 8px;
 }

 .menu-jump a {
 min-height: 44px;
 padding: 11px 14px;
 white-space: nowrap;
 }

 .menu-service-strip {
 gap: 9px;
 }

 .menu-service-strip > div {
 border-radius: 15px;
 }

 .menu-pick-feature {
 min-height: 410px;
 border-radius: 18px;
 }

 .menu-pick-list {
 gap: 9px;
 }

 .menu-pick-row {
 border-radius: 15px;
 }

 .menu-category {
 scroll-margin-top: 138px;
 }

 .menu-category-head h2 {
 font-size: clamp(36px, 11vw, 48px);
 }

 .menu-list > p,
 .menu-dish-link,
 .menu-drink-link {
 border-radius: 14px;
 }

 /* Drinks keep the desktop photo/name relationship on mobile */
 .menu-drink-link {
 display: grid;
 min-height: 144px;
 height: auto;
 grid-template-columns: 108px minmax(0, 1fr);
 align-items: stretch;
 overflow: hidden;
 border-color: rgba(255, 247, 232, 0.13);
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.055), transparent 52%),
 rgba(18, 13, 9, 0.72);
 }

 .menu-drink-link .menu-drink-thumb {
 grid-column: 1;
 grid-row: 1;
 width: 108px;
 height: 100%;
 min-height: 144px;
 border-right: 1px solid rgba(239, 198, 111, 0.14);
 object-fit: cover;
 object-position: center;
 }

 .menu-drink-link > p {
 display: grid;
 min-width: 0;
 min-height: 144px;
 grid-column: 2;
 grid-row: 1;
 grid-template-columns: minmax(0, 1fr) auto;
 grid-template-rows: auto auto auto;
 gap: 5px 8px;
 align-content: center;
 padding: 13px 12px;
 }

 .menu-drink-link .drink-title-line {
 display: block;
 min-width: 0;
 grid-column: 1 / -1;
 grid-row: 1;
 }

 .menu-drink-link .drink-title-line > strong,
 .menu-drink-link > p > strong {
 display: block;
 overflow: hidden;
 color: var(--cream);
 font-size: 13px;
 line-height: 1.22;
 text-overflow: ellipsis;
 white-space: normal;
 }

 .menu-drink-link > p > em {
 display: -webkit-box;
 overflow: hidden;
 grid-column: 1 / -1;
 grid-row: 2;
 color: rgba(255, 247, 232, 0.62);
 font-size: 11px;
 line-height: 1.35;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
 }

 .menu-drink-link .drink-title-logos {
 display: flex;
 width: 88px;
 max-width: 88px;
 height: 26px;
 grid-column: 1;
 grid-row: 3;
 align-items: center;
 justify-content: flex-start;
 gap: 4px;
 }

 .menu-drink-link .drink-title-logo,
 .menu-drink-link .drink-title-logos[data-logo-count="1"] .drink-title-logo,
 .menu-drink-link[data-brand="coca-cola"] .drink-title-logo {
 width: auto;
 height: 24px;
 max-width: 78px;
 max-height: 24px;
 flex: 0 1 auto;
 object-fit: contain;
 }

 .menu-drink-link .drink-title-logos[data-logo-count="2"] .drink-title-logo {
 max-width: 40px;
 }

 .menu-drink-link .drink-title-logos[data-logo-count="3"] .drink-title-logo {
 max-width: 26px;
 }

 .menu-drink-link > p > span:last-child {
 width: auto;
 min-width: 0;
 min-height: 32px;
 grid-column: 2;
 grid-row: 3;
 place-items: center;
 align-self: center;
 border-radius: 999px;
 padding: 6px 8px;
 font-size: 11px;
 line-height: 1.1;
 white-space: nowrap;
 }

 /* Place, events, dish and contact */
 .place-quickbar {
 display: flex;
 gap: 8px;
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 overflow-x: auto;
 scroll-snap-type: x proximity;
 scrollbar-width: none;
 }

 .place-hero {
 display: grid;
 min-height: auto;
 grid-template-columns: minmax(0, 1fr);
 gap: 0;
 align-items: start;
 padding-top: 112px;
 padding-bottom: 38px;
 }

 .place-hero-content {
 width: 100%;
 min-width: 0;
 max-width: 100%;
 margin: 0;
 padding: 0;
 }

 .place-hero-content h1 {
 max-width: 100%;
 margin-bottom: 20px;
 font-size: clamp(52px, 15vw, 70px);
 line-height: 0.86;
 }

 .place-hero-content > p:not(.eyebrow) {
 max-width: 34ch;
 padding-left: 15px;
 font-size: 17px;
 line-height: 1.48;
 }

 .place-hero-actions,
 .place-hero-actions .button {
 width: 100%;
 }

 .place-arrival-card {
 width: 100%;
 max-width: 100%;
 justify-self: stretch;
 margin: 28px 0 0;
 border-radius: 18px;
 padding: 20px;
 transform: none;
 }

 .place-arrival-card strong {
 font-size: clamp(27px, 8vw, 34px);
 }

 .place-hero-highlights {
 position: relative;
 right: auto;
 bottom: auto;
 left: auto;
 display: flex;
 width: auto;
 margin: 12px calc(var(--mobile-pad) * -1) 0 0;
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 border: 0;
 background: transparent;
 box-shadow: none;
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 }

 .place-hero-highlights::-webkit-scrollbar {
 display: none;
 }

 .place-hero-highlights span {
 flex: 0 0 min(72vw, 270px);
 min-height: 82px;
 border: 1px solid rgba(239, 198, 111, 0.18);
 border-radius: 14px;
 padding: 14px;
 scroll-snap-align: start;
 }

 .place-scroll-cue {
 display: none;
 }

 .place-quickbar::-webkit-scrollbar {
 display: none;
 }

 .place-quickbar > * {
 flex: 0 0 min(76vw, 280px);
 scroll-snap-align: start;
 }

 .place-showcase,
 .place-access {
 gap: 30px;
 }

 .place-showcase-cues span,
 .place-access-list span {
 border-radius: 14px;
 }

 .place-tags {
 display: flex;
 flex-wrap: nowrap;
 margin-right: calc(var(--mobile-pad) * -1);
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 scrollbar-width: none;
 }

 .place-tags::-webkit-scrollbar {
 display: none;
 }

 .place-tags li {
 flex: 0 0 auto;
 }

 .place-gallery img {
 border-radius: 18px;
 }

 .sports-universe-grid article {
 min-height: 235px;
 }

 .event-strip,
 .rugby-timeline {
 gap: 8px;
 }

 .event-strip span,
 .rugby-timeline span {
 border-radius: 14px;
 }

 .dish-hero {
 min-height: auto;
 padding-top: 112px;
 padding-bottom: 38px;
 }

 .dish-hero h1 {
 font-size: clamp(45px, 14vw, 68px);
 line-height: 0.92;
 }

 .dish-hero-media,
 .dish-hero-media img,
 .dish-exploded-stage {
 border-radius: 20px;
 }

 .dish-quick-info {
 gap: 8px;
 }

 .dish-quick-info > * {
 border-radius: 14px;
 }

 .ingredient-board {
 gap: 9px;
 }

 .ingredient-card {
 border-radius: 15px;
 }

 .contact-card-grid {
 gap: 10px;
 }

 .map-shell,
 .contact-form {
 border-radius: 18px;
 overflow: hidden;
 }

 /* Dish detail \002014 premium mobile layout */
 body:has(.dish-detail) {
 padding-bottom: calc(78px + env(safe-area-inset-bottom));
 background: #0e0a07;
 }

 .dish-detail {
 overflow: clip;
 background: #0e0a07;
 }

 .dish-detail .dish-hero {
 display: flex;
 min-height: auto;
 flex-direction: column;
 gap: 26px;
 align-items: stretch;
 padding: 110px var(--mobile-pad) 34px;
 background: #0d0907;
 }

 .dish-detail .dish-hero-bg {
 object-position: center 44%;
 filter: saturate(0.92) contrast(1.06) brightness(0.62);
 animation: none;
 transform: scale(1.02);
 }

 .dish-detail .dish-hero-shade {
 background:
 linear-gradient(180deg, rgba(8, 6, 5, 0.4) 0%, rgba(8, 6, 5, 0.72) 36%, #0d0907 72%, #0d0907 100%),
 linear-gradient(90deg, rgba(8, 6, 5, 0.78), transparent 82%);
 }

 .dish-detail .dish-hero-copy {
 width: 100%;
 min-width: 0;
 max-width: 100%;
 opacity: 1;
 transform: none;
 animation: none;
 }

 .dish-detail .back-link {
 min-height: 38px;
 margin: 0 0 24px;
 border-color: rgba(239, 198, 111, 0.3);
 border-radius: 999px;
 padding: 9px 13px;
 background: rgba(10, 8, 6, 0.52);
 color: rgba(255, 247, 232, 0.86);
 font-size: 10px;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 backdrop-filter: blur(12px);
 }

 .dish-detail .back-link::before {
 content: "\002190";
 margin-right: 8px;
 color: #efc66f;
 font-size: 14px;
 }

 .dish-detail .dish-hero-copy .eyebrow {
 display: inline-flex;
 min-height: 30px;
 align-items: center;
 margin-bottom: 13px;
 border-left: 2px solid #efc66f;
 padding-left: 10px;
 font-size: 10px;
 letter-spacing: 0.12em;
 }

 .dish-detail .dish-hero h1 {
 max-width: 11ch;
 margin: 0 0 18px;
 font-size: clamp(43px, 13vw, 62px);
 line-height: 0.9;
 letter-spacing: -0.04em;
 text-wrap: balance;
 text-shadow: 0 18px 54px rgba(0, 0, 0, 0.58);
 }

 .dish-detail .dish-hero-copy > p:not(.eyebrow) {
 max-width: 35ch;
 margin-bottom: 0;
 color: rgba(255, 247, 232, 0.78);
 font-size: 16px;
 font-weight: 620;
 line-height: 1.55;
 }

 .dish-detail .dish-badges {
 display: flex;
 flex-wrap: nowrap;
 gap: 7px;
 margin: 20px calc(var(--mobile-pad) * -1) 0 0;
 padding-right: var(--mobile-pad);
 overflow-x: auto;
 scrollbar-width: none;
 }

 .dish-detail .dish-badges::-webkit-scrollbar {
 display: none;
 }

 .dish-detail .dish-badges span {
 flex: 0 0 auto;
 min-height: 35px;
 border-color: rgba(239, 198, 111, 0.24);
 padding: 8px 11px;
 background: rgba(10, 8, 6, 0.54);
 font-size: 9px;
 white-space: nowrap;
 }

 .dish-detail .dish-hero-actions {
 display: grid;
 grid-template-columns: auto minmax(0, 1fr);
 gap: 9px;
 width: 100%;
 margin-top: 18px;
 }

 .dish-detail .dish-price {
 min-height: 52px;
 margin: 0;
 border-color: rgba(239, 198, 111, 0.46);
 border-radius: 14px;
 padding: 11px 15px;
 background:
 linear-gradient(135deg, rgba(239, 198, 111, 0.2), rgba(255, 247, 232, 0.055));
 color: #efc66f;
 font-size: 19px;
 white-space: nowrap;
 }

 .dish-detail .dish-hero-actions .button {
 width: 100%;
 min-width: 0;
 min-height: 52px;
 border-radius: 14px;
 padding-inline: 12px;
 font-size: 11px;
 }

 .dish-detail .dish-feature-panel {
 width: 100%;
 max-width: 100%;
 margin: 0;
 border-color: rgba(239, 198, 111, 0.22);
 border-radius: 20px;
 overflow: hidden;
 background: rgba(12, 9, 7, 0.8);
 box-shadow: 0 22px 58px rgba(0, 0, 0, 0.38);
 opacity: 1;
 transform: none;
 animation: none;
 backdrop-filter: blur(14px);
 }

 .dish-detail .dish-feature-panel .dish-main-photo {
 border-radius: 0;
 }

 .dish-detail .dish-feature-panel .dish-main-photo img {
 width: 100%;
 height: 300px;
 min-height: 0;
 object-fit: cover;
 }

 .dish-detail .dish-feature-panel figcaption {
 right: 10px;
 bottom: 10px;
 font-size: 8px;
 }

 .dish-detail .dish-feature-meta {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 }

 .dish-detail .dish-feature-meta span {
 min-height: 76px;
 padding: 13px;
 font-size: 10px;
 }

 .dish-detail .dish-feature-meta strong {
 overflow: hidden;
 font-size: 14px;
 text-overflow: ellipsis;
 white-space: nowrap;
 }

 .dish-detail + .dish-not-found,
 .dish-not-found {
 padding-right: var(--mobile-pad);
 padding-left: var(--mobile-pad);
 }

 .dish-detail .call-advice-strip {
 border-top-color: rgba(239, 198, 111, 0.22);
 padding-top: 16px;
 padding-bottom: 16px;
 }

 .dish-quick-info.section-band {
 display: flex;
 gap: 16px;
 margin: 0;
 padding: 18px var(--mobile-pad) 22px;
 overflow-x: auto;
 background:
 linear-gradient(180deg, #12100c, #0d0a08);
 scroll-padding-inline: var(--mobile-pad);
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 }

 .dish-quick-info.section-band::-webkit-scrollbar {
 display: none;
 }

 .dish-quick-info span {
 flex: 0 0 calc(100vw - var(--mobile-pad) - var(--mobile-pad));
 width: calc(100vw - var(--mobile-pad) - var(--mobile-pad));
 min-height: 88px;
 border: 1px solid rgba(255, 247, 232, 0.11);
 border-radius: 15px;
 padding: 15px;
 scroll-snap-align: start;
 background:
 radial-gradient(circle at 92% 12%, rgba(216, 168, 77, 0.14), transparent 34%),
 rgba(255, 247, 232, 0.04);
 }

 .dish-quick-info strong {
 font-size: 9px;
 letter-spacing: 0.11em;
 }

 .dish-composition-pro.section-band {
 padding: 68px var(--mobile-pad);
 background:
 radial-gradient(circle at 92% 8%, rgba(216, 168, 77, 0.13), transparent 26%),
 radial-gradient(circle at 8% 72%, rgba(15, 90, 63, 0.17), transparent 30%),
 linear-gradient(180deg, #15100c, #0d0b08);
 background-size: auto;
 }

 .dish-composition-alt {
 display: flex;
 flex-direction: column;
 gap: 32px;
 }

 .dish-composition-alt-copy {
 width: 100%;
 min-width: 0;
 }

 .dish-composition-alt-copy h2 {
 margin-bottom: 14px;
 font-size: clamp(39px, 11vw, 50px);
 line-height: 0.94;
 white-space: normal;
 }

 .dish-composition-alt-copy > p:not(.eyebrow) {
 max-width: 36ch;
 margin: 0 0 24px;
 font-size: 15px;
 line-height: 1.6;
 }

 .dish-composition-alt-list {
 display: grid;
 gap: 8px;
 }

 .dish-composition-alt-item {
 min-height: 74px;
 grid-template-columns: 34px minmax(0, 1fr);
 gap: 12px;
 align-items: center;
 border: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 14px;
 padding: 12px;
 background:
 linear-gradient(135deg, rgba(255, 247, 232, 0.045), transparent);
 }

 .dish-composition-alt-item > span {
 width: 32px;
 height: 32px;
 }

 .dish-composition-alt-item strong {
 font-size: 16px;
 }

 .dish-composition-alt-item p {
 margin-top: 4px;
 font-size: 12px;
 line-height: 1.38;
 }

 .dish-composition-alt-allergens {
 margin-top: 18px;
 border: 1px solid rgba(239, 198, 111, 0.24);
 border-radius: 17px;
 padding: 18px;
 background:
 linear-gradient(135deg, rgba(239, 198, 111, 0.09), transparent 55%),
 rgba(9, 17, 12, 0.46);
 }

 .dish-composition-alt-allergens strong {
 font-size: 24px;
 }

 .dish-composition-alt-allergens p {
 font-size: 13px;
 line-height: 1.5;
 }

 .dish-composition-alt-allergens a {
 display: inline-flex;
 min-height: 40px;
 align-items: center;
 border-bottom: 1px solid rgba(239, 198, 111, 0.48);
 font-size: 16px;
 }

 .dish-composition-alt-photo {
 order: -1;
 width: 100%;
 max-width: 100%;
 justify-self: stretch;
 padding: 0;
 background: transparent;
 }

 .dish-composition-alt-photo img {
 width: 100%;
 height: auto;
 max-height: none;
 border: 0;
 border-radius: 0;
 object-fit: initial;
 background: transparent;
 box-shadow: none;
 }

 .dish-pagination.section-band {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 10px;
 margin: 0;
 padding: 18px var(--mobile-pad);
 overflow: visible;
 background: #0c0907;
 }

 .dish-page-link {
 width: auto;
 min-width: 0;
 min-height: 150px;
 border: 1px solid rgba(255, 247, 232, 0.11);
 border-radius: 17px;
 padding: 16px 14px;
 background:
 radial-gradient(circle at 92% 8%, rgba(216, 168, 77, 0.12), transparent 34%),
 #15100c;
 text-align: left;
 }

 .dish-page-next {
 text-align: right;
 }

 .dish-page-next strong {
 justify-self: end;
 }

 .dish-page-link span {
 font-size: 9px;
 letter-spacing: 0.1em;
 }

 .dish-page-link strong {
 margin-top: 8px;
 overflow-wrap: anywhere;
 font-size: clamp(17px, 5vw, 21px);
 line-height: 1.05;
 }

 .dish-call-band.section-band {
 display: grid;
 gap: 22px;
 margin: 0;
 border-top: 1px solid rgba(239, 198, 111, 0.18);
 border-bottom: 1px solid rgba(239, 198, 111, 0.16);
 padding: 48px var(--mobile-pad);
 background:
 radial-gradient(circle at 92% 12%, rgba(216, 168, 77, 0.15), transparent 30%),
 linear-gradient(145deg, #123525, #11100b);
 }

 .dish-call-band h2 {
 max-width: 12ch;
 font-size: clamp(34px, 9.5vw, 44px);
 line-height: 0.96;
 }

 .dish-call-band .button {
 width: 100%;
 min-height: 54px;
 justify-self: stretch;
 border-radius: 14px;
 }

 .dish-suggestions.section-band {
 padding: 66px var(--mobile-pad) 76px;
 overflow: hidden;
 }

 .dish-suggestions-head {
 display: block;
 margin-bottom: 24px;
 }

 .dish-suggestions-head h2 {
 max-width: 10ch;
 font-size: clamp(39px, 11vw, 50px);
 }

 .dish-suggestion-card {
 min-height: 354px;
 border-color: rgba(239, 198, 111, 0.17);
 border-radius: 18px;
 background: rgba(255, 247, 232, 0.045);
 }

 .dish-suggestion-card img {
 height: 220px;
 }

 .dish-suggestion-card span {
 margin-top: 15px;
 font-size: 9px;
 letter-spacing: 0.1em;
 }

 .dish-suggestion-card strong {
 margin-top: 6px;
 font-size: 21px;
 }

 .dish-suggestion-card p {
 margin-top: 7px;
 margin-bottom: 16px;
 }

 /* Generic horizontal, swipeable carousels */
 .mobile-snap-carousel {
 display: flex !important;
 grid-template-columns: none !important;
 gap: 12px !important;
 width: auto;
 max-width: none;
 margin-right: calc(var(--mobile-pad) * -1);
 padding: 2px var(--mobile-pad) 14px 0;
 overflow-x: auto;
 overflow-y: hidden;
 overscroll-behavior-inline: contain;
 scroll-behavior: smooth;
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 touch-action: pan-x pan-y;
 }

 .mobile-snap-carousel::-webkit-scrollbar {
 display: none;
 }

 .mobile-snap-carousel > .mobile-carousel-item {
 flex: 0 0 min(84vw, 340px) !important;
 width: min(84vw, 340px) !important;
 max-width: none !important;
 min-height: 280px;
 margin: 0 !important;
 scroll-snap-align: start;
 scroll-snap-stop: always;
 }

 .home-route-grid.mobile-snap-carousel > .mobile-carousel-item {
 min-height: 420px;
 }

 .spirit-features.mobile-snap-carousel > .mobile-carousel-item,
 .proof-grid.mobile-snap-carousel > .mobile-carousel-item,
 .contact-card-grid.mobile-snap-carousel > .mobile-carousel-item {
 min-height: 270px;
 }

 .place-moments.mobile-snap-carousel > .mobile-carousel-item {
 min-height: 460px;
 }

 .place-moments.mobile-snap-carousel .place-moment img {
 height: 270px;
 }

 .place-gallery.mobile-snap-carousel > .mobile-carousel-item {
 height: 360px !important;
 min-height: 360px;
 object-fit: cover;
 }

 .sports-universe-grid.mobile-snap-carousel > .mobile-carousel-item {
 min-height: 235px;
 }

 .dish-suggestion-grid.mobile-snap-carousel > .mobile-carousel-item {
 min-height: 350px;
 }

 .mobile-carousel-ui {
 display: flex;
 min-height: 26px;
 align-items: center;
 justify-content: space-between;
 gap: 14px;
 margin-top: 6px;
 color: rgba(255, 247, 232, 0.58);
 font-size: 10px;
 font-weight: 900;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 }

 .mobile-carousel-dots {
 display: flex;
 align-items: center;
 gap: 5px;
 }

 .mobile-carousel-dots i {
 display: block;
 width: 5px;
 height: 5px;
 border-radius: 999px;
 background: rgba(255, 247, 232, 0.24);
 transition: width 180ms ease, background 180ms ease;
 }

 .mobile-carousel-dots i.is-active {
 width: 22px;
 background: var(--mobile-gold);
 }

 /* Existing animated image strip becomes user-controlled on mobile */
 .image-carousel {
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 }

 .image-carousel::-webkit-scrollbar {
 display: none;
 }

 .image-carousel::before,
 .image-carousel::after {
 width: 20px;
 }

 .image-carousel-track {
 width: max-content;
 animation: none;
 }

 .image-carousel img,
 .image-carousel img:nth-child(3n + 1),
 .image-carousel img:nth-child(4n) {
 flex-basis: 82vw;
 width: 82vw;
 height: 270px;
 border-radius: 18px;
 scroll-snap-align: center;
 }

 /* Footer and persistent call action */
 .site-footer {
 margin-top: 0;
 border-top: 1px solid rgba(239, 198, 111, 0.28);
 border-radius: 28px 28px 0 0;
 padding: 72px var(--mobile-pad) calc(104px + env(safe-area-inset-bottom));
 background:
 radial-gradient(circle at 8% 4%, rgba(216, 168, 77, 0.2), transparent 25%),
 radial-gradient(circle at 94% 52%, rgba(15, 90, 63, 0.3), transparent 32%),
 linear-gradient(165deg, #17100b 0%, #0c1711 58%, #080b09 100%);
 }

 .site-footer::before {
 inset: 20px var(--mobile-pad) auto;
 height: 1px;
 border: 0;
 background: linear-gradient(90deg, #efc66f, rgba(239, 198, 111, 0.12), transparent);
 opacity: 1;
 }

 .footer-main {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 gap: 0;
 }

 .footer-brand {
 display: grid;
 grid-template-columns: 54px minmax(0, 1fr);
 gap: 15px;
 align-items: center;
 border-bottom: 1px solid rgba(255, 247, 232, 0.12);
 padding-bottom: 30px;
 }

 .footer-brand .brand-mark {
 width: 54px;
 height: 54px;
 border-color: rgba(239, 198, 111, 0.72);
 background:
 radial-gradient(circle at 34% 24%, rgba(255, 255, 255, 0.22), transparent 30%),
 linear-gradient(145deg, #e5b854, #8d5b21);
 box-shadow: inset 0 1px rgba(255, 255, 255, 0.24), 0 12px 34px rgba(216, 168, 77, 0.2);
 color: #171008;
 font-size: 31px;
 }

 .footer-brand .eyebrow {
 margin-bottom: 7px;
 color: rgba(239, 198, 111, 0.88);
 font-size: 9px;
 letter-spacing: 0.13em;
 }

 .footer-brand h2 {
 margin: 0;
 font-size: clamp(38px, 11vw, 49px);
 line-height: 0.88;
 letter-spacing: -0.035em;
 }

 .footer-brand p:last-child {
 display: none;
 }

 .footer-brand > div::after {
 content: "Seilh \0000b7 Depuis 1973";
 display: block;
 margin-top: 10px;
 color: rgba(255, 247, 232, 0.58);
 font-size: 10px;
 font-weight: 850;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 }

 .footer-nav {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0 18px;
 margin-top: 30px;
 }

 .footer-nav::before {
 content: "Explorer";
 grid-column: 1 / -1;
 margin-bottom: 10px;
 color: var(--mobile-gold);
 font-size: 10px;
 font-weight: 950;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 }

 .footer-nav a {
 display: flex;
 width: 100%;
 min-height: 49px;
 align-items: center;
 justify-content: space-between;
 border: 0;
 border-bottom: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 0;
 padding: 11px 1px;
 background: transparent;
 color: rgba(255, 247, 232, 0.86);
 font-size: 13px;
 }

 .footer-nav a::after {
 content: "\002197";
 color: rgba(239, 198, 111, 0.62);
 font-size: 14px;
 }

 .footer-visit {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 gap: 0;
 margin-top: 38px;
 border: 1px solid rgba(239, 198, 111, 0.2);
 border-radius: 20px;
 padding: 20px;
 overflow: hidden;
 background:
 linear-gradient(145deg, rgba(255, 247, 232, 0.045), transparent 52%),
 rgba(5, 18, 13, 0.52);
 box-shadow: inset 0 1px rgba(255, 255, 255, 0.035), 0 22px 58px rgba(0, 0, 0, 0.2);
 }

 .footer-visit::before {
 content: "Venir au Brennan's";
 margin-bottom: 14px;
 color: var(--mobile-gold);
 font-family: "Playfair Display", Georgia, serif;
 font-size: 27px;
 font-weight: 800;
 line-height: 1;
 }

 .footer-visit > :is(span, a:not(.button)) {
 display: grid;
 width: 100%;
 min-width: 0;
 min-height: 56px;
 grid-template-columns: 82px minmax(0, 1fr);
 gap: 10px;
 align-items: center;
 border: 0;
 border-bottom: 1px solid rgba(255, 247, 232, 0.1);
 border-radius: 0;
 padding: 12px 0;
 overflow-wrap: anywhere;
 background: transparent;
 color: rgba(255, 247, 232, 0.68);
 font-size: 12px;
 line-height: 1.4;
 }

 .footer-visit > span {
  display: flex;
  flex-wrap: wrap;
 }

 .footer-visit > span strong {
  flex: 0 0 82px;
 }

 .footer-visit strong,
 .footer-contact-link strong {
 margin: 0;
 color: #efc66f;
 font-size: 9px;
 letter-spacing: 0.11em;
 text-transform: uppercase;
 }

 .footer-visit .button {
 min-height: 54px;
 margin-top: 16px;
 border-radius: 14px;
 }

 .footer-bottom {
 align-items: center;
 flex-direction: column;
 gap: 13px;
 margin-top: 34px;
 border-top-color: rgba(255, 247, 232, 0.1);
 padding-top: 20px;
 text-align: center;
 }

 .footer-bottom p {
 color: rgba(255, 247, 232, 0.42);
 font-size: 10px;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 }

 .footer-legal-links {
 justify-content: center;
 gap: 7px 14px;
 }

 .footer-legal-links a {
 color: rgba(255, 247, 232, 0.62);
 font-size: 10px;
 }

 .floating-call {
 right: 12px;
 bottom: max(12px, env(safe-area-inset-bottom));
 left: 12px;
 z-index: 90;
 width: auto;
 min-height: 56px;
 border: 1px solid rgba(255, 247, 232, 0.22);
 border-radius: 16px;
 background:
 linear-gradient(135deg, #efc66f, #b7772c);
 box-shadow: 0 16px 34px rgba(0, 0, 0, 0.42);
 color: #180e07;
 font-weight: 950;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 }
}

@media (max-width: 480px) {
 :root {
 --mobile-pad: 16px;
 }

 .home-hero-wow {
 padding-top: 104px;
 }

 .home-hero-wow .hero-actions {
 grid-template-columns: 1fr;
 }

 .home-hero-wow h1 {
 font-size: clamp(52px, 17vw, 68px);
 }

 .home-hero-wow .hero-showcase {
 min-height: 270px;
 }

 .menu-stack {
 grid-template-columns: 1fr;
 }

 .menu-photo-side {
 margin-top: 0;
 }

 .menu-photo,
 .menu-photo img,
 .menu-photo-side img {
 min-height: 240px;
 }

 .spirit-visual img:first-child {
 height: 292px;
 }

 .spirit-visual img:nth-child(2) {
 height: 138px;
 }

 .mobile-snap-carousel > .mobile-carousel-item {
 flex-basis: 86vw !important;
 width: 86vw !important;
 }

 .place-gallery.mobile-snap-carousel > .mobile-carousel-item {
 height: 330px !important;
 min-height: 330px;
 }

 .image-carousel img,
 .image-carousel img:nth-child(3n + 1),
 .image-carousel img:nth-child(4n) {
 flex-basis: 86vw;
 width: 86vw;
 height: 245px;
 }
}

@media (max-width: 360px) {
 .brand strong {
 max-width: 45vw;
 font-size: 14px;
 }

 .site-header {
 right: 7px;
 left: 7px;
 }

 .site-header .brand strong::after {
 display: none;
 }

 .nav-toggle {
 flex-basis: 86px;
 width: 86px;
 }

 .home-hero-wow h1 {
 font-size: 50px;
 }

 .footer-nav {
 grid-template-columns: 1fr;
 }
}

/* Lieu \002014 mobile editorial redesign */
@media (max-width: 760px) {
 .place-page {
  overflow-x: clip;
  background:
   radial-gradient(circle at 100% 22%, rgba(216, 168, 77, 0.08), transparent 24%),
   #0d0907;
 }

 .place-page :is(.place-intro, .place-showcase, .place-access, .place-final) {
  width: 100%;
  min-width: 0;
 }

 .place-hero {
  padding-bottom: 30px;
 }

 .place-hero-overlay {
  background:
   linear-gradient(180deg, rgba(8, 5, 3, 0.42), rgba(8, 5, 3, 0.7) 58%, #0d0907 100%),
   linear-gradient(90deg, rgba(8, 5, 3, 0.52), rgba(8, 5, 3, 0.08));
 }

 .place-hero-content h1 {
  max-width: 7ch;
  font-size: clamp(54px, 15vw, 66px);
  line-height: 0.82;
 }

 .place-hero-content > p:not(.eyebrow) {
  max-width: none;
  padding-left: 14px;
  border-left: 3px solid rgba(239, 198, 111, 0.72);
  font-size: 16px;
  line-height: 1.48;
 }

 .place-hero-actions {
  gap: 9px;
  margin-top: 24px;
 }

 .place-arrival-card {
  margin-top: 18px;
  padding: 15px 16px 16px;
  border-radius: 17px;
  border-color: rgba(239, 198, 111, 0.2);
  background:
   linear-gradient(145deg, rgba(239, 198, 111, 0.1), transparent 52%),
   rgba(18, 13, 10, 0.82);
 }

 .place-arrival-card strong {
  max-width: 17ch;
  margin-top: 5px;
  font-size: clamp(22px, 6.4vw, 26px);
  line-height: 1;
 }

 .place-arrival-card p {
  display: none;
 }

 .place-hero-highlights {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 9px 0 0;
  padding: 0;
  overflow: visible;
  scroll-snap-type: none;
 }

 .place-hero-highlights span {
  min-width: 0;
  min-height: 74px;
  padding: 11px 12px;
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.35;
 }

 .place-hero-highlights span:last-child {
  min-height: 66px;
  grid-column: 1 / -1;
 }

 .place-hero-highlights strong {
  font-size: 11px;
 }

 .place-quickbar {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 14px var(--mobile-pad) 20px;
  overflow: visible;
  scroll-snap-type: none;
  background: #0d0907;
 }

 .place-quickbar > * {
  min-width: 0;
  min-height: 178px;
  border: 1px solid rgba(239, 198, 111, 0.14);
  border-radius: 16px;
  padding: 15px;
  background:
   radial-gradient(circle at 100% 100%, rgba(216, 168, 77, 0.1), transparent 42%),
   rgba(255, 247, 232, 0.035);
 }

 .place-quickbar strong {
  margin: 7px 0 6px;
  font-size: 20px;
  line-height: 1.06;
 }

 .place-quickbar p {
  font-size: 12px;
  line-height: 1.45;
 }

 .place-page .place-intro {
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr);
  width: calc(100% - (var(--mobile-pad) * 2));
  gap: 20px;
  align-items: start;
  margin: 24px var(--mobile-pad) 0;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 26px;
  padding: 34px 19px 19px;
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.16), transparent 31%),
   radial-gradient(circle at 0 100%, rgba(19, 118, 81, 0.28), transparent 42%),
   linear-gradient(145deg, #10291f 0%, #102218 43%, #17110d 100%);
  box-shadow:
   inset 0 1px rgba(255, 255, 255, 0.045),
   0 26px 64px rgba(0, 0, 0, 0.28);
 }

 .place-intro::before {
  content: "B";
  z-index: -1;
  right: -0.04em;
  bottom: -0.2em;
  color: rgba(239, 198, 111, 0.055);
  font-size: 190px;
  line-height: 1;
 }

 .place-intro::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(239, 198, 111, 0.42);
  border-right: 1px solid rgba(239, 198, 111, 0.42);
  border-radius: 0 10px 0 0;
 }

 .place-intro > div:first-child {
  position: relative;
  z-index: 1;
  padding-bottom: 18px;
 }

 .place-intro > div:first-child::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: min(42vw, 150px);
  height: 2px;
  background: linear-gradient(90deg, var(--mobile-gold), rgba(239, 198, 111, 0));
 }

 .place-intro .eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--mobile-gold);
 }

 .place-intro .eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 999px;
  background: #27bd82;
  box-shadow: 0 0 0 5px rgba(39, 189, 130, 0.1);
 }

 .place-intro h2 {
  max-width: 8.5ch;
  font-size: clamp(44px, 12.8vw, 55px);
  line-height: 0.9;
  letter-spacing: -0.02em;
  text-shadow: 0 16px 35px rgba(0, 0, 0, 0.24);
 }

 .place-intro > p {
  position: relative;
  z-index: 1;
  max-width: 34ch;
  padding-left: 13px;
  border-left: 2px solid rgba(239, 198, 111, 0.44);
  color: rgba(255, 247, 232, 0.8);
  font-size: 15px;
  line-height: 1.6;
 }

 .place-intro-mobile-notes {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 2px;
 }

 .place-intro-mobile-notes span {
  display: grid;
  min-width: 0;
  min-height: 80px;
  align-content: center;
  gap: 5px;
  border: 1px solid rgba(239, 198, 111, 0.14);
  border-radius: 14px;
  padding: 10px 8px;
  background: rgba(7, 18, 13, 0.38);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
 }

 .place-intro-mobile-notes small {
  color: var(--mobile-gold);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
 }

 .place-intro-mobile-notes strong {
  overflow-wrap: anywhere;
  color: var(--cream);
  font-size: 12px;
  line-height: 1.18;
 }

 .place-moments {
  padding-top: 8px;
  padding-bottom: 62px;
 }

 .place-moments.mobile-snap-carousel {
  width: 100%;
  margin-right: 0;
  padding-right: var(--mobile-pad);
  padding-left: var(--mobile-pad);
  scroll-padding-inline: var(--mobile-pad);
 }

 .place-moments.mobile-snap-carousel > .mobile-carousel-item {
  flex-basis: 100% !important;
  width: 100% !important;
  min-height: 430px;
  border-color: rgba(239, 198, 111, 0.15);
  border-radius: 20px;
  background: #15100c;
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.24);
 }

 .place-moments.mobile-snap-carousel .place-moment img {
  height: 244px;
 }

 .place-moment div {
  padding: 19px 18px 21px;
 }

 .place-moment div > span {
  display: inline-grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border: 1px solid rgba(239, 198, 111, 0.28);
  border-radius: 999px;
  color: var(--mobile-gold);
  font-size: 10px;
  font-weight: 950;
 }

 .place-moment h2 {
  margin: 10px 0 7px;
  font-size: 36px;
 }

 .place-moment p {
  font-size: 14px;
  line-height: 1.52;
 }

 .place-showcase {
  isolation: isolate;
  display: block;
  padding-top: 72px;
  padding-bottom: 66px;
  border-top-color: rgba(239, 198, 111, 0.18);
  border-bottom-color: rgba(239, 198, 111, 0.12);
  background:
   linear-gradient(115deg, transparent 0 70%, rgba(239, 198, 111, 0.07) 70.2% 70.5%, transparent 70.7%),
   radial-gradient(circle at 100% 10%, rgba(216, 168, 77, 0.17), transparent 28%),
   radial-gradient(circle at 0 68%, rgba(18, 106, 73, 0.3), transparent 37%),
   linear-gradient(180deg, #17100c 0%, #0e0a08 100%);
 }

 .place-showcase::before {
  content: "SUR PLACE";
  top: 24px;
  right: -0.02em;
  color: rgba(255, 247, 232, 0.035);
  font-family: Arial, sans-serif;
  font-size: 66px;
  font-weight: 950;
  line-height: 0.78;
  letter-spacing: -0.08em;
  writing-mode: vertical-rl;
 }

 .place-showcase-copy {
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
  max-width: none;
 }

 .place-showcase .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(239, 198, 111, 0.07);
  color: var(--mobile-gold);
 }

 .place-showcase .eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: #28bd82;
  box-shadow: 0 0 0 4px rgba(40, 189, 130, 0.1);
 }

 .place-showcase h2 {
  width: 100%;
  max-width: 10ch;
  overflow-wrap: normal;
  font-size: clamp(42px, 12vw, 51px);
  line-height: 0.91;
  letter-spacing: -0.018em;
  text-shadow: 0 18px 44px rgba(0, 0, 0, 0.32);
 }

 .place-showcase-copy > p:not(.eyebrow) {
  max-width: 34ch;
  margin-top: 18px;
  padding-left: 13px;
  border-left: 2px solid rgba(239, 198, 111, 0.48);
  color: rgba(255, 247, 232, 0.76);
  font-size: 15px;
  line-height: 1.6;
 }

 .place-showcase-cues {
  gap: 0;
  margin-top: 28px;
  overflow: hidden;
  border: 1px solid rgba(239, 198, 111, 0.14);
  border-radius: 19px;
  background:
   linear-gradient(145deg, rgba(18, 105, 73, 0.16), transparent 60%),
   rgba(255, 247, 232, 0.035);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
 }

 .place-showcase-cues span {
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 3px;
  min-height: 86px;
  align-content: center;
  border: 0;
  border-radius: 0;
  padding: 14px;
  background: transparent;
 }

 .place-showcase-cues span + span {
  border-top: 1px solid rgba(239, 198, 111, 0.12);
 }

 .place-showcase-cues span::before {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  color: var(--mobile-gold);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 25px;
  font-weight: 800;
  line-height: 1;
  opacity: 0.88;
 }

 .place-showcase-cues span:nth-child(1)::before {
  content: "01";
 }

 .place-showcase-cues span:nth-child(2)::before {
  content: "02";
 }

 .place-showcase-cues span:nth-child(3)::before {
  content: "03";
 }

 .place-showcase-cues strong {
  grid-column: 2;
  grid-row: 1;
  font-size: 15px;
 }

 .place-showcase-cues small {
  grid-column: 2;
  grid-row: 2;
  color: rgba(255, 247, 232, 0.63);
  font-size: 13px;
  line-height: 1.38;
 }

 .place-showcase .place-tags {
  flex-wrap: wrap;
  gap: 7px;
  margin: 18px 0 0;
  margin-bottom: 0;
  padding: 0;
  overflow: visible;
 }

 .place-showcase .place-tags li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  background: rgba(239, 198, 111, 0.065);
  font-size: 11px;
 }

 .place-showcase .place-tags li::before {
  content: "";
  width: 4px;
  height: 4px;
  flex: 0 0 4px;
  border-radius: 999px;
  background: #28bd82;
 }

 .place-showcase-actions {
  display: grid;
  gap: 9px;
  margin-top: 25px;
 }

 .place-showcase-actions .button {
  width: 100%;
 }

 .place-showcase-actions .button-primary {
  box-shadow: 0 14px 34px rgba(216, 168, 77, 0.18);
 }

 .place-photo-stack {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  align-items: stretch;
  margin-top: 30px;
 }

 .place-photo-stack::before {
  display: none;
 }

 .place-photo-stack img,
 .place-photo-stack img:first-child,
 .place-photo-stack img:nth-child(2) {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 146px;
  margin: 0;
  border: 0;
  border-radius: 15px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3);
 }

 .place-photo-stack img:first-child {
  height: 272px;
  grid-column: 1 / -1;
  object-position: center;
 }

 .place-photo-stack img:nth-child(2) {
  grid-column: 1;
  object-position: 57% center;
 }

 .place-photo-stack > span {
  position: static;
  display: grid;
  min-height: 146px;
  grid-column: 2;
  place-content: center;
  max-width: none;
  border: 1px solid rgba(239, 198, 111, 0.16);
  border-radius: 15px;
  padding: 18px;
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.15), transparent 42%),
   linear-gradient(145deg, #145a40, #0d3425);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.26);
  color: var(--cream);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: none;
  backdrop-filter: none;
 }

 .place-photo-stack > span::before {
  content: "Depuis 1973";
  display: block;
  margin-bottom: 7px;
  color: var(--mobile-gold);
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
 }

 .place-access {
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  padding-top: 68px;
  padding-bottom: 68px;
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.16), transparent 29%),
   radial-gradient(circle at 0 82%, rgba(19, 111, 77, 0.32), transparent 36%),
   linear-gradient(145deg, #17110d 0%, #0f0b08 100%);
 }

 .place-access::before {
  inset: 8px;
  border-color: rgba(239, 198, 111, 0.13);
  border-radius: 22px;
 }

 .place-access::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 31px;
  right: 27px;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(239, 198, 111, 0.24);
  border-radius: 50% 50% 50% 8px;
  background:
   radial-gradient(circle, rgba(239, 198, 111, 0.2) 0 17%, transparent 19%),
   rgba(255, 247, 232, 0.025);
  opacity: 0.72;
  transform: rotate(-45deg);
 }

 .place-access-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
 }

 .place-access .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(239, 198, 111, 0.07);
  color: var(--mobile-gold);
 }

 .place-access .eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: #28bd82;
  box-shadow: 0 0 0 4px rgba(40, 189, 130, 0.1);
 }

 .place-access h2 {
  max-width: 8.5ch;
  font-size: clamp(44px, 12.4vw, 53px);
  line-height: 0.91;
  letter-spacing: -0.018em;
  text-shadow: 0 18px 44px rgba(0, 0, 0, 0.3);
 }

 .place-access-panel > p {
  max-width: 34ch;
  margin-top: 17px;
  padding-left: 13px;
  border-left: 2px solid rgba(239, 198, 111, 0.46);
  color: rgba(255, 247, 232, 0.74);
  font-size: 15px;
  line-height: 1.6;
 }

 .place-access-list {
  gap: 0;
  margin-top: 27px;
  overflow: hidden;
  border: 1px solid rgba(239, 198, 111, 0.14);
  border-radius: 20px;
  background:
   linear-gradient(145deg, rgba(18, 105, 73, 0.15), transparent 62%),
   rgba(255, 247, 232, 0.035);
  box-shadow:
   inset 0 1px rgba(255, 255, 255, 0.035),
   0 18px 45px rgba(0, 0, 0, 0.18);
 }

 .place-access-list span {
  display: grid;
  min-height: 92px;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 12px;
  row-gap: 4px;
  border: 0;
  border-radius: 0;
  padding: 15px;
  background: transparent;
 }

 .place-access-list span + span {
  border-top: 1px solid rgba(239, 198, 111, 0.11);
 }

 .place-access-list span::before {
  display: grid;
  width: 40px;
  height: 40px;
  grid-column: 1;
  grid-row: 1 / 3;
  place-items: center;
  align-self: center;
  border: 1px solid rgba(239, 198, 111, 0.22);
  border-radius: 13px;
  background:
   radial-gradient(circle at 30% 20%, rgba(239, 198, 111, 0.18), transparent 42%),
   rgba(7, 24, 17, 0.5);
  color: var(--mobile-gold);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 15px;
  font-weight: 800;
 }

 .place-access-list span:nth-child(1)::before {
  content: "A";
 }

 .place-access-list span:nth-child(2)::before {
  content: "G";
 }

 .place-access-list span:nth-child(3)::before {
  content: "H";
 }

 .place-access-list strong {
  grid-column: 2;
  grid-row: 1;
  color: var(--mobile-gold);
  font-size: 10px;
  letter-spacing: 0.08em;
 }

 .place-access-list small {
  grid-column: 2;
  grid-row: 2;
  color: rgba(255, 247, 232, 0.7);
  font-size: 13px;
  line-height: 1.45;
 }

 .place-access-actions {
  display: grid;
  gap: 9px;
  margin-top: 22px;
 }

 .place-access-actions .button {
  width: 100%;
 }

 .place-access-actions a[href="carte.html"] {
  display: none;
 }

 .place-access-route-mobile {
  display: inline-flex;
  border-color: rgba(239, 198, 111, 0.26);
  background: rgba(255, 247, 232, 0.055);
  color: var(--cream);
 }

 .place-access-actions .button-primary {
  box-shadow: 0 14px 34px rgba(216, 168, 77, 0.18);
 }

 .place-map-card {
  min-height: 352px;
  border-color: rgba(239, 198, 111, 0.18);
  border-radius: 21px;
  background:
   linear-gradient(135deg, rgba(255, 247, 232, 0.07), rgba(255, 247, 232, 0.015)),
   #0c0907;
  box-shadow:
   inset 0 1px rgba(255, 255, 255, 0.035),
   0 24px 60px rgba(0, 0, 0, 0.34);
 }

 .private-map-placeholder {
  place-content: center stretch;
  gap: 11px;
  padding: 22px;
  background:
   linear-gradient(145deg, rgba(12, 35, 25, 0.96), rgba(25, 17, 12, 0.97)),
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.2), transparent 44%);
 }

 .private-map-placeholder .eyebrow {
  justify-self: start;
  margin: 0;
  padding: 6px 9px;
 }

 .private-map-placeholder strong {
  max-width: 11ch;
  color: var(--cream);
  font-size: 30px;
  line-height: 0.98;
 }

 .private-map-placeholder > p:not(.eyebrow) {
  max-width: 32ch;
  padding: 0;
  border: 0;
  color: rgba(255, 247, 232, 0.62);
  font-size: 13px;
  line-height: 1.48;
 }

 .private-map-placeholder .button {
  width: 100%;
  min-height: 48px;
  margin-top: 2px;
 }

 .private-map-placeholder > a {
  justify-self: center;
  color: var(--mobile-gold);
  font-size: 11px;
 }

 .place-map-embed .place-map-meta {
  right: 12px;
  bottom: 12px;
  left: 12px;
  flex-wrap: nowrap;
  overflow-x: auto;
 }

 .place-map-meta span {
  flex: 0 0 auto;
  padding: 7px 9px;
  font-size: 9px;
 }

 .place-gallery {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  padding-right: 0;
  padding-left: 0;
  padding-top: 28px;
  padding-bottom: 48px;
 }

 .place-gallery::before,
 .place-gallery::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 28px;
  bottom: 48px;
  width: 22px;
  pointer-events: none;
 }

 .place-gallery::before {
  left: 0;
  background: linear-gradient(90deg, #0d0907, transparent);
 }

 .place-gallery::after {
  right: 0;
  background: linear-gradient(270deg, #0d0907, transparent);
 }

 .place-gallery-track {
  display: flex;
  width: max-content;
  gap: 10px;
  padding-inline: 0;
  animation: place-gallery-loop 36s linear infinite;
  will-change: transform;
 }

 .place-gallery-track > [aria-hidden="true"] {
  display: block;
 }

 .place-gallery .place-gallery-track img,
 .place-gallery .place-gallery-track img:nth-child(2),
 .place-gallery .place-gallery-track img:nth-child(3) {
  width: 82vw;
  height: 300px;
  flex: 0 0 82vw;
  margin: 0;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
 }

 @keyframes place-gallery-loop {
  from {
   transform: translate3d(0, 0, 0);
  }

  to {
   transform: translate3d(calc(-50% - 5px), 0, 0);
  }
 }

 .place-final {
  isolation: isolate;
  min-height: auto;
  margin: 0 auto 34px;
  width: calc(100% - (var(--mobile-pad) * 2));
  max-width: 430px;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 26px;
  padding: 68px 18px 32px;
  background:
   radial-gradient(circle at 50% 5%, rgba(216, 168, 77, 0.18), transparent 30%),
   linear-gradient(180deg, rgba(8, 6, 4, 0.6), rgba(8, 6, 4, 0.9) 58%, rgba(8, 6, 4, 0.98)),
   url("images/webp/location-exterior.webp") center / cover;
  box-shadow:
   inset 0 1px rgba(255, 255, 255, 0.045),
   0 26px 70px rgba(0, 0, 0, 0.38);
 }

 .place-final::before {
  inset: 10px;
  border-color: rgba(239, 198, 111, 0.19);
  border-radius: 19px;
 }

 .place-final::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 27px;
  left: 50%;
  width: 44px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--mobile-gold), transparent);
  transform: translateX(-50%);
 }

 .place-final > * {
  z-index: 1;
 }

 .place-final .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: center;
  margin-bottom: 16px;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(12, 38, 27, 0.58);
  color: var(--mobile-gold);
 }

 .place-final .eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: #28bd82;
  box-shadow: 0 0 0 4px rgba(40, 189, 130, 0.1);
 }

 .place-final h2 {
  max-width: 9.5ch;
  font-size: clamp(43px, 12.2vw, 52px);
  line-height: 0.9;
  letter-spacing: -0.018em;
  text-shadow: 0 18px 42px rgba(0, 0, 0, 0.46);
 }

 .place-final-desktop-copy {
  display: none;
 }

 .place-final-mobile-content {
  display: grid;
  width: 100%;
  gap: 16px;
  margin-top: 18px;
 }

 .place-final-mobile-content > p {
  max-width: 33ch;
  margin: 0 auto;
  color: rgba(255, 247, 232, 0.74);
  font-size: 14px;
  line-height: 1.55;
 }

 .place-final-steps {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 3px 0 0;
 }

 .place-final-steps span {
  display: grid;
  min-width: 0;
  min-height: 76px;
  place-content: center;
  gap: 5px;
  border: 1px solid rgba(239, 198, 111, 0.16);
  border-radius: 14px;
  padding: 9px 6px;
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.11), transparent 45%),
   rgba(12, 38, 27, 0.48);
 }

 .place-final-steps small {
  color: var(--mobile-gold);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
 }

 .place-final-steps strong {
  color: var(--cream);
  font-size: 12px;
  line-height: 1.15;
 }

 .place-final-group-note {
  display: grid;
  justify-items: center;
  gap: 3px;
  border-top: 2px solid var(--mobile-gold);
  border-left: 0;
  padding: 12px 10px 10px;
  background: linear-gradient(180deg, rgba(239, 198, 111, 0.09), transparent);
  color: rgba(255, 247, 232, 0.65);
  font-size: 12px;
  line-height: 1.42;
  text-align: center;
 }

 .place-final-group-note strong {
  color: var(--mobile-gold);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
 }

 .place-final .button {
  width: 100%;
  min-height: 54px;
  margin-top: 20px;
  box-shadow: 0 16px 36px rgba(216, 168, 77, 0.22);
 }

 .place-final-phone-mobile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 13px;
  color: rgba(255, 247, 232, 0.58);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
 }

 .place-final-phone-mobile::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #28bd82;
 }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
 .main-nav,
 .mobile-carousel-dots i {
 transition: none;
 }

 .mobile-snap-carousel {
  scroll-behavior: auto;
 }

 .place-gallery-track {
  animation: none;
 }
}

.memory-next-mobile-notes {
 display: none;
}

.memory-film-clone {
 display: none;
}

/* Souvenirs \002014 complete mobile redesign */
@media (max-width: 760px) {
 .memory-archive {
  --page-pad: var(--mobile-pad);
  overflow-x: clip;
  background: #0d0907;
 }

 .memory-progress {
  z-index: 220;
  height: 2px;
 }

 .memory-progress span {
  background: linear-gradient(90deg, #28bd82, var(--mobile-gold));
  box-shadow: 0 0 14px rgba(239, 198, 111, 0.4);
 }

 /* Cover */
 .memory-archive .memory-cover {
  display: block;
  min-height: auto;
  padding: 104px var(--mobile-pad) 42px;
  background:
   radial-gradient(circle at 100% 38%, rgba(216, 168, 77, 0.13), transparent 30%),
   linear-gradient(180deg, #07130e, #0d0907);
 }

 .memory-archive .memory-cover::before {
  content: "Depuis 1973";
  position: absolute;
  z-index: 2;
  top: 122px;
  right: calc(var(--mobile-pad) + 12px);
  border: 1px solid rgba(239, 198, 111, 0.32);
  border-radius: 999px;
  padding: 7px 9px;
  background: rgba(8, 20, 14, 0.72);
  color: var(--mobile-gold);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
 }

 .memory-archive .memory-cover::after {
  opacity: 0.08;
 }

 .memory-archive .memory-cover-image {
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: clamp(330px, 102vw, 410px);
  margin: 0;
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 23px;
  padding: 0;
  background: #090b09;
  object-fit: cover;
  object-position: 50% 48%;
  filter: saturate(0.96) contrast(1.04) brightness(0.88);
  box-shadow: 0 24px 58px rgba(0, 0, 0, 0.38);
 }

 .memory-archive .memory-cover-wash {
  display: none;
 }

 .memory-archive .memory-cover-copy {
  width: 100%;
  margin: 24px 0 0;
  border: 0;
  padding: 0;
 }

 .memory-archive .memory-kicker {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px 11px;
  align-items: center;
  margin-bottom: 17px;
  color: rgba(255, 247, 232, 0.58);
  font-size: 9px;
 }

 .memory-archive .memory-kicker span {
  padding: 7px 9px;
  background: linear-gradient(135deg, #efc66f, #b77a2d);
  color: #17100b;
 }

 .memory-archive .memory-cover h1 {
  max-width: 8ch;
  font-size: clamp(58px, 17.2vw, 72px);
  line-height: 0.79;
  letter-spacing: -0.055em;
  text-shadow: 0 18px 42px rgba(0, 0, 0, 0.32);
 }

 .memory-archive .memory-cover h1 em {
  color: var(--mobile-gold);
 }

 .memory-archive .memory-cover-intro {
  max-width: 34ch;
  margin-top: 23px;
  padding-left: 13px;
  border-left: 2px solid var(--mobile-gold);
  color: rgba(255, 247, 232, 0.74);
  font-size: 15px;
  line-height: 1.58;
 }

 .memory-archive .memory-cover-actions {
  display: grid;
  gap: 9px;
  margin-top: 23px;
 }

 .memory-archive .memory-cover-actions .memory-button,
 .memory-archive .memory-cover-actions .memory-text-link {
  width: 100%;
  min-height: 52px;
  justify-content: center;
  border-radius: 14px;
 }

 .memory-archive .memory-button-light {
  background: linear-gradient(135deg, #efc66f, #c48a36);
  box-shadow: 0 14px 32px rgba(216, 168, 77, 0.2);
  color: #17100b;
 }

 .memory-archive .memory-cover-actions .memory-text-link {
  border: 1px solid rgba(255, 247, 232, 0.16);
  background: rgba(255, 247, 232, 0.045);
 }

 .memory-archive .memory-cover-card {
  position: relative;
  inset: auto;
  display: grid;
  width: 100%;
  min-height: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 15px;
  align-items: center;
  margin-top: 13px;
  border-color: rgba(239, 198, 111, 0.17);
  border-radius: 16px;
  padding: 14px;
  background:
   linear-gradient(135deg, rgba(20, 84, 59, 0.26), transparent),
   rgba(255, 247, 232, 0.035);
  transform: none;
  backdrop-filter: none;
 }

 .memory-archive .memory-card-number {
  grid-row: 1 / 3;
  color: var(--mobile-gold);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 25px;
  letter-spacing: -0.04em;
 }

 .memory-archive .memory-cover-card p {
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
 }

 .memory-archive .memory-card-rule {
  display: none;
 }

 .memory-archive .memory-cover-card small {
  font-size: 8px;
 }

 .memory-cover-scroll {
  display: none;
 }

 /* Compact chapter navigation */
 .memory-archive .memory-index {
  position: relative;
  z-index: 80;
  top: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(239, 198, 111, 0.12);
  border-bottom: 1px solid rgba(239, 198, 111, 0.14);
  background: rgba(14, 10, 8, 0.94);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(16px);
 }

 .memory-archive .memory-index a,
 .memory-archive .memory-index a:nth-child(3),
 .memory-archive .memory-index a:nth-child(4) {
  display: grid;
  min-width: 0;
  min-height: 64px;
  place-content: center;
  gap: 3px;
  border-top: 0;
  border-left: 1px solid rgba(239, 198, 111, 0.1);
  padding: 9px 4px;
  color: rgba(255, 247, 232, 0.66);
  font-size: 8px;
  line-height: 1.15;
  text-align: center;
 }

 .memory-archive .memory-index a:first-child {
  border-left: 0;
 }

 .memory-archive .memory-index span {
  color: var(--mobile-gold);
  font-size: 16px;
 }

 /* Chapter 01 */
 .memory-archive .memory-manifesto {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 27px;
  padding: 68px var(--mobile-pad);
  background:
   radial-gradient(circle at 100% 8%, rgba(216, 168, 77, 0.13), transparent 26%),
   radial-gradient(circle at 0 82%, rgba(20, 84, 59, 0.22), transparent 34%),
   linear-gradient(180deg, #15100c, #0e0a08);
  background-size: auto;
 }

 .memory-archive .memory-section-label {
  display: inline-flex;
  width: fit-content;
  gap: 9px;
  align-items: center;
  border: 1px solid rgba(239, 198, 111, 0.18);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(239, 198, 111, 0.06);
 }

 .memory-archive .memory-section-label span {
  color: var(--mobile-gold);
  font-size: 18px;
 }

 .memory-archive .memory-section-label p {
  margin: 0;
  color: rgba(255, 247, 232, 0.64);
  font-size: 8px;
  line-height: 1.15;
 }

 .memory-archive .memory-overline {
  margin-bottom: 13px;
  color: var(--mobile-gold);
  font-size: 9px;
  line-height: 1.35;
 }

 .memory-archive .memory-manifesto h2 {
  max-width: 9.5ch;
  color: var(--cream);
  font-size: clamp(44px, 12.5vw, 54px);
  line-height: 0.91;
  letter-spacing: -0.035em;
 }

 .memory-archive .memory-manifesto h2 em {
  color: var(--mobile-gold);
 }

 .memory-archive .memory-manifesto-text {
  display: grid;
  grid-template-columns: 1fr;
  gap: 11px;
  margin-top: 26px;
 }

 .memory-archive .memory-manifesto-text p {
  border: 1px solid rgba(239, 198, 111, 0.11);
  border-radius: 16px;
  padding: 15px;
  background: rgba(255, 247, 232, 0.035);
  color: rgba(255, 247, 232, 0.7);
  font-size: 14px;
  line-height: 1.55;
 }

 .memory-archive .memory-quote {
  grid-column: 1;
  max-width: none;
  margin: 0;
  border: 1px solid rgba(239, 198, 111, 0.16);
  border-radius: 19px;
  padding: 24px 18px;
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.13), transparent 40%),
   linear-gradient(145deg, #14583f, #0d3023);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.24);
  text-align: center;
 }

 .memory-archive .memory-quote p {
  color: var(--cream);
  font-size: clamp(27px, 8vw, 34px);
  line-height: 1.02;
 }

 /* Chapter 02 */
 .memory-archive .memory-spread {
  padding: 68px var(--mobile-pad);
  background:
   radial-gradient(circle at 100% 0, rgba(239, 198, 111, 0.12), transparent 28%),
   linear-gradient(180deg, #0e3a2b, #0b291f);
 }

 .memory-archive .memory-spread-head,
 .memory-archive .memory-album-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 30px;
 }

 .memory-archive .memory-spread h2,
 .memory-archive .memory-album h2 {
  max-width: 8.5ch;
  color: var(--cream);
  font-size: clamp(45px, 13vw, 56px);
  line-height: 0.88;
  letter-spacing: -0.04em;
 }

 .memory-archive .memory-spread-head > p,
 .memory-archive .memory-album-head > p {
  max-width: 34ch;
  padding-left: 12px;
  border-left: 2px solid var(--mobile-gold);
  color: rgba(255, 247, 232, 0.7);
  font-size: 14px;
  line-height: 1.55;
 }

 .memory-archive .memory-spread-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
 }

 .memory-archive .memory-spread-main {
  min-height: 0;
  grid-column: 1 / -1;
  grid-row: auto;
  overflow: hidden;
  border: 1px solid rgba(239, 198, 111, 0.17);
  border-radius: 21px;
  background: #0a1711;
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.3);
 }

 .memory-archive .memory-spread-main button {
  height: 390px;
 }

 .memory-archive .memory-spread-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.96) contrast(1.03);
 }

 .memory-archive .memory-spread-main figcaption {
  gap: 2px 12px;
  padding: 18px;
 }

 .memory-archive .memory-spread-main figcaption span {
  font-size: 26px;
 }

 .memory-archive .memory-spread-main figcaption strong {
  font-size: 22px;
 }

 .memory-archive .memory-spread-main figcaption small {
  font-size: 10px;
 }

 .memory-archive .memory-polaroid {
  width: 100%;
  margin: 0;
  border-color: rgba(239, 198, 111, 0.16);
  border-radius: 17px;
  padding: 7px 7px 13px;
  background: #19110d;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.26);
  transform: none;
 }

 .memory-archive .memory-polaroid button {
  aspect-ratio: 1;
  border-radius: 12px;
 }

 .memory-archive .memory-polaroid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
 }

 .memory-archive .memory-polaroid figcaption {
  padding: 10px 4px 0;
  color: rgba(255, 247, 232, 0.76);
  font-size: 11px;
  line-height: 1.25;
 }

 .memory-archive .memory-spread-note {
  position: static;
  display: block;
  width: auto;
  grid-column: 1 / -1;
  margin-top: 3px;
  border-color: rgba(239, 198, 111, 0.16);
  border-radius: 17px;
  padding: 18px;
  background: rgba(255, 247, 232, 0.045);
  transform: none;
 }

 .memory-archive .memory-spread-note strong {
  margin-top: 10px;
  font-size: 28px;
 }

 .memory-archive .memory-spread-note p {
  margin-top: 9px;
 }

 /* Film strip */
 .memory-archive .memory-film {
  padding: 34px 0 42px;
  border-color: rgba(239, 198, 111, 0.13);
  background:
   linear-gradient(180deg, rgba(20, 84, 59, 0.12), transparent 38%),
   #0a0807;
 }

 .memory-archive .memory-film-heading {
  padding: 0 var(--mobile-pad) 18px;
 }

 .memory-archive .memory-film-heading p,
 .memory-archive .memory-film-heading span {
  color: rgba(255, 247, 232, 0.68);
  font-size: 9px;
 }

 .memory-archive .memory-film-heading span {
  color: var(--mobile-gold);
 }

 .memory-archive .memory-film-track {
  gap: 10px;
  padding: 0 var(--mobile-pad) 12px;
  scrollbar-width: none;
 }

 .memory-archive .memory-film-track::-webkit-scrollbar {
  display: none;
 }

 .memory-archive .memory-film-track figure {
  flex: 0 0 min(76vw, 296px);
  scroll-snap-align: center;
 }

 .memory-archive .memory-film-track button {
  height: 338px;
  border: 0;
  border-radius: 18px;
  background: #17100c;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
 }

 .memory-archive .memory-film-track img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.94) contrast(1.03);
 }

 .memory-archive .memory-film-track figcaption {
  padding: 11px 3px 0;
  color: rgba(255, 247, 232, 0.62);
 }

 /* Chapter 03 */
 .memory-archive .memory-album {
  padding: 68px var(--mobile-pad);
  background:
   radial-gradient(circle at 100% 4%, rgba(196, 90, 67, 0.1), transparent 26%),
   radial-gradient(circle at 0 74%, rgba(20, 84, 59, 0.18), transparent 34%),
   #17100c;
 }

 .memory-archive .memory-album h2 {
  color: var(--cream);
 }

 .memory-archive .memory-album h2 em {
  color: var(--mobile-gold);
 }

 .memory-archive .memory-album-head > p {
  color: rgba(255, 247, 232, 0.68);
 }

 .memory-archive .memory-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 0 0 20px;
  border: 0;
  padding: 0;
  overflow: visible;
 }

 .memory-archive .memory-filters button {
  width: 100%;
  min-width: 0;
  min-height: 45px;
  justify-content: space-between;
  border-color: rgba(239, 198, 111, 0.14);
  border-radius: 13px;
  padding: 9px 10px;
  background: rgba(255, 247, 232, 0.035);
  color: rgba(255, 247, 232, 0.66);
  font-size: 10px;
 }

 .memory-archive .memory-filters button:last-child {
  grid-column: 1 / -1;
 }

 .memory-archive .memory-filters button.is-active {
  border-color: rgba(40, 189, 130, 0.36);
  background: linear-gradient(135deg, #14543b, #0d3527);
  color: var(--cream);
 }

 .memory-archive .memory-filters button span {
  min-width: 20px;
  height: 20px;
 }

 .memory-archive .memory-gallery {
  display: grid;
  columns: auto;
  grid-auto-flow: dense;
  grid-auto-rows: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
 }

 .memory-archive .memory-gallery-item,
 .memory-archive .memory-gallery-item.memory-gallery-wide,
 .memory-archive .memory-gallery-item.memory-gallery-tall {
  display: block;
  width: auto;
  min-height: 228px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(239, 198, 111, 0.12);
  border-radius: 16px;
  background: #0c0907;
  break-inside: auto;
 }

 .memory-archive .memory-gallery-item.memory-gallery-wide {
  min-height: 218px;
  grid-column: 1 / -1;
 }

 .memory-archive .memory-gallery-item.memory-gallery-tall {
  min-height: 330px;
  grid-row: auto;
 }

 .memory-archive .memory-gallery-item[hidden] {
  display: none;
 }

 .memory-archive .memory-gallery-item > button {
  height: 100%;
 }

 .memory-archive .memory-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.96) contrast(1.03);
 }

 .memory-archive .memory-gallery-item::after {
  background: linear-gradient(0deg, rgba(6, 13, 9, 0.88), transparent 62%);
 }

 .memory-archive .memory-gallery-item figcaption {
  right: 11px;
  bottom: 11px;
  left: 11px;
  padding-top: 34px;
 }

 .memory-archive .memory-gallery-item figcaption span {
  margin-bottom: 4px;
  font-size: 7px;
 }

 .memory-archive .memory-gallery-item figcaption strong {
  font-size: 15px;
  line-height: 1.05;
 }

 /* Instagram bridge */
 .memory-archive .memory-callout {
  margin: 0;
  padding: 24px var(--mobile-pad);
  background:
   radial-gradient(circle at 100% 0, rgba(255, 255, 255, 0.16), transparent 34%),
   linear-gradient(135deg, #efc66f, #b77a2d);
 }

 .memory-archive .memory-callout p {
  display: grid;
  justify-items: center;
  gap: 7px;
  font-size: 18px;
  line-height: 1.3;
 }

 .memory-archive .memory-callout span {
  margin: 0;
  font-size: 8px;
 }

 .memory-archive .memory-callout a {
  display: inline-flex;
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(23, 16, 11, 0.12);
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-style: normal;
  text-decoration: none;
 }

 /* Final chapter */
 .memory-archive .memory-next {
  display: grid;
  min-height: auto;
  place-items: center;
  margin: 24px var(--mobile-pad) 34px;
  border: 1px solid rgba(239, 198, 111, 0.18);
  border-radius: 25px;
  padding: 68px 18px 32px;
  background: #0b110d;
  text-align: center;
  box-shadow: 0 24px 62px rgba(0, 0, 0, 0.34);
 }

 .memory-archive .memory-next > img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-column: auto;
  grid-row: auto;
  padding: 0;
  background: transparent;
  object-fit: cover;
  object-position: 56% center;
  filter: saturate(0.72) brightness(0.5) contrast(1.06);
 }

 .memory-archive .memory-next-overlay {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  background:
   linear-gradient(180deg, rgba(4, 12, 8, 0.46), rgba(4, 12, 8, 0.88) 62%, rgba(4, 12, 8, 0.97)),
   radial-gradient(circle at 50% 24%, rgba(216, 168, 77, 0.12), transparent 34%);
 }

 .memory-archive .memory-next-copy {
  width: 100%;
  max-width: none;
  min-height: 0;
  grid-column: auto;
  grid-row: auto;
  justify-items: center;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  text-align: center;
  backdrop-filter: none;
 }

 .memory-archive .memory-next .memory-overline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(239, 198, 111, 0.22);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(9, 37, 26, 0.6);
 }

 .memory-archive .memory-next .memory-overline::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #28bd82;
 }

 .memory-archive .memory-next h2 {
  max-width: 8ch;
  color: var(--cream);
  font-size: clamp(46px, 13.2vw, 56px);
  line-height: 0.88;
  text-align: center;
 }

 .memory-archive .memory-next-copy > p:not(.memory-overline) {
  max-width: 30ch;
  margin-top: 18px;
  color: rgba(255, 247, 232, 0.74);
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
 }

 .memory-next-mobile-notes {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 22px;
 }

 .memory-next-mobile-notes span {
  display: grid;
  min-height: 66px;
  place-content: center;
  gap: 4px;
  border: 1px solid rgba(239, 198, 111, 0.15);
  border-radius: 13px;
  padding: 8px 5px;
  background: rgba(7, 30, 21, 0.55);
 }

 .memory-next-mobile-notes small {
  color: var(--mobile-gold);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
 }

 .memory-next-mobile-notes strong {
  color: var(--cream);
  font-size: 10px;
  line-height: 1.15;
 }

 .memory-archive .memory-next-actions {
  display: grid;
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1fr);
  justify-self: stretch;
  gap: 9px;
  margin-top: 20px;
 }

 .memory-archive .memory-next-actions .memory-button,
 .memory-archive .memory-next-actions .memory-text-link {
  width: 100%;
  max-width: none;
  min-height: 52px;
  justify-content: center;
  border-radius: 14px;
 }

 .memory-archive .memory-next-actions .memory-text-link {
  border: 1px solid rgba(255, 247, 232, 0.18);
  background: rgba(255, 247, 232, 0.045);
 }

 /* Full-screen mobile viewer */
 .memory-archive .memory-viewer[open] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
 }

 .memory-archive .memory-viewer-top {
  padding: max(18px, env(safe-area-inset-top)) 16px 12px;
  background: linear-gradient(180deg, rgba(5, 13, 9, 0.94), transparent);
 }

 .memory-archive .memory-viewer-top button {
  border: 1px solid rgba(239, 198, 111, 0.2);
  border-radius: 999px;
  padding: 9px 12px;
  background: rgba(255, 247, 232, 0.06);
  color: var(--cream);
 }

 .memory-archive .memory-viewer-top button::after {
  content: "\0000d7";
  margin-left: 7px;
  color: var(--mobile-gold);
  font-size: 16px;
  line-height: 0;
 }

 .memory-archive .memory-viewer figure {
  width: 100%;
  height: 100svh;
  padding: 72px 12px 88px;
 }

 .memory-archive .memory-viewer figure img {
  border-radius: 14px;
 }

 .memory-archive .memory-viewer figcaption {
  padding-top: 13px;
  font-size: 15px;
 }

 .memory-archive .memory-viewer-nav {
  position: absolute;
  z-index: 4;
  bottom: max(23px, env(safe-area-inset-bottom));
  width: 44px;
  height: 44px;
  border-color: rgba(239, 198, 111, 0.26);
  background: rgba(255, 247, 232, 0.06);
 }

 .memory-archive .memory-viewer-prev {
  left: 18px;
 }

 .memory-archive .memory-viewer-next {
  right: 18px;
 }
}

@media (max-width: 360px) {
 .memory-archive .memory-cover h1 {
  font-size: 54px;
 }

 .memory-archive .memory-gallery-item,
 .memory-archive .memory-gallery-item.memory-gallery-wide {
  min-height: 210px;
 }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
 .memory-archive :is(.memory-cover-image, .memory-spread img, .memory-film img, .memory-gallery-item img) {
  transition: none;
 }
}

/* Souvenirs \002014 mobile interactions and finishing pass */
@media (max-width: 760px) {
 .memory-archive .memory-film {
  position: relative;
  overflow: hidden;
 }

 .memory-archive .memory-film::before,
 .memory-archive .memory-film::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 70px;
  bottom: 42px;
  width: 22px;
  pointer-events: none;
 }

 .memory-archive .memory-film::before {
  left: 0;
  background: linear-gradient(90deg, #0a0807, transparent);
 }

 .memory-archive .memory-film::after {
  right: 0;
  background: linear-gradient(270deg, #0a0807, transparent);
 }

 .memory-archive .memory-film-heading span {
  font-size: 0;
 }

 .memory-archive .memory-film-heading span::after {
  content: "D\0000e9filement continu";
  font-size: 9px;
 }

 .memory-archive .memory-film-track {
  width: max-content;
  gap: 10px;
  overflow: visible;
  padding: 0;
  scroll-snap-type: none;
  animation: memory-film-loop 48s linear infinite;
  will-change: transform;
 }

 .memory-archive .memory-film-track figure,
 .memory-archive .memory-film-track .memory-film-clone {
  display: block;
  width: min(76vw, 296px);
  flex: 0 0 min(76vw, 296px);
 }

 @keyframes memory-film-loop {
  from {
   transform: translate3d(0, 0, 0);
  }

  to {
   transform: translate3d(calc(-50% - 5px), 0, 0);
  }
 }

 .memory-archive .memory-gallery {
  transition: opacity 150ms ease, transform 180ms ease;
 }

 .memory-archive .memory-gallery.is-filtering {
  opacity: 0.18;
  transform: scale(0.988);
 }

 .memory-archive .memory-gallery-item > button {
  position: relative;
 }

 .memory-archive .memory-gallery-item > button::after {
  content: "\002197";
  position: absolute;
  z-index: 4;
  top: 9px;
  right: 9px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(255, 247, 232, 0.24);
  border-radius: 999px;
  background: rgba(7, 18, 13, 0.66);
  color: var(--cream);
  font-size: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(8px);
 }

 .memory-archive .memory-viewer-nav::before {
  display: block;
  color: var(--mobile-gold);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
 }

 .memory-archive .memory-viewer-prev::before {
  content: "\002190";
 }

 .memory-archive .memory-viewer-next::before {
  content: "\002192";
 }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
 .memory-archive .memory-film-track {
  width: auto;
  overflow-x: auto;
  padding: 0 var(--mobile-pad) 12px;
  scroll-snap-type: x mandatory;
  animation: none;
 }

 .memory-archive .memory-film-track .memory-film-clone {
  display: none;
 }

 .memory-archive .memory-gallery {
  transition: none;
 }
}

/* Events \002014 premium mobile experience */
.event-mobile-nav,
.event-booking-mobile,
.agenda-more-mobile {
 display: none;
}

@media (max-width: 760px) {
 .event-hero {
  display: block;
  min-height: auto;
  padding: 116px 16px 28px;
  overflow: hidden;
  isolation: isolate;
  background: #0d0907;
 }

 .event-hero > img {
  inset: 0;
  width: 100%;
  height: 100%;
  object-position: 58% center;
  filter: saturate(0.9) contrast(1.08) brightness(0.68);
 }

 .event-hero-overlay {
  background:
   linear-gradient(180deg, rgba(9, 6, 4, 0.42) 0%, rgba(9, 6, 4, 0.7) 38%, #0d0907 100%),
   linear-gradient(90deg, rgba(8, 5, 3, 0.74), rgba(8, 5, 3, 0.1));
 }

 .event-hero-lines {
  opacity: 0.2;
 }

 .event-hero-copy {
  display: grid;
  max-width: none;
 }

 .event-hero-copy .eyebrow {
  width: fit-content;
  margin-bottom: 16px;
  padding: 7px 10px;
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: 0.08em;
 }

 .event-hero-copy h1 {
  max-width: 350px;
  margin: 0;
  font-size: clamp(48px, 13.6vw, 58px);
  line-height: 0.87;
  letter-spacing: -0.045em;
 }

 .event-hero-copy > p:not(.eyebrow) {
  max-width: 345px;
  margin: 22px 0 0;
  border-left-width: 2px;
  padding-left: 14px;
  color: rgba(255, 247, 232, 0.8);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.55;
 }

 .event-hero-actions {
  display: grid;
  gap: 9px;
  width: 100%;
  margin-top: 24px;
 }

 .event-hero-actions .button {
  width: 100%;
  min-height: 50px;
 }

 .event-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 22px;
 }

 .event-hero-stats span {
  min-width: 0;
  min-height: 88px;
  gap: 5px;
  align-content: start;
  border: 1px solid rgba(216, 168, 77, 0.2);
  border-radius: 14px;
  padding: 12px 9px;
  background: rgba(12, 9, 7, 0.72);
  color: rgba(255, 247, 232, 0.6);
  font-size: 10px;
  line-height: 1.35;
  backdrop-filter: blur(10px);
 }

 .event-hero-stats strong {
  font-size: 11px;
 }

 .final-score-panel {
  display: none;
 }

 .call-advice-strip {
  display: grid;
  gap: 5px;
  padding: 17px 18px;
  text-align: left;
 }

 .call-advice-strip strong {
  font-size: 13px;
 }

 .call-advice-strip span {
  font-size: 12px;
  line-height: 1.45;
 }

 .call-advice-strip a {
  width: fit-content;
  margin-top: 4px;
 }

 .event-mobile-nav {
  position: sticky;
  z-index: 45;
  top: 82px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3px;
  padding: 7px 8px;
  border-top: 1px solid rgba(216, 168, 77, 0.2);
  border-bottom: 1px solid rgba(216, 168, 77, 0.2);
  background: rgba(10, 19, 14, 0.94);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(16px);
 }

 .event-mobile-nav a {
  display: grid;
  min-width: 0;
  min-height: 46px;
  place-content: center;
  border-radius: 10px;
  color: var(--cream);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
 }

 .event-mobile-nav a:active {
  background: rgba(216, 168, 77, 0.13);
 }

 .event-mobile-nav span {
  color: var(--gold);
  font-size: 8px;
  letter-spacing: 0.08em;
 }

 .events-page.section-band {
  padding: 46px 16px 118px;
  background:
   radial-gradient(circle at 100% 8%, rgba(128, 42, 31, 0.2), transparent 25%),
   radial-gradient(circle at 0 63%, rgba(15, 90, 63, 0.22), transparent 26%),
   #0d0907;
 }

 .events-intro {
  max-width: 355px;
  margin: 0 auto 32px;
  padding: 0 5px;
  text-align: center;
 }

 .events-intro .eyebrow,
 .sports-universe-head .eyebrow {
  justify-content: center;
 }

 .events-intro h2 {
  margin: 10px auto 16px;
  font-size: clamp(39px, 11.2vw, 48px);
  line-height: 0.94;
  letter-spacing: -0.035em;
 }

 .events-intro p:not(.eyebrow) {
  margin: 0;
  color: rgba(255, 247, 232, 0.7);
  font-size: 15px;
  line-height: 1.65;
 }

 .final-night {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
  margin: 0 0 14px;
  border-radius: 22px;
  padding: 25px 20px 20px;
  background:
   radial-gradient(circle at 100% 0, rgba(216, 168, 77, 0.19), transparent 35%),
   linear-gradient(145deg, rgba(29, 74, 53, 0.55), rgba(52, 20, 15, 0.6)),
   #17100c;
 }

 .final-night::after {
  right: -0.08em;
  bottom: -0.07em;
  font-size: 100px;
 }

 .final-night h2 {
  margin-bottom: 14px;
  font-size: clamp(43px, 12vw, 52px);
  line-height: 0.89;
  letter-spacing: -0.035em;
 }

 .final-night p:not(.eyebrow) {
  margin: 0;
  font-size: 15px;
  line-height: 1.62;
 }

 .final-night-actions {
  display: grid;
  gap: 8px;
  margin-top: 22px;
 }

 .final-night-actions .button {
  width: 100%;
  min-height: 49px;
 }

 .final-night-board {
  counter-reset: event-night;
  gap: 7px;
 }

 .final-night-board span {
  position: relative;
  min-height: 74px;
  align-content: center;
  padding: 13px 13px 13px 53px;
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.4;
 }

 .final-night-board span::before {
  counter-increment: event-night;
  content: "0" counter(event-night);
  position: absolute;
  left: 14px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 900;
 }

 .final-night-board strong {
  font-size: 11px;
 }

 #agenda-sportif,
 #sports-universe-title,
 #reservation-evenement {
  scroll-margin-top: 150px;
 }

 .sports-calendar {
  display: block;
  margin: 14px 0;
  border-radius: 22px;
  padding: 24px 14px 16px;
  background:
   radial-gradient(circle at 100% 0, rgba(35, 119, 81, 0.22), transparent 28%),
   rgba(19, 16, 12, 0.92);
 }

 .sports-calendar::before {
  top: 4px;
  right: 4px;
  font-size: 58px;
 }

 .sports-calendar .match-calendar-head {
  position: relative;
  top: auto;
  display: block;
  margin: 0 3px;
 }

 .match-calendar-head h2 {
  max-width: 310px;
  margin-bottom: 12px;
  font-size: 43px;
  line-height: 0.92;
  letter-spacing: -0.035em;
 }

 .match-calendar-head p:not(.eyebrow) {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
 }

 .sport-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 20px 0 17px;
  padding: 0;
  overflow: visible;
 }

 .sport-filters button {
  min-width: 0;
  min-height: 40px;
  padding: 7px 4px;
  overflow: hidden;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
 }

 .sports-calendar .match-list {
  display: grid;
  gap: 8px;
  margin: 0;
 }

 .match-row {
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  border-radius: 16px;
  padding: 11px;
 }

 .match-row:hover {
  transform: none;
 }

 .match-row.is-mobile-agenda-hidden {
  display: none;
 }

 .match-date {
  min-height: 72px;
  border-radius: 12px;
  padding: 7px 4px;
 }

 .match-date span {
  font-size: 9px;
  line-height: 1.25;
 }

 .match-date strong {
  font-size: 14px;
 }

 .match-info {
  min-width: 0;
  padding-top: 2px;
 }

 .match-info span {
  gap: 4px;
  font-size: 9px;
  line-height: 1.3;
 }

 .match-info span b {
  padding: 3px 5px;
  font-size: 8px;
 }

 .match-info h3 {
  margin: 6px 0 5px;
  font-size: 22px;
  line-height: 1;
 }

 .match-info p {
  font-size: 12px;
  line-height: 1.42;
 }

 .match-status {
  margin-top: 7px;
  padding: 4px 6px;
  font-size: 8px;
 }

 .match-row a {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 40px;
  border-radius: 11px;
  background: rgba(216, 168, 77, 0.09);
  font-size: 11px;
 }

 .agenda-more-mobile {
  display: inline-flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  border: 1px solid rgba(216, 168, 77, 0.36);
  border-radius: 12px;
  background: rgba(216, 168, 77, 0.1);
  color: var(--gold);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
 }

 .agenda-more-mobile[hidden] {
  display: none;
 }

 .sports-calendar-note {
  margin: 12px 2px 0;
  font-size: 11px;
  line-height: 1.45;
 }

 .event-schedule-detail {
  margin-top: 14px;
  border-radius: 22px;
  padding: 25px 14px 16px;
 }

 .event-schedule-detail-head {
  display: block;
  padding: 0 4px;
 }

 .event-schedule-detail-head h2 {
  margin: 9px 0 15px;
  font-size: 43px;
  line-height: 0.9;
  letter-spacing: -0.035em;
 }

 .event-schedule-detail-head > p:last-child {
  font-size: 14px;
  line-height: 1.58;
 }

 .event-schedule-legend {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  margin: 20px 0 14px;
 }

 .event-schedule-legend span {
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 10px;
 }

 .event-program {
  border-radius: 14px;
 }

 .event-program summary {
  grid-template-columns: minmax(0, 1fr) 32px;
  gap: 6px 10px;
  padding: 15px 13px;
 }

 .event-program summary > span {
  font-size: 9px;
 }

 .event-program summary strong {
  font-size: 16px;
  line-height: 1.15;
 }

 .event-program summary small {
  font-size: 11px;
 }

 .event-program summary > b {
  width: 30px;
  height: 30px;
  font-size: 19px;
 }

 .event-program-body {
  padding: 12px;
 }

 .event-program-meta {
  gap: 6px;
  margin-bottom: 10px;
 }

 .event-program-meta p {
  padding: 10px;
  font-size: 11px;
  line-height: 1.45;
 }

 .event-program-row {
  grid-template-columns: 1fr auto;
  gap: 5px 9px;
  border-radius: 10px;
  padding: 10px;
 }

 .event-program-row > span,
 .event-program-row > strong {
  font-size: 11px;
 }

 .event-program-row > p {
  font-size: 13px;
 }

 .sports-universe {
  margin: 14px 0;
  border-radius: 22px;
  padding: 26px 14px 16px;
  background:
   linear-gradient(rgba(255, 247, 232, 0.025) 1px, transparent 1px),
   linear-gradient(90deg, rgba(255, 247, 232, 0.025) 1px, transparent 1px),
   radial-gradient(circle at 100% 0, rgba(36, 106, 75, 0.32), transparent 30%),
   #10120e;
  background-size: 32px 32px, 32px 32px, auto, auto;
 }

 .sports-universe-head {
  display: block;
  margin: 0 auto 22px;
  padding: 0 4px;
  text-align: center;
 }

 .sports-universe-head h2 {
  margin: 10px 0 14px;
  font-size: 42px;
  line-height: 0.92;
  letter-spacing: -0.035em;
 }

 .sports-universe-head > p:last-child {
  font-size: 14px;
  line-height: 1.58;
 }

 .sports-universe-grid,
 .sports-universe-grid.mobile-snap-carousel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  overflow: visible;
  border: 0;
  background: transparent;
  scroll-snap-type: none;
 }

 .sports-universe-grid article,
 .sports-universe-grid.mobile-snap-carousel > .mobile-carousel-item {
  width: auto;
  min-width: 0;
  min-height: 164px;
  flex: initial;
  border: 1px solid rgba(255, 247, 232, 0.1);
  border-radius: 14px;
  padding: 14px 12px;
  scroll-snap-align: none;
 }

 .sports-universe-grid article::after {
  right: 12px;
  bottom: 12px;
  content: "Voir \002192";
  font-size: 8px;
 }

 .sports-universe-grid strong {
  margin-top: 20px;
  font-size: 21px;
 }

 .sports-universe-grid p {
  display: -webkit-box;
  margin-top: 8px;
  overflow: hidden;
  font-size: 11px;
  line-height: 1.38;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
 }

 .sports-universe > .button {
  width: 100%;
  min-height: 49px;
  margin-top: 14px;
 }

 .rugby-feature {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  margin: 14px 0;
  border-radius: 22px;
  padding: 26px 20px 20px;
  background:
   radial-gradient(circle at 90% 0, rgba(216, 168, 77, 0.16), transparent 34%),
   linear-gradient(160deg, rgba(12, 58, 39, 0.72), rgba(40, 19, 15, 0.82)),
   #11100d;
 }

 .rugby-feature::after {
  right: -0.08em;
  bottom: -0.12em;
  font-size: 120px;
 }

 .rugby-feature h2 {
  margin: 9px 0 15px;
  font-size: 43px;
  line-height: 0.9;
  letter-spacing: -0.035em;
 }

 .rugby-feature p:not(.eyebrow) {
  margin: 0;
  font-size: 14px;
  line-height: 1.62;
 }

 .rugby-timeline {
  counter-reset: rugby-moment;
  display: grid;
  gap: 7px;
 }

 .rugby-timeline span {
  position: relative;
  min-height: 66px;
  align-content: center;
  padding: 12px 12px 12px 52px;
  font-size: 11px;
 }

 .rugby-timeline span::before {
  counter-increment: rugby-moment;
  content: "0" counter(rugby-moment);
  position: absolute;
  left: 14px;
  color: var(--gold);
  font-size: 10px;
  font-weight: 900;
 }

 .rugby-timeline strong {
  font-size: 12px;
 }

 .events-grid,
 .events-grid.mobile-snap-carousel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  overflow: visible;
  margin: 14px 0 0;
  padding: 0;
  scroll-snap-type: none;
 }

 .events-grid .event-card,
 .events-grid.mobile-snap-carousel > .mobile-carousel-item {
  width: auto;
  min-width: 0;
  min-height: auto;
  flex: initial;
  border-radius: 18px;
  padding: 22px 20px;
  scroll-snap-align: none;
 }

 .events-grid .event-card h2 {
  margin: 8px 0 10px;
  font-size: 36px;
  line-height: 0.93;
 }

 .events-grid .event-card p {
  font-size: 14px;
  line-height: 1.58;
 }

 .events-grid .event-card a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  margin-top: 15px;
 }

 .event-strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  margin: 8px 0 14px;
 }

 .event-strip span {
  position: relative;
  min-height: 65px;
  align-content: center;
  padding: 12px 14px 12px 48px;
  font-size: 12px;
 }

 .event-strip span::before {
  content: "\002022";
  position: absolute;
  left: 19px;
  color: var(--green-bright);
  font-size: 20px;
 }

 .event-strip strong {
  font-size: 14px;
 }

 .event-booking-mobile {
  position: relative;
  display: block;
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid rgba(216, 168, 77, 0.36);
  border-radius: 24px;
  padding: 29px 19px 22px;
  background:
   radial-gradient(circle at 88% 0, rgba(216, 168, 77, 0.2), transparent 33%),
   linear-gradient(145deg, rgba(19, 82, 55, 0.62), rgba(39, 18, 13, 0.86)),
   #11100c;
  text-align: center;
 }

 .event-booking-mobile::after {
  content: "B";
  position: absolute;
  right: -0.06em;
  bottom: -0.28em;
  color: rgba(255, 247, 232, 0.035);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 170px;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
 }

 .event-booking-mobile > * {
  position: relative;
  z-index: 1;
 }

 .event-booking-mobile h2 {
  margin: 10px auto 15px;
  color: var(--cream);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 42px;
  line-height: 0.91;
  letter-spacing: -0.035em;
 }

 .event-booking-mobile > p:not(.eyebrow) {
  margin: 0;
  color: rgba(255, 247, 232, 0.72);
  font-size: 14px;
  line-height: 1.6;
 }

 .event-booking-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 22px 0 14px;
 }

 .event-booking-steps span {
  display: grid;
  min-height: 75px;
  place-content: center;
  gap: 5px;
  border: 1px solid rgba(255, 247, 232, 0.13);
  border-radius: 13px;
  background: rgba(7, 18, 13, 0.38);
 }

 .event-booking-steps b {
  color: var(--gold);
  font-size: 10px;
 }

 .event-booking-steps strong {
  color: var(--cream);
  font-size: 11px;
 }

 .event-booking-mobile .button {
  width: 100%;
  min-height: 52px;
 }

 .event-booking-mobile small {
  display: block;
  margin-top: 11px;
  color: rgba(255, 247, 232, 0.5);
  font-size: 10px;
 }
}

@media (max-width: 380px) {
 .event-hero-copy h1 {
  font-size: 45px;
 }

 .event-hero-stats span {
  padding-right: 7px;
  padding-left: 7px;
 }

 .sports-universe-grid strong {
  font-size: 19px;
 }
}

/* Events mobile \002014 decorative symbols removed */
@media (max-width: 760px) {
 .event-mobile-nav span,
 .sports-universe-grid article > span,
 .event-booking-steps b,
 .event-program summary > b {
  display: none;
 }

 .event-program summary {
  grid-template-columns: minmax(0, 1fr);
 }

 .final-night-board span,
 .rugby-timeline span,
 .event-strip span {
  padding-left: 14px;
 }

 .final-night-board span::before,
 .rugby-timeline span::before,
 .event-strip span::before,
 .event-booking-mobile::after {
  content: none;
  display: none;
 }

 .sports-universe-grid article::after {
  content: "Voir";
 }
}

/* Mobile \002014 site-wide decorative symbol cleanup */
@media (max-width: 760px) {
 .main-nav a::before,
 .footer-nav a::after,
 .menu-category-panel-links a::after,
 .menu-category-panel-links .menu-category-top-link::after,
 .dish-detail .back-link::before,
 .place-intro::before,
 .place-intro::after,
 .place-intro > div:first-child::after,
 .place-intro .eyebrow::before,
 .place-showcase::before,
 .place-showcase .eyebrow::before,
 .place-showcase .place-tags li::before,
 .place-access::after,
 .place-access .eyebrow::before,
 .memory-archive .memory-gallery-item > button::after,
 .memory-archive .memory-viewer-top button::after {
  content: none;
  display: none;
 }

 .footer-brand > div::after {
  content: "Seilh depuis 1973";
 }

 .feature > span,
 .scoreboard article > span,
 .place-moment div > span,
 .place-intro-mobile-notes small,
 .place-final-steps small,
 .place-showcase-cues span::before,
 .place-access-list span::before,
 .memory-archive .memory-index a span,
 .memory-archive .memory-section-label > span,
 .memory-archive .memory-card-number,
 .memory-archive .memory-kicker span,
 .memory-archive .memory-filters span,
 .mobile-carousel-dots {
  display: none;
 }

 .place-showcase-cues span,
 .place-access-list span {
  grid-template-columns: minmax(0, 1fr);
 }

 .place-showcase-cues strong,
 .place-showcase-cues small,
 .place-access-list strong,
 .place-access-list small {
  grid-column: 1;
 }

 .memory-archive .memory-viewer-nav {
  width: auto;
  min-width: 72px;
  padding: 0 12px;
  color: var(--cream);
  font-size: 11px;
  font-weight: 850;
 }

 .memory-archive .memory-viewer-nav::before {
  font-size: 11px;
 }

 .memory-archive .memory-viewer-prev::before {
  content: "Pr\0000e9c\0000e9dente";
 }

 .memory-archive .memory-viewer-next::before {
  content: "Suivante";
 }

 .nav-toggle::after,
 .menu-category-toggle::before,
 .menu-category-panel::before,
 .rugby-feature::after {
  content: none;
  display: none;
 }

 .nav-toggle {
  flex-basis: 76px;
  width: 76px;
 }

 .menu-category-panel-head button {
  width: auto;
  height: 38px;
  flex-basis: auto;
  padding: 0 12px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
 }
}
