:root {
  --ink: #251b24;
  --forest: #251b24;
  --cream: #fbf8fa;
  --gold: #f171bd;
  --accent-ink: #aa246e;
  --white: #fff;
  --sans: "DM Sans", sans-serif;
  --display: "Italiana", serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { width: 100%; max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: hidden; color: var(--ink); background: var(--cream); font-family: var(--sans); }
body.menu-open, body.lightbox-open { overflow: hidden; }
main, header, footer, section, article, nav, div { min-width: 0; }
img, picture, video, svg { max-width: 100%; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .8rem 1rem; background: white; }
.skip-link:focus { top: 1rem; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50; height: 92px; padding: 0 clamp(1.5rem, 5vw, 5.5rem);
  display: flex; align-items: center; justify-content: space-between; color: white;
  border-bottom: 1px solid rgba(255,255,255,.18); transition: background .35s, height .35s, box-shadow .35s;
}
.site-header.scrolled { height: 76px; background: rgba(29,19,29,.96); box-shadow: 0 8px 32px rgba(0,0,0,.16); }
.brand { position: relative; display: block; flex: 0 0 145px; width: 145px; height: 92px; overflow: visible; }
.brand-logo { position: absolute; top: 50%; left: 50%; width: 118px; height: 118px; max-width: none; object-fit: contain; transform: translate(-50%, -50%); }
.site-header.scrolled .brand { height: 76px; }
.site-header.scrolled .brand-logo { width: 100px; height: 100px; }
.site-nav { display: flex; align-items: center; gap: clamp(.6rem, 1.15vw, 1.35rem); font-size: .73rem; font-weight: 500; letter-spacing: .05em; }
.site-nav > a:not(.nav-cta) { position: relative; padding: .5rem 0; }
.site-nav > a:not(.nav-cta)::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: var(--gold); transform: scaleX(0); transition: transform .25s; }
.site-nav > a:hover::after, .site-nav > a.active::after { transform: scaleX(1); }
.nav-cta { padding: .85rem 1.15rem; border: 1px solid var(--gold); color: var(--gold); transition: .25s; }
.nav-cta:hover { background: var(--gold); color: var(--ink); }
.menu-toggle { display: none; border: 0; background: none; padding: .5rem; }
.menu-toggle span { display: block; width: 25px; height: 1px; margin: 6px; background: white; transition: .25s; }

.hero { position: relative; min-height: 690px; height: 86svh; max-height: 880px; display: flex; align-items: center; overflow: hidden; color: white; background: #251b24 url("assets/catering-buffet-hero.webp") center/cover no-repeat; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,12,19,.96) 0%, rgba(18,12,19,.8) 31%, rgba(18,12,19,.18) 68%, rgba(18,12,19,.25)), linear-gradient(0deg, rgba(18,12,19,.7), transparent 40%); }
.hero-content { position: relative; z-index: 2; width: min(680px, 74vw); margin-left: clamp(1.5rem, 8vw, 9rem); padding: 10rem 0 7rem; animation: arrive .65s .1s both; }
.eyebrow, .section-label { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.5rem; color: var(--gold); font-size: .72rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow span { width: 42px; height: 1px; background: var(--gold); }
h1 { margin: 0; font: clamp(3.6rem, 6.4vw, 6.8rem)/.95 var(--display); letter-spacing: 0; }
.hero h1 { font-size: clamp(5rem, 5.7vw, 6.1rem); line-height: .92; }
h1 em { color: #f171bd; font-weight: inherit; }
.hero-intro { max-width: 610px; margin: 2rem 0 2.3rem; color: rgba(255,255,255,.78); font-size: clamp(1rem, 1.35vw, 1.18rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.3rem; min-width: 190px; padding: 1rem 1.25rem; font-size: .75rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; transition: transform .2s cubic-bezier(.16,1,.3,1), background .2s, color .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--gold); color: #251b24; }
.button-primary:hover { background: #ff9bd2; }
.button-ghost { border: 1px solid rgba(255,255,255,.5); }
.button-ghost:hover { background: white; color: var(--ink); }
.event-strip { position: absolute; z-index: 3; inset: auto 0 0; min-height: 76px; padding: 1rem clamp(1.5rem, 8vw, 9rem); display: flex; align-items: center; gap: clamp(.6rem, 1.5vw, 1.7rem); background: rgba(28,17,27,.76); backdrop-filter: blur(10px); font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.event-strip i { width: 4px; height: 4px; flex: 0 0 auto; border-radius: 50%; background: var(--gold); }
.scroll-cue { position: absolute; z-index: 3; right: clamp(1.5rem, 4vw, 5rem); bottom: 102px; display: flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.7); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; transform: rotate(90deg); transform-origin: right bottom; }
.scroll-cue b { color: var(--gold); font-size: 1rem; }

.trust { padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 8vw, 9rem); background: #fbf8fa; }
.trust-intro { display: flex; align-items: end; justify-content: space-between; padding-bottom: 2.2rem; border-bottom: 1px solid rgba(37,27,36,.18); }
.trust-intro .section-label { margin: 0 3rem .4rem 0; }
.trust h2 { margin: 0; font: clamp(2.3rem, 4vw, 4rem) var(--display); }
.trust-grid { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 2rem; }
.trust-grid article { min-height: 170px; padding: 1.2rem clamp(.8rem, 1.5vw, 1.5rem); border-right: 1px solid rgba(37,27,36,.14); }
.trust-grid article:first-child { padding-left: 0; }
.trust-grid article:last-child { border: 0; }
.trust-icon { display: block; margin-bottom: 1.7rem; color: #b42b76; font-size: 1.55rem; }
.trust h3 { margin: 0 0 .65rem; font: 1.18rem var(--display); }
.trust article p { margin: 0; color: #70636d; font-size: .8rem; line-height: 1.6; }

.whatsapp { position: fixed; z-index: 45; right: 1.5rem; bottom: 6rem; display: flex; align-items: center; gap: .65rem; padding: .65rem .95rem .65rem .65rem; border-radius: 99px; background: #25d366; color: #082c18; box-shadow: 0 10px 30px rgba(0,0,0,.22); font-size: .75rem; font-weight: 600; transition: transform .25s; }
.whatsapp:hover { transform: translateY(-4px); }
.whatsapp svg { width: 25px; fill: currentColor; }
@keyframes arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

.reveal { opacity: 1; transform: none; }
@media (scripting: enabled) {
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity .65s ease-out, transform .65s cubic-bezier(.16,1,.3,1); }
  .reveal.is-visible { opacity: 1; transform: none; }
}
.section-dark { color: white; background: #251b24; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 4rem; }
.section-heading h2, .cinematic-copy h2, .home-cta h2 { margin: 0; font: clamp(3rem, 5.4vw, 5.8rem)/1 var(--display); }
.section-heading h2 em, .cinematic-copy h2 em, .home-cta h2 em { color: #f171bd; font-weight: inherit; }
.section-heading > p { width: min(410px, 34vw); margin: 0; color: rgba(255,255,255,.6); line-height: 1.8; }
.experience-section { padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 6vw, 7rem); overflow: hidden; }
.experience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 4rem; }
.experience-card { position: relative; min-height: 520px; overflow: hidden; transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s; box-shadow: 0 18px 50px rgba(0,0,0,.18); }
.experience-card:hover { transform: translateY(-4px); box-shadow: 0 28px 60px rgba(0,0,0,.3); }
.card-image { position: absolute; inset: -4%; background-size: cover; background-position: center; filter: saturate(.8); transition: transform .7s ease, filter .7s; }
.experience-card:hover .card-image { transform: scale(1.07); filter: saturate(1); }
.card-number { position: absolute; top: 1.5rem; right: 1.5rem; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font-size: .68rem; }
.card-content { position: absolute; z-index: 2; inset: auto 0 0; padding: 2rem; }
.card-content p { margin: 0 0 .5rem; color: var(--gold); font-size: .65rem; letter-spacing: .17em; text-transform: uppercase; }
.card-content h3 { margin: 0 0 1.5rem; font: clamp(2rem, 3vw, 3.2rem) var(--display); }
.card-content > span { font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; }
.cinematic-section { min-height: 780px; padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: clamp(3rem, 7vw, 8rem); overflow: hidden; background: #f1e7ee; }
.cinematic-frame { position: relative; height: min(62vw, 650px); max-height: 650px; overflow: hidden; box-shadow: 35px 35px 0 #f1e7ee, 0 30px 80px rgba(28,18,28,.22); }
.cinematic-frame img { width: 100%; height: 115%; display: block; object-fit: cover; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.cinematic-frame:hover img { transform: scale(1.025); }
.cinematic-overlay { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 1rem; color: white; background: rgba(18,12,19,.18); }
.cinematic-overlay p { font: 1.25rem var(--display); text-shadow: 0 2px 20px rgba(0,0,0,.5); }
.cinematic-copy > p:not(.section-label) { margin: 2rem 0; color: #70636d; line-height: 1.8; }
.marquee { overflow: hidden; padding: 1.2rem 0; color: #f171bd; background: #b42b76; }
.marquee div { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1rem 2rem; padding-inline: 1.5rem; }
.marquee span { font: 1.5rem var(--display); white-space: nowrap; }
.marquee i { font-style: normal; font-size: .7rem; }
.home-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; color: white; background: radial-gradient(circle at center, rgba(241,113,189,.16), transparent 28%), #251b24; }
.home-cta .section-label { justify-content: center; }
.home-cta h2 { margin-bottom: 2.7rem; }

/* Services page */
.services-hero { position: relative; min-height: 720px; height: 88svh; display: flex; align-items: flex-end; overflow: hidden; color: white; background: #251b24; }
.services-hero-bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,18,28,.93) 0%, rgba(28,18,28,.62) 48%, rgba(28,18,28,.18)), linear-gradient(0deg, rgba(28,18,28,.65), transparent 50%), url("assets/celebration-table.webp") center/cover; }
.services-hero-content { position: relative; z-index: 2; width: min(900px, 80vw); padding: 0 0 clamp(6rem, 11vh, 9rem) clamp(1.5rem, 8vw, 9rem); animation: arrive .65s .1s both; }
.services-hero-content > p:last-child { width: min(610px, 70vw); margin: 2rem 0 0; color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.8; }
.packages-page .services-hero-content { padding-bottom: clamp(4rem, 7vh, 6rem); }
.packages-page .services-hero-content h1 { font-size: clamp(4.5rem, 5vw, 5.8rem); line-height: .97; }
.package-grid { padding: 1rem clamp(1.5rem, 6vw, 7rem) clamp(6rem, 10vw, 10rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.8rem); }
.package-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid rgba(37,27,36,.14); background: #fff; box-shadow: 0 22px 50px rgba(37,27,36,.08); transition: transform .3s ease, box-shadow .3s ease; }
.package-card:hover { transform: translateY(-7px); box-shadow: 0 30px 65px rgba(37,27,36,.15); }
.package-card-image { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #f7efe9; }
.package-card-image img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; transition: transform .65s ease; }
.package-card:hover .package-card-image img { transform: scale(1.01); }
.package-card-image:after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(26,17,26,.55)); }
.package-card-image > span { position: absolute; z-index: 1; left: 1.35rem; bottom: 1rem; color: white; font: 1rem var(--display); letter-spacing: .08em; }
.package-card-body { flex: 1; padding: clamp(1.4rem, 2.4vw, 2.2rem); display: flex; flex-direction: column; }
.package-card-heading { min-height: 94px; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1.4rem; border-bottom: 1px solid rgba(37,27,36,.12); }
.package-card-heading h2 { margin: 0; font: clamp(1.9rem, 2.4vw, 2.7rem)/1.05 var(--display); }
.package-card-heading strong { flex: 0 0 auto; max-width: 45%; color: #a92d73; font-size: .78rem; line-height: 1.35; text-align: right; }
.package-card-heading .package-quote-price { color: #70636d; }
.package-includes { margin: 1.4rem 0 .9rem; color: #a92d73; font-size: .66rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.package-card ul { margin: 0 0 2rem; padding: 0; list-style: none; }
.package-card li { position: relative; padding: .65rem 0 .65rem 1.6rem; border-bottom: 1px solid rgba(37,27,36,.08); color: #665b64; font-size: .82rem; line-height: 1.5; }
.package-card li:before { content: "✓"; position: absolute; left: 0; color: #a92d73; font-weight: 600; }
.package-card .button { width: 100%; margin-top: auto; justify-content: space-between; }
.package-empty { margin: 1rem clamp(1.5rem, 6vw, 7rem) clamp(6rem, 10vw, 10rem); padding: clamp(2rem, 5vw, 4rem); text-align: center; background: #f1e7ee; }
.package-empty h2 { margin: 0 0 1rem; font: clamp(2.3rem, 4vw, 4rem)/1 var(--display); }
.package-empty p { margin: 0 auto 2rem; max-width: 560px; color: #70636d; }
.services-intro { padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 7vw, 8rem); }
.services-intro > div { display: flex; align-items: end; justify-content: space-between; gap: 4rem; }
.services-intro h2, .service-process h2, .service-cta h2 { margin: 0; font: clamp(3rem, 5.3vw, 5.6rem)/1 var(--display); }
.services-intro h2 em, .service-process h2 em, .service-cta h2 em { color: #b42b76; font-weight: inherit; }
.services-intro > div > p { width: min(430px, 36vw); margin: 0; color: #70636d; line-height: 1.8; }
.service-process { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 8vw, 9rem); display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; color: white; background: #251b24; }
.service-process .section-label { color: var(--gold); }
.service-process h2 em { color: var(--gold); }
.service-process ol { margin: 0; padding: 0; list-style: none; }
.service-process li { display: grid; grid-template-columns: 65px 1fr; gap: 1.3rem; padding: 1.7rem 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.service-process li > span { color: var(--gold); font: 1.3rem var(--display); }
.service-process h3 { margin: 0 0 .55rem; font: 1.45rem var(--display); }
.service-process li p { margin: 0; color: rgba(255,255,255,.55); font-size: .85rem; line-height: 1.7; }
.service-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; background: radial-gradient(circle, rgba(241,113,189,.17), transparent 25%), #f1e7ee; }
.service-cta .section-label { justify-content: center; }
.service-cta h2 { margin-bottom: 2.7rem; }
.service-jump { position: sticky; z-index: 20; top: 76px; padding: 1rem clamp(1rem, 5vw, 5rem); display: flex; justify-content: center; gap: .5rem; overflow-x: auto; color: white; background: rgba(28,18,28,.96); backdrop-filter: blur(10px); scrollbar-width: none; }
.service-jump a { flex: 0 0 auto; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.16); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; transition: .25s; }.service-jump a:hover { color: #251b24; border-color: var(--gold); background: var(--gold); }
.service-detail { padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 5vw, 6rem); scroll-margin-top: 140px; background: #fbf8fa; }.service-detail-alt { background: #f1e7ee; }
.service-detail-hero { position: relative; min-height: 660px; overflow: hidden; color: white; box-shadow: 0 30px 80px rgba(28,18,28,.18); }.service-detail-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,12,19,.9), rgba(18,12,19,.45) 55%, rgba(18,12,19,.08)); }.service-detail-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s; }.service-detail-hero:hover img { transform: scale(1.04); }
.service-detail-hero > div { position: relative; z-index: 2; max-width: 680px; padding: clamp(3rem, 7vw, 7rem); }.service-detail-hero > div > span { color: var(--gold); font-size: .66rem; letter-spacing: .15em; text-transform: uppercase; }.service-detail-hero h2 { margin: 1rem 0 1.5rem; font: clamp(3.8rem, 6.5vw, 7rem)/.92 var(--display); }.service-detail-hero p { max-width: 570px; margin: 0 0 2rem; color: rgba(255,255,255,.7); line-height: 1.8; }
.service-detail-body { padding: clamp(4rem, 7vw, 7rem) clamp(0rem, 3vw, 3rem); display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 7vw; }.service-info h3 { margin: 0 0 1.5rem; font: clamp(2.5rem, 4vw, 4.2rem)/1 var(--display); }.service-info > p:not(.section-label) { color: #70636d; line-height: 1.8; }.service-info h4 { margin: 2rem 0 .9rem; color: #b42b76; font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; }
.menu-style-tags { display: flex; flex-wrap: wrap; gap: .5rem; }.menu-style-tags span { padding: .6rem .75rem; border: 1px solid rgba(37,27,36,.18); font-size: .63rem; letter-spacing: .06em; text-transform: uppercase; }.available-list { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; list-style: none; }.available-list li { position: relative; padding: .7rem 0 .7rem 1.3rem; border-bottom: 1px solid rgba(37,27,36,.12); font-size: .74rem; }.available-list li::before { content: "✓"; position: absolute; left: 0; color: #b42b76; }
.service-mini-gallery { height: 600px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; }.service-mini-gallery img { width: 100%; height: 100%; object-fit: cover; min-width: 0; }.service-mini-gallery img:last-child { height: 78%; margin-top: auto; }
.service-faq { margin: 0 clamp(0rem, 3vw, 3rem); padding: 2.5rem 0; border-top: 1px solid rgba(37,27,36,.2); }.service-faq > p { color: #b42b76; font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }.service-faq details { border-bottom: 1px solid rgba(37,27,36,.15); }.service-faq summary { padding: 1.2rem 0; display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; font: 1.3rem var(--display); list-style: none; }.service-faq summary::-webkit-details-marker { display: none; }.service-faq summary span { color: #b42b76; transition: transform .25s; }.service-faq details[open] summary span { transform: rotate(45deg); }.service-faq details > div { max-width: 760px; padding: 0 0 1.3rem; color: #70636d; font-size: .8rem; line-height: 1.7; }

/* Menu page */
.menu-hero { position: relative; min-height: 760px; height: 94svh; overflow: hidden; color: white; background: #251b24; }
.menu-hero-image { position: absolute; inset: 0; background: url("assets/menu/main-courses.webp") center/cover; }
.menu-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,18,28,.96) 0%, rgba(28,18,28,.75) 35%, rgba(28,18,28,.06) 72%), linear-gradient(0deg, rgba(28,18,28,.7), transparent 45%); }
.menu-hero-copy { position: relative; z-index: 2; width: min(700px, 76vw); padding-top: clamp(11rem, 24vh, 15rem); margin-left: clamp(1.5rem, 8vw, 9rem); animation: arrive .65s .1s both; }
.menu-hero-copy > p:not(.eyebrow) { max-width: 550px; margin: 1.8rem 0 2.2rem; color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.8; }
.menu-hero-note { position: absolute; z-index: 2; right: clamp(1.5rem, 5vw, 5rem); bottom: 3rem; display: flex; align-items: center; gap: 1rem; font-size: .64rem; letter-spacing: .15em; text-transform: uppercase; }
.menu-hero-note i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }
.menu-intro { padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: 1fr minmax(300px, 430px); align-items: end; gap: 6vw; }
.menu-intro h2, .menu-philosophy h2, .menu-cta h2 { margin: 0; font: clamp(3rem, 5.3vw, 5.7rem)/1 var(--display); }
.menu-intro h2 em, .menu-philosophy h2 em, .menu-cta h2 em { color: #b42b76; font-weight: inherit; }
.menu-intro aside { padding: 1.6rem; border-left: 2px solid var(--gold); background: #f1e7ee; }
.menu-intro aside strong { display: block; margin-bottom: .6rem; color: #b42b76; font-size: .7rem; letter-spacing: .13em; text-transform: uppercase; }
.menu-intro aside p { margin: 0; color: #70636d; font-size: .78rem; line-height: 1.7; }
.menu-tab { flex: 1 0 auto; padding: 1.2rem 1rem; border: 0; border-bottom: 2px solid transparent; color: #70636d; background: transparent; font: 500 .71rem var(--sans); letter-spacing: .09em; text-transform: uppercase; cursor: pointer; transition: color .25s, border .25s; }
.menu-tab span { margin-right: .5rem; color: #b42b76; font: 1rem var(--display); }
.menu-tab:hover, .menu-tab.active { color: var(--ink); border-bottom-color: #b42b76; }
.menu-panels { display: grid; align-items: stretch; background: #251b24; color: white; }
.menu-panel { grid-area: 1/1; padding: clamp(2.3rem, 5vw, 5rem); animation: panelIn .3s ease-out both; }
@keyframes panelIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: none; } }
.panel-heading p { margin: 0 0 .45rem; color: var(--gold); font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.panel-heading h2 { margin: 0 0 2.5rem; font: clamp(2.8rem, 4vw, 4.2rem) var(--display); }
.menu-key { margin: 1.2rem 0 0; color: #70636d; font-size: .68rem; line-height: 1.6; }
.menu-key i { display: inline-grid; width: 22px; height: 22px; place-items: center; border: 1px solid #70636d; border-radius: 50%; color: #70636d; font-style: normal; }
.menu-philosophy { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 8vw; overflow: hidden; background: #f1e7ee; }
.menu-philosophy > div:first-child > p:not(.section-label) { margin: 2rem 0; color: #70636d; line-height: 1.8; }
.menu-image-stack { position: relative; height: 570px; }
.menu-image-stack > div { width: 88%; height: 100%; margin-left: auto; overflow: hidden; box-shadow: 28px 28px 0 #f1e7ee; }
.menu-image-stack img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.menu-image-stack:hover img { transform: scale(1.06); }
.menu-image-stack > span { position: absolute; left: 0; bottom: 3rem; padding: 1.2rem 1.4rem; color: white; background: #b42b76; font: 1.2rem/1.35 var(--display); }
.menu-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; color: white; background: radial-gradient(circle, rgba(241,113,189,.18), transparent 25%), #251b24; }
.menu-cta .section-label { justify-content: center; }
.menu-cta h2 { margin-bottom: 2.7rem; }
.interactive-menu { padding: 0 clamp(1.5rem, 5vw, 6rem) clamp(6rem, 10vw, 10rem); }.menu-toolbar { padding: 1rem 0; display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-block: 1px solid rgba(37,27,36,.16); }.menu-label-key { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; }.menu-label-key span { color: #70636d; font-size: .65rem; }.download-menu { flex: 0 0 auto; padding: .75rem 1rem; border: 1px solid #251b24; color: #251b24; background: transparent; font: 600 .64rem var(--sans); letter-spacing: .1em; text-transform: uppercase; text-decoration:none; cursor: pointer; }.download-menu span { margin-left: .7rem; }
.menu-category-tabs { position: sticky; z-index: 15; top: 76px; display: flex; overflow-x: auto; background: #fbf8fa; scrollbar-width: none; }.menu-category-tabs .menu-tab { min-width: max-content; }
.interactive-menu-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1.2rem; align-items: start; margin-top: 2rem; }.menu-card-panels { min-height: 780px; color: white; background: #251b24; }.menu-card-panels .menu-panel { min-height: 780px; padding: clamp(2rem, 4vw, 4rem); }.panel-heading { position: relative; }.panel-heading small { position: absolute; right: 0; bottom: .5rem; color: rgba(255,255,255,.4); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.dish-grid { display: grid; gap: .8rem; }.dish-card { position: relative; min-height: 145px; padding: 1.3rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; border: 1px solid rgba(255,255,255,.13); transition: border .25s, background .25s; }.dish-card:hover { border-color: rgba(241,113,189,.6); background: rgba(255,255,255,.04); }.dish-card h3 { margin: 0 0 .45rem; font: 1.5rem var(--display); }.dish-card p { max-width: 520px; margin: 0; color: rgba(255,255,255,.5); font-size: .74rem; line-height: 1.6; }.dish-labels { display: flex; align-items: start; gap: .3rem; }.dish-labels span { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; font-size: .7rem; }.dish-card button { position: absolute; right: 1.3rem; bottom: 1.1rem; padding: .45rem .7rem; border: 1px solid var(--gold); color: #f171bd; background: transparent; font: 600 .58rem var(--sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }.dish-card button.selected { color: #251b24; background: var(--gold); }
.menu-category-image { width: 100%; height: clamp(180px, 24vw, 300px); margin: 1.35rem 0 1.6rem; display: block; object-fit: cover; object-position: center; border: 1px solid rgba(255,255,255,.13); }
.menu-builder { position: sticky; top: 155px; color: white; background: #251b24; box-shadow: 20px 20px 0 #f1e7ee; }.builder-image { height: 260px; overflow: hidden; }.builder-image img { width: 100%; height: 100%; object-fit: cover; }.builder-content { padding: 2rem; }.builder-content h2 { margin: 0 0 1rem; font: 2.4rem/1 var(--display); }.builder-content > p:not(.section-label) { color: rgba(255,255,255,.5); font-size: .75rem; line-height: 1.6; }.builder-content ul { margin: 1.2rem 0; padding: 0; max-height: 220px; overflow-y: auto; list-style: none; }.builder-content li { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.13); font-size: .72rem; }.builder-content li button { border: 0; color: #f171bd; background: none; cursor: pointer; }.builder-content .button:disabled { opacity: .4; cursor: not-allowed; }.clear-selection { margin-top: 1rem; padding: 0; border: 0; color: rgba(255,255,255,.5); background: none; font: .6rem var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
@media print { .site-header, .menu-hero, .menu-intro aside, .menu-toolbar, .menu-category-tabs, .menu-builder, .menu-philosophy, .menu-cta, .site-footer, .whatsapp { display: none !important; } .interactive-menu { padding: 0; } .menu-card-panels { color: #111; background: white; } .menu-panel { display: block !important; min-height: 0 !important; page-break-inside: avoid; } .menu-panel[hidden] { display: block !important; } .dish-card { color: #111; border-color: #ccc; } .dish-card p { color: #555; } .dish-card button { display: none; } }

/* Gallery page */
.gallery-hero { position: relative; min-height: 740px; height: 90svh; display: flex; align-items: flex-end; overflow: hidden; color: white; background: #251b24; }
.gallery-hero-image { position: absolute; inset: 0; background: url("assets/live-counter.webp") center/cover; }
.gallery-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,18,28,.94), rgba(28,18,28,.56) 49%, rgba(28,18,28,.15)), linear-gradient(0deg, rgba(28,18,28,.7), transparent 50%); }
.gallery-hero-copy { position: relative; z-index: 2; width: min(960px, 80vw); padding: 0 0 clamp(6rem, 11vh, 9rem) clamp(1.5rem, 8vw, 9rem); animation: arrive .65s .1s both; }
.gallery-hero-copy > p:last-child { max-width: 580px; margin: 2rem 0 0; color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.8; }
.gallery-count { position: absolute; z-index: 2; right: clamp(1.5rem, 5vw, 5.5rem); bottom: 4rem; display: flex; align-items: center; gap: 1rem; }
.gallery-count strong { font: 3.5rem var(--display); color: var(--gold); }
.gallery-count span { color: rgba(255,255,255,.65); font-size: .62rem; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.portfolio { padding: clamp(5rem, 9vw, 9rem) clamp(1rem, 4vw, 4.5rem) clamp(6rem, 10vw, 10rem); background: #f1e7ee; }
.portfolio-heading { padding-inline: clamp(.5rem, 3vw, 3.5rem); display: flex; justify-content: space-between; align-items: end; gap: 5rem; }
.portfolio-heading h2, .gallery-cta h2 { margin: 0; font: clamp(3rem, 5.2vw, 5.6rem)/1 var(--display); }
.portfolio-heading h2 em, .gallery-cta h2 em { color: #b42b76; font-weight: inherit; }
.portfolio-heading > p { width: min(420px, 35vw); margin: 0; color: #70636d; line-height: 1.8; }
.gallery-filters { display: flex; justify-content: center; gap: .4rem; margin: 4rem 0 2.5rem; flex-wrap: wrap; }
.gallery-filter { padding: .8rem 1.2rem; border: 1px solid rgba(37,27,36,.18); color: #70636d; background: transparent; font: 600 .66rem var(--sans); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: .25s; }
.gallery-filter:hover, .gallery-filter.active { border-color: #251b24; color: white; background: #251b24; }
.masonry-gallery { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 95px; grid-auto-flow: dense; gap: clamp(.7rem, 1.2vw, 1.2rem); }
.gallery-item { position: relative; grid-column: span 4; grid-row: span 5; min-height: 0; overflow: hidden; padding: 0; border: 0; color: white; background: #251b24; text-align: left; cursor: zoom-in; transition: opacity .4s, transform .5s; }
.gallery-item.gallery-landscape { grid-column: span 8; grid-row: span 5; }
.gallery-item.gallery-portrait { grid-column: span 4; grid-row: span 7; }
.gallery-item.gallery-tall { grid-column: span 5; grid-row: span 7; }
.gallery-item.gallery-wide { grid-column: span 7; grid-row: span 5; }
.gallery-item.gallery-square { grid-column: span 4; grid-row: span 5; }
.gallery-item.is-hidden { display: none; }
.gallery-item > img, .gallery-item > video { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.25,1), filter .6s; }
.gallery-item:nth-child(1) > img, .gallery-item:nth-child(7) > img { object-position: 72% center; }
.gallery-item:hover > img, .gallery-item:hover > video { transform: scale(1.07); filter: brightness(.75); }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18,12,19,.88), transparent 60%); opacity: .75; transition: opacity .4s; }
.gallery-item:hover::after { opacity: 1; }
.gallery-play { position: absolute; z-index: 3; inset: 50% auto auto 50%; width: 64px; height: 64px; display: grid; place-items: center; padding-left: 4px; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: white; background: rgba(28,18,28,.72); font-size: 1.15rem; transform: translate(-50%,-50%); transition: transform .3s, background .3s; }
.gallery-item:hover .gallery-play { background: var(--pink); transform: translate(-50%,-50%) scale(1.08); }
.gallery-media-type { position: absolute; z-index: 3; top: 1.3rem; left: 1.2rem; padding: .35rem .65rem; border-radius: 999px; color: white; background: rgba(28,18,28,.78); font-size: .58rem; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.gallery-item-no { position: absolute; z-index: 2; top: 1.2rem; right: 1.2rem; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-size: .6rem; }
.gallery-caption { position: absolute; z-index: 2; inset: auto 0 0; padding: 1.5rem; display: grid; grid-template-columns: 1fr auto; align-items: end; transform: translateY(8px); transition: transform .4s; }
.gallery-item:hover .gallery-caption { transform: none; }
.gallery-caption small { grid-column: 1/-1; margin-bottom: .4rem; color: var(--gold); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; }
.gallery-caption strong { font: clamp(1.4rem, 2.3vw, 2.3rem) var(--display); }
.gallery-caption i { opacity: 0; color: #f171bd; font-size: .65rem; font-style: normal; letter-spacing: .1em; text-transform: uppercase; transition: opacity .4s; }
.gallery-item:hover .gallery-caption i { opacity: 1; }
.gallery-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; color: white; background: radial-gradient(circle, rgba(241,113,189,.2), transparent 25%), #251b24; }
.gallery-cta .section-label { justify-content: center; }
.gallery-cta h2 { margin-bottom: 2.7rem; }
.lightbox[hidden] { display: none; }
.lightbox { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; overflow: hidden; padding: clamp(1rem,3vw,3rem); color: white; background: rgba(28,18,28,.94); backdrop-filter: blur(12px); animation: lightboxIn .3s ease; }
@keyframes lightboxIn { from { opacity: 0; } }
.lightbox-content { width: min(1200px, 92vw); height: min(780px, calc(100dvh - 6rem)); min-height: 0; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.65fr); overflow: hidden; background: #2b202b; box-shadow: 0 30px 90px rgba(0,0,0,.45); }
.lightbox-media { min-width: 0; min-height: 0; height: 100%; display: grid; place-items: center; background: #171117; }
.lightbox-media img, .lightbox-media video { grid-area: 1/1; width: 100%; height: 100%; display: block; object-fit: contain; background: #171117; }
.lightbox-media [hidden] { display: none; }
.lightbox-details { align-self:center; max-height: 100%; overflow-y: auto; padding: clamp(1.5rem,3vw,3rem); }
.lightbox-content p { margin: 0 0 .35rem; color: var(--gold); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.lightbox-content h2 { margin: 0; font: 2rem var(--display); }
.lightbox-content .lightbox-description { margin: 1.5rem 0; color: rgba(255,255,255,.72); font-size: .9rem; line-height: 1.75; letter-spacing: 0; text-transform: none; }
.lightbox-meta { margin: 0; border-top: 1px solid rgba(255,255,255,.14); }.lightbox-meta div { padding: .75rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }.lightbox-meta dt { color: var(--gold); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }.lightbox-meta dd { margin: .2rem 0 0; color: rgba(255,255,255,.82); }
.gallery-empty { margin: 4rem auto 0; max-width: 620px; color: #70636d; text-align: center; }
.gallery-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid rgba(37,27,36,.14); }
.gallery-pagination > div { display: flex; justify-content: center; gap: .45rem; }
.gallery-pagination a, .gallery-pagination span { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; border: 1px solid rgba(37,27,36,.18); color: #655963; text-decoration: none; font-size: .72rem; transition: .25s; }
.gallery-pagination a:hover, .gallery-pagination a.active { border-color: #251b24; color: white; background: #251b24; }
.gallery-pagination .pagination-direction { min-width: 112px; padding-inline: 1rem; }
.gallery-pagination > :last-child { justify-self: end; }
.gallery-pagination .disabled { opacity: .42; }
.lightbox-close { position: absolute; z-index: 2; top: 1.5rem; right: 1.5rem; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: white; background: transparent; font-size: 1.7rem; cursor: pointer; }

/* About and why-us content */
.why-intro { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem) 4rem; }
.why-intro > div { display: flex; align-items: end; justify-content: space-between; gap: 5rem; }
.why-intro h2, .why-flow h2, .why-cta h2 { margin: 0; font: clamp(3rem, 5.2vw, 5.6rem)/1 var(--display); }
.why-intro h2 em, .why-flow h2 em, .why-cta h2 em { color: #b42b76; font-weight: inherit; }
.why-intro > div > p { width: min(440px, 37vw); margin: 0; color: #70636d; line-height: 1.8; }
.why-grid { padding: 1rem clamp(1.5rem, 5vw, 6rem) clamp(6rem, 10vw, 10rem); display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.2rem; }
.why-card { position: relative; grid-column: span 4; min-height: 430px; padding: 2rem; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(37,27,36,.15); background: #f1e7ee; transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s; }
.why-card:hover { transform: translateY(-4px); box-shadow: 0 24px 55px rgba(28,18,28,.14); }
.why-card > span { color: #b42b76; font-size: .65rem; }
.why-symbol { margin: 4rem 0 auto; color: #b42b76; font-size: 2.3rem; }
.why-card h2 { margin: 0 0 .8rem; font: clamp(1.8rem, 2.6vw, 2.7rem) var(--display); }
.why-card > p { margin: 0 0 1.4rem; color: #70636d; font-size: .8rem; line-height: 1.7; }
.why-card > small { padding-top: 1rem; border-top: 1px solid rgba(37,27,36,.13); color: #b42b76; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.why-card-dark { color: white; background: #251b24; }
.why-card-dark > p { color: rgba(255,255,255,.58); }.why-card-dark > small { border-color: rgba(255,255,255,.14); color: #f171bd; }.why-card-dark .why-symbol { color: var(--gold); }
.why-card-gold { background: #f171bd; }
.why-card-gold > p { color: rgba(37,27,36,.7); }
.why-card-photo { grid-column: span 8; padding: 0; }
.why-card-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.why-card-photo:hover img { transform: scale(1.06); }
.why-card-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18,12,19,.87), transparent 65%); }
.why-card-photo > div { position: absolute; z-index: 2; inset: auto 0 0; padding: 2rem; }
.why-card-photo span { display: block; margin-bottom: .5rem; color: var(--gold); font-size: .63rem; letter-spacing: .14em; text-transform: uppercase; }
.why-card-photo strong { color: white; font: clamp(2rem, 3.5vw, 3.8rem) var(--display); }
.why-card-wide { grid-column: span 8; }
.claims-note { margin: 0 clamp(1.5rem, 7vw, 8rem) clamp(6rem, 9vw, 9rem); padding: 1.5rem 2rem; display: flex; align-items: center; gap: 1.4rem; border-left: 2px solid #b42b76; background: #f1e7ee; }
.claims-note > span { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid #b42b76; border-radius: 50%; color: #b42b76; font: 1.1rem var(--display); }
.claims-note p { margin: 0; color: #70636d; font-size: .75rem; line-height: 1.7; }
.claims-note strong { color: #b42b76; }
.why-flow { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; color: white; background: #251b24; }
.why-flow h2 em { color: var(--gold); }
.why-flow ol { margin: 0; padding: 0; list-style: none; }
.why-flow li { display: grid; grid-template-columns: 60px 1fr; padding: 1.8rem 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.why-flow li > span { grid-row: 1/3; color: var(--gold); font: 1.3rem var(--display); }
.why-flow h3 { margin: 0 0 .55rem; font: 1.45rem var(--display); }.why-flow li p { margin: 0; color: rgba(255,255,255,.55); font-size: .84rem; line-height: 1.7; }
.why-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; background: radial-gradient(circle, rgba(241,113,189,.18), transparent 25%), #f1e7ee; }
.why-cta .section-label { justify-content: center; }.why-cta h2 { margin-bottom: 2.7rem; }

/* How it works content merged into About */
.process-intro { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); }
.process-intro > div { display: flex; align-items: end; justify-content: space-between; gap: 5rem; }
.process-intro h2, .process-cta h2 { margin: 0; font: clamp(3rem, 5.2vw, 5.6rem)/1 var(--display); }.process-intro h2 em, .process-cta h2 em { color: #b42b76; font-weight: inherit; }
.process-intro > div > p { width: min(440px, 37vw); margin: 0; color: #70636d; line-height: 1.8; }
.process-journey { position: relative; padding: 2rem clamp(1.5rem, 7vw, 8rem) clamp(7rem, 11vw, 11rem); overflow: hidden; }
.journey-line { position: absolute; z-index: 0; left: 50%; top: 3rem; bottom: 7rem; width: 1px; background: rgba(37,27,36,.18); }
.journey-line span { position: sticky; top: 90px; display: block; width: 1px; height: 180px; background: linear-gradient(var(--gold), transparent); }
.journey-step { position: relative; z-index: 1; min-height: 630px; margin-bottom: 8rem; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(3rem, 8vw, 9rem); }
.journey-step:last-child { margin-bottom: 0; }
.journey-image { height: 610px; overflow: hidden; box-shadow: 28px 28px 0 #f1e7ee; }
.journey-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .8s; }.journey-step:hover .journey-image img { transform: scale(1.05); }
.journey-step:nth-child(4) .journey-image img { object-position: center 55%; }
.journey-reverse .journey-image { order: 2; box-shadow: -28px 28px 0 #f1e7ee; }.journey-reverse .journey-copy { order: 1; }
.journey-number { position: absolute; z-index: 2; left: 50%; top: 50%; width: 68px; height: 68px; display: grid; place-items: center; border: 1px solid #b42b76; border-radius: 50%; color: #b42b76; background: #fbf8fa; font: 1.35rem var(--display); transform: translate(-50%,-50%); box-shadow: 0 12px 35px rgba(28,18,28,.12); }
.journey-copy > p:first-child { margin: 0 0 .7rem; color: #b42b76; font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.journey-copy h2 { margin: 0 0 1.4rem; font: clamp(2.8rem, 4.5vw, 4.8rem)/1 var(--display); }
.journey-copy > p:not(:first-child) { color: #70636d; line-height: 1.8; }
.journey-copy ul { margin: 1.6rem 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; list-style: none; }
.journey-copy li { padding: .6rem .8rem; border: 1px solid rgba(37,27,36,.18); font-size: .64rem; letter-spacing: .09em; text-transform: uppercase; }
.process-summary { padding: 3rem clamp(1.5rem, 7vw, 8rem); display: flex; align-items: center; justify-content: space-between; color: white; background: #b42b76; }
.process-summary div { display: flex; align-items: center; gap: .8rem; }.process-summary span { font: 1.5rem var(--display); color: #f171bd; }.process-summary p { margin: 0; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }.process-summary i { color: rgba(255,255,255,.45); font-style: normal; }
.process-cta { padding: clamp(6rem, 11vw, 11rem) 1.5rem; text-align: center; color: white; background: radial-gradient(circle, rgba(241,113,189,.2), transparent 25%), #251b24; }.process-cta .section-label { justify-content: center; }.process-cta h2 { margin-bottom: 2.7rem; }.process-cta h2 em { color: var(--gold); }
.merged-process-intro { background: #fbf8fa; }
.merged-journey { background: #fbf8fa; }

/* Testimonials and enquiry page */
.contact-hero { position: relative; min-height: 740px; height: 90svh; display: flex; align-items: center; overflow: hidden; color: white; background: #251b24; }
.contact-hero-image { position: absolute; inset: 0; background: url("assets/celebration-table.webp") center/cover; }
.contact-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,18,28,.96), rgba(28,18,28,.65) 46%, rgba(28,18,28,.15)), linear-gradient(0deg, rgba(28,18,28,.65), transparent 50%); }
.contact-hero-copy { position: relative; z-index: 2; width: min(850px, 74vw); margin-left: clamp(1.5rem, 8vw, 9rem); animation: arrive .65s .1s both; }
.contact-hero-copy > p:not(.eyebrow) { max-width: 590px; margin: 2rem 0 2.2rem; color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.8; }
.planning-cta h2, .enquiry-aside h2 { margin: 0; font: clamp(3rem, 5.2vw, 5.6rem)/1 var(--display); }.planning-cta h2 em, .enquiry-aside h2 em { color: #b42b76; font-weight: inherit; }
.planning-cta { padding: clamp(5rem, 8vw, 8rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: 1fr .65fr auto; align-items: center; gap: 4vw; color: white; background: radial-gradient(circle at 75%, rgba(241,113,189,.16), transparent 25%), #251b24; }.planning-cta h2 em { color: var(--gold); }.planning-cta > p { color: rgba(255,255,255,.58); line-height: 1.8; }.planning-cta > div:last-child { display: grid; gap: 1.2rem; justify-items: center; }.planning-cta .text-link { color: #f171bd; }
.enquiry-section { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: 7vw; background: #fbf8fa; }.enquiry-aside { position: sticky; top: 110px; }.enquiry-aside > p:not(.section-label) { margin: 2rem 0; color: #70636d; line-height: 1.8; }.enquiry-promise { margin-top: 3rem; }.enquiry-promise span { float: left; width: 35px; color: #b42b76; font: 1.1rem var(--display); }.enquiry-promise p { margin: 0 0 1.4rem 45px; padding-bottom: 1.4rem; border-bottom: 1px solid rgba(37,27,36,.13); color: #70636d; font-size: .75rem; line-height: 1.6; }
.quote-form { padding: clamp(1.5rem, 4vw, 4rem); color: white; background: #251b24; box-shadow: 28px 28px 0 #f1e7ee; }.form-progress { display: flex; align-items: center; gap: 1rem; margin-bottom: 2.5rem; }.form-progress > span { width: 42px; height: 1px; background: var(--gold); }.form-progress p { margin: 0; color: var(--gold); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }.form-progress small { margin-left: auto; color: rgba(255,255,255,.45); font-size: .6rem; }
.selected-package { margin: -1rem 0 2.2rem; padding: .85rem; display: grid; grid-template-columns: 76px minmax(0,1fr) auto; align-items: center; gap: 1rem; border: 1px solid rgba(241,113,189,.45); background: rgba(241,113,189,.08); }
.selected-package img { width: 76px; height: 68px; object-fit: cover; }
.selected-package div { min-width: 0; display: grid; gap: .18rem; }
.selected-package small { color: var(--gold); font-size: .58rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.selected-package strong { color: white; font: 1.3rem var(--display); }
.selected-package span { color: rgba(255,255,255,.6); font-size: .7rem; }
.selected-package a { color: #f171bd; font-size: .65rem; text-transform: uppercase; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem 1.2rem; }.form-grid > label { display: grid; gap: .55rem; }.form-grid label > span, .form-grid legend { color: rgba(255,255,255,.65); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }.form-grid input, .form-grid select, .form-grid textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,.24); border-radius: 0; outline: 0; padding: .8rem .1rem; color: white; background: transparent; font: .82rem var(--sans); transition: border .25s; }.form-grid select { color-scheme: dark; }.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-bottom-color: var(--gold); }.form-grid input::placeholder, .form-grid textarea::placeholder { color: rgba(255,255,255,.35); }.form-grid .invalid { border-bottom-color: #ff9c8e; }.field-error { display:block; margin-top:.25rem; color:#ffc1b8; font-size:.72rem; line-height:1.4; }.form-full, .form-grid fieldset { grid-column: 1/-1; }.form-grid fieldset { margin: 0; padding: 0; border: 0; }.choice-row { display: flex; gap: .6rem; margin-top: .7rem; flex-wrap: wrap; }.choice-row label { position: relative; }.choice-row input { position: absolute; opacity: 0; }.choice-row span { display: block; padding: .7rem .9rem; border: 1px solid rgba(255,255,255,.2); cursor: pointer; }.choice-row input:checked + span { border-color: var(--gold); color: #251b24; background: var(--gold); }.choice-row input:focus-visible + span { outline:2px solid #ff9bd2; outline-offset:4px; }.choice-row input.invalid + span { border-color:#ff9c8e; }.form-actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 2.5rem; }.form-actions p { margin: 0; color: rgba(255,255,255,.4); font-size: .62rem; line-height: 1.5; }.form-actions button:disabled { opacity:.6; cursor:wait; }.form-status { margin-top: 1.5rem; padding: 1rem; border: 1px solid var(--gold); color: #f171bd; font-size: .75rem; line-height: 1.6; }

/* About page */
.inner-page { background: #fbf8fa; }
.inner-page .site-header { position: fixed; }
.page-intro { min-height: 500px; padding: 180px clamp(1.5rem, 8vw, 9rem) 90px; display: flex; align-items: end; justify-content: space-between; gap: 4rem; color: white; background: radial-gradient(circle at 78% 38%, rgba(241,113,189,.16), transparent 26%), #251b24; }
.page-intro h1 { font-size: clamp(3.5rem, 6vw, 6.5rem); }
.page-intro > p { width: min(390px, 34vw); margin: 0 0 .65rem; color: rgba(255,255,255,.68); font-size: 1rem; line-height: 1.8; }
.about-split { display: grid; grid-template-columns: minmax(320px, .95fr) minmax(420px, 1.05fr); min-height: 820px; }
.about-image-wrap { position: relative; min-height: 760px; overflow: hidden; }
.about-image-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(28,18,28,.25), transparent 35%); pointer-events: none; }
.about-image-wrap img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 40%; }
.image-note { position: absolute; z-index: 1; right: 0; bottom: 0; display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.5rem; background: var(--cream); color: var(--ink); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.image-note span { color: #b42b76; font: 1.6rem var(--display); }
.about-story { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 8rem); background: #f1e7ee; }
.about-story h2 { margin: 0 0 2.2rem; font: clamp(3rem, 5vw, 5.5rem)/1 var(--display); }
.about-story h2 em { color: #b42b76; font-weight: inherit; }
.about-story > p:not(.section-label) { max-width: 620px; color: #70636d; line-height: 1.85; }
.about-story .story-lead { margin: 0 0 1rem; color: var(--ink) !important; font: 1.3rem/1.65 var(--display); }
.story-values { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.5rem 0 2.2rem; }
.story-values span { padding: .65rem .85rem; border: 1px solid rgba(37,27,36,.2); font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }
.text-link { width: fit-content; padding-bottom: .5rem; border-bottom: 1px solid #b42b76; color: #b42b76; font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.text-link span { display: inline-block; margin-left: 1.4rem; transition: transform .2s; }
.text-link:hover span { transform: translateX(5px); }
.about-quote { padding: clamp(5rem, 9vw, 9rem) 1.5rem; text-align: center; background: white; }
.about-quote > span { color: var(--gold); font: 4rem/.7 var(--display); }
.about-quote blockquote { margin: 1.2rem auto 2.5rem; font: clamp(2.2rem, 4.5vw, 4.6rem)/1.15 var(--display); }
.site-footer { padding: 2.2rem clamp(1.5rem, 8vw, 9rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: white; background: #251b24; }
.site-footer p { color: rgba(255,255,255,.58); font-size: .8rem; }
.site-footer > a:last-child { color: var(--gold); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.founder-section { padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 8vw; background: #fbf8fa; }.founder-portrait { position: relative; height: 700px; }.founder-portrait::before { content: ""; position: absolute; inset: 28px -28px -28px 28px; border: 1px solid #b42b76; }.founder-portrait img { position: relative; width: 100%; height: 100%; display: block; object-fit: cover; }.founder-portrait > span { position: absolute; z-index: 2; left: 0; bottom: 0; padding: .8rem 1rem; color: white; background: rgba(28,18,28,.88); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }.founder-copy h2 { margin: 0; font: clamp(3rem, 5vw, 5.4rem)/1 var(--display); }.founder-copy h2 em { color: #b42b76; font-weight: inherit; }.founder-copy > p:not(.section-label) { color: #70636d; line-height: 1.85; }.founder-copy .founder-lead { margin-top: 2rem; color: var(--ink) !important; font: 1.25rem/1.65 var(--display); }.founder-copy blockquote { margin: 2rem 0; padding-left: 1.3rem; border-left: 2px solid #b42b76; font: 1.5rem/1.5 var(--display); }
.about-gallery { min-height: 680px; padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: 2rem; overflow: hidden; background: #f1e7ee; }
.about-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .7s; }
.gallery-main { height: 520px; overflow: hidden; box-shadow: 24px 24px 0 #f1e7ee; }
.gallery-main:hover img, .gallery-detail:hover img { transform: scale(1.05); }
.gallery-detail { height: 430px; margin-top: 120px; overflow: hidden; position: relative; }
.gallery-detail p { position: absolute; inset: auto 0 0; margin: 0; padding: 1.3rem; color: white; background: linear-gradient(0deg, rgba(18,12,19,.85), transparent); font: 1.3rem var(--display); }
.gallery-detail p span { color: var(--gold); }

@media (max-width: 1120px) {
  .package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-toggle { position: relative; z-index: 51; width: 44px; height: 44px; display: block; cursor: pointer; }
  .menu-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle.open span:nth-child(2) { opacity: 0; }
  .menu-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav { position: fixed; inset: 0; padding: 7rem 1.5rem 2rem; display: grid; align-content: center; justify-items: center; gap: 1.5rem; overflow-y: auto; visibility: hidden; pointer-events: none; background: #251b24; font: 1.5rem var(--display); overscroll-behavior: contain; transform: translateX(100%); transition: transform .35s ease, visibility 0s .35s; }
  .site-nav.open { visibility: visible; pointer-events: auto; transform: none; transition-delay: 0s; }
  .nav-cta { margin-top: 1rem; font: .8rem var(--sans); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-grid article:nth-child(even) { border-right: 0; }
  .page-intro { min-height: 460px; }
  .about-split { grid-template-columns: 1fr 1fr; }
  .about-story { padding: 4rem 2.5rem; }
  .founder-section { grid-template-columns: 1fr; }.founder-portrait { height: 600px; }
  .experience-grid { grid-template-columns: repeat(2, 1fr); }
  .experience-card:last-child { grid-column: 1 / -1; min-height: 420px; }
  .cinematic-section { grid-template-columns: 1fr; }
  .cinematic-frame { height: 520px; }
  .service-process { grid-template-columns: 1fr; }
  .service-detail-body { grid-template-columns: 1fr; }.service-mini-gallery { height: 520px; }
  .interactive-menu-layout { grid-template-columns: 1fr; }.menu-builder { position: relative; top: 0; }
  .menu-philosophy { grid-template-columns: 1fr; }
  .gallery-item, .gallery-item.gallery-square { grid-column: span 6; }
  .gallery-item.gallery-landscape, .gallery-item.gallery-wide { grid-column: span 12; }
  .gallery-item.gallery-tall, .gallery-item.gallery-portrait { grid-column: span 6; }
  .why-card { grid-column: span 6; }
  .why-card-photo, .why-card-wide { grid-column: span 12; }
  .why-flow { grid-template-columns: 1fr; }
  .journey-step { gap: 5rem; }
  .planning-cta { grid-template-columns: 1fr 1fr; }.planning-cta > div:last-child { grid-column: 1/-1; justify-self: start; }.enquiry-section { grid-template-columns: 1fr; }.enquiry-aside { position: static; }
}

@media (max-width: 640px) {
  .site-header { height: 76px; padding-inline: 1.2rem; }
  .packages-page .services-hero-content { width: 100%; min-width: 0; max-width: 100%; }
  .packages-page .services-hero-content h1 { font-size: 2.6rem; line-height: 1; }
  .packages-page .services-hero-content > p:last-child { font-size: .9rem; line-height: 1.7; }
  .package-grid { grid-template-columns: 1fr; padding-inline: 1.25rem; }
  .package-card-heading { min-height: 0; }
  .selected-package { grid-template-columns: 60px minmax(0,1fr); }
  .selected-package img { width: 60px; height: 56px; }
  .selected-package > a { grid-column: 2; }
  .hero { min-height: 760px; background-position: 61% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(18,12,19,.92), rgba(18,12,19,.55)), linear-gradient(0deg, rgba(18,12,19,.8), transparent); }
  .hero-content { width: auto; margin: 0 1.25rem; padding-top: 10rem; }
  h1 { font-size: clamp(3.25rem, 15vw, 4.5rem); }
  .hero-intro { margin-block: 1.5rem; font-size: .95rem; }
  .hero-actions { align-items: stretch; }
  .button { flex: 1 1 100%; }
  .event-strip { overflow-x: auto; justify-content: flex-start; padding-inline: 1.25rem; white-space: nowrap; scrollbar-width: none; }
  .scroll-cue { display: none; }
  .trust-intro { display: block; }
  .trust-intro .section-label { margin-bottom: 1rem; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid article, .trust-grid article:first-child { display: flex; gap: 1.2rem; min-height: auto; padding: 1.4rem 0; border-right: 0; border-bottom: 1px solid rgba(37,27,36,.14); }
  .trust-icon { width: 30px; margin: 0; flex: 0 0 auto; }
  .whatsapp span { display: none; }
  .whatsapp { padding: .7rem; }
  .page-intro { min-height: 560px; padding: 140px 1.25rem 70px; display: block; }
  .page-intro > p { width: auto; margin-top: 2rem; }
  .about-split { display: flex; flex-direction: column; }
  .about-image-wrap { min-height: 530px; }
  .about-story { padding: 4rem 1.25rem; }
  .about-story .story-lead { font-size: 1.18rem; }
  .founder-section { padding-inline: 1.25rem; }.founder-portrait { height: 530px; }.founder-portrait::before { inset: 12px -8px -12px 8px; }
  .site-footer { flex-direction: column; align-items: flex-start; }
  .section-heading { display: block; }
  .section-heading > p { width: auto; margin-top: 1.5rem; }
  .experience-grid { grid-template-columns: 1fr; }
  .experience-card, .experience-card:last-child { min-height: 450px; grid-column: auto; }
  .cinematic-section { padding-bottom: 5rem; }
  .cinematic-frame { height: 420px; box-shadow: 14px 14px 0 #f1e7ee; }
  .about-gallery { grid-template-columns: 1fr; }
  .gallery-main { height: 390px; box-shadow: 12px 12px 0 #f1e7ee; }
  .gallery-detail { height: 360px; margin-top: 1rem; }
  .services-hero { min-height: 720px; }
  .services-hero-content { width: auto; padding: 0 1.25rem 7rem; }
  .services-hero-content > p:last-child { width: auto; }
  .services-intro > div { display: block; }
  .services-intro > div > p { width: auto; margin-top: 1.5rem; }
  .service-process { padding-inline: 1.25rem; }
  .service-jump { top: 76px; justify-content: flex-start; }.service-detail { padding-inline: 1.25rem; }.service-detail-hero { min-height: 620px; }.service-detail-hero > div { padding: 4rem 1.4rem; }.service-detail-hero h2 { font-size: 3.7rem; }.service-detail-body { padding-block: 4rem; }.service-mini-gallery { height: 430px; }.available-list { grid-template-columns: 1fr; }.service-faq { margin: 0; }
  .menu-hero { min-height: 720px; }
  .menu-hero-image { background-position: 62% center; }
  .menu-hero-copy { width: auto; margin: 0 1.25rem; }
  .menu-hero-note { display: none; }
  .menu-intro { grid-template-columns: 1fr; }
  .menu-panel { min-height: 540px; padding: 2.3rem 1.4rem; }
  .menu-toolbar { align-items: flex-start; }.menu-label-key { display: none; }.interactive-menu { padding-inline: 1.25rem; }.menu-card-panels .menu-panel { min-height: 700px; padding: 2rem 1rem; }.dish-card { grid-template-columns: 1fr; padding-bottom: 3.4rem; }.dish-labels { margin-top: .3rem; }.panel-heading small { position: static; display: block; margin-top: -1.8rem; margin-bottom: 2rem; }
  .menu-philosophy { padding-inline: 1.25rem; }
  .menu-image-stack { height: 410px; }
  .menu-image-stack > div { width: 94%; box-shadow: 12px 12px 0 #f1e7ee; }
  .gallery-hero-copy { width: auto; padding: 0 1.25rem 7rem; }
  .gallery-count { display: none; }
  .portfolio-heading { display: block; }
  .portfolio-heading > p { width: auto; margin-top: 1.5rem; }
  .gallery-filters { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .masonry-gallery { display: block; }
  .gallery-item, .gallery-item.gallery-square, .gallery-item.gallery-landscape, .gallery-item.gallery-wide, .gallery-item.gallery-tall, .gallery-item.gallery-portrait { width: 100%; height: 460px; display: block; margin-bottom: .8rem; }
  .gallery-item.is-hidden { display: none; }
  .gallery-pagination { grid-template-columns: 1fr 1fr; }
  .gallery-pagination > div { grid-column: 1/-1; grid-row: 1; }
  .gallery-pagination .pagination-direction { grid-row: 2; }
  .lightbox { padding: 1rem; }
  .lightbox-content { width: 100%; height: calc(100dvh - 2rem); max-height: none; grid-template-columns: 1fr; grid-template-rows: minmax(0,1fr) auto; }
  .lightbox-media { height: auto; min-height: 0; }
  .lightbox-details { align-self:stretch; max-height: 36dvh; padding: 1.1rem 1.25rem; }
  .why-intro > div { display: block; }
  .why-intro > div > p { width: auto; margin-top: 1.5rem; }
  .why-grid { display: block; padding-inline: 1.25rem; }
  .why-card { min-height: 400px; margin-bottom: .9rem; }
  .why-card-photo { min-height: 480px; }
  .claims-note { margin-inline: 1.25rem; align-items: flex-start; }
  .why-flow { padding-inline: 1.25rem; }
  .process-intro > div { display: block; }.process-intro > div > p { width: auto; margin-top: 1.5rem; }
  .process-journey { padding-inline: 1.25rem; }.journey-line { display: none; }
  .journey-step { display: flex; flex-direction: column; align-items: stretch; gap: 2rem; margin-bottom: 6rem; }.journey-reverse .journey-image, .journey-reverse .journey-copy { order: initial; }
  .journey-image { height: 450px; box-shadow: 12px 12px 0 #f1e7ee; }.journey-reverse .journey-image { box-shadow: 12px 12px 0 #f1e7ee; }
  .journey-number { left: 1rem; top: 1rem; transform: none; }
  .process-summary { overflow-x: auto; gap: 1.5rem; }.process-summary div, .process-summary i { flex: 0 0 auto; }
  .contact-hero-copy { width: auto; margin: 0 1.25rem; }.planning-cta { grid-template-columns: 1fr; padding-inline: 1.25rem; }.planning-cta > div:last-child { grid-column: auto; justify-self: stretch; }.enquiry-section { padding-inline: 1.25rem; }.quote-form { padding: 2rem 1.2rem; box-shadow: 12px 12px 0 #f1e7ee; }.form-grid { grid-template-columns: 1fr; }.form-full, .form-grid fieldset { grid-column: auto; }.form-actions { display: block; }.form-actions .button { width: 100%; }.form-actions p { margin-top: 1rem; }.choice-row { display: grid; grid-template-columns: 1fr; }
}

/* Contact details, map and FAQ */
.contact-details-section { padding: clamp(6rem,10vw,10rem) clamp(1.5rem,6vw,7rem); background:#fbf8fa; }
.contact-details-heading { display:grid; grid-template-columns:1fr .6fr; align-items:end; gap:5vw; }
.contact-details-heading .section-label,.contact-details-heading h2 { grid-column:1; }
.contact-details-heading h2,.contact-faq-heading h2 { margin:0; font:clamp(3rem,5.2vw,5.6rem)/1 var(--display); }
.contact-details-heading h2 em,.contact-faq-heading h2 em { color:#b42b76; font-weight:inherit; }
.contact-details-heading>p:last-child { grid-column:2; grid-row:1/3; margin:0; color:#70636d; line-height:1.8; }
.contact-method-grid { margin-top:4rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.contact-method { min-height:350px; padding:1.7rem; display:flex; flex-direction:column; border:1px solid rgba(37,27,36,.15); background:#f1e7ee; transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s; }
.contact-method:hover { transform:translateY(-4px); box-shadow:0 24px 55px rgba(28,18,28,.13); }
.contact-method-highlight { color:white; background:#251b24; }
.contact-method>span { color:#b42b76; font-size:.65rem; }.contact-method-icon { width:56px; height:56px; margin:4rem 0 auto; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; color:#b42b76; }.contact-method-icon .contact-icon { width:25px; height:25px; }.contact-method-highlight .contact-method-icon { color:var(--gold); }
.contact-method h3 { margin:0 0 .7rem; font:1.7rem var(--display); }.contact-method p { margin:0 0 1.2rem; color:#70636d; font-size:.74rem; line-height:1.6; }.contact-method-highlight p { color:rgba(255,255,255,.55); }
.contact-method strong { padding-top:1rem; border-top:1px solid rgba(37,27,36,.14); color:#b42b76; font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; }.contact-method strong a { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color .2s, color .2s; }.contact-method strong a:hover,.contact-method strong a:focus-visible { color:#7f1851; text-decoration-color:currentColor; }.contact-method-highlight strong { border-color:rgba(255,255,255,.14); color:#f171bd; }.contact-method-highlight strong a:hover,.contact-method-highlight strong a:focus-visible { color:white; }
.contact-practical { margin-top:1rem; display:grid; grid-template-columns:1fr 1fr; color:white; background:#b42b76; }.contact-practical>div { min-height:185px; padding:2.3rem; }.contact-practical>div:first-child { border-right:1px solid rgba(255,255,255,.2); }.contact-practical span { color:#f171bd; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; }.contact-practical h3 { margin:1rem 0 .5rem; font:1.7rem var(--display); }.contact-practical p { margin:0; color:rgba(255,255,255,.56); font-size:.74rem; line-height:1.6; }
.contact-faq { padding:clamp(6rem,10vw,10rem) clamp(1.5rem,7vw,8rem); display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; background:#f1e7ee; }.contact-faq-heading>p:last-child { color:#70636d; line-height:1.8; }.contact-faq-list details { border-bottom:1px solid rgba(37,27,36,.17); }.contact-faq-list summary { padding:1.35rem 0; display:flex; justify-content:space-between; gap:1rem; list-style:none; cursor:pointer; font:1.25rem var(--display); }.contact-faq-list summary::-webkit-details-marker { display:none; }.contact-faq-list summary span { color:#b42b76; transition:transform .25s; }.contact-faq-list details[open] summary span { transform:rotate(45deg); }.contact-faq-list details>div { padding:0 0 1.4rem; color:#70636d; font-size:.78rem; line-height:1.75; }
@media(max-width:1120px){.contact-method-grid{grid-template-columns:1fr 1fr}.contact-faq{grid-template-columns:1fr}}
@media(max-width:640px){.contact-details-section,.contact-faq{padding-inline:1.25rem}.contact-details-heading{display:block}.contact-details-heading>p:last-child{margin-top:1.5rem}.contact-method-grid{grid-template-columns:1fr}.contact-method{min-height:310px}.contact-practical{grid-template-columns:1fr}.contact-practical>div:first-child{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}}

/* Full site footer */
.site-footer.footer-full { padding: 0; display: block; color: white; background: #251b24; }
.footer-brand .brand { width: 180px; height: 110px; }
.footer-brand .brand-logo { width: 250px; height: 250px; }
.footer-grid { padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 7vw, 8rem); display: grid; grid-template-columns: 1.55fr .7fr .9fr 1fr; gap: clamp(2.5rem, 5vw, 6rem); }
.footer-brand > p { max-width: 340px; margin: 1.7rem 0; color: rgba(255,255,255,.52); font-size: .78rem; line-height: 1.8; }
.footer-grid h2 { margin: .3rem 0 1.6rem; color: var(--gold); font: .72rem var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.footer-grid nav { display: grid; gap: .85rem; }
.footer-grid nav a { width: fit-content; color: rgba(255,255,255,.63); font-size: .76rem; transition: color .2s, transform .2s; }
.footer-grid nav a:hover { color: var(--gold); transform: translateX(4px); }
.footer-contact p { margin: 0 0 1rem; color: rgba(255,255,255,.58); font-size: .74rem; line-height: 1.5; }
.footer-contact p span { display: block; margin-bottom: .25rem; color: rgba(255,255,255,.3); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-socials { display: flex; gap: .55rem; }
.footer-socials span { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: rgba(255,255,255,.62); font-size: .7rem; text-transform: uppercase; cursor: not-allowed; }
.footer-bottom { padding: 1.4rem clamp(1.5rem, 7vw, 8rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-top: 1px solid rgba(255,255,255,.1); }
.footer-bottom p { margin: 0; color: rgba(255,255,255,.34); font-size: .62rem; }
.footer-credits { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.25rem; }
.footer-bottom .developer-credit { color: rgba(255,255,255,.5); }
.developer-credit a { color: #f99bd0; font-weight: 600; letter-spacing: .04em; text-decoration: none; }
.developer-credit a:hover, .developer-credit a:focus-visible { color: white; text-decoration: underline; text-underline-offset: 3px; }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.footer-bottom nav a { color: rgba(255,255,255,.52); font-size: .6rem; text-decoration: none; transition: color .2s; }
.footer-bottom nav a:hover, .footer-bottom nav a:focus-visible { color: #f99bd0; }
@media (max-width: 1120px) { .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; } .footer-contact { grid-column: 2 / -1; } }
@media (max-width: 640px) { .footer-grid { grid-template-columns: 1fr 1fr; padding-inline: 1.25rem; } .footer-brand, .footer-contact { grid-column: 1 / -1; } .footer-bottom { padding-inline: 1.25rem; display: block; } .footer-credits { align-items: flex-start; flex-direction: column; gap: .4rem; } .footer-bottom nav { margin-top: 1rem; gap: .8rem 1.2rem; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }

@media (scripting: none) {
  .menu-category-tabs, .menu-builder, .dish-card button { display: none !important; }
  .menu-panel[hidden] { display: block !important; }
  .menu-card-panels, .menu-card-panels .menu-panel { min-height: 0; }
}

@media (max-width: 1120px) and (scripting: none) {
  .menu-toggle { display: none; }
  .site-nav { position: fixed; inset: 76px 0 auto; height: 52px; padding: 0 1rem; display: flex; align-items: center; justify-content: flex-start; gap: 1rem; overflow-x: auto; visibility: visible; pointer-events: auto; background: #251b24; font: 600 .72rem var(--sans); white-space: nowrap; transform: none; }
  .nav-cta { margin: 0; padding: .55rem .75rem; }
}

/* Kaur Caterers brand */
.site-header { background: linear-gradient(180deg, rgba(22,14,22,.82), rgba(22,14,22,0)); }
.site-header.scrolled { background: rgba(29,19,29,.97); }
.site-nav > a:not(.nav-cta):hover, .site-nav > a.active { color: #ffb1dc; }
.hero-shade { background: linear-gradient(90deg, rgba(22,14,22,.97) 0%, rgba(22,14,22,.82) 34%, rgba(22,14,22,.19) 72%), linear-gradient(0deg, rgba(22,14,22,.65), transparent 45%); }
.hero-content { padding-left: clamp(1.3rem, 2.4vw, 2.4rem); }
.hero h1 em { color: #f171bd; font-style: normal; }
.hero-intro { max-width: 510px; }
.event-strip { border-top: 1px solid rgba(241,113,189,.3); }
.section-label { color: var(--accent-ink); }
.section-dark .section-label,
.service-process .section-label, .why-flow .section-label,
.home-cta .section-label, .process-cta .section-label, .planning-cta .section-label,
.quote-form .section-label, .why-cta .section-label { color: var(--gold); }
.experience-section, .service-process, .why-flow { background: #2b202b; }
.experience-card { border: 1px solid rgba(255,255,255,.2); box-shadow: none; }
.card-image { filter: saturate(1); }
.cinematic-section { background: #f4edf2; }
.cinematic-frame { box-shadow: 24px 24px 0 #e4d3df, 0 26px 70px rgba(45,20,38,.16); }
.cinematic-overlay { align-content: end; justify-items: start; padding: 2rem; background: linear-gradient(0deg, rgba(22,14,22,.7), transparent 50%); }
.cinematic-overlay p { margin: 0; font-size: 1.35rem; }
.marquee { color: white; background: #a92d73; }
.home-cta, .process-cta { background: #211821; }
.page-intro { background: linear-gradient(90deg, rgba(28,18,28,.97), rgba(28,18,28,.7) 60%, rgba(28,18,28,.35)), url("assets/signature-menu.webp") center/cover; }
.services-hero-bg { background: linear-gradient(90deg, rgba(28,18,28,.93), rgba(28,18,28,.48) 60%, rgba(28,18,28,.12)), url("assets/celebration-table.webp") center/cover; }
.menu-hero-shade, .gallery-hero-shade, .contact-hero-shade { background: linear-gradient(90deg, rgba(28,18,28,.95), rgba(28,18,28,.65) 48%, rgba(28,18,28,.12)); }
.contact-method-highlight, .menu-builder { background: #382637; }
.menu-card-panels, .quote-form { background: #2b202b; }
.gallery-filter:hover, .gallery-filter.active { background: #a92d73; border-color: #a92d73; }
.site-footer.footer-full { background: #19141b; }
.footer-grid h2, .footer-grid nav a:hover { color: #f99bd0; }
.trust article p, .contact-method p,
.dish-card p, .builder-content > p:not(.section-label), .footer-brand > p,
.footer-contact p { font-size: .9rem; }
.form-grid label > span, .form-grid legend { font-size: .86rem; }
.form-grid input, .form-grid select, .form-grid textarea { font-size: 1rem; }
.form-actions p { font-size: .85rem; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #ff9bd2; outline-offset: 4px; }

@media (max-width: 1120px) {
  .site-nav { background: #251b24; }
  .site-nav > a { font-size: 1.2rem; }
}
@media (max-width: 640px) {
  .site-header { height: 76px; }
  .brand { flex-basis: 135px; width: 135px; height: 76px; }
  .brand-logo { width: 96px; height: 96px; }
  .hero { min-height: 640px; height: 86svh; background-position: 62% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(22,14,22,.92), rgba(22,14,22,.62)), linear-gradient(0deg, rgba(22,14,22,.76), transparent 55%); }
  .hero-content { width: auto; margin: 0 1.25rem; padding: 2rem 0 2rem 1.2rem; }
  .hero h1 { font-size: 4.3rem; }
  .hero-intro { margin: 1.4rem 0 1.7rem; font-size: 1rem; }
  .event-strip { min-height: 58px; }
  .page-intro { min-height: 500px; }
}
@media (max-width: 400px) {
  .hero h1 { font-size: 3.5rem; }
}
/* Backend-connected public controls */
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.whatsapp-float{position:fixed;right:22px;bottom:96px;z-index:80;display:none;align-items:center;gap:8px;padding:12px 16px;border-radius:999px;background:#1f9d55;color:#fff;text-decoration:none;font-weight:600;box-shadow:0 8px 24px #0003}
.whatsapp-float.visible{display:flex}.whatsapp-float .contact-icon{width:20px;height:20px}.form-status .button{margin-top:12px}.form-status.error{color:#9f2f2f}
.form-grid select option,.form-grid select optgroup{color:#251b24;background:#fff}
.form-grid input,.form-grid select,.form-grid textarea{min-width:0;max-width:100%}
.form-status.success{border-color:#8fd6ad;color:#b9f2d0;background:rgba(31,157,85,.12)}
.form-status.error{border-color:#ff9c8e;color:#ffd2cc;background:rgba(159,47,47,.16)}

/* Shared contact strip and linked footer contact details */
.contact-strip{position:fixed;inset:0 0 auto;z-index:49;height:48px;color:#fff;background:linear-gradient(100deg,#171118 0%,#2d1d2a 55%,#4a2039 100%);border-bottom:1px solid rgba(241,113,189,.35);box-shadow:0 8px 24px rgba(15,8,14,.18)}
.contact-strip::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(249,155,208,.85),transparent)}
.contact-strip-inner{position:relative;z-index:1;height:100%;padding:0 clamp(1.5rem,5vw,5.5rem);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.header-contact-links,.header-socials{display:flex;align-items:center;gap:.5rem}
.contact-strip a{display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.82);text-decoration:none;transition:color .2s,background .2s,border-color .2s,transform .2s}
.contact-strip-action{min-height:36px;gap:.55rem;padding:.35rem .75rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.055);backdrop-filter:blur(8px)}
.contact-strip-action:hover,.contact-strip-action:focus-visible{color:white;border-color:rgba(249,155,208,.62);background:rgba(241,113,189,.16);transform:translateY(-1px)}
.contact-copy{display:grid;gap:.05rem;line-height:1.05}
.contact-copy small{color:#f99bd0;font-size:.52rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.contact-copy strong{max-width:260px;overflow:hidden;color:rgba(255,255,255,.92);font-size:.66rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.header-socials::before{content:"Follow us";margin-right:.2rem;color:rgba(255,255,255,.5);font-size:.55rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.header-socials a{width:34px;height:34px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.055)}
.header-socials a:hover,.header-socials a:focus-visible{color:#251b24;border-color:#f99bd0;background:#f99bd0;transform:translateY(-2px)}
.contact-icon{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.contact-icon .icon-fill{fill:currentColor;stroke:none}
.contact-strip-action>.contact-icon{width:18px;height:18px;color:#f99bd0}
.contact-strip-action:hover>.contact-icon,.contact-strip-action:focus-visible>.contact-icon{color:white}
.site-header.has-contact-strip{top:48px}
.footer-socials a{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:rgba(255,255,255,.68);transition:color .2s,border-color .2s,transform .2s}
.footer-socials a:hover{color:#f99bd0;border-color:#f99bd0;transform:translateY(-2px)}
.footer-socials .contact-icon{width:18px;height:18px}
.footer-contact p>a,.footer-contact-value{display:inline-flex;align-items:center;gap:.5rem;color:rgba(255,255,255,.7);text-decoration:none}
.footer-contact p>a:hover{color:#f99bd0}
.footer-contact .contact-icon{width:16px;height:16px;color:#f99bd0}
@media(max-width:1000px){.contact-copy small,.header-socials::before{display:none}.contact-strip-action{padding-inline:.6rem}.contact-copy strong{max-width:190px}}
@media(max-width:640px){
  .contact-strip{height:48px}.contact-strip-inner{padding:0 .8rem}.site-header.has-contact-strip{top:48px}
  .header-contact-links,.header-socials{gap:.3rem}.contact-strip a{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}
  .contact-strip .contact-copy,.contact-strip .contact-text,.header-socials::before{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .contact-strip .contact-icon{width:18px;height:18px}
  .footer-socials a{width:42px;height:42px}
  .whatsapp-float{right:14px;bottom:88px;padding:11px}
  .whatsapp-float{font-size:0}.whatsapp-float .contact-icon{width:23px;height:23px}
}
@media print{.contact-strip{display:none!important}.site-header.has-contact-strip{top:0}}

/* Explicit form consent and privacy choices */
.form-grid .form-consent{margin-top:.5rem;padding:1.25rem;border:1px solid rgba(255,255,255,.22);border-radius:2px}
.form-consent legend{padding:0 .45rem;color:#fff}
.form-grid .consent-check{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:.75rem;color:rgba(255,255,255,.84);font-size:.9rem;line-height:1.65;text-transform:none;letter-spacing:0}
.form-grid .consent-check+.consent-check{margin-top:1rem}
.form-grid .consent-check input{width:20px;height:20px;margin:.15rem 0 0;padding:0;accent-color:#f171bd}
.form-grid .consent-check span{color:inherit;font-size:inherit;line-height:inherit;text-transform:none;letter-spacing:0}
.consent-check a{color:#ffb1dc;text-decoration:underline;text-underline-offset:3px}
.consent-check a:hover,.consent-check a:focus-visible{color:#fff}
.footer-bottom nav button{width:fit-content;margin:0;padding:0;border:0;color:rgba(255,255,255,.62);background:transparent;font:inherit;font-size:.6rem;cursor:pointer;transition:color .2s}
.footer-bottom nav button:hover,.footer-bottom nav button:focus-visible{color:#f99bd0}
.cookie-banner{position:fixed;z-index:120;right:1.25rem;bottom:1.25rem;width:min(760px,calc(100% - 2.5rem));padding:1.35rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;color:#fff;background:#211821;border:1px solid rgba(249,155,208,.55);box-shadow:0 18px 60px rgba(15,8,14,.4)}
.cookie-banner[hidden]{display:none!important}
.cookie-banner h2{margin:0 0 .45rem;color:#fff;font:1.55rem var(--display)}
.cookie-banner p{margin:0;color:rgba(255,255,255,.78);font-size:.82rem;line-height:1.65}
.cookie-banner a{color:#ffb1dc;text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.cookie-actions button{min-height:44px;padding:.7rem 1rem;border:1px solid #f99bd0;color:#fff;background:transparent;font:600 .72rem var(--sans);cursor:pointer}
.cookie-actions button:hover,.cookie-actions button:focus-visible{color:#211821;background:#f99bd0}
@media(max-width:760px){.cookie-banner{right:.75rem;bottom:.75rem;width:calc(100% - 1.5rem);grid-template-columns:1fr}.cookie-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-actions button{width:100%}}

/* Error page */
.not-found-main{min-height:100svh;padding:clamp(10rem,18vw,14rem) clamp(1.25rem,10vw,10rem) 6rem;display:flex;flex-direction:column;justify-content:center;color:#fff;background:radial-gradient(circle at 75% 25%,rgba(241,113,189,.2),transparent 28%),#251b24}
.not-found-main h1{max-width:850px;margin:.8rem 0 1.4rem;font:clamp(3.5rem,8vw,7.5rem)/.93 var(--display)}
.not-found-main h1 em{color:#f171bd;font-weight:inherit}
.not-found-main>p:not(.eyebrow){max-width:620px;margin:0 0 2rem;color:rgba(255,255,255,.76);line-height:1.8}
.not-found-main .hero-actions{margin-top:0}

@media(max-width:640px){
  h1,h2,.contact-copy strong,.footer-contact a{overflow-wrap:anywhere}
  .hero-actions,.planning-cta>div,.footer-bottom nav{max-width:100%}
  .contact-strip-inner,.header-contact-links,.header-socials{min-width:0}
  .contact-method-grid,.footer-grid,.form-grid,.package-grid,.masonry-gallery{min-width:0;max-width:100%}
  .not-found-main .hero-actions{width:100%;display:grid;grid-template-columns:1fr}
}

/* Legal pages */
.legal-page{background:#f7f2f5}.legal-hero{padding:clamp(9rem,15vw,13rem) clamp(1.5rem,12vw,13rem) clamp(4rem,7vw,7rem);color:#fff;background:radial-gradient(circle at 80% 20%,rgba(241,113,189,.18),transparent 30%),#251b24}.legal-hero h1{max-width:900px;margin:.8rem 0 1.4rem;font:clamp(3.2rem,7vw,7rem)/.95 var(--display)}.legal-hero>p:not(.eyebrow){max-width:720px;color:rgba(255,255,255,.7);font-size:1rem;line-height:1.8}.legal-hero small{display:block;margin-top:1.5rem;color:var(--gold);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.legal-layout{width:min(1180px,calc(100% - 3rem));margin:0 auto;padding:clamp(4rem,8vw,8rem) 0;display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(3rem,7vw,7rem);align-items:start}.legal-nav{position:sticky;top:130px;display:grid;border-top:1px solid rgba(37,27,36,.14)}.legal-nav a{padding:.9rem 0;border-bottom:1px solid rgba(37,27,36,.14);color:#70636d;font-size:.72rem;letter-spacing:.06em;text-decoration:none}.legal-nav a:hover,.legal-nav a:focus-visible{color:#b42b76}.legal-content{max-width:760px}.legal-content section{padding:0 0 2.5rem;margin-bottom:2.5rem;border-bottom:1px solid rgba(37,27,36,.12)}.legal-content h2{margin:0 0 1rem;font:clamp(1.8rem,3vw,2.5rem) var(--display);color:#251b24}.legal-content p,.legal-content li{color:#665b64;line-height:1.85}.legal-content ul{padding-left:1.2rem}.legal-content li+li{margin-top:.55rem}.legal-content a{color:#b42b76}@media(max-width:760px){.legal-layout{grid-template-columns:1fr;width:min(100% - 2.5rem,720px);gap:2.5rem}.legal-nav{position:static;grid-template-columns:1fr 1fr}.legal-nav a:nth-child(odd){padding-right:.7rem}.legal-hero{padding-inline:1.25rem}.legal-content section{padding-bottom:2rem;margin-bottom:2rem}}

/* Desktop Our Work videos stay compact and show the complete frame. */
@media (min-width: 1121px) {
  .gallery-item[data-media-type="video"] > video { object-fit: contain; background: #171117; }
  .gallery-item[data-media-type="video"]:hover > video { transform: none; filter: brightness(.82); }
  .gallery-item[data-media-type="video"].gallery-wide,
  .gallery-item[data-media-type="video"].gallery-landscape { grid-column: span 6; grid-row: span 4; }
  .gallery-item[data-media-type="video"].gallery-square { grid-column: span 4; grid-row: span 4; }
  .gallery-item[data-media-type="video"].gallery-portrait { grid-column: span 4; grid-row: span 5; }
  .gallery-item[data-media-type="video"].gallery-tall { grid-column: span 3; grid-row: span 5; }
}

@media (min-width: 641px) {
  .lightbox-content.lightbox-video .lightbox-media,
  .lightbox-content.lightbox-video .lightbox-media video { background: transparent; }
  .lightbox-content.lightbox-video-portrait { width: min(900px,92vw); grid-template-columns: minmax(260px,440px) minmax(280px,1fr); }
  .lightbox-content.lightbox-video-portrait .lightbox-media video { width: 100%; height: 100%; object-fit: contain; }
}

/* Accessible 2026 menu browsing and quote journey */
.menu-page .menu-intro aside p { font-size: 1rem; line-height: 1.75; }
.menu-page .interactive-menu { max-width: 1600px; margin-inline: auto; padding-inline: clamp(1.25rem,4vw,4rem); }
.menu-page .menu-toolbar { padding: 1.25rem; border: 1px solid rgba(37,27,36,.13); background: #fff; }
.menu-page .menu-label-key { gap: .65rem; }
.menu-page .menu-label-key span { padding: .55rem .7rem; display:inline-flex; align-items:center; gap:.45rem; border-radius: 999px; color: #554952; background: #f5edf2; font-size: .82rem; }
.menu-page .menu-label-key i { width:1.35rem; height:1.35rem; display:grid; place-items:center; border:1px solid rgba(143,35,95,.35); border-radius:50%; color:#8f235f; font:.65rem var(--sans); font-style:normal; font-weight:600; }
.menu-page .download-menu { min-height: 46px; padding: .85rem 1.1rem; font-size: .76rem; }
.menu-page .menu-category-tabs { position: relative; top: auto; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .65rem; padding: 1rem 0 1.35rem; overflow: visible; border-bottom: 1px solid rgba(37,27,36,.13); }
.menu-page .menu-category-tabs .menu-tab { min-width: 0; min-height: 52px; padding: .8rem 1rem; border: 1px solid rgba(37,27,36,.16); border-radius: 10px; color: #554952; background: #fff; font-size: .82rem; line-height: 1.35; letter-spacing: .02em; text-transform: none; white-space: normal; }
.menu-page .menu-category-tabs .menu-tab:hover,
.menu-page .menu-category-tabs .menu-tab.active { border-color: #a92d73; color: #fff; background: #a92d73; }
.menu-page .menu-category-tabs .menu-tab:focus-visible,
.menu-page .dish-card button:focus-visible,
.menu-page .download-menu:focus-visible { outline: 3px solid rgba(169,45,115,.35); outline-offset: 3px; }
.menu-page .interactive-menu-layout { grid-template-columns: minmax(0,1fr) minmax(320px,370px); gap: clamp(1.25rem,2.5vw,2.5rem); margin-top: 1.5rem; }
.menu-page .menu-card-panels { min-height: 0; color: #251b24; background: #fff; border: 1px solid rgba(37,27,36,.13); box-shadow: 0 24px 65px rgba(37,27,36,.09); }
.menu-page .menu-card-panels .menu-panel { min-height: 0; padding: clamp(1.25rem,3vw,2.5rem); }
.menu-page .panel-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .4rem 1rem; }
.menu-page .panel-heading p { color: #a92d73; font-size: .78rem; font-weight: 600; }
.menu-page .panel-heading h2 { margin: 0; color: #251b24; font-size: clamp(2.3rem,4vw,3.8rem); }
.menu-page .panel-heading small { position: static; color: #665b64; font-size: .78rem; letter-spacing: .04em; text-transform: none; }
.menu-page .menu-category-image { grid-column: 1/-1; height: clamp(220px,25vw,340px); margin: 1.35rem 0 1.5rem; border: 0; border-radius: 12px; box-shadow: 0 14px 35px rgba(37,27,36,.1); }
.menu-page .dish-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.menu-page .dish-card { min-height: 210px; padding: 1.35rem; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 1fr auto; gap: 1rem; border: 1px solid rgba(37,27,36,.12); border-radius: 10px; color: #251b24; background: #fcfafb; box-shadow: 0 8px 24px rgba(37,27,36,.045); }
.menu-page .dish-card:hover { border-color: rgba(169,45,115,.55); background: #fff; box-shadow: 0 14px 34px rgba(37,27,36,.09); }
.menu-page .dish-card h3 { margin-bottom: .6rem; color: #251b24; font-size: 1.55rem; line-height: 1.15; }
.menu-page .dish-card p { max-width: none; color: #665b64; font-size: .96rem; line-height: 1.65; }
.menu-page .dish-labels { align-content: start; flex-wrap: wrap; justify-content: flex-end; }
.menu-page .dish-labels span { width: 34px; height: 34px; border-color: rgba(37,27,36,.13); background: #fff; color:#8f235f; font-size:.7rem; font-weight:600; }
.menu-page .dish-card button { position: static; grid-column: 1/-1; width: 100%; min-height: 46px; padding: .75rem 1rem; border-radius: 6px; color: #8f235f; background: #fff; font-size: .74rem; }
.menu-page .dish-card button:hover { color: #fff; background: #a92d73; }
.menu-page .dish-card button.selected { border-color: #a92d73; color: #fff; background: #a92d73; }
.menu-page .menu-builder { top: 142px; overflow: hidden; border-radius: 12px; background: #2b202b; box-shadow: 18px 18px 0 #eadbe5; }
.menu-page .builder-image { height: 220px; }
.menu-page .builder-content { padding: 1.75rem; }
.menu-page .builder-content h2 { font-size: 2.3rem; }
.menu-page .builder-content > p:not(.section-label) { color: rgba(255,255,255,.74); font-size: .95rem; line-height: 1.65; }
.menu-page .menu-builder-count { margin: .5rem 0 1rem; }
.menu-page .menu-builder-count strong { margin-right: .35rem; color: #ff9bd2; font: 2rem var(--display); }
.menu-page .builder-content ul { max-height: 290px; margin: 1rem 0 1.35rem; }
.menu-page .builder-content li { padding: .75rem 0; font-size: .9rem; line-height: 1.4; }
.menu-page .builder-content li button { width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-size: 1.15rem; }
.menu-page .builder-content .button { width: 100%; min-height: 52px; font-size: .8rem; }
.menu-page .clear-selection { min-height: 42px; padding: .7rem; font-size: .72rem; text-decoration: underline; text-underline-offset: 4px; }
.menu-page .menu-key { max-width: 980px; margin-top: 1.5rem; font-size: .88rem; line-height: 1.7; }
.selected-menu-summary { margin: -1rem 0 2.2rem; padding: 1.15rem; border: 1px solid rgba(241,113,189,.45); background: rgba(241,113,189,.08); }
.selected-menu-summary > div { display: grid; gap: .2rem; }
.selected-menu-summary small { color: #ff9bd2; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.selected-menu-summary strong { color: #fff; font: 1.55rem var(--display); }
.selected-menu-summary ul { margin: 1rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; }
.selected-menu-summary li { padding: .55rem .7rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: rgba(255,255,255,.88); font-size: .82rem; }
.selected-menu-summary > a { color: #ffb1dc; font-size: .82rem; text-decoration: underline; text-underline-offset: 4px; }

@media(max-width:1100px){
  .menu-page .menu-category-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.menu-page .interactive-menu-layout{grid-template-columns:1fr}.menu-page .menu-builder{position:relative;top:0;display:grid;grid-template-columns:minmax(220px,.7fr) 1fr}.menu-page .builder-image{height:100%}.menu-page .dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .menu-page .menu-toolbar{align-items:stretch;display:grid;gap:1rem}.menu-page .menu-label-key{display:flex;flex-wrap:wrap;overflow:visible;padding-bottom:.25rem}.menu-page .menu-label-key span{flex:0 0 auto}.menu-page .download-menu{text-align:center}.menu-page .menu-category-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:0;padding:.8rem 0 1.2rem}.menu-page .menu-category-tabs .menu-tab{min-height:52px;font-size:.86rem}.menu-page .panel-heading{grid-template-columns:1fr}.menu-page .panel-heading small{margin:0}.menu-page .menu-category-image{height:210px}.menu-page .dish-grid{grid-template-columns:1fr}.menu-page .dish-card{min-height:0;padding:1.2rem}.menu-page .dish-card h3{font-size:1.65rem}.menu-page .dish-card p{font-size:1rem}.menu-page .menu-builder{display:block}.menu-page .builder-image{height:210px}.menu-page .menu-key{font-size:.92rem}.selected-menu-summary{margin-top:0}.selected-menu-summary li{font-size:.88rem}
}
@media(max-width:420px){.menu-page .menu-category-tabs{grid-template-columns:1fr}}

/* Homepage previews */
.home-work-preview,.home-packages-preview{padding:clamp(5rem,9vw,9rem) clamp(1.5rem,6vw,7rem)}
.home-work-preview{background:#f1e7ee}
.home-packages-preview{background:#fbf8fa}
.home-preview-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:end;gap:clamp(2rem,7vw,7rem);margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.home-preview-heading h2{margin:0;font:clamp(3rem,5vw,5.5rem)/1 var(--display)}
.home-preview-heading h2 em{color:#b42b76;font-weight:inherit}
.home-preview-heading>div:last-child>p,.home-heading-action>p{margin:0 0 1.5rem;color:#70636d;line-height:1.8}
.preview-link{display:inline-flex;align-items:center;gap:.85rem;padding-bottom:.35rem;border-bottom:1px solid #b42b76;color:#8f235f;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.preview-link span{transition:transform .25s}.preview-link:hover span{transform:translateX(4px)}
.preview-link-light{border-color:#f171bd;color:#f4acd4}
.home-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.8rem)}
.home-work-card{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr);min-height:340px;overflow:hidden;border:1px solid rgba(37,27,36,.12);background:#fff;box-shadow:0 20px 55px rgba(37,27,36,.09);transition:transform .35s,box-shadow .35s}
.home-work-card:hover{transform:translateY(-6px);box-shadow:0 30px 70px rgba(37,27,36,.16)}
.home-work-media{position:relative;display:block;min-height:340px;overflow:hidden;background:#211721}
.home-work-media img,.home-work-media video{width:100%;height:100%;display:block;object-fit:contain;transition:transform .55s}
.home-work-card:hover .home-work-media img,.home-work-card:hover .home-work-media video{transform:scale(1.025)}
.home-work-number{position:absolute;z-index:3;top:1rem;left:1rem;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.65);border-radius:50%;color:#fff;background:rgba(30,20,30,.5);font-size:.65rem;backdrop-filter:blur(6px)}
.home-work-play{position:absolute;z-index:2;inset:50% auto auto 50%;width:54px;height:54px;display:grid;place-items:center;padding-left:3px;border:1px solid rgba(255,255,255,.75);border-radius:50%;color:#fff;background:rgba(30,20,30,.68);font-style:normal;transform:translate(-50%,-50%)}
.home-work-copy{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.4rem,3vw,2.4rem)}
.home-work-copy small{margin-bottom:.65rem;color:#a92d73;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.home-work-copy strong{font:clamp(1.7rem,2.5vw,2.6rem)/1.05 var(--display)}
.home-work-copy>i{margin-top:1.5rem;color:#70636d;font-size:.65rem;font-style:normal;letter-spacing:.11em;text-transform:uppercase}
.home-preview-empty{padding:3rem;border:1px solid rgba(37,27,36,.12);background:#fff;text-align:center}
.section-heading .home-heading-action{width:min(430px,36vw)}
.experience-card img.card-image{position:absolute;inset:-4%;width:108%;height:108%;max-width:none;object-fit:cover;filter:saturate(.82);transition:transform .7s ease,filter .7s}
.experience-card:hover img.card-image{transform:scale(1.07);filter:saturate(1)}
.card-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,12,19,.96),rgba(18,12,19,.04) 76%)}
.card-content{display:block}
.card-content small{display:block;margin-bottom:.55rem;color:var(--gold);font-size:.63rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.card-content strong{display:block;margin-bottom:.8rem;font:clamp(2rem,3vw,3.2rem)/1.05 var(--display)}
.card-content>span{display:-webkit-box;max-width:430px;overflow:hidden;color:rgba(255,255,255,.72);font-size:.82rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.card-content i{display:block;margin-top:1.3rem;font-size:.67rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase}
.home-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.8rem)}
.home-package-card{display:flex;min-width:0;flex-direction:column;border:1px solid rgba(37,27,36,.13);background:#fff;box-shadow:0 20px 55px rgba(37,27,36,.08);transition:transform .3s,box-shadow .3s}
.home-package-card:hover{transform:translateY(-6px);box-shadow:0 30px 65px rgba(37,27,36,.14)}
.home-package-image{display:block;aspect-ratio:4/3;overflow:hidden;background:#f6edf3}
.home-package-image img{width:100%;height:100%;display:block;object-fit:contain;transition:transform .5s}.home-package-card:hover .home-package-image img{transform:scale(1.015)}
.home-package-body{display:flex;flex:1;flex-direction:column;padding:clamp(1.4rem,2.5vw,2.2rem)}
.home-package-body>div>p{margin:0 0 .65rem;color:#a92d73;font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.home-package-body h3{margin:0;font:clamp(2rem,2.8vw,3rem)/1.05 var(--display)}
.home-package-body ul{margin:1.5rem 0 2rem;padding:0;list-style:none}
.home-package-body li{position:relative;padding:.65rem 0 .65rem 1.5rem;border-bottom:1px solid rgba(37,27,36,.09);color:#665b64;font-size:.82rem;line-height:1.45}
.home-package-body li:before{content:'✓';position:absolute;left:0;color:#a92d73;font-weight:700}
.home-package-body .button{width:100%;margin-top:auto;justify-content:space-between}
@media(max-width:1050px){.home-work-card{grid-template-columns:1fr}.home-work-media{min-height:300px}.home-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-package-card:last-child{grid-column:1/-1}.section-heading .home-heading-action{width:min(400px,40vw)}}
@media(max-width:700px){.home-work-preview,.home-packages-preview{padding-inline:1.25rem}.home-preview-heading{grid-template-columns:1fr;gap:1.5rem}.home-preview-heading h2{font-size:2.8rem}.home-work-grid,.home-package-grid{grid-template-columns:1fr}.home-work-card{display:block}.home-work-media{min-height:0;aspect-ratio:4/3}.home-work-copy{min-height:190px}.home-package-card:last-child{grid-column:auto}.section-heading .home-heading-action{width:auto}.experience-card img.card-image{object-position:center}.home-package-body h3{font-size:2.35rem}}

/* Restrained motion: short, purposeful and limited to opacity/transform. */
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .reveal {
    will-change: opacity, transform;
    transition-property: opacity, transform, box-shadow, border-color, background-color;
    transition-duration: .6s, .6s, .25s, .2s, .2s;
    transition-timing-function: ease-out, cubic-bezier(.16,1,.3,1), ease-out, ease-out, ease-out;
  }
  .reveal.is-visible { will-change: auto; }
}
