:root {
  --navy: #052f46;
  --deep: #021d2b;
  --blue: #129ac2;
  --cyan: #45d4e6;
  --cream: #fff7e8;
  --orange: #ff643f;
  --yellow: #ffd64f;
  --red: #e63d31;
  --ink: #062b3e;
  --white: #fff;
  --line: rgba(6,43,62,.16);
  --shadow: 10px 10px 0 var(--ink);
  --display: "Barlow Condensed", Impact, sans-serif;
  --body: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--body); overflow-x: hidden; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .18; background-image: linear-gradient(rgba(6,43,62,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(6,43,62,.08) 1px, transparent 1px); background-size: 36px 36px; mask-image: linear-gradient(#000, transparent 80%); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 900; line-height: .88; text-transform: uppercase; }
p { margin-top: 0; line-height: 1.65; }
.top-strip { min-height: 34px; padding: 7px clamp(16px,4vw,60px); display: flex; justify-content: space-between; gap: 20px; color: white; background: var(--deep); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.top-strip a { color: var(--cyan); }
.site-header { position: sticky; top: 0; z-index: 50; min-height: 88px; padding: 8px clamp(16px,4vw,60px); display: flex; justify-content: space-between; align-items: center; gap: 25px; background: rgba(255,247,232,.94); border-bottom: 3px solid var(--ink); backdrop-filter: blur(15px); }
.brand img { width: 135px; max-height: 72px; object-fit: contain; mix-blend-mode: multiply; }
.site-nav { display: flex; align-items: center; gap: 2px; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.site-nav a { padding: 9px 8px; border: 2px solid transparent; border-radius: 4px; }
.site-nav a:hover, .site-nav a.active { background: white; border-color: var(--ink); box-shadow: 4px 4px 0 var(--cyan); }
.site-nav .nav-cta { margin-left: 8px; color: white; background: var(--orange); border: 2px solid var(--ink); box-shadow: 5px 5px 0 var(--ink); }
.nav-toggle { display: none; width: 48px; height: 45px; padding: 8px; background: var(--yellow); border: 3px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); }
.nav-toggle span { display: block; height: 3px; margin: 4px 0; background: var(--ink); }
.section { padding: clamp(75px,9vw,135px) clamp(20px,6vw,90px); }
.kicker, .section-label { display: inline-flex; width: fit-content; margin: 0 0 18px; padding: 8px 11px; color: var(--ink); background: var(--yellow); border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; transform: rotate(-1deg); }
.kicker.light { background: var(--cream); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 49px; padding: 13px 20px; border: 3px solid var(--ink); border-radius: 4px; font-size: 12px; font-weight: 900; text-transform: uppercase; transition: transform .2s, box-shadow .2s; }
.button:hover { transform: translate(-2px,-2px); box-shadow: 8px 8px 0 var(--ink); }
.button.primary { color: var(--ink); background: var(--cyan); box-shadow: 5px 5px 0 var(--ink); }
.button.ghost { color: white; border-color: white; background: rgba(255,255,255,.06); }
.button.cream { color: var(--ink); background: var(--cream); box-shadow: 5px 5px 0 var(--deep); }
.button.dark { color: white; background: var(--ink); box-shadow: 5px 5px 0 var(--orange); }
.button.whatsapp-button,.whatsapp-button { color:white; background:#1fa855; box-shadow:5px 5px 0 var(--ink); }
.whatsapp-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; }
.whatsapp-float { position:fixed; right:18px; bottom:18px; z-index:80; min-width:220px; padding:12px 15px; display:flex; align-items:center; gap:11px; color:white; background:#1fa855; border:3px solid var(--ink); box-shadow:7px 7px 0 var(--ink); text-decoration:none; transition:.2s; }
.whatsapp-float:hover { transform:translate(-3px,-3px); box-shadow:10px 10px 0 var(--ink); }
.whatsapp-float svg { width:31px; height:31px; fill:none; stroke:currentColor; stroke-width:1.7; }
.whatsapp-float b,.whatsapp-float small { display:block; }
.whatsapp-float b { font:900 20px var(--display); text-transform:uppercase; }
.whatsapp-float small { font-size:8px; opacity:.85; }
.social-float { position:fixed; left:0; top:46%; z-index:79; display:grid; gap:5px; transform:translateY(-50%); }
.social-float > span { padding:8px 5px; color:white; background:var(--ink); border:2px solid var(--ink); font-size:8px; font-weight:900; letter-spacing:.12em; text-align:center; text-transform:uppercase; writing-mode:vertical-rl; transform:rotate(180deg); }
.social-float a { width:52px; height:52px; position:relative; display:flex; align-items:center; gap:12px; overflow:hidden; color:white; border:3px solid var(--ink); box-shadow:4px 4px 0 rgba(5,47,70,.28); text-decoration:none; transition:width .2s, transform .2s; }
.social-float a.facebook { background:#1877f2; }
.social-float a.instagram { background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
.social-float a.tiktok { background:#111; }
.social-float a:hover,.social-float a:focus-visible { width:145px; transform:translateX(3px); }
.social-float svg { width:25px; height:25px; min-width:25px; margin-left:11px; fill:none; stroke:currentColor; stroke-width:2; }
.social-float .facebook svg { fill:currentColor; stroke:none; }
.social-float b { white-space:nowrap; font-size:10px; text-transform:uppercase; }
.about-social-links { margin-top:28px; display:flex; flex-wrap:wrap; gap:10px; }
.about-social-links a { padding:13px 17px; color:white; border:3px solid var(--ink); box-shadow:5px 5px 0 var(--ink); font-weight:900; text-decoration:none; text-transform:uppercase; }
.about-social-links .facebook { background:#1877f2; }
.about-social-links .instagram { background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
.about-social-links .tiktok { background:#111; }

.home-hero { min-height: calc(100vh - 122px); padding: clamp(50px,6vw,90px) clamp(20px,6vw,90px); display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(38px,6vw,90px); position: relative; overflow: hidden; color: white; background: var(--navy); }
.home-hero::before { content: ""; position: absolute; width: 50vw; height: 50vw; left: -18vw; top: -26vw; border: 80px solid rgba(69,212,230,.08); border-radius: 50%; }
.home-hero::after { content: ""; position: absolute; inset: auto -5% 4% 40%; height: 120px; background: linear-gradient(90deg, transparent, var(--orange), var(--yellow)); clip-path: polygon(0 70%,100% 0,97% 45%,100% 100%,10% 95%); opacity: .7; }
.hero-copy, .hero-media { position: relative; z-index: 2; }
.hero-copy h1 { font-size: clamp(5rem,8.7vw,10rem); }
.hero-copy h1 span { color: var(--cyan); text-shadow: 5px 5px 0 #004a66; }
.hero-lead { max-width: 620px; margin: 28px 0 32px; color: #c4dce3; font-size: clamp(15px,1.5vw,19px); }
.hero-facts { margin-top: 42px; display: flex; flex-wrap: wrap; gap: 26px; color: #9fc0ca; font-size: 10px; text-transform: uppercase; }
.hero-facts b { display: block; color: white; font: 900 22px var(--display); }
.hero-media { min-height: 610px; }
.photo-frame { border: 5px solid var(--cream); box-shadow: 18px 18px 0 var(--deep); overflow: hidden; }
.main-photo { position: absolute; inset: 4% 0 5% 8%; transform: rotate(2deg); }
.main-photo img { width: 100%; height: 100%; object-fit: cover; image-rendering: auto; }
.hero-logo-card { position: absolute; left: -2%; top: 0; width: 195px; padding: 7px; background: white; border: 4px solid var(--ink); box-shadow: 9px 9px 0 var(--orange); transform: rotate(-5deg); }
.hero-badge { position: absolute; right: -2%; bottom: 0; width: 210px; padding: 18px; color: var(--ink); background: var(--yellow); border: 4px solid var(--ink); box-shadow: 8px 8px 0 var(--deep); transform: rotate(3deg); }
.hero-badge strong, .hero-badge span { display: block; }
.hero-badge strong { font: 900 33px var(--display); text-transform: uppercase; }
.hero-badge span { font-size: 10px; font-weight: 900; text-transform: uppercase; }
.wave-stamp { position: absolute; left: 47%; top: 18px; z-index: 3; color: rgba(255,255,255,.35); font-size: 8px; letter-spacing: .3em; writing-mode: vertical-rl; }
.marquee { overflow: hidden; color: var(--ink); background: var(--yellow); border-block: 3px solid var(--ink); transform: rotate(-1deg) scale(1.02); }
.marquee div { width: max-content; padding: 13px 0; font: 900 22px var(--display); letter-spacing: .04em; animation: marquee 22s linear infinite; }
.marquee i { color: var(--red); margin: 0 18px; }
@keyframes marquee { to { transform: translateX(-50%); } }

.hut-status { display: grid; grid-template-columns: .72fr 1.28fr; gap: 6vw; align-items: center; background: var(--cream); }
.status-intro h2 { font-size: clamp(4rem,7vw,8rem); }
.status-intro h2 span { color: var(--blue); }
.status-intro > p:last-child { max-width: 540px; color: #536b75; }
.status-board { display: grid; grid-template-columns: 1fr 1fr; border: 4px solid var(--ink); box-shadow: 13px 13px 0 var(--cyan); }
.status-board article { min-height: 190px; padding: 27px; display: flex; flex-direction: column; justify-content: space-between; background: white; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.status-board article:nth-child(even) { border-right: 0; }
.status-board article small { font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.status-board article strong { font: 900 30px/1 var(--display); text-transform: uppercase; }
.status-board article p { margin: 6px 0 0; color: #5e747c; font-size: 12px; }
.status-board .status-open { color: white; background: var(--blue); }
.status-board .status-open p { color: #d7f3f7; }
.status-light { width: 16px; height: 16px; border-radius: 50%; background: #71ef83; box-shadow: 0 0 0 7px rgba(113,239,131,.2); }
.is-closed .status-light { background: var(--orange); box-shadow: 0 0 0 7px rgba(255,100,63,.2); }
.status-board .weather-card { background: var(--yellow); }
.status-board .status-wide { grid-column: 1/-1; min-height: 150px; border-right: 0; border-bottom: 0; background: var(--deep); color: white; }
.status-wide span { color: #9db7c0; font-size: 9px; text-transform: uppercase; }

.intro-block { display: grid; grid-template-columns: .28fr 1fr; gap: 5vw; align-items: start; }
.intro-heading { display: grid; grid-template-columns: 1.3fr .6fr; align-items: end; gap: 5vw; }
.intro-heading h2 { font-size: clamp(3.4rem,6.3vw,7rem); }
.intro-heading h2 span { color: var(--blue); }
.intro-heading p { color: #4e6873; }
.home-hero { min-height:calc(100vh - 122px); grid-template-columns:1.1fr .55fr; isolation:isolate; background:var(--deep); }
.home-hero::before { inset:0; width:auto; height:auto; border:0; border-radius:0; z-index:-1; background:linear-gradient(90deg,rgba(2,29,43,.98) 0%,rgba(2,29,43,.88) 43%,rgba(2,29,43,.28) 72%,rgba(2,29,43,.08) 100%); }
.home-hero::after { inset:auto 0 0; height:12px; opacity:1; clip-path:none; background:linear-gradient(90deg,var(--yellow),var(--cyan),var(--orange)); }
.hero-real-photo { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 50%; }
.hero-copy { max-width:900px; }
.hero-copy h1 { max-width:900px; font-size:clamp(5rem,8vw,9.5rem); line-height:.82; }
.hero-copy h1 span { display:block; margin-top:18px; font-size:.72em; line-height:.9; }
.hero-media { min-height:610px; pointer-events:none; }
.hero-food-card { position:absolute; right:0; bottom:5%; width:min(330px,28vw); padding:8px 8px 0; background:var(--cream); border:4px solid var(--ink); box-shadow:11px 11px 0 var(--yellow); transform:rotate(3deg); }
.hero-food-card img { width:100%; aspect-ratio:1.22; object-fit:cover; }
.hero-food-card span { display:block; padding:11px 5px; color:var(--ink); font:900 22px var(--display); text-align:center; text-transform:uppercase; }
.hero-badge { right:auto; left:-8%; bottom:1%; width:230px; }
.wave-stamp { left:auto; right:25px; top:25px; }

.harbour-story { min-height:760px; position:relative; overflow:hidden; display:flex; align-items:end; color:white; border-bottom:4px solid var(--ink); }
.harbour-story > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.harbour-story-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,29,43,.94) 0%,rgba(2,29,43,.68) 48%,rgba(2,29,43,.05) 82%),linear-gradient(0deg,rgba(2,29,43,.75),transparent 55%); }
.harbour-story-copy { width:min(900px,92%); margin:0 0 clamp(55px,7vw,105px) clamp(20px,7vw,105px); position:relative; z-index:2; }
.harbour-story-copy h2 { max-width:980px; margin:20px 0 25px; font-size:clamp(4rem,7vw,8.2rem); }
.harbour-story-copy h2 span { color:var(--yellow); }
.harbour-story-copy > p:not(.kicker) { max-width:650px; color:#d9edf1; font-size:17px; line-height:1.65; }
.harbour-proof { margin-top:35px; display:flex; flex-wrap:wrap; gap:12px; }
.harbour-proof span { min-width:190px; padding:14px 17px; display:flex; align-items:center; gap:11px; color:var(--ink); background:var(--cream); border:3px solid var(--ink); box-shadow:5px 5px 0 var(--cyan); font-size:10px; font-weight:900; text-transform:uppercase; }
.harbour-proof b { color:var(--orange); font:900 24px var(--display); }

.hut-status { padding-block:65px; grid-template-columns:.45fr 1.55fr; gap:4vw; background:var(--yellow); }
.status-intro h2 { font-size:clamp(3.7rem,5.2vw,6.5rem); }
.status-board { box-shadow:10px 10px 0 var(--ink); }
.status-board article { min-height:135px; padding:20px; }
.status-board article strong { font-size:25px; }
.status-board .status-wide { min-height:105px; }

.personality-story { padding-block:100px; grid-template-columns:1.15fr .85fr; gap:6vw; align-items:center; background:var(--cream); }
.personality-gallery { min-height:650px; position:relative; }
.personality-gallery figure { margin:0; position:absolute; overflow:hidden; border:4px solid var(--ink); box-shadow:12px 12px 0 var(--cyan); }
.personality-gallery img { width:100%; height:100%; object-fit:cover; }
.personality-gallery figcaption { position:absolute; left:0; bottom:0; padding:11px 15px; color:var(--ink); background:var(--yellow); border-top:3px solid var(--ink); border-right:3px solid var(--ink); font-size:9px; font-weight:900; text-transform:uppercase; }
.personality-main { inset:0 8% 8% 0; transform:rotate(-1.5deg); }
.personality-team { width:40%; height:48%; right:0; bottom:0; transform:rotate(3deg); box-shadow:9px 9px 0 var(--orange)!important; }
.personality-story .intro-heading { display:block; }
.personality-story .intro-heading h2 { margin:20px 0 25px; font-size:clamp(4.5rem,6vw,7rem); }
.personality-story .intro-heading p:not(.section-label) { max-width:580px; font-size:15px; line-height:1.7; }
.personality-points { margin:28px 0; display:flex; flex-wrap:wrap; gap:8px; }
.personality-points span { padding:9px 12px; background:white; border:2px solid var(--ink); font-size:9px; font-weight:900; text-transform:uppercase; }
.camera-roll { display:grid; grid-template-columns:.7fr 1.3fr; gap:6vw; align-items:center; color:white; background:var(--blue); border-block:4px solid var(--ink); }
.camera-roll-head h2 { font-size:clamp(4rem,7vw,8rem); }
.camera-roll-head h2 span { color:var(--yellow); }
.camera-roll-head > p:not(.section-label) { color:#d4f0f4; }
.camera-mosaic { min-height:720px; position:relative; }
.camera-mosaic figure { position:absolute; margin:0; overflow:hidden; background:white; border:4px solid var(--ink); box-shadow:8px 8px 0 var(--deep); }
.camera-mosaic img { width:100%; height:100%; object-fit:cover; image-rendering:auto; }
.camera-mosaic figcaption { position:absolute; inset:auto 0 0; padding:8px 10px; color:var(--ink); background:var(--yellow); border-top:3px solid var(--ink); font:900 13px var(--display); text-transform:uppercase; }
.mosaic-a { width:34%; height:285px; left:0; top:30px; transform:rotate(-4deg); }
.mosaic-b { width:43%; height:320px; left:30%; top:0; transform:rotate(2deg); }
.mosaic-c { width:31%; height:250px; right:0; top:100px; transform:rotate(5deg); }
.mosaic-d { width:29%; height:245px; left:3%; bottom:60px; transform:rotate(3deg); }
.mosaic-e { width:40%; height:300px; left:31%; bottom:10px; transform:rotate(-3deg); }
.mosaic-f { width:30%; height:265px; right:0; bottom:55px; transform:rotate(4deg); }
.feature-grid { padding-top: 10px; display: grid; grid-template-columns: 1.1fr .9fr .8fr; gap: 24px; }
.feature-card { min-height: 560px; position: relative; overflow: hidden; color: white; border: 4px solid var(--ink); box-shadow: 9px 9px 0 var(--ink); }
.feature-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.feature-card:hover img { transform: scale(1.06); }
.feature-card::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(transparent,rgba(2,29,43,.95)); }
.feature-card > div { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 27px; }
.feature-card span { font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.feature-card h3 { margin: 7px 0 9px; font-size: clamp(2.4rem,4vw,4.5rem); }
.feature-card p { margin-bottom: 16px; font-size: 12px; color: #d8e7eb; }
.feature-card b { color: var(--cyan); font-size: 11px; text-transform: uppercase; }
.drinks-card { transform: translateY(45px); }
.events-card { transform: translateY(-25px); }
.events-card img { object-position: center top; }
.split-impact { min-height: 750px; padding: clamp(75px,8vw,120px) clamp(20px,6vw,90px); display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 7vw; color: white; background: var(--orange); border-block: 4px solid var(--ink); }
.impact-copy h2 { font-size: clamp(4rem,7vw,8rem); }
.impact-copy h2 span { color: var(--yellow); }
.impact-copy > p:not(.kicker) { max-width: 590px; margin: 28px 0; color: #ffe2da; }
.bottle-collage { min-height: 560px; position: relative; }
.bottle-collage figure { position: absolute; margin: 0; background: white; border: 4px solid var(--ink); box-shadow: 10px 10px 0 var(--ink); }
.bottle-collage img { width: 100%; height: 100%; object-fit: cover; }
.bottle-collage figcaption { padding: 10px 13px; color: var(--ink); font: 900 16px var(--display); text-transform: uppercase; }
.bottle-one { width: 58%; height: 330px; left: 0; top: 0; transform: rotate(-4deg); }
.bottle-two { width: 48%; height: 300px; right: 0; top: 125px; transform: rotate(5deg); }
.bottle-three { width: 48%; height: 275px; left: 18%; bottom: 0; transform: rotate(2deg); }
.experience { background: white; }
.experience-head { display: grid; grid-template-columns: .4fr 1fr; align-items: end; margin-bottom: 60px; }
.experience-head h2 { font-size: clamp(4rem,7vw,8rem); }
.experience-list { border-top: 4px solid var(--ink); }
.experience-row { display: grid; grid-template-columns: 60px 1fr .75fr 35px; gap: 25px; align-items: center; padding: 27px 10px; border-bottom: 2px solid var(--ink); transition: padding .2s, background .2s; }
.experience-row:hover { padding-inline: 24px; background: var(--cyan); }
.experience-row > span { color: var(--orange); font: 900 18px var(--display); }
.experience-row h3 { font-size: clamp(2rem,3.3vw,3.7rem); }
.experience-row p { margin: 0; color: #60737b; font-size: 13px; }
.experience-row b { font-size: 24px; }
.home-events { background: var(--cream); }
.events-grid { margin-bottom: 35px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.event-card { overflow: hidden; background: white; border: 4px solid var(--ink); box-shadow: 8px 8px 0 var(--ink); }
.event-card img { width: 100%; height: 290px; object-fit: cover; object-position: top; border-bottom: 3px solid var(--ink); }
.event-card > div { padding: 25px; }
.event-card span { color: var(--orange); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.event-card h3 { margin: 12px 0; font-size: 40px; }
.event-card p { color: #5b7179; font-size: 12px; }
.event-calendar { display: inline-block; padding-bottom: 4px; color: var(--blue); border-bottom: 2px solid currentColor; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.social-proof { padding: clamp(75px,8vw,120px) clamp(20px,9vw,140px); display: grid; grid-template-columns: 1fr .75fr; align-items: center; gap: 10vw; color: white; background: var(--blue); }
.social-copy h2 { font-size: clamp(3.5rem,6vw,6.5rem); }
.social-copy > p:not(.kicker) { max-width: 600px; color: #d2f0f5; }
.post-card { padding: 35px; color: var(--ink); background: var(--cream); border: 4px solid var(--ink); box-shadow: 13px 13px 0 var(--deep); transform: rotate(2deg); }
.post-card img { width: 67px; height: 67px; margin-right: 15px; float: left; object-fit: cover; border: 3px solid var(--ink); }
.post-card div { min-height: 75px; padding-top: 13px; }
.post-card b, .post-card span { display: block; }
.post-card span, .post-card small { color: #69808a; font-size: 10px; text-transform: uppercase; }
.post-card p { margin: 24px 0; font: 800 25px/1.25 var(--display); }
.location-cta { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 0; }
.location-art { min-height: 500px; position: relative; overflow: hidden; display: grid; place-items: center; color: white; background: var(--navy); border: 4px solid var(--ink); }
.map-lines { position: absolute; inset: -20%; opacity: .2; background: repeating-radial-gradient(ellipse at 50% 50%,transparent 0 38px,var(--cyan) 40px 42px); }
.map-pin { z-index: 2; width: 80px; height: 80px; display: grid; place-items: center; color: var(--ink); background: var(--yellow); border: 4px solid white; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 10px 10px 0 var(--orange); font-size: 29px; }
.map-pin::first-letter { transform: rotate(45deg); }
.location-art p { position: absolute; bottom: 28px; left: 35px; font: 900 24px var(--display); text-transform: uppercase; }
.real-map { min-height:500px; position:relative; overflow:hidden; background:#d9edf0; border:4px solid var(--ink); }
.real-map iframe { width:100%; height:500px; display:block; border:0; filter:saturate(.85) contrast(1.05); }
.real-map > img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.88) contrast(1.03); }
.real-map > a { position:absolute; left:18px; bottom:18px; padding:11px 14px; color:white; background:var(--ink); border:2px solid white; box-shadow:5px 5px 0 var(--orange); font-size:10px; font-weight:900; text-transform:uppercase; }
.location-copy { padding: clamp(45px,6vw,85px); background: var(--yellow); border: 4px solid var(--ink); border-left: 0; }
.location-copy h2 { font-size: clamp(3.8rem,6.5vw,7rem); }
.location-copy > p:not(.section-label) { margin: 25px 0; font-weight: 700; }
.phone-link { font: 900 25px var(--display); border-bottom: 3px solid var(--ink); }
.search-guide { display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:center; background:white; border-top:4px solid var(--ink); }
.search-guide h2 { font-size:clamp(3.5rem,6vw,6.5rem); }
.search-guide-links { display:grid; gap:14px; }
.search-guide-links a { padding:24px; display:grid; gap:8px; background:var(--cream); border:3px solid var(--ink); box-shadow:7px 7px 0 var(--cyan); transition:.2s; }
.search-guide-links a:hover { transform:translate(-3px,-3px); box-shadow:10px 10px 0 var(--orange); }
.search-guide-links span { color:var(--orange); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.search-guide-links b { font:900 28px var(--display); text-transform:uppercase; }

.page-hero { min-height: 520px; padding: clamp(65px,8vw,120px) clamp(20px,7vw,105px); display: grid; grid-template-columns: 1fr .75fr; gap: 6vw; align-items: center; color: white; background: var(--navy); border-bottom: 4px solid var(--ink); }
.page-hero h1 { font-size: clamp(5rem,9vw,10rem); }
.page-hero h1 span { color: var(--cyan); }
.page-hero p { max-width: 610px; color: #c4dce3; font-size: 17px; }
.page-hero-image { height: 360px; border: 5px solid var(--cream); box-shadow: 13px 13px 0 var(--orange); transform: rotate(2deg); overflow: hidden; }
.page-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-copy { position:relative; z-index:2; }
.photo-page-hero { min-height:700px; position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:end; }
.page-hero-bg { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.page-hero-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(2,29,43,.95),rgba(2,29,43,.62) 48%,rgba(2,29,43,.06) 82%),linear-gradient(0deg,rgba(2,29,43,.65),transparent 55%); }
.photo-page-hero .page-hero-copy { max-width:860px; padding-bottom:20px; }
.photo-page-hero h1 { max-width:850px; }
.hero-caption-card { position:absolute; right:6vw; bottom:6vw; z-index:2; min-width:230px; padding:18px; color:var(--ink); background:var(--yellow); border:4px solid var(--ink); box-shadow:8px 8px 0 var(--cyan); transform:rotate(2deg); }
.hero-caption-card b,.hero-caption-card span { display:block; }
.hero-caption-card b { font:900 31px var(--display); text-transform:uppercase; }
.hero-caption-card span { font-size:9px; font-weight:900; text-transform:uppercase; }
.menu-photo-hero .page-hero-bg { object-position:center 54%; }
.events-photo-hero .page-hero-bg { object-position:center; }
.contact-photo-hero .page-hero-bg { object-position:center 55%; }

.order-photo-hero { min-height:700px; }
.order-photo-hero h1 { font-size:clamp(5rem,8vw,9rem); }
.order-photo-hero .page-hero-bg { object-position:center 52%; }
.order-photo-hero .page-hero-overlay { background:linear-gradient(90deg,rgba(2,29,43,.96),rgba(2,29,43,.72) 50%,rgba(2,29,43,.08) 85%),linear-gradient(0deg,rgba(2,29,43,.55),transparent 55%); }
.hero-order-steps { margin-top:30px; display:flex; flex-wrap:wrap; gap:9px; }
.hero-order-steps span { padding:10px 13px; color:var(--ink); background:var(--cream); border:2px solid var(--yellow); font-size:9px; font-weight:900; text-transform:uppercase; }
.hero-order-steps b { margin-right:7px; color:var(--orange); font:900 22px var(--display); }

.gallery-photo-hero .page-hero-bg { object-position:center 58%; }
.gallery-photo-hero h1 span { color:var(--yellow); }
.hero-collage { min-height:500px; position:relative; }
.hero-collage figure { margin:0; position:absolute; overflow:hidden; border:4px solid var(--ink); box-shadow:9px 9px 0 var(--deep); }
.hero-collage img { width:100%; height:100%; object-fit:cover; }
.hero-collage figure:nth-child(1) { width:67%; height:72%; left:0; top:5%; transform:rotate(-2deg); }
.hero-collage figure:nth-child(2) { width:41%; height:55%; right:0; top:0; transform:rotate(3deg); box-shadow:9px 9px 0 var(--yellow); }
.hero-collage figure:nth-child(3) { width:46%; height:42%; right:4%; bottom:0; transform:rotate(-3deg); box-shadow:9px 9px 0 var(--orange); }

.about-photo-hero { min-height:700px; }
.about-photo-hero .page-hero-bg { object-position:center 38%; }
.about-photo-hero .page-hero-overlay { background:linear-gradient(90deg,rgba(2,29,43,.96),rgba(2,29,43,.7) 48%,rgba(2,29,43,.08) 82%),linear-gradient(0deg,rgba(2,29,43,.55),transparent 55%); }
.about-photo-hero h1 span { color:var(--yellow); }
.about-hero-tags { margin-top:28px; display:flex; flex-wrap:wrap; gap:8px; }
.about-hero-tags span { padding:9px 12px; color:var(--ink); background:var(--cream); border:2px solid var(--yellow); font-size:9px; font-weight:900; text-transform:uppercase; }
.menu-section { padding: 90px clamp(20px,7vw,105px); }
.menu-section.alt { background: white; }
.menu-head { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 45px; }
.menu-head h2 { font-size: clamp(3.5rem,6vw,6.5rem); }
.menu-head p { max-width: 430px; color: #5a717a; }
.menu-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.menu-item { min-height: 220px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; background: var(--cream); border: 3px solid var(--ink); box-shadow: 7px 7px 0 var(--ink); }
.alt .menu-item { background: var(--yellow); }
.menu-item span { color: var(--orange); font: 900 12px var(--display); letter-spacing: .08em; text-transform: uppercase; }
.menu-item h3 { margin: 20px 0 8px; font-size: 37px; }
.menu-item p { margin: 0; color: #60727a; font-size: 12px; }
.menu-item.featured { color: white; background: var(--blue); }
.menu-item.featured p { color: #d8f1f5; }
.menu-note { margin-top: 40px; padding: 23px; display: flex; justify-content: space-between; gap: 25px; align-items: center; color: white; background: var(--ink); border: 3px solid var(--ink); }
.menu-note p { margin: 0; }
.interactive-menu-tools { padding: 65px clamp(20px,7vw,105px) 25px; display: flex; justify-content: space-between; gap: 40px; align-items: end; background: var(--yellow); border-bottom: 4px solid var(--ink); }
.interactive-menu-tools h2 { font-size: clamp(3.5rem,6vw,6.5rem); }
.menu-controls { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.menu-controls button, .gallery-filters button { padding: 10px 13px; color: var(--ink); background: white; border: 2px solid var(--ink); font: 900 10px var(--body); text-transform: uppercase; cursor: pointer; }
.menu-controls button.active, .gallery-filters button.active { color: white; background: var(--ink); box-shadow: 4px 4px 0 var(--orange); }
.menu-controls label { padding: 9px 12px; display: flex; align-items: center; gap: 7px; background: var(--cream); border: 2px solid var(--ink); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.menu-controls input { width: auto; min-height: 0; }
.dynamic-menu-section { padding-top: 45px; background: var(--cream); }
.visual-menu-grid { grid-template-columns: repeat(4,1fr); }
.visual-menu-card { min-height: 440px; overflow: hidden; display: flex; flex-direction: column; position: relative; background: white; border: 3px solid var(--ink); box-shadow: 7px 7px 0 var(--ink); }
.visual-menu-card > img, .menu-placeholder { width: 100%; height: 210px; object-fit: cover; border-bottom: 3px solid var(--ink); }
.menu-placeholder { display: grid; place-items: center; color: white; background: var(--blue); font: 900 34px var(--display); text-transform: uppercase; }
.visual-menu-copy { flex: 1; padding: 21px; display: flex; flex-direction: column; }
.visual-menu-copy > span { color: var(--orange); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.visual-menu-copy h3 { margin: 12px 0 8px; font-size: 33px; }
.visual-menu-copy p { color: #5c727a; font-size: 11px; }
.menu-meta { margin-top: auto; padding-top: 13px; display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid var(--line); }
.menu-meta b { font: 900 22px var(--display); text-transform: uppercase; }
.menu-meta small { max-width: 55%; text-align: right; color: #6c7e84; font-size: 8px; }
.visual-menu-card.featured::after { content: "Hut pick"; position: absolute; top: 14px; right: -29px; width: 115px; padding: 6px; text-align: center; color: var(--ink); background: var(--yellow); border-block: 2px solid var(--ink); transform: rotate(45deg); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.visual-menu-card.sold-out { filter: grayscale(1); opacity: .55; }
.gallery-ribbon { display: grid; grid-template-columns: repeat(4,1fr); }
.gallery-ribbon img { width: 100%; height: 300px; object-fit: cover; border: 2px solid var(--ink); }
.gallery-page { background: var(--cream); }
.gallery-filters { margin-bottom: 35px; display: flex; flex-wrap: wrap; gap: 9px; }
.masonry-gallery { columns: 3 290px; column-gap: 20px; }
.masonry-gallery figure { break-inside: avoid; margin: 0 0 20px; background: white; border: 3px solid var(--ink); box-shadow: 7px 7px 0 var(--ink); }
.masonry-gallery button { width: 100%; padding: 0; display: block; background: transparent; border: 0; cursor: zoom-in; }
.masonry-gallery img { width: 100%; max-height: 550px; object-fit: cover; }
.masonry-gallery figcaption { padding: 14px; font: 900 19px var(--display); text-transform: uppercase; }
.masonry-gallery figcaption span { float: right; color: var(--orange); font: 900 9px var(--body); }
.photo-lightbox { max-width: min(1000px,92vw); max-height: 92vh; padding: 12px; color: white; background: var(--deep); border: 4px solid white; }
.photo-lightbox::backdrop { background: rgba(2,29,43,.9); }
.photo-lightbox img { max-height: 78vh; margin: auto; }
.photo-lightbox button { position: absolute; right: 15px; top: 15px; width: 44px; height: 44px; color: var(--ink); background: var(--yellow); border: 3px solid var(--ink); font-size: 27px; cursor: pointer; }
.photo-lightbox p { margin: 10px 0 0; text-align: center; }
.facebook-live { display: grid; grid-template-columns: .75fr 1fr; gap: 7vw; align-items: center; color: white; background: var(--blue); }
.facebook-live h2 { font-size: clamp(4rem,7vw,7rem); }
.facebook-live iframe { width: 100%; max-width: 500px; margin: auto; background: white; border: 4px solid var(--ink) !important; box-shadow: 12px 12px 0 var(--deep); }
.event-atmosphere { display:grid; grid-template-columns:.7fr 1.3fr; gap:6vw; align-items:center; color:white; background:var(--orange); border-block:4px solid var(--ink); }
.event-atmosphere-copy h2 { font-size:clamp(4rem,7vw,8rem); }
.event-atmosphere-copy h2 span { color:var(--yellow); }
.event-atmosphere-copy > p:last-child { color:#ffe1d9; }
.event-photo-wall { min-height:590px; position:relative; }
.event-photo-wall figure { position:absolute; margin:0; overflow:hidden; background:white; border:4px solid var(--ink); box-shadow:10px 10px 0 var(--deep); }
.event-photo-wall img { width:100%; height:100%; object-fit:cover; }
.event-photo-wall figcaption { position:absolute; inset:auto 0 0; padding:12px 15px; color:var(--ink); background:var(--yellow); border-top:3px solid var(--ink); font:900 16px var(--display); text-transform:uppercase; }
.event-photo-wall .event-photo-main { width:62%; height:430px; left:0; top:50px; transform:rotate(-4deg); }
.event-photo-wall figure:nth-child(2) { width:43%; height:285px; right:0; top:0; transform:rotate(4deg); }
.event-photo-wall figure:nth-child(3) { width:45%; height:285px; right:3%; bottom:0; transform:rotate(-2deg); }
.builder-shell { background: var(--cream); }
.platter-builder { display: grid; grid-template-columns: 1.25fr .75fr; gap: 45px; align-items: start; }
.builder-options { padding: 35px; background: white; border: 4px solid var(--ink); box-shadow: 10px 10px 0 var(--cyan); }
.choice-row { margin: 0 0 35px; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.choice-row label, .ingredient-choice { cursor: pointer; }
.choice-row input, .ingredient-choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice-row span { min-height: 110px; padding: 22px; display: flex; flex-direction: column; justify-content: center; background: var(--cream); border: 3px solid var(--ink); font: 900 28px var(--display); text-transform: uppercase; }
.choice-row small { margin-top: 5px; font: 700 9px var(--body); }
.choice-row input:checked + span { background: var(--yellow); box-shadow: 6px 6px 0 var(--ink); transform: translate(-3px,-3px); }
.ingredient-grid { margin-bottom: 35px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ingredient-choice span { min-height: 85px; padding: 18px; display: flex; flex-direction: column; justify-content: center; background: var(--cream); border: 2px solid var(--ink); }
.ingredient-choice b { font: 900 22px var(--display); text-transform: uppercase; }
.ingredient-choice small { margin-top: 4px; color: #63767d; font-size: 8px; text-transform: uppercase; }
.ingredient-choice input:checked + span { color: white; background: var(--blue); box-shadow: 5px 5px 0 var(--ink); }
.builder-contact { margin-bottom: 15px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.builder-contact label { font-size: 9px; font-weight: 900; text-transform: uppercase; }
.builder-contact input, .builder-options textarea { width: 100%; padding: 13px; background: var(--cream); border: 3px solid var(--ink); }
.platter-summary { position: sticky; top: 115px; padding: 28px; color: white; background: var(--deep); border: 4px solid var(--ink); box-shadow: 11px 11px 0 var(--orange); }
.platter-summary > img { width: 100%; height: 240px; margin-bottom: 25px; object-fit: cover; border: 3px solid white; }
.platter-summary h2 { font-size: 45px; }
.platter-summary ul { min-height: 130px; padding-left: 20px; color: #c6dbe1; }
.allergy-warning { padding: 13px; color: var(--ink); background: var(--yellow); border: 2px solid white; font-size: 9px; font-weight: 700; }
.fulfilment-choice { margin-bottom:18px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.order-category-grid { margin:18px 0 35px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.order-category-grid button { padding:0; overflow:hidden; color:var(--ink); background:white; border:3px solid var(--ink); box-shadow:5px 5px 0 var(--ink); text-align:left; cursor:pointer; }
.order-category-grid button.active { color:white; background:var(--blue); box-shadow:7px 7px 0 var(--yellow); transform:translate(-2px,-2px); }
.order-category-grid img { width:100%; height:125px; object-fit:cover; }
.order-category-grid span { min-height:105px; padding:14px; display:block; }
.order-category-grid b,.order-category-grid small { display:block; }
.order-category-grid b { font:900 24px var(--display); text-transform:uppercase; }
.order-category-grid small { margin-top:5px; font-size:9px; line-height:1.45; }
.fulfilment-choice label { cursor:pointer; }
.fulfilment-choice input { position:absolute; opacity:0; }
.fulfilment-choice span { min-height:65px; padding:16px; display:grid; place-items:center; text-align:center; background:var(--cream); border:3px solid var(--ink); font:900 20px var(--display); text-transform:uppercase; }
.fulfilment-choice input:checked + span { color:white; background:var(--blue); box-shadow:5px 5px 0 var(--ink); }
.delivery-fields { margin-bottom:20px; }
.delivery-fields[hidden] { display:none; }
.delivery-fields label { display:grid; gap:6px; font-size:9px; font-weight:900; text-transform:uppercase; }
.postcode-checker { margin-bottom:10px; display:grid; grid-template-columns:1fr auto; gap:9px; align-items:end; }
.postcode-checker label { margin:0; }
.postcode-checker input { width:100%; min-height:49px; padding:13px; background:var(--cream); border:3px solid var(--ink); text-transform:uppercase; }
.postcode-checker button { white-space:nowrap; }
.postcode-result { margin-bottom:14px; padding:13px 15px; color:#526b75; background:white; border:3px solid var(--ink); font-size:10px; line-height:1.5; }
.postcode-result b,.postcode-result span { display:block; }
.postcode-result b { margin-bottom:3px; font:900 20px var(--display); text-transform:uppercase; }
.postcode-result.is-covered { color:var(--ink); background:#bdf3c6; border-color:#188a42; }
.add-order-item { margin: 5px 0 12px; padding: 18px; display:grid; grid-template-columns: 150px 1fr; gap:12px; align-items:end; background:var(--yellow); border:3px solid var(--ink); box-shadow:6px 6px 0 var(--ink); }
.add-order-item label { display:grid; gap:6px; font-size:9px; font-weight:900; text-transform:uppercase; }
.add-order-item input { width:100%; min-height:49px; padding:12px; background:white; border:3px solid var(--ink); font:700 18px var(--body); }
.add-order-item .button { width:100%; min-height:49px; }
.add-order-item p { grid-column:1/-1; min-height:18px; margin:0; color:var(--ink); font-size:10px; font-weight:800; }
.continue-ordering-note { margin:0 0 35px; padding:12px 15px; color:white; background:var(--blue); border:3px solid var(--ink); font-size:11px; font-weight:700; }
.order-basket { min-height:145px; margin:18px 0 12px; display:grid; gap:12px; }
.order-basket>p { margin:0; padding:18px; color:#c6dbe1; border:2px dashed rgba(255,255,255,.45); line-height:1.55; }
.basket-item { padding:15px; display:grid; grid-template-columns:1fr auto; gap:14px; color:var(--ink); background:white; border:3px solid var(--ink); box-shadow:5px 5px 0 var(--cyan); }
.basket-item small { display:block; color:#607680; font-size:8px; font-weight:900; text-transform:uppercase; }
.basket-item h3 { margin:3px 0 5px; font-size:25px; }
.basket-item p { margin:0 0 8px; color:#536b75; font-size:9px; line-height:1.45; }
.basket-item b { font-size:10px; text-transform:uppercase; }
.basket-item-controls { display:grid; grid-template-columns:34px 28px 34px; gap:4px; align-content:start; align-items:center; }
.basket-item-controls button { width:34px; height:34px; padding:0; color:var(--ink); background:var(--yellow); border:2px solid var(--ink); font-size:18px; font-weight:900; cursor:pointer; }
.basket-item-controls span { text-align:center; font-weight:900; }
.basket-item-controls .basket-remove { width:auto; height:auto; grid-column:1/-1; margin-top:4px; padding:6px; color:white; background:var(--orange); font-size:8px; text-transform:uppercase; }
.basket-clear { margin:0 0 18px; padding:7px 10px; color:white; background:transparent; border:2px solid rgba(255,255,255,.55); font-size:8px; font-weight:900; text-transform:uppercase; cursor:pointer; }
.whatsapp-button:disabled { opacity:.45; cursor:not-allowed; filter:grayscale(1); }
.postcode-result.is-error { color:var(--ink); background:#ffd7cd; border-color:var(--orange); }
.platter-total { margin:20px 0; padding:18px; color:var(--ink); background:white; border:3px solid var(--yellow); }
.platter-total span,.platter-total strong,.platter-total small { display:block; }
.platter-total span { font-size:9px; font-weight:900; text-transform:uppercase; }
.platter-total strong { margin:5px 0; font:900 30px var(--display); text-transform:uppercase; }
.platter-total small { color:#60747c; font-size:8px; }
.visit-information { padding:70px clamp(20px,6vw,90px); display:grid; grid-template-columns:1.05fr 1fr .65fr; gap:22px; color:var(--ink); background:var(--yellow); border-top:4px solid var(--ink); }
.visit-information h2 { font-size:clamp(3.5rem,5vw,5.5rem); }
.visit-information h3 { margin:9px 0 14px; font-size:36px; }
.hours-list { margin:22px 0 0; padding:0; list-style:none; border-top:3px solid var(--ink); }
.hours-list li { padding:11px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:2px solid var(--ink); }
.hours-list span { font-weight:700; }
.delivery-panel,.social-panel { padding:30px; background:var(--cream); border:3px solid var(--ink); box-shadow:8px 8px 0 var(--ink); }
.delivery-panel > span,.social-panel > span { color:var(--orange); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.delivery-panel p,.social-panel p { color:#5f737b; font-size:12px; }
.social-icons { display:flex; gap:10px; margin-top:25px; }
.social-icons a { width:52px; height:52px; display:grid; place-items:center; color:white; background:var(--ink); border:3px solid var(--ink); transition:.2s; }
.social-icons a:hover { color:var(--ink); background:var(--cyan); transform:translateY(-3px); }
.social-icons svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:2; }
.social-icons a:first-child svg { fill:currentColor; stroke:none; }
.home-reviews { background:var(--cyan); border-top:4px solid var(--ink); }
.review-preview-grid,.reviews-grid { margin:30px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.review-preview-grid article,.reviews-grid article { padding:28px; background:white; border:3px solid var(--ink); box-shadow:7px 7px 0 var(--ink); }
.review-preview-grid span,.reviews-grid span { color:var(--orange); font-size:23px; letter-spacing:.08em; }
.review-preview-grid p,.reviews-grid p { font-size:13px; line-height:1.7; }
.review-preview-grid b,.reviews-grid b,.reviews-grid small { display:block; }
.reviews-grid small { margin-top:8px; color:#60747c; font-size:9px; }
.reviews-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:start; }
.reviews-layout .reviews-grid { grid-template-columns:1fr 1fr; }
.review-form { padding:35px; display:grid; gap:15px; background:var(--ink); color:white; border:4px solid var(--ink); box-shadow:12px 12px 0 var(--yellow); }
.review-form label { display:grid; gap:6px; font-size:9px; font-weight:900; text-transform:uppercase; }
.review-form input,.review-form select,.review-form textarea { width:100%; padding:13px; background:white; border:3px solid var(--yellow); font:inherit; }
.google-review-link { color:var(--yellow); font-weight:800; }
.honeypot { position:absolute!important; left:-10000px!important; }
.order-seo-guide { color:white; background:var(--ink); border-top:4px solid var(--yellow); }
.order-seo-guide > div { margin-top:35px; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.order-seo-guide article { padding:25px; color:var(--ink); background:var(--cream); border:3px solid var(--yellow); box-shadow:6px 6px 0 var(--cyan); }
.order-seo-guide h3 { font-size:32px; }
.order-seo-guide p { font-size:11px; line-height:1.6; }
.legal-page { max-width:950px; margin:auto; }
.legal-page h1 { margin-bottom:35px; }
.legal-page h2 { margin:35px 0 12px; font-size:38px; }
.legal-page p { max-width:780px; font-size:14px; line-height:1.8; }
.service-cards { padding: 90px clamp(20px,7vw,105px); display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.service-panel { min-height: 500px; padding: 45px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: end; color: white; border: 4px solid var(--ink); box-shadow: 10px 10px 0 var(--ink); }
.service-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.service-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 15%,rgba(2,29,43,.92)); }
.service-panel > div { position: relative; z-index: 2; }
.service-panel h2 { font-size: clamp(3rem,5vw,5.5rem); }
.service-panel p { max-width: 530px; }
.service-panel ul { margin: 15px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.service-panel li { padding: 7px 9px; color: var(--ink); background: var(--cyan); border: 2px solid var(--ink); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.service-panel.family { background: var(--orange); }
.service-panel.family::after { background: linear-gradient(rgba(230,61,49,.35),rgba(2,29,43,.93)); }
.about-story { padding: 100px clamp(20px,8vw,125px); display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.about-logo { align-self: start; padding: 15px; background: white; border: 4px solid var(--ink); box-shadow: 14px 14px 0 var(--cyan); transform: rotate(-3deg); }
.about-copy h2 { font-size: clamp(4rem,7vw,7.5rem); }
.about-copy .lead { margin: 28px 0; font: 800 24px/1.35 var(--display); }
.values { padding: 0 clamp(20px,8vw,125px) 100px; display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.people-story { display:grid; grid-template-columns:1.2fr .8fr; gap:7vw; align-items:center; color:white; background:var(--orange); border-block:4px solid var(--ink); }
.people-collage { min-height:570px; position:relative; }
.people-collage figure { position:absolute; margin:0; overflow:hidden; border:4px solid var(--ink); box-shadow:9px 9px 0 var(--deep); background:white; }
.people-collage img { width:100%; height:100%; object-fit:cover; }
.people-collage figure:nth-child(1) { width:46%; height:310px; left:0; top:0; transform:rotate(-4deg); }
.people-collage figure:nth-child(2) { width:45%; height:300px; right:3%; top:35px; transform:rotate(3deg); }
.people-collage figure:nth-child(3) { width:38%; height:260px; left:10%; bottom:0; transform:rotate(3deg); }
.people-collage figure:nth-child(4) { width:43%; height:270px; right:0; bottom:0; transform:rotate(-3deg); }
.people-copy h2 { font-size:clamp(4rem,7vw,7rem); }
.people-copy > p:not(.section-label) { color:#ffe0d8; }
.value { padding: 35px; background: white; border: 3px solid var(--ink); box-shadow: 7px 7px 0 var(--ink); }
.value b { color: var(--orange); font: 900 17px var(--display); }
.value h3 { margin: 30px 0 10px; font-size: 36px; }
.value p { margin: 0; color: #647981; font-size: 13px; }
.contact-layout { padding: 90px clamp(20px,7vw,105px); display: grid; grid-template-columns: .8fr 1.2fr; gap: 55px; }
.contact-info h2, .contact-form h2 { font-size: clamp(3.3rem,5vw,5.5rem); }
.contact-stack { margin-top: 38px; border-top: 3px solid var(--ink); }
.contact-row { padding: 23px 0; display: grid; grid-template-columns: 100px 1fr; border-bottom: 2px solid var(--ink); }
.contact-row span { color: var(--orange); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.contact-row b, .contact-row a { font: 800 20px var(--display); }
.contact-form { padding: 40px; background: var(--cyan); border: 4px solid var(--ink); box-shadow: 12px 12px 0 var(--ink); }
.form-grid { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1/-1; }
.field label { font-size: 10px; font-weight: 900; text-transform: uppercase; }
.field input, .field textarea { width: 100%; padding: 14px; color: var(--ink); background: var(--cream); border: 3px solid var(--ink); outline: none; }
.field input:focus, .field textarea:focus { box-shadow: 5px 5px 0 var(--orange); }
.form-status { min-height: 22px; margin: 15px 0 0; font-size: 12px; font-weight: 700; }
.local-guide { display:grid; grid-template-columns:1.2fr .55fr; gap:8vw; align-items:start; background:var(--cream); }
.guide-copy h2 { margin-bottom:28px; font-size:clamp(3.6rem,6vw,6.5rem); }
.guide-copy h3 { margin:38px 0 12px; font-size:36px; }
.guide-copy p { color:#4f6872; font-size:16px; }
.guide-copy a { color:var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.guide-aside { position:sticky; top:120px; padding:28px; background:white; border:4px solid var(--ink); box-shadow:11px 11px 0 var(--orange); }
.guide-aside img { width:100%; margin-bottom:25px; }
.guide-aside h3 { font-size:38px; }
.faq-shell { max-width:1050px; margin:auto; }
.faq-shell details { background:white; border:3px solid var(--ink); border-bottom:0; }
.faq-shell details:last-child { border-bottom:3px solid var(--ink); }
.faq-shell summary { padding:23px 28px; cursor:pointer; list-style:none; font:900 clamp(1.7rem,3vw,2.8rem) var(--display); text-transform:uppercase; }
.faq-shell summary::after { content:"+"; float:right; color:var(--orange); }
.faq-shell details[open] summary { color:white; background:var(--blue); }
.faq-shell details[open] summary::after { content:"–"; color:white; }
.faq-shell details p { margin:0; padding:24px 28px; color:#526b75; }
.faq-shell a { color:var(--blue); font-weight:800; }

.site-footer { padding: 60px clamp(20px,6vw,90px) 30px; display: grid; grid-template-columns: 1.6fr repeat(3,1fr); gap: 45px; color: #b6cbd2; background: var(--deep); border-top: 4px solid var(--ink); font-size: 12px; }
.site-footer img { width: 150px; margin-bottom: 18px; background: white; }
.site-footer b { display: block; margin-bottom: 15px; color: white; font: 900 18px var(--display); text-transform: uppercase; }
.site-footer a, .site-footer div > p { display: block; margin: 0 0 9px; }
.site-footer a:hover { color: var(--cyan); }
.site-footer small { grid-column: 1/-1; padding-top: 25px; border-top: 1px solid #23404c; }
.reveal { opacity: 0; transform: translateY(24px); transition: .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1000px) {
  .nav-toggle { display: block; }
  .site-nav { position: fixed; inset: 0; z-index: 89; padding: 120px 30px 105px; display: flex; flex-direction: column; justify-content: center; background: var(--cream); transform: translateX(100%); visibility:hidden; transition: transform .35s, visibility .35s; font: 900 30px var(--display); }
  .site-nav.open { transform: none; visibility:visible; }
  .site-header { z-index:92; }
  .nav-toggle { position:relative; z-index:93; }
  .site-nav .nav-cta { margin: 15px 0 0; font: 900 13px var(--body); }
  .nav-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2) { opacity: 0; }
  .nav-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .home-hero, .page-hero { grid-template-columns: 1fr; }
  .home-hero { padding-top: 70px; }
  .hut-status, .facebook-live { grid-template-columns: 1fr; }
  .camera-roll,.people-story { grid-template-columns:1fr; }
  .event-atmosphere { grid-template-columns:1fr; }
  .visual-menu-grid { grid-template-columns: repeat(2,1fr); }
  .events-grid { grid-template-columns: 1fr 1fr; }
  .platter-builder { grid-template-columns: 1fr; }
  .platter-summary { position: static; }
  .search-guide,.local-guide { grid-template-columns:1fr; }
  .guide-aside { position:static; }
  .hero-media { min-height: 560px; }
  .intro-block { grid-template-columns: 1fr; }
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .feature-card { min-height: 500px; }
  .events-card { transform: none; grid-column: 1/-1; height: 480px; }
  .split-impact, .social-proof { grid-template-columns: 1fr; }
  .experience-head { grid-template-columns: 1fr; gap: 20px; }
  .service-cards { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1.5fr 1fr 1fr; }
  .visit-information { grid-template-columns:1fr 1fr; }
  .visit-information > div:first-child { grid-column:1/-1; }
  .site-footer > div:last-of-type { grid-column: 2; }
  .home-hero { grid-template-columns:1fr; min-height:900px; align-content:end; }
  .home-hero::before { background:linear-gradient(0deg,rgba(2,29,43,.98) 0%,rgba(2,29,43,.82) 48%,rgba(2,29,43,.14) 100%); }
  .hero-real-photo { object-position:center 35%; }
  .hero-media { min-height:210px; }
  .hero-food-card { width:240px; right:3%; bottom:0; }
  .hero-badge { left:0; bottom:5%; }
  .personality-story { grid-template-columns:1fr; }
  .personality-gallery { min-height:650px; }
  .photo-page-hero { min-height:720px; }
  .hero-caption-card { right:35px; bottom:35px; }
  .hero-collage { min-height:620px; }
}

@media (max-width: 700px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  body { padding-bottom:76px; }
  .site-header, .home-hero, .page-hero, main, section { min-width: 0; max-width: 100vw; }
  .hero-copy, .hero-media, .page-hero > div { min-width: 0; width: 100%; }
  .top-strip span { display: none; }
  .top-strip { justify-content: center; }
  .site-header { min-height: 70px; padding-block:5px; }
  .brand img { width: 105px; max-height: 62px; }
  .nav-toggle { width:44px; height:42px; }
  .site-nav { padding:100px 22px 105px; justify-content:flex-start; align-items:stretch; gap:5px; overflow-y:auto; font-size:26px; }
  .site-nav a { width:100%; padding:12px 15px; display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid rgba(6,43,62,.14); }
  .site-nav a::after { content:"→"; color:var(--orange); }
  .site-nav a.active { color:white; background:var(--ink); }
  .home-hero { min-height: auto; }
  .home-hero { min-height:760px; padding:245px 20px 48px; display:block; }
  .home-hero::before { background:linear-gradient(0deg,rgba(2,29,43,.99) 0%,rgba(2,29,43,.88) 53%,rgba(2,29,43,.12) 100%); }
  .hero-real-photo { height:100%; object-position:58% top; }
  .home-hero .kicker { max-width: 100%; font-size: 9px; letter-spacing: .08em; }
  .hero-copy h1 { max-width:100%; font-size: clamp(3.8rem,18vw,5rem); letter-spacing:-.015em; overflow-wrap:normal; }
  .hero-lead { max-width: 100%; overflow-wrap: anywhere; }
  .hero-media { min-height:145px; margin-top:15px; }
  .hero-food-card { width:155px; right:0; bottom:0; box-shadow:7px 7px 0 var(--yellow); }
  .hero-food-card span { padding:7px 3px; font-size:15px; }
  .main-photo { inset: 7% 0 6%; }
  .hero-logo-card { width: 125px; }
  .hero-badge { width: 160px; padding: 12px; }
  .hero-badge strong { font-size: 24px; }
  .hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
  .hero-facts span { min-width: 0; font-size: 8px; overflow-wrap: anywhere; }
  .harbour-story { min-height:720px; }
  .harbour-story > img { object-position:42% center; }
  .harbour-story-shade { background:linear-gradient(0deg,rgba(2,29,43,.98) 0%,rgba(2,29,43,.72) 58%,rgba(2,29,43,.08) 100%); }
  .harbour-story-copy { width:auto; margin:0 20px 45px; }
  .harbour-story-copy h2 { font-size:3.8rem; }
  .harbour-proof { display:grid; }
  .hut-status { padding-block:55px; }
  .personality-story { padding-block:65px; }
  .personality-gallery { min-height:390px; }
  .personality-main { inset:0 4% 12% 0; }
  .personality-team { width:50%; height:40%; }
  .personality-story .intro-heading h2 { font-size:4rem; }
  .intro-heading { grid-template-columns: 1fr; }
  .hut-status { padding-inline: 20px; }
  .status-board { grid-template-columns: 1fr; }
  .status-board article, .status-board article:nth-child(even) { border-right: 0; }
  .status-board .status-wide { grid-column: 1; }
  .interactive-menu-tools { display: block; padding-inline: 20px; }
  .menu-controls { margin-top: 22px; justify-content: flex-start; }
  .visual-menu-grid, .events-grid { grid-template-columns: 1fr; }
  .visual-menu-card { min-height: 420px; }
  .facebook-live { padding-inline: 20px; }
  .event-atmosphere { padding-inline:20px; }
  .camera-roll,.people-story { padding-inline:20px; }
  .camera-roll { gap:35px; }
  .camera-roll-head h2 { font-size:clamp(3.8rem,17vw,5rem); }
  .camera-roll-head .button { width:100%; }
  .camera-mosaic { min-height:0; width:100%; display:grid; grid-auto-flow:column; grid-auto-columns:82%; gap:15px; overflow-x:auto; padding:7px 12px 18px 2px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .camera-mosaic::-webkit-scrollbar { display:none; }
  .camera-mosaic figure,.mosaic-a,.mosaic-b,.mosaic-c,.mosaic-d,.mosaic-e,.mosaic-f { position:relative; inset:auto; width:100%; height:310px; transform:none; scroll-snap-align:start; }
  .people-collage { min-height:760px; }
  .people-collage figure:nth-child(1) { width:62%; height:270px; }
  .people-collage figure:nth-child(2) { width:56%; height:260px; top:180px; }
  .people-collage figure:nth-child(3) { width:54%; height:240px; bottom:115px; left:0; }
  .people-collage figure:nth-child(4) { width:58%; height:250px; bottom:0; }
  .event-photo-wall { min-height:710px; }
  .event-photo-wall .event-photo-main { width:88%; height:340px; }
  .event-photo-wall figure:nth-child(2) { width:62%; height:250px; top:325px; right:0; }
  .event-photo-wall figure:nth-child(3) { width:62%; height:245px; right:auto; left:0; bottom:0; }
  .choice-row, .ingredient-grid, .builder-contact { grid-template-columns: 1fr; }
  .order-category-grid { grid-template-columns:1fr 1fr; }
  .fulfilment-choice { grid-template-columns:1fr; }
  .postcode-checker { grid-template-columns:1fr; }
  .add-order-item { grid-template-columns:1fr; }
  .add-order-item p { grid-column:1; }
  .basket-item { grid-template-columns:1fr; }
  .basket-item-controls { grid-template-columns:38px 32px 38px; }
  .builder-options { padding: 24px 18px; }
  .intro-heading h2 { font-size: 3.6rem; }
  .feature-grid { width:100%; padding-inline:20px; display:grid; grid-auto-flow:column; grid-auto-columns:84%; grid-template-columns:none; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .feature-grid::-webkit-scrollbar { display:none; }
  .feature-card, .events-card { min-height:470px; height:470px; transform:none; grid-column:auto; scroll-snap-align:start; }
  .drinks-card img { object-position: 70% center; }
  .split-impact { min-height:0; padding:65px 20px 70px; gap:38px; }
  .impact-copy h2 { font-size:clamp(3.6rem,17vw,5rem); }
  .impact-copy > p:not(.kicker) { margin:22px 0; color:white; }
  .impact-copy .button { width:100%; color:var(--ink); background:var(--cream); }
  .bottle-collage { min-height:0; width:100%; display:grid; grid-auto-flow:column; grid-auto-columns:82%; gap:16px; overflow-x:auto; padding:8px 12px 18px 2px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .bottle-collage::-webkit-scrollbar { display:none; }
  .bottle-collage figure,.bottle-one,.bottle-two,.bottle-three { position:relative; inset:auto; width:100%; height:auto; min-height:300px; transform:none; scroll-snap-align:start; box-shadow:7px 7px 0 var(--ink); }
  .bottle-collage img { height:260px; }
  .experience-row { grid-template-columns: 35px 1fr 25px; }
  .experience-row p { grid-column: 2; }
  .social-proof { padding-block: 80px; }
  .location-cta { grid-template-columns: 1fr; }
  .search-guide { padding-inline:20px; }
  .location-copy { border-left: 4px solid var(--ink); border-top: 0; }
  .page-hero { min-height: auto; padding-block: 70px; }
  .page-hero h1 { max-width:100%; font-size: clamp(3.8rem,18vw,5rem); letter-spacing:-.015em; overflow-wrap:normal; }
  .page-hero-image { height: 300px; }
  .photo-page-hero { min-height:620px; padding:245px 20px 48px; display:flex; align-items:end; }
  .photo-page-hero .page-hero-copy { padding:0; }
  .photo-page-hero .page-hero-overlay { background:linear-gradient(0deg,rgba(2,29,43,.98),rgba(2,29,43,.76) 55%,rgba(2,29,43,.06)); }
  .photo-page-hero h1 { font-size:4.2rem; }
  .hero-caption-card { display:none; }
  .menu-photo-hero .page-hero-bg { object-position:58% center; }
  .events-photo-hero .page-hero-bg { object-position:48% center; }
  .contact-photo-hero .page-hero-bg { object-position:62% center; }
  .order-photo-hero h1,.about-photo-hero h1,.gallery-photo-hero h1 { font-size:4.2rem; }
  .order-photo-hero .page-hero-bg { object-position:55% center; }
  .gallery-photo-hero .page-hero-bg { object-position:56% center; }
  .about-photo-hero .page-hero-bg { object-position:58% center; }
  .menu-head { display: block; }
  .menu-head p { margin-top: 20px; }
  .menu-grid { grid-template-columns: 1fr; }
  .menu-section:not(.dynamic-menu-section) { display:none; }
  .dynamic-menu-section { padding:45px 0 65px 20px; overflow:hidden; }
  .dynamic-menu-section .visual-menu-grid { width:100%; display:grid; grid-auto-flow:column; grid-auto-columns:84%; grid-template-columns:none; gap:16px; overflow-x:auto; padding:2px 20px 18px 2px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .dynamic-menu-section .visual-menu-grid::-webkit-scrollbar { display:none; }
  .dynamic-menu-section .visual-menu-card { min-height:450px; scroll-snap-align:start; }
  .menu-note { align-items: flex-start; flex-direction: column; }
  .gallery-ribbon { grid-template-columns: 1fr 1fr; }
  .gallery-ribbon img { height: 210px; }
  .service-cards { padding-inline: 20px; }
  .service-panel { min-height: 520px; padding: 28px; }
  .about-story, .contact-layout { grid-template-columns: 1fr; }
  .values { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .contact-form { padding: 27px 20px; }
  .field.full { grid-column: auto; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .visit-information { grid-template-columns:1fr; padding-inline:20px; }
  .reviews-layout { grid-template-columns:1fr; }
  .review-preview-grid,.reviews-grid,.reviews-layout .reviews-grid { grid-template-columns:1fr; }
  .home-events .events-grid,.home-reviews .review-preview-grid { width:calc(100% + 20px); display:grid; grid-auto-flow:column; grid-auto-columns:84%; grid-template-columns:none; gap:16px; overflow-x:auto; padding:3px 20px 18px 2px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .home-events .events-grid::-webkit-scrollbar,.home-reviews .review-preview-grid::-webkit-scrollbar { display:none; }
  .home-events .event-card,.home-reviews .review-preview-grid article { scroll-snap-align:start; }
  .order-category-grid { grid-template-columns:1fr; }
  .order-seo-guide > div { grid-template-columns:1fr; }
  .visit-information > div:first-child { grid-column:1; }
  .location-cta { gap:0; }
  .location-cta .real-map { min-height:360px; }
  .location-cta .real-map img { min-height:360px; object-fit:cover; }
  .location-copy { padding:45px 24px; }
  .whatsapp-float { min-width:0; right:12px; bottom:88px; padding:10px; border-radius:50%; box-shadow:4px 4px 0 var(--ink); }
  .whatsapp-float svg { width:27px; height:27px; }
  .whatsapp-float span { display:none; }
  .social-float { display:none; }
  .mobile-bottom-nav { position:fixed; left:0; right:0; bottom:0; z-index:91; min-height:68px; padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); display:grid; grid-template-columns:repeat(4,1fr); gap:5px; color:white; background:var(--deep); border-top:3px solid var(--cyan); box-shadow:0 -5px 18px rgba(2,29,43,.2); }
  .mobile-bottom-nav a,.mobile-bottom-nav button { min-width:0; padding:7px 3px; display:grid; place-items:center; gap:3px; color:white; background:transparent; border:0; border-radius:5px; font:800 9px var(--body); letter-spacing:.02em; text-transform:uppercase; }
  .mobile-bottom-nav a.active,.mobile-bottom-nav button.active { color:var(--ink); background:var(--yellow); }
  .mobile-bottom-nav svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; }
  .mobile-bottom-nav button { cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
  .mobile-more-sheet[hidden] { display:none!important; }
  .mobile-more-sheet { position:fixed; inset:0; z-index:110; display:grid; align-items:end; }
  .mobile-more-backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; background:rgba(2,29,43,.76); border:0; opacity:0; transition:opacity .22s; }
  .mobile-more-panel { position:relative; z-index:1; max-height:min(82vh,720px); padding:22px 18px calc(22px + env(safe-area-inset-bottom)); overflow-y:auto; color:var(--ink); background:var(--cream); border-top:4px solid var(--ink); border-radius:20px 20px 0 0; box-shadow:0 -10px 35px rgba(2,29,43,.35); transform:translateY(100%); transition:transform .24s ease; }
  .mobile-more-sheet.open .mobile-more-backdrop { opacity:1; }
  .mobile-more-sheet.open .mobile-more-panel { transform:none; }
  .mobile-more-head { margin-bottom:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }
  .mobile-more-head small { color:var(--orange); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
  .mobile-more-head h2 { margin-top:4px; font-size:2.4rem; }
  .mobile-more-close { width:48px; height:48px; flex:0 0 48px; padding:0; color:white; background:var(--ink); border:3px solid var(--ink); border-radius:50%; font-size:29px; line-height:1; touch-action:manipulation; }
  .mobile-more-panel>nav { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
  .mobile-more-panel>nav a { min-height:78px; padding:13px; display:flex; flex-direction:column; justify-content:center; background:white; border:3px solid var(--ink); box-shadow:4px 4px 0 var(--cyan); }
  .mobile-more-panel>nav span,.mobile-more-panel>nav b { display:block; }
  .mobile-more-panel>nav span { color:#64777f; font-size:8px; font-weight:800; text-transform:uppercase; }
  .mobile-more-panel>nav b { margin-top:4px; font:900 22px var(--display); text-transform:uppercase; }
  .mobile-more-socials { margin-top:17px; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
  .mobile-more-socials a { min-height:48px; padding:8px 3px; display:grid; place-items:center; color:white; border:2px solid var(--ink); font-size:9px; font-weight:900; text-align:center; text-transform:uppercase; }
  .mobile-more-socials .facebook { background:#1877f2; }
  .mobile-more-socials .instagram { background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
  .mobile-more-socials .tiktok { background:#111; }
  .mobile-nav-socials { margin-top:14px; padding-top:14px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; border-top:3px solid var(--ink); }
  .mobile-nav-socials a { min-height:48px; padding:10px 5px; justify-content:center; color:white; border:2px solid var(--ink); font:900 10px var(--body); }
  .mobile-nav-socials a::after { display:none; }
  .mobile-nav-socials .facebook { background:#1877f2; }
  .mobile-nav-socials .instagram { background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
  .mobile-nav-socials .tiktok { background:#111; }
  .section { padding-block:65px; }
  .button { min-height:52px; padding:14px 17px; text-align:center; line-height:1.25; }
  .button-row .button { width:100%; }
  .visual-menu-card { min-height:0; }
  .visual-menu-card > img,.menu-placeholder { height:230px; }
  .visual-menu-card > div { padding:20px; }
  .menu-controls button { min-height:44px; flex:1 1 42%; }
  .gallery-filters button { min-height:44px; padding:11px 13px; }
  .gallery-ribbon { gap:10px; }
  .gallery-ribbon img { height:175px; }
  .site-footer { padding-bottom:105px; }
  .footer-brand { grid-column: 1/-1; }
  .site-footer .footer-follow { grid-column:1/-1!important; width:100%; padding-top:5px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  .site-footer .footer-follow>b,.site-footer .footer-follow>p { grid-column:1/-1; }
  .site-footer .footer-follow>p { display:none; }
  .site-footer .footer-follow>a { min-height:43px; margin:0; padding:10px 5px; display:grid; place-items:center; color:white; background:#123b4d; border:1px solid #315464; font-size:10px; text-align:center; }
  .site-footer small { grid-column: 1/-1; }
}

@media (min-width:701px) {
  .mobile-bottom-nav,.mobile-nav-socials,.mobile-more-sheet { display:none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
}

@media print {
  .top-strip,.site-header,.page-hero,.interactive-menu-tools,.menu-section:not(.dynamic-menu-section),.gallery-ribbon,.site-footer { display:none !important; }
  body { background:white; }
  .dynamic-menu-section { display:block !important; padding:20px; }
  .visual-menu-grid { display:grid; grid-template-columns:1fr 1fr; }
  .visual-menu-card { min-height:0; box-shadow:none; break-inside:avoid; }
  .visual-menu-card > img,.menu-placeholder { height:120px; }
}
