/*
Theme Name: Kampot Final
Theme URI: https://kampotrestaurant.in
Author: Kampot
Description: Faithful WordPress edition of the finalized Kampot Pan-Asian website.
Version: 2.3.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: kampot-final
*/

:root {
  --pine: #214a3a;
  --deep: #15372c;
  --deepest: #0d2a21;
  --cream: #f5edda;
  --paper: #fbf8ef;
  --ink: #1a2923;
  --muted: #69736d;
  --gold: #c6a254;
  --terra: #c45f38;
  --sage: #91a07e;
  --line: rgba(29, 62, 50, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; }
body.admin-bar .site-header { top: 32px; }
.site-header .logo-crop img,.site-footer .logo-crop img{transform:none;width:100%;height:100%;object-fit:contain}
.site-header .logo-crop,.site-footer .logo-crop{height:58px;width:188px}
.site-header{grid-template-columns:250px 1fr 300px}
.desktop-nav>a{position:relative}.desktop-nav>a:not(:last-child)::after{content:'⌄';font-size:10px;margin-left:7px;opacity:.65}
.desktop-nav>a:last-child::after{display:none}.nav-trigger{cursor:pointer}.nav-popover{z-index:120}.nav-popover a span{color:var(--terra)}
.mobile-panel{visibility:hidden;pointer-events:none}.mobile-panel.is-open{visibility:visible;pointer-events:auto}.menu-open{overflow:hidden}
.home-hero{margin-top:76px}
.notice-poster>img{object-position:center}
.newsletter-pop{display:none}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
body, button, input, select, textarea { -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, .food-card h3, .notice-card h3, blockquote { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.035em; }
em { color: var(--terra); font-weight: 400; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto 0; height: 76px; background: var(--deep); display: grid; grid-template-columns: 250px 1fr 300px; align-items: center; color: white; padding: 0 24px; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand-link { height: 58px; width: 188px; overflow: hidden; display: block; }
.logo-crop { display: block; width: 190px; height: 58px; overflow: hidden; position: relative; }
.logo-crop img { width: 190px; height: 190px; max-width: none; transform: translateY(-65px); }
.logo-light img { filter: brightness(0) invert(1); opacity: .96; }
.desktop-nav { display: flex; justify-content: center; align-items: stretch; gap: 30px; height: 100%; }
.desktop-nav > a, .nav-trigger { display: flex; align-items: center; height: 100%; border: 0; background: transparent; color: white; font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.nav-trigger span { margin-left: 7px; font-size: 11px; opacity: .7; }
.nav-group { height: 100%; position: relative; }
.nav-popover { opacity: 0; pointer-events: none; transform: translate(-50%,-6px); position: absolute; top: 100%; left: 50%; min-width: 220px; padding: 10px; background: var(--paper); color: var(--ink); box-shadow: 0 18px 50px rgba(4,18,13,.22); transition: .2s ease; border-top: 3px solid var(--gold); }
.nav-popover.is-open { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.nav-popover a { display: flex; justify-content: space-between; padding: 13px 14px; border-bottom: 1px solid var(--line); font-family: Georgia, serif; font-size: 17px; }
.nav-popover a:last-child { border: 0; }
.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 18px; }
.header-location { font-size: 12px; display: flex; gap: 7px; align-items: center; }
.header-location::first-letter { color: var(--gold); }
.header-cta { background: var(--terra); padding: 14px 20px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; flex-direction: column; align-items: center; justify-content: center; gap: 7px; }
.menu-toggle i { height: 1px; width: 22px; background: white; }
.mobile-panel { position: fixed; inset: 0; background: var(--deepest); color: white; padding: 92px 32px 36px; transform: translateX(100%); transition: transform .35s ease; display: flex; flex-direction: column; align-items: flex-start; }
.mobile-panel.is-open { transform: none; }
.mobile-close { position: absolute; top: 23px; right: 24px; background: transparent; border: 0; color: white; font-size: 38px; }
.mobile-panel p { color: var(--gold); font-size: 11px; letter-spacing: .16em; }
.mobile-panel > a { font: 34px/1.2 Georgia, serif; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.12); width: 100%; }
.mobile-panel .mobile-book { margin-top: 28px; font: 700 12px Arial; letter-spacing: .1em; text-transform: uppercase; background: var(--terra); padding: 17px 20px; width: auto; border: 0; }

.home-hero { min-height: 760px; height: 100vh; max-height: 980px; background-size: cover; background-position: center; color: white; display: flex; padding: 140px 7vw 80px; flex-direction: column; justify-content: center; align-items: center; text-align: center; position: relative; }
.home-hero::before { content: ""; position: absolute; inset: 76px 22px 22px; border: 1px solid rgba(255,255,255,.28); pointer-events: none; }
.home-hero h1 { position: relative; max-width: 980px; font-size: clamp(52px, 6vw, 86px); line-height: .96; margin: 18px 0 24px; text-shadow: 0 3px 24px rgba(0,0,0,.25); }
.hero-copy { position: relative; max-width: 590px; font-size: 17px; line-height: 1.7; color: rgba(255,255,255,.88); }
.hero-actions { position: relative; display: flex; gap: 12px; margin-top: 18px; }
.scroll-note { position: absolute; bottom: 44px; font-size: 9px; letter-spacing: .18em; display: flex; gap: 10px; align-items: center; }
.scroll-note span { font-size: 16px; }
.eyebrow { font-size: 10px; line-height: 1.3; font-weight: 800; letter-spacing: .18em; color: var(--terra); }
.eyebrow.light { color: var(--gold); }
.button { min-height: 48px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; text-transform: uppercase; font-size: 10px; font-weight: 800; letter-spacing: .11em; border: 1px solid transparent; transition: .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--terra); color: white; }
.button.ghost { border-color: rgba(255,255,255,.58); color: white; background: rgba(14,35,28,.12); }
.button.dark { background: var(--deep); color: white; }
.button.cream { background: var(--cream); color: var(--deep); }
.text-link { display: inline-flex; gap: 28px; align-items: center; padding-bottom: 8px; border-bottom: 1px solid currentColor; text-transform: uppercase; font-size: 10px; letter-spacing: .13em; font-weight: 800; }

.pattern-band { height: 42px; background: var(--pine); color: var(--cream); display: flex; align-items: center; justify-content: center; gap: 30px; overflow: hidden; white-space: nowrap; }
.pattern-band span { font-size: 13px; }
.pattern-band .pattern-icon { color: var(--gold); font-size: 17px; line-height: 1; flex: 0 0 auto; }

@media (min-width:1051px) {
  .nav-group:hover .nav-popover, .nav-group:focus-within .nav-popover { opacity:1; pointer-events:auto; transform:translate(-50%,0); }
  .nav-group:hover .nav-trigger span, .nav-group:focus-within .nav-trigger span { transform:rotate(180deg); }
  .nav-trigger span { transition:transform .2s ease; }
}

/* Crop the square source artwork to its wordmark, so the header logo stays legible. */
.site-header .logo-crop { width:230px; height:64px; }
.site-header .logo-crop img { width:230px!important; height:230px!important; max-width:none; object-fit:initial; transform:translateY(-69px)!important; }
@media(max-width:760px){.site-header .logo-crop{width:180px;height:54px}.site-header .logo-crop img{width:180px!important;height:180px!important;transform:translateY(-54px)!important}}

.intro-section, .food-discovery, .social-section, .menu-explorer, .story-manifesto, .story-values, .story-timeline, .experience-list, .location-list, .journal-grid, .booking-layout { padding: 110px max(7vw, 28px); }
.section-heading.centered { text-align: center; max-width: 790px; margin: 0 auto 70px; }
.section-heading h2 { font-size: clamp(42px, 5vw, 68px); line-height: 1.02; margin: 15px 0 0; }
.section-heading > p:last-child { max-width: 620px; margin: 22px auto 0; color: var(--muted); line-height: 1.7; }
.story-layout { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: center; }
.story-image-wrap { position: relative; padding: 0 24px 28px 0; }
.story-image-wrap::after { content: ""; position: absolute; inset: 36px 0 0 34px; border: 1px solid var(--gold); z-index: -1; }
.story-image-wrap img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.story-image-wrap span { position: absolute; bottom: 0; right: 0; background: var(--deep); color: white; padding: 16px 18px; font-size: 9px; letter-spacing: .13em; }
.story-copy { font: 20px/1.75 Georgia, serif; color: #3e4843; position: relative; }
.story-copy p:not(.dropcap) { margin-bottom: 22px; }
.dropcap { float: left; font: 80px/.8 Georgia, serif; color: var(--terra); margin: 5px 14px 0 0; }
.story-copy .text-link { font-family: Arial, sans-serif; margin-top: 14px; color: var(--deep); }

.notice-section { --notice-bg: #dfb3a4; padding: 0 0 4px; background: var(--notice-bg); color: var(--deepest); position: relative; overflow: hidden; }
.notice-section::before, .notice-section::after { content: ""; display: block; height: 24px; background: radial-gradient(circle at 18px -2px, var(--paper) 20px, transparent 21px) 0 0 / 36px 24px repeat-x; }
.notice-section::after { transform: rotate(180deg); }
.section-heading.split { position: relative; display: grid; grid-template-columns: 1fr .6fr; gap: 50px; max-width: 1180px; margin: 0 auto 55px; align-items: end; }
.section-heading.split h2 { font-size: clamp(42px, 5vw, 66px); line-height: 1; margin: 12px 0 0; }
.section-heading.split > p { color: rgba(255,255,255,.7); line-height: 1.7; max-width: 420px; }
.notice-marquee { width: max-content; padding: 16px 0 12px; }
.notice-marquee > div { display: flex; animation: noticeTicker 28s linear infinite; }
.notice-marquee span { display: flex; align-items: center; gap: 18px; padding-right: 18px; white-space: nowrap; font-size: clamp(31px, 3vw, 48px); font-weight: 800; letter-spacing: -.045em; }
.notice-marquee b { color: #ee8d18; font-size: .72em; }
.notice-marquee-bottom { padding: 14px 0 17px; transform: translateX(-16%); }
.notice-marquee-bottom > div { animation-direction: reverse; animation-duration: 32s; }
@keyframes noticeTicker { to { transform: translateX(-50%); } }
.notice-grid { max-width: 1280px; margin: 22px auto; padding: 0 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.notice-poster { min-width: 0; aspect-ratio: .72; position: relative; overflow: hidden; border-radius: 8px; background: var(--deep); box-shadow: 0 18px 45px rgba(60,25,14,.16); isolation: isolate; }
.notice-poster > img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.notice-poster:hover > img { transform: scale(1.035); }
.notice-menu-poster { background: #f6e5bd; }
.notice-menu-poster > img { object-fit: cover; object-position: center; }
.notice-locations-poster { display: grid; grid-template-rows: repeat(3, 1fr); }
.notice-locations-poster > div { background-size: cover; background-position: center; transition: transform .5s ease; }
.notice-locations-poster:hover > div { transform: scale(1.02); }
.notice-swipe { display: none; }
@media (prefers-reduced-motion: reduce) { .notice-marquee > div { animation: none; } }

.food-discovery { background: var(--cream); }
.food-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1240px; margin: 0 auto; }
.food-card { background: var(--paper); }
.food-card:nth-child(2) { transform: translateY(32px); }
.food-card-image { height: 340px; background-size: cover; }
.food-card > div:last-child { padding: 30px; }
.food-card h3 { font-size: 31px; line-height: 1.08; margin: 10px 0 14px; }
.food-card > div > p:last-child { color: var(--muted); line-height: 1.6; font-size: 14px; }
.center-action { text-align: center; margin-top: 80px; }
.experience-banner { min-height: 640px; background-size: cover; background-position: center; display: flex; align-items: center; color: white; padding: 100px 8vw; }
.experience-banner > div { max-width: 600px; }
.experience-banner h2 { font-size: clamp(48px, 5vw, 70px); line-height: 1; margin: 16px 0 24px; }
.experience-banner p:not(.eyebrow) { max-width: 520px; line-height: 1.7; color: rgba(255,255,255,.82); }
.experience-banner .button { margin-top: 18px; }

.flipbook-section { background: var(--deep); color: white; padding: 105px max(5vw, 24px) 95px; overflow: hidden; }
.flipbook-heading { max-width: 1260px; margin: 0 auto 46px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; }
.flipbook-heading h2 { font-size: clamp(48px, 5.2vw, 74px); line-height: .98; margin: 14px 0 0; }
.flipbook-heading h2 em { color: var(--gold); font-weight: 400; }
.flipbook-heading > p { max-width: 470px; margin: 0 0 7px; color: rgba(255,255,255,.68); line-height: 1.75; }
.flipbook-reader { max-width: 1260px; margin: auto; background: var(--deepest); border: 1px solid rgba(255,255,255,.14); box-shadow: 0 35px 90px rgba(0,0,0,.35); outline: none; }
.flipbook-topbar { height: 55px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px 0 24px; border-bottom: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.55); font-size: 9px; letter-spacing: .18em; }
.flipbook-topbar button { border: 0; background: none; color: white; text-transform: uppercase; font-size: 9px; letter-spacing: .12em; cursor: pointer; padding: 10px 0 10px 16px; }
.flipbook-topbar button b { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-left: 8px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-size: 15px; }
.flipbook-stage { position: relative; min-height: 610px; display: grid; place-items: center; padding: 38px 68px; background: radial-gradient(circle at 50% 40%, #315648 0, #183e32 48%, #0c2a21 100%); perspective: 2200px; }
.flipbook-stage::before { content: ""; position: absolute; width: min(82%, 900px); height: 46px; left: 50%; bottom: 26px; transform: translateX(-50%); background: rgba(0,0,0,.42); filter: blur(18px); border-radius: 50%; }
.flipbook-spread { position: relative; z-index: 1; display: flex; justify-content: center; align-items: center; max-width: 940px; width: 100%; transform-style: preserve-3d; transform-origin: center; }
.flipbook-spread.turn-next { animation: bookNext .48s ease both; }
.flipbook-spread.turn-prev { animation: bookPrev .48s ease both; }
@keyframes bookNext { from { opacity: .45; transform: rotateY(-8deg) scale(.985); } to { opacity: 1; transform: rotateY(0) scale(1); } }
@keyframes bookPrev { from { opacity: .45; transform: rotateY(8deg) scale(.985); } to { opacity: 1; transform: rotateY(0) scale(1); } }
.flipbook-page { width: 50%; aspect-ratio: 2828 / 4000; position: relative; background: #eee7db; box-shadow: 0 10px 28px rgba(0,0,0,.22); overflow: hidden; }
.flipbook-page.single { width: 48%; box-shadow: 0 18px 45px rgba(0,0,0,.38); }
.flipbook-page.page-left:not(.single) { transform: rotateY(1.1deg); transform-origin: right center; }
.flipbook-page.page-right { transform: rotateY(-1.1deg); transform-origin: left center; }
.flipbook-page.page-left:not(.single)::after, .flipbook-page.page-right::after { content: ""; position: absolute; top: 0; bottom: 0; width: 7%; pointer-events: none; }
.flipbook-page.page-left:not(.single)::after { right: 0; background: linear-gradient(90deg, transparent, rgba(0,0,0,.16)); }
.flipbook-page.page-right::after { left: 0; background: linear-gradient(90deg, rgba(0,0,0,.14), transparent); }
.flipbook-page img { display: block; width: 100%; height: 100%; object-fit: contain; }
.flipbook-page > span { position: absolute; right: 9px; bottom: 7px; min-width: 22px; height: 22px; padding: 0 4px; display: grid; place-items: center; border-radius: 50%; background: rgba(12,42,33,.82); color: white; font-size: 8px; letter-spacing: .06em; }
.flipbook-edge { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); width: 43px; height: 43px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: rgba(9,30,23,.65); color: white; font: 30px/1 Georgia, serif; cursor: pointer; backdrop-filter: blur(5px); transition: .2s ease; }
.flipbook-edge:hover:not(:disabled) { background: var(--terra); border-color: var(--terra); }
.flipbook-edge:disabled { opacity: .22; cursor: default; }
.flipbook-edge.previous { left: 18px; }.flipbook-edge.next { right: 18px; }
.flipbook-controls { min-height: 72px; display: grid; grid-template-columns: auto 1fr auto auto; gap: 25px; align-items: center; padding: 0 25px; }
.flipbook-controls button { border: 0; background: none; color: white; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; cursor: pointer; }
.flipbook-controls button:disabled { opacity: .28; cursor: default; }
.flipbook-controls button span { color: var(--gold); margin: 0 5px; }
.flipbook-progress { height: 1px; background: rgba(255,255,255,.18); overflow: hidden; }
.flipbook-progress span { display: block; height: 100%; background: var(--gold); transition: width .35s ease; }
.flipbook-controls p { margin: 0; color: rgba(255,255,255,.52); font-size: 10px; white-space: nowrap; }.flipbook-controls p strong { color: white; }
.flipbook-hint { display: none; }
.flipbook-fullscreen { position: fixed; z-index: 200; inset: 0; padding: 12px; display: grid; place-items: center; background: rgba(5,21,16,.97); overflow: auto; }
.flipbook-fullscreen .flipbook-heading { display: none; }
.flipbook-fullscreen .flipbook-reader { width: min(1380px, 100%); max-width: none; margin: auto; }
.flipbook-fullscreen .flipbook-stage { height: calc(100vh - 151px); min-height: 520px; }
.flipbook-fullscreen .flipbook-spread { max-width: min(1120px, calc((100vh - 190px) * 1.414)); }

.locations-preview { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 680px; background: var(--paper); }
.location-image { position: relative; min-height: 600px; }
.location-image img { width: 100%; height: 100%; object-fit: cover; }
.image-stamp { position: absolute; right: 24px; bottom: 24px; width: 92px; height: 92px; border-radius: 50%; background: var(--cream); color: var(--deep); display: grid; place-items: center; text-align: center; font-size: 9px; letter-spacing: .08em; line-height: 1.6; }
.location-content { padding: 90px 7vw; display: flex; flex-direction: column; justify-content: center; }
.location-content h2 { font-size: clamp(42px, 4.6vw, 64px); line-height: 1; margin: 14px 0 45px; }
.location-mini { display: grid; grid-template-columns: 44px 1fr 40px; gap: 18px; align-items: center; padding: 22px 0; border-top: 1px solid var(--line); }
.location-mini:nth-of-type(2) { border-bottom: 1px solid var(--line); }
.location-mini > span { color: var(--terra); font: italic 18px Georgia, serif; }
.location-mini h3 { margin: 0 0 7px; font: 25px Georgia, serif; }
.location-mini p { margin: 0; color: var(--muted); font-size: 13px; }
.location-content .text-link { align-self: flex-start; margin-top: 30px; }

.kampot-home-section { background: var(--deepest); color: white; }
.kampot-home-ribbon { min-height: 64px; padding: 16px 28px; display: flex; align-items: center; justify-content: center; gap: 18px; background: var(--terra); font-size: clamp(16px, 1.7vw, 25px); font-weight: 800; text-align: center; }
.kampot-home-ribbon span { color: var(--gold); }
.kampot-home-visual { min-height: 690px; padding: 78px max(5vw, 48px) 56px; background-size: cover; background-position: center; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.kampot-home-visual::before { content: ""; position: absolute; inset: 24px; border: 1px solid rgba(255,255,255,.2); pointer-events: none; }
.kampot-home-visual::after { content: ""; position: absolute; right: -40px; bottom: -46px; width: 340px; height: 122px; opacity: .28; background: repeating-linear-gradient(90deg, var(--cream) 0 36px, transparent 36px 72px), repeating-linear-gradient(0deg, var(--cream) 0 36px, transparent 36px 72px); transform: rotate(-5deg); mix-blend-mode: soft-light; }
.kampot-home-main, .kampot-home-bottom, .kampot-home-seal { position: relative; z-index: 2; }
.kampot-home-main { max-width: 790px; }
.kampot-home-main h2 { margin: 17px 0 0; font-size: clamp(58px, 6.4vw, 96px); line-height: .91; text-transform: uppercase; letter-spacing: -.055em; }
.kampot-home-bottom { max-width: 690px; display: flex; align-items: end; gap: 35px; }
.kampot-home-bottom p { max-width: 470px; margin: 0; font: 24px/1.38 Georgia, serif; color: rgba(255,255,255,.82); }
.kampot-home-bottom .button { flex: none; }
.kampot-home-seal { position: absolute; right: 4.5vw; top: 75px; width: 142px; height: 142px; border: 1px solid var(--gold); border-radius: 50%; display: grid; place-content: center; gap: 7px; text-align: center; color: var(--gold); background: rgba(8,36,27,.55); backdrop-filter: blur(5px); transform: rotate(7deg); }
.kampot-home-seal span { font-size: 8px; font-weight: 800; letter-spacing: .18em; }.kampot-home-seal strong { font-size: 22px; }

.kampot-love-section { padding: 78px max(4vw, 24px) 86px; background: white; text-align: center; overflow: hidden; }
.kampot-love-section h2 { margin: 11px 0 48px; font: 700 clamp(38px, 4vw, 60px)/1 Georgia, Arial, sans-serif; letter-spacing: -.045em; }
.kampot-love-badges { max-width: 1380px; margin: auto; display: grid; grid-template-columns: repeat(8, minmax(112px, 1fr)); gap: 18px; }
.kampot-love-badges > div { aspect-ratio: 1; border-radius: 50%; background: #f7f5ef; border: 1px solid rgba(21,55,44,.1); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: var(--deep); transition: .25s ease; }
.kampot-love-badges > div:nth-child(even) { background: var(--deep); color: white; }
.kampot-love-badges > div:hover { transform: translateY(-7px); border-color: var(--gold); }
.kampot-love-badges strong { font: 700 clamp(22px, 2vw, 34px)/1 Georgia, serif; letter-spacing: -.04em; }.kampot-love-badges span { font-size: 8px; line-height: 1.35; text-transform: uppercase; letter-spacing: .12em; opacity: .68; }

.social-section { text-align: center; }
.social-section h2 { font: 400 clamp(34px, 4vw, 58px) Georgia, serif; letter-spacing: -.03em; }
.social-section h2 span { color: var(--terra); }
.social-grid { max-width: 1160px; margin: 45px auto 0; display: grid; grid-template-columns: 1fr 1fr 1fr; }
.social-grid > div { min-height: 390px; background-size: cover; background-position: center; }
.social-quote { background: var(--deep); color: white; padding: 46px 35px; display: flex; flex-direction: column; justify-content: center; }
.social-quote small { color: var(--gold); letter-spacing: .15em; }
.social-quote strong { margin: 30px 0; font: 31px/1.25 Georgia, serif; }
.social-quote span { color: rgba(255,255,255,.6); font-size: 12px; }

.site-footer { background: var(--deepest); color: white; }
.footer-news { padding: 78px max(7vw, 28px); display: grid; grid-template-columns: 1fr .9fr; gap: 80px; align-items: end; background: var(--terra); border-bottom: 1px solid rgba(255,255,255,.2); }
.footer-news .eyebrow { color: white; }
.footer-news h2 { max-width: 610px; font-size: clamp(32px, 3.4vw, 50px); line-height: 1.08; margin: 12px 0 0; }
.footer-news form { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid rgba(255,255,255,.4); }
.footer-news input { background: transparent; border: 0; color: white; padding: 17px 0; outline: none; }
.footer-news input::placeholder { color: rgba(255,255,255,.72); }
.footer-news button { background: transparent; border: 0; color: white; text-transform: uppercase; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.footer-nav { min-height: 68px; padding: 0 max(7vw, 28px); display: flex; align-items: center; gap: 32px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.footer-nav a:last-child { margin-left: auto; color: var(--gold); }
.footer-grid { padding: 70px max(7vw, 28px); display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.footer-grid .logo-crop { margin-bottom: 12px; }
.footer-identity > p { max-width: 360px; color: rgba(255,255,255,.65); line-height: 1.7; }
.footer-grid h3 { color: var(--gold); font: 400 28px Georgia, serif; letter-spacing: -.02em; margin: 28px 0 18px; }
.footer-identity .legal-copy { color: white; font-size: 13px; line-height: 1.6; }
.footer-addresses > h3 { margin-top: 0; font-size: 36px; color: white; }
.address-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; }
.address-grid address { display: flex; flex-direction: column; align-items: flex-start; font-style: normal; }
.address-grid strong { font-size: 14px; color: var(--gold); }
.address-grid p { color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.65; margin: 20px 0 14px; }
.phone-link { color: white; font-size: 13px; margin: 0 0 20px; }
.direction-link { padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.45); color: white; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.social-row { display: flex; gap: 18px; margin-top: 20px; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; }
.footer-bottom { padding: 22px max(7vw, 28px); border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; color: rgba(255,255,255,.45); font-size: 10px; }

.newsletter-pop { position: fixed; z-index: 90; width: min(420px, calc(100vw - 28px)); right: 24px; bottom: 24px; padding: 30px; background: #285b51; color: white; box-shadow: 0 18px 50px rgba(0,0,0,.28); border-top: 4px solid var(--gold); }
.newsletter-pop > button { position: absolute; right: 16px; top: 12px; border: 0; background: transparent; color: white; font-size: 26px; }
.newsletter-pop small { color: var(--gold); font-size: 8px; letter-spacing: .14em; }
.newsletter-pop h3 { margin: 13px 0 10px; font: 30px Georgia, serif; }
.newsletter-pop p { color: rgba(255,255,255,.75); line-height: 1.5; font-size: 13px; }
.newsletter-pop form { display: grid; grid-template-columns: 1fr auto; margin-top: 18px; }
.newsletter-pop input { border: 0; padding: 14px; min-width: 0; }
.newsletter-pop form button { border: 0; background: var(--terra); color: white; padding: 0 18px; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }

.page-hero { min-height: 650px; background-size: cover; background-position: center; color: white; display: flex; align-items: end; padding: 160px max(7vw, 28px) 90px; }
.page-hero > div { max-width: 860px; }
.page-hero h1 { font-size: clamp(58px, 7vw, 98px); line-height: .94; margin: 18px 0 24px; }
.page-hero > div > p:last-child { max-width: 610px; font-size: 17px; color: rgba(255,255,255,.8); line-height: 1.7; }

.menu-explorer { background: var(--paper); }
.menu-tools { display: flex; justify-content: space-between; gap: 20px; max-width: 1200px; margin: 0 auto 30px; }
.menu-search { flex: 1; display: flex; align-items: center; gap: 12px; padding: 0 18px; height: 52px; border: 1px solid var(--line); background: white; }
.menu-search input { border: 0; outline: 0; flex: 1; background: transparent; }
.menu-tools > button { border: 1px solid var(--line); background: white; padding: 0 18px; display: flex; align-items: center; gap: 10px; }
.menu-tools > button i { width: 12px; height: 12px; border: 1px solid #4c8a58; display: inline-block; }
.menu-tools > button.active i { background: #4c8a58; box-shadow: inset 0 0 0 3px white; }
.category-tabs { display: flex; gap: 8px; overflow-x: auto; max-width: 1200px; margin: 0 auto 24px; padding-bottom: 8px; scrollbar-width: thin; }
.category-tabs button { white-space: nowrap; border: 1px solid var(--line); background: transparent; padding: 11px 16px; font-size: 11px; }
.category-tabs button.active { background: var(--deep); color: white; border-color: var(--deep); }
.legend { max-width: 1200px; margin: 0 auto 65px; display: flex; gap: 18px; align-items: center; font-size: 10px; color: var(--muted); }
.legend span { display: flex; gap: 6px; align-items: center; }
.legend i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; }
.legend .veg { background: #428753; }.legend .spicy { background: var(--terra); }.legend em { margin-left: auto; color: var(--muted); font-style: normal; }
.menu-groups { max-width: 1200px; margin: 0 auto; }
.menu-group { display: grid; grid-template-columns: 260px 1fr; gap: 70px; padding: 60px 0; border-top: 1px solid var(--line); }
.menu-group-heading { position: sticky; top: 110px; align-self: start; }
.menu-group-heading h2 { font-size: 43px; line-height: 1; margin: 0 0 12px; }
.menu-group-heading p { color: var(--muted); font-size: 11px; }
.menu-items { display: grid; grid-template-columns: 1fr 1fr; column-gap: 44px; }
.menu-item { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 0 0 27px; margin-bottom: 26px; border-bottom: 1px dashed var(--line); }
.menu-item h3 { margin: 0 0 8px; font: 22px/1.12 Georgia, serif; }
.menu-item p { color: var(--muted); font-size: 12px; line-height: 1.55; margin: 0; }
.menu-item > strong { font: 16px Georgia, serif; white-space: nowrap; }
.item-tags { display: flex; gap: 5px; margin-top: 12px; flex-wrap: wrap; }
.item-tags span { border: 1px solid var(--line); padding: 4px 6px; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.item-tags .bestseller { background: var(--gold); border-color: var(--gold); color: var(--deep); }.item-tags .new { background: var(--terra); color: white; border-color: var(--terra); }.item-tags .v { color: #347343; }
.menu-empty { text-align: center; padding: 80px; }.menu-empty h2 { font-size: 42px; }.menu-empty button { border: 0; background: var(--deep); color: white; padding: 14px 20px; }

.story-manifesto { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; max-width: 1300px; margin: auto; }
.story-manifesto h2 { font-size: clamp(48px, 5vw, 68px); line-height: 1; margin-top: 15px; }
.story-manifesto > div:last-child { font: 20px/1.75 Georgia, serif; color: #47524d; }
.story-values { padding-top: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; max-width: 1300px; margin: auto; }
.story-values article { padding: 36px; border: 1px solid var(--line); min-height: 260px; }
.story-values article + article { border-left: 0; }
.story-values span { color: var(--terra); font: italic 22px Georgia, serif; }
.story-values h3 { font: 29px Georgia, serif; margin: 55px 0 12px; }
.story-values p { color: var(--muted); line-height: 1.6; }
.story-photo-break { min-height: 680px; position: relative; color: white; overflow: hidden; }
.story-photo-break img { width: 100%; height: 680px; object-fit: cover; filter: brightness(.55); }
.story-photo-break > div { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 30px; }
.story-photo-break blockquote { max-width: 900px; font-size: clamp(43px, 5vw, 70px); line-height: 1.05; margin: 20px 0; }
.story-timeline { max-width: 1300px; margin: auto; }
.story-timeline > div { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 35px; }
.story-timeline article { padding: 35px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
.story-timeline article:last-child { border-right: 0; }
.story-timeline span { font: 36px Georgia, serif; color: var(--terra); }.story-timeline h3 { font: 26px Georgia, serif; margin: 48px 0 14px; }.story-timeline p { color: var(--muted); line-height: 1.6; }

.experience-list { max-width: 1320px; margin: auto; }
.experience-row { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; border-bottom: 1px solid var(--line); }
.experience-row:nth-child(even) .experience-media { order: 2; }
.experience-media { background-size: cover; background-position: center; position: relative; }
.experience-media span { position: absolute; left: 20px; bottom: 20px; width: 68px; height: 68px; display: grid; place-items: center; background: var(--cream); color: var(--deep); border-radius: 50%; font: italic 24px Georgia, serif; }
.experience-row > div:last-child { padding: 72px 7vw; display: flex; flex-direction: column; justify-content: center; }
.experience-row h2 { font-size: clamp(40px, 4vw, 57px); line-height: 1.02; margin: 15px 0 22px; }
.experience-row > div:last-child > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }
.experience-row ul { padding: 0; list-style: none; border-top: 1px solid var(--line); margin: 18px 0 30px; }
.experience-row li { padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 12px; }.experience-row li::before { content: "✦"; color: var(--gold); margin-right: 10px; }
.experience-row .button { align-self: flex-start; }
.group-cta { background: var(--terra); color: white; text-align: center; padding: 100px 30px; }.group-cta .eyebrow { color: var(--cream); }.group-cta h2 { font-size: clamp(46px, 5vw, 70px); line-height: 1; }

.location-list { max-width: 1320px; margin: auto; }
.location-card-full { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 650px; border-bottom: 1px solid var(--line); }
.location-card-full:nth-child(even) .location-photo { order: 2; }
.location-photo { background-size: cover; background-position: center; position: relative; }
.location-photo span { position: absolute; left: 22px; top: 22px; width: 56px; height: 56px; display: grid; place-items: center; background: var(--deep); color: white; font: italic 19px Georgia, serif; }
.location-card-full > div:last-child { padding: 80px 7vw; display: flex; flex-direction: column; justify-content: center; }
.location-card-full h2 { font-size: clamp(48px, 5vw, 68px); margin: 12px 0 18px; }
.location-card-full > div > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }
.location-card-full dl { border-top: 1px solid var(--line); margin: 30px 0; }.location-card-full dl div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 13px 0; font-size: 12px; }.location-card-full dt { color: var(--muted); }.location-card-full dd { margin: 0; font-weight: 700; }
.location-actions { display: flex; align-items: center; gap: 28px; }
.neighbourhood-strip { min-height: 90px; display: flex; align-items: center; justify-content: center; gap: 28px; background: var(--cream); overflow: hidden; white-space: nowrap; }.neighbourhood-strip p { margin: 0; font: 25px Georgia, serif; }.neighbourhood-strip span { color: var(--terra); }

.journal-grid { max-width: 1260px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 60px 30px; }
.journal-grid article { display: grid; grid-template-columns: .9fr 1.1fr; background: var(--cream); }.journal-grid .featured { grid-column: 1 / -1; grid-template-columns: 1.15fr .85fr; }.journal-image { min-height: 330px; background-size: cover; background-position: center; }.journal-grid article > div:last-child { padding: 36px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }.journal-grid h2 { font-size: 36px; line-height: 1.05; margin: 12px 0 16px; }.journal-grid .featured h2 { font-size: clamp(46px, 5vw, 66px); }.journal-grid article > div > p:not(.eyebrow) { color: var(--muted); line-height: 1.6; }.journal-grid .text-link { margin-top: 18px; }

.booking-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 90px; max-width: 1250px; margin: auto; }
.booking-layout > div:first-child h2 { font-size: 56px; margin: 12px 0 18px; }.booking-layout > div:first-child > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }.booking-contact { margin-top: 50px; padding-top: 25px; border-top: 1px solid var(--line); }.booking-contact h3 { font: 26px Georgia, serif; }.booking-contact p { margin: 5px 0; color: var(--muted); font-size: 13px; }
.booking-form { background: var(--cream); padding: 50px; }.field { display: flex; flex-direction: column; gap: 9px; margin-bottom: 20px; }.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.field label { font-size: 9px; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; }.field input, .field select, .field textarea { width: 100%; border: 0; border-bottom: 1px solid #a99f8b; background: rgba(255,255,255,.45); padding: 14px 12px; outline: none; color: var(--ink); }.booking-form .button { width: 100%; border: 0; }.form-note { text-align: center; color: var(--muted); font-size: 10px; margin: 14px 0 0; }.booking-success { background: var(--cream); padding: 70px 50px; text-align: center; }.booking-success > span { width: 65px; height: 65px; border-radius: 50%; background: var(--deep); color: white; display: grid; place-items: center; margin: 0 auto 25px; font-size: 26px; }.booking-success h2 { font-size: 48px; }.booking-success > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }.booking-success button { margin-top: 20px; background: transparent; border: 0; border-bottom: 1px solid var(--ink); padding: 8px 0; text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto; height: 70px; }
  .desktop-nav, .header-location, .header-cta { display: none; }.menu-toggle { display: flex; }.header-actions { grid-column: 2; }
  .home-hero::before { inset: 70px 12px 12px; }
  .notice-grid { gap: 18px; }
  .food-cards { grid-template-columns: 1fr 1fr; }.food-card:nth-child(2) { transform: none; }.food-card:last-child { grid-column: 1 / -1; }
  .footer-grid { grid-template-columns: 1fr; gap: 55px; }.footer-nav { flex-wrap: wrap; padding-top: 20px; padding-bottom: 20px; }.footer-nav a:last-child { margin-left: 0; }
  .menu-group { grid-template-columns: 200px 1fr; gap: 40px; }.menu-items { grid-template-columns: 1fr; }
  .journal-grid article, .journal-grid .featured { grid-template-columns: 1fr; }.journal-grid .featured { grid-column: 1 / -1; }
  .flipbook-stage { min-height: 520px; }.flipbook-heading { gap: 40px; }
  .kampot-love-badges { grid-template-columns: repeat(4, minmax(120px, 1fr)); max-width: 720px; }
}

@media (max-width: 760px) {
  .site-header { padding: 0 16px; }.brand-link, .logo-crop { width: 155px; }.logo-crop img { width: 155px; height: 155px; transform: translateY(-51px); }
  .home-hero { min-height: 720px; padding: 120px 28px 90px; }.home-hero h1 { font-size: 50px; }.hero-copy { font-size: 14px; }.hero-actions { flex-direction: column; width: min(280px, 100%); }.scroll-note { bottom: 30px; }
  .pattern-band { gap: 18px; }.intro-section, .food-discovery, .social-section, .menu-explorer, .story-manifesto, .story-values, .story-timeline, .experience-list, .location-list, .journal-grid, .booking-layout { padding: 74px 22px; }
  .story-layout, .section-heading.split, .locations-preview, .footer-news, .story-manifesto, .experience-row, .location-card-full, .booking-layout { grid-template-columns: 1fr; }
  .story-layout { gap: 45px; }.story-copy { font-size: 17px; }.section-heading.split { gap: 18px; }
  .notice-section::before, .notice-section::after { height: 18px; background-size: 28px 18px; background-position: 0 0; }.notice-marquee { padding: 14px 0 8px; }.notice-marquee span { font-size: 31px; gap: 12px; padding-right: 12px; }.notice-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 83vw; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 18px 13px; margin: 17px 0 5px; scrollbar-width: none; }.notice-grid::-webkit-scrollbar { display: none; }.notice-poster { scroll-snap-align: center; }.notice-swipe { display: flex; justify-content: center; gap: 9px; color: rgba(28,33,29,.62); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }.notice-marquee-bottom { padding-top: 9px; }
  .food-cards { grid-template-columns: 1fr; }.food-card:last-child { grid-column: auto; }.food-card-image { height: 300px; }.center-action { margin-top: 45px; }
  .experience-banner { min-height: 630px; padding: 80px 28px; background-position: 56% center; }
  .location-image { min-height: 440px; }.location-content { padding: 65px 24px; }.social-grid { grid-template-columns: 1fr; }.social-grid > div { min-height: 340px; }
  .kampot-home-ribbon { min-height: 54px; padding: 14px 20px; gap: 9px; font-size: 14px; }.kampot-home-ribbon span { display: none; }.kampot-home-visual { min-height: 640px; padding: 74px 28px 44px; background-position: 58% center !important; }.kampot-home-visual::before { inset: 14px; }.kampot-home-main h2 { font-size: 51px; }.kampot-home-bottom { display: block; }.kampot-home-bottom p { font-size: 19px; }.kampot-home-bottom .button { margin-top: 22px; }.kampot-home-seal { right: 28px; top: auto; bottom: 42px; width: 105px; height: 105px; display: none; }
  .kampot-love-section { padding: 64px 0 70px; }.kampot-love-section > .eyebrow, .kampot-love-section h2 { padding: 0 22px; }.kampot-love-section h2 { margin-bottom: 34px; font-size: 40px; }.kampot-love-badges { display: grid; grid-auto-flow: column; grid-auto-columns: 132px; grid-template-columns: none; gap: 13px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 22px 15px; scrollbar-width: none; }.kampot-love-badges::-webkit-scrollbar { display: none; }.kampot-love-badges > div { scroll-snap-align: center; }
  .footer-news { padding: 64px 24px; gap: 35px; }.footer-news form { margin-top: 0; }.footer-nav { flex-wrap: nowrap; overflow-x: auto; gap: 24px; padding: 20px 24px; }.footer-nav a { white-space: nowrap; }.footer-grid { grid-template-columns: 1fr; padding: 55px 24px; gap: 50px; }.address-grid { grid-template-columns: 1fr; gap: 42px; }.footer-bottom { padding: 20px 24px; flex-direction: column; gap: 8px; }
  .newsletter-pop { right: 14px; bottom: 14px; padding: 26px; }
  .page-hero { min-height: 610px; padding: 130px 24px 65px; }.page-hero h1 { font-size: 55px; }
  .menu-tools { flex-direction: column; }.menu-tools > button { height: 48px; }.legend { flex-wrap: wrap; margin-bottom: 45px; }.legend em { width: 100%; margin: 3px 0 0; }.menu-group { grid-template-columns: 1fr; gap: 28px; padding: 45px 0; }.menu-group-heading { position: static; }.menu-item { grid-template-columns: 1fr auto; }
  .story-values { grid-template-columns: 1fr; }.story-values article + article { border-left: 1px solid var(--line); border-top: 0; }.story-photo-break, .story-photo-break img { height: 600px; }.story-timeline > div { grid-template-columns: 1fr; }.story-timeline article { border-right: 0; }
  .experience-row:nth-child(even) .experience-media, .location-card-full:nth-child(even) .location-photo { order: 0; }.experience-media, .location-photo { min-height: 380px; }.experience-row > div:last-child, .location-card-full > div:last-child { padding: 55px 24px; }
  .location-list, .experience-list { padding-left: 0; padding-right: 0; }.neighbourhood-strip { justify-content: flex-start; padding: 0 24px; }
  .journal-grid { grid-template-columns: 1fr; gap: 28px; }.journal-grid .featured { grid-column: auto; }.journal-grid .journal-image { min-height: 310px; }.journal-grid article > div:last-child { padding: 28px; }.journal-grid .featured h2, .journal-grid h2 { font-size: 36px; }
  .booking-layout { gap: 35px; }.booking-form { padding: 28px 20px; }.field-row { grid-template-columns: 1fr; gap: 0; }.booking-success { padding: 55px 24px; }.booking-success h2 { font-size: 38px; }
  .flipbook-section { padding: 74px 14px 60px; }.flipbook-heading { display: block; padding: 0 9px; margin-bottom: 30px; }.flipbook-heading h2 { font-size: 47px; }.flipbook-heading > p { margin-top: 24px; font-size: 13px; }
  .flipbook-reader { width: 100%; }.flipbook-topbar { padding: 0 14px; }.flipbook-stage { min-height: 0; padding: 25px 43px 34px; }.flipbook-stage::before { bottom: 15px; }.flipbook-spread { max-width: 380px; }.flipbook-page, .flipbook-page.single { width: 100%; }.flipbook-edge { width: 34px; height: 34px; font-size: 24px; }.flipbook-edge.previous { left: 5px; }.flipbook-edge.next { right: 5px; }
  .flipbook-controls { min-height: 66px; grid-template-columns: auto 1fr auto; gap: 10px; padding: 0 13px; }.flipbook-controls p { grid-column: 2; grid-row: 1; text-align: center; }.flipbook-progress { display: none; }.flipbook-controls button:last-child { grid-column: 3; }.flipbook-hint { display: block; margin: -6px 0 15px; text-align: center; color: rgba(255,255,255,.35); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
  .flipbook-fullscreen { padding: 0; }.flipbook-fullscreen .flipbook-reader { border: 0; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; }.flipbook-fullscreen .flipbook-stage { height: auto; min-height: 0; flex: 1; }.flipbook-fullscreen .flipbook-spread { max-width: min(76vw, calc((100vh - 170px) * .707)); }
}

/* WordPress production refinements */
.site-header .logo-crop img,.site-footer .logo-crop img{transform:none!important;width:100%!important;height:100%!important;object-fit:contain}
.site-header .logo-crop,.site-footer .logo-crop{width:188px;height:58px}
.flipbook-spread .flipbook-page{display:none}.flipbook-spread .flipbook-page:has(img:not([hidden])){display:block}
@media(max-width:760px){.site-header .logo-crop,.site-footer .logo-crop{width:150px;height:48px}.home-hero{margin-top:70px}.flipbook-spread .flipbook-page{width:min(78vw,360px)}.flipbook-stage{min-height:530px;padding:28px 45px}.kampot-home-bottom{align-items:flex-start}.footer-news{grid-template-columns:1fr}}

.corporate-hero { min-height: 820px; padding: 120px max(5vw, 40px) 55px; display: grid; grid-template-columns: 1.05fr .65fr; gap: 6vw; align-items: center; background: var(--deepest); color: white; overflow: hidden; }
.corporate-hero-copy { max-width: 760px; }
.corporate-hero-copy h1 { margin: 18px 0 27px; font-size: clamp(66px, 7.3vw, 112px); line-height: .86; }
.corporate-hero-copy h1 em { color: var(--gold); }
.corporate-hero-copy > p:not(.eyebrow) { max-width: 610px; color: rgba(255,255,255,.74); font-size: 17px; line-height: 1.7; }
.corporate-hero-copy > div { display: flex; gap: 12px; margin-top: 34px; }
.corporate-poster { height: 660px; padding: 18px; background: #d4e4bf; position: relative; transform: rotate(1.5deg); box-shadow: 0 25px 65px rgba(0,0,0,.35); }
.corporate-poster::before { content: ""; position: absolute; inset: 0; opacity: .55; background: repeating-linear-gradient(90deg, transparent 0 52px, rgba(255,255,255,.72) 52px 104px); }
.corporate-poster img { position: relative; width: 100%; height: 100%; object-fit: contain; background: #f7f2e9; }

.corporate-intro { padding: 105px max(6vw, 28px); background: var(--paper); }
.corporate-package-grid { max-width: 1280px; margin: auto; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); }
.corporate-package-card { min-height: 500px; padding: 30px; display: flex; flex-direction: column; background: var(--paper); border-right: 1px solid var(--line); transition: .25s ease; }
.corporate-package-card:last-child { border-right: 0; }
.corporate-package-card:hover { background: var(--cream); }
.package-card-top { display: flex; justify-content: space-between; gap: 16px; min-height: 90px; }
.package-card-top > span { color: var(--terra); font: italic 29px Georgia, serif; }
.package-card-top small { max-width: 120px; text-align: right; color: var(--muted); font-size: 8px; line-height: 1.4; text-transform: uppercase; letter-spacing: .11em; }
.corporate-package-card h3 { margin: 10px 0 15px; font: 36px/1 Georgia, serif; }
.corporate-package-card > p { min-height: 90px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.package-price { margin-top: auto; padding: 26px 0 18px; border-top: 1px solid var(--line); display: flex; flex-direction: column; }
.package-price small { font-size: 8px; letter-spacing: .13em; color: var(--muted); }
.package-price strong { color: var(--terra); font: 54px/1 Georgia, serif; }
.package-price sup { color: var(--ink); font: 14px Arial; }
.corporate-package-card > a { display: flex; justify-content: space-between; padding-top: 17px; border-top: 1px solid var(--line); text-transform: uppercase; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.corporate-package-card > a span { color: var(--terra); font-size: 17px; }
.corporate-price-note { max-width: 1280px; margin: 18px auto 0; color: var(--muted); font-size: 9px; }

.corporate-food-break { min-height: 680px; display: grid; grid-template-columns: 1.1fr .9fr; background: var(--deep); color: white; }
.corporate-food-image { min-height: 600px; background-size: cover; background-position: center; }
.corporate-food-copy { padding: 85px 7vw; display: flex; flex-direction: column; justify-content: center; }
.corporate-food-copy h2 { margin: 15px 0 24px; font-size: clamp(48px, 5vw, 69px); line-height: .98; }
.corporate-food-copy > p:not(.eyebrow) { color: rgba(255,255,255,.68); line-height: 1.7; }
.corporate-food-copy ul { margin: 25px 0 0; padding: 0; list-style: none; }
.corporate-food-copy li { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.16); font-size: 12px; }
.corporate-food-copy li::before { content: "✦"; color: var(--gold); margin-right: 12px; }

.corporate-occasions { padding: 105px max(6vw, 28px); background: var(--terra); color: white; }
.corporate-occasion-grid { max-width: 1180px; margin: auto; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.3); }
.corporate-occasion-grid article { min-height: 260px; padding: 30px; border-right: 1px solid rgba(255,255,255,.25); }
.corporate-occasion-grid article:last-child { border-right: 0; }
.corporate-occasion-grid span { color: var(--cream); font: italic 25px Georgia, serif; }
.corporate-occasion-grid h3 { margin: 65px 0 12px; font: 28px Georgia, serif; }
.corporate-occasion-grid p { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.6; }

.corporate-steps { padding: 105px max(7vw, 28px); display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; background: var(--cream); }
.corporate-steps > div h2 { margin: 15px 0 0; font-size: clamp(46px, 4.6vw, 65px); line-height: .98; }
.corporate-steps ol { margin: 0; padding: 0; list-style: none; }
.corporate-steps li { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 22px 0; border-top: 1px solid var(--line); }
.corporate-steps li:last-child { border-bottom: 1px solid var(--line); }
.corporate-steps li > span { color: var(--terra); font: italic 19px Georgia, serif; }
.corporate-steps strong { font: 25px Georgia, serif; }
.corporate-steps li p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }

.corporate-enquiry { padding: 105px max(7vw, 28px); display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; background: var(--deepest); color: white; }
.corporate-enquiry-intro h2 { margin: 15px 0 20px; font-size: clamp(49px, 5vw, 70px); line-height: .95; }
.corporate-enquiry-intro > p:not(.eyebrow) { color: rgba(255,255,255,.68); line-height: 1.7; }
.corporate-enquiry-intro > div { margin-top: 55px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); display: flex; flex-direction: column; gap: 9px; }
.corporate-enquiry-intro span { color: var(--gold); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.corporate-enquiry-intro a { font: 25px Georgia, serif; }
.corporate-form { color: var(--ink); }
.corporate-success { align-self: start; color: var(--ink); }

@media (max-width: 1050px) {
  .corporate-hero { grid-template-columns: 1fr .65fr; gap: 35px; }
  .corporate-poster { height: 570px; }
  .corporate-package-grid { grid-template-columns: 1fr 1fr; }
  .corporate-package-card:nth-child(2) { border-right: 0; }
  .corporate-package-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .corporate-hero { padding: 125px 22px 55px; grid-template-columns: 1fr; gap: 45px; }
  .corporate-hero-copy h1 { font-size: 57px; }
  .corporate-hero-copy > div { flex-direction: column; width: min(290px, 100%); }
  .corporate-poster { height: 620px; transform: none; }
  .corporate-intro { padding: 74px 22px; }
  .corporate-package-grid { grid-template-columns: 1fr; }
  .corporate-package-card, .corporate-package-card:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); min-height: 430px; }
  .corporate-package-card:last-child { border-bottom: 0; }
  .corporate-food-break, .corporate-steps, .corporate-enquiry { grid-template-columns: 1fr; }
  .corporate-food-image { min-height: 390px; }
  .corporate-food-copy { padding: 65px 24px; }
  .corporate-occasions { padding: 74px 22px; }
  .corporate-occasion-grid { grid-template-columns: 1fr 1fr; }
  .corporate-occasion-grid article:nth-child(2) { border-right: 0; }
  .corporate-occasion-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.25); }
  .corporate-steps { padding: 74px 22px; gap: 45px; }
  .corporate-enquiry { padding: 74px 22px; gap: 45px; }
  .corporate-enquiry-intro > div { margin-top: 34px; }
}
