/* Rusca — a warm, unhurried journey from discovery to reservation. */
:root { --container-width: 1240px; }
html { scroll-padding-top: 100px; }
body { background: var(--color-white); }
p { color:var(--color-text); }
main { overflow-x: clip; }
.sb-preloader { overflow:hidden; }
section { scroll-margin-top: 88px; }
.skip-link { position:fixed; left:1rem; top:-100px; z-index:10001; background:var(--color-white); color:var(--color-dark); padding:1rem; }
.skip-link:focus { top:1rem; }
.container { padding-inline:clamp(1.25rem,4vw,3rem); }
.section-padding { padding-block:clamp(4.5rem,8vw,8rem); }
.section-title { font-size:clamp(2.35rem,4.5vw,4.15rem); line-height:1.08; font-weight:500; letter-spacing:-.035em; }
h2 em, h3 em { font-weight:400; color:var(--color-accent); }
.section-subtitle { font-size:.72rem; letter-spacing:.2em; }
.lead-copy { font-size:clamp(1.1rem,1.6vw,1.3rem); line-height:1.65; }
.btn { gap:.8rem; min-height:48px; font-size:.73rem; letter-spacing:.12em; }
.btn i { font-size:.7rem; }
.text-link { display:inline-flex; align-items:center; gap:1rem; min-height:44px; font-size:.82rem; font-weight:600; color:var(--color-accent); text-decoration:none; }
.text-link i { transition:transform .3s; }
.text-link:hover i { transform:translateX(4px); }
.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.site-header { height:88px; }
.site-header .header-right { gap:1.5rem; }
.header-logo img { height:52px; }
.header-center { position:static; transform:none; }
.header-inner { display:grid; grid-template-columns:1fr auto 1fr; }
.header-right { justify-self:end; }
.menu-drawer { flex-direction:column; justify-content:center; gap:2rem; padding:6rem 1.25rem 2rem; overflow-y:auto; }
.drawer-nav { display:flex; flex-direction:column; gap:.6rem; }
.drawer-nav { list-style:none; text-align:center; }
.drawer-nav a { font-size:clamp(1.65rem,3.8vw,3rem); line-height:1.35; }
.drawer-footer { text-align:center; }
.drawer-footer p { color:var(--color-white); }
.hero-section { min-height:100svh; padding:10rem 0 8rem; }
.hero-overlay { background:linear-gradient(180deg,rgba(60,52,37,.48),rgba(60,52,37,.7) 50%,rgba(60,52,37,.75)); }
.hero-content { max-width:920px; margin:auto; text-align:center; }
.hero-title { font-size:clamp(3.1rem,7.7vw,7.1rem); font-weight:400; letter-spacing:-.04em; line-height:1.03; margin-bottom:1.5rem; }
.hero-title span { display:block; }
.hero-title span:nth-child(2) { font-style:italic; color:var(--color-white); }
.hero-description { max-width:520px; margin:0 auto 2.25rem; font-size:clamp(.98rem,1.45vw,1.18rem); color:var(--color-white); line-height:1.7; }
.hero-actions { justify-content:center; gap:1rem; }
.hero-location { position:absolute; bottom:2rem; left:3rem; z-index:3; color:var(--color-white); font-size:.65rem; letter-spacing:.14em; }
.hero-location span { display:block; margin-top:.5rem; letter-spacing:.04em; opacity:.8; }
.hero-scroll-indicator { bottom:2rem; font-size:.6rem; }
.hero-scroll-indicator span { letter-spacing:.14em; }
.editorial-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.editorial-copy p { margin-bottom:1.3rem; }
.editorial-copy .text-link { margin-top:.6rem; }
.refuge-photos { position:relative; padding:0 3rem 3.5rem 0; }
.refuge-main { position:relative; }
.refuge-main img { width:100%; height:550px; object-fit:cover; }
.refuge-main figcaption { position:absolute; bottom:1.5rem; left:1.5rem; color:var(--color-white); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; background:rgba(60,52,37,.65); padding:.5rem .8rem; }
.refuge-detail { position:absolute; right:0; bottom:0; width:46%; border:8px solid var(--color-white); box-shadow:0 12px 32px rgba(60,52,37,.12); }
.refuge-detail img { width:100%; aspect-ratio:1; object-fit:cover; }
.photo-stamp { position:absolute; top:-1.5rem; right:.5rem; width:98px; height:98px; display:grid; place-content:center; text-align:center; border:1px solid var(--color-accent-light); border-radius:50%; color:var(--color-accent); background:var(--color-white); font-size:.7rem; line-height:1.8; letter-spacing:.14em; }
.philosophy-section { color:var(--color-white); background:linear-gradient(90deg,rgba(60,52,37,.88),rgba(60,52,37,.81)),url('../imagenes/compatible/02_fachada_beige.jpg') center 55%/cover no-repeat; }
.philosophy-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.philosophy-section .section-title,.philosophy-section em { color:var(--color-white); }
.philosophy-signature { display:block; margin-top:2rem; font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; padding-left:1.5rem; border-left:2px solid var(--color-accent-light); }
.philosophy-copy p { margin-bottom:1.4rem; }
.philosophy-copy p { color:var(--color-white); }
.philosophy-values { display:flex; flex-wrap:wrap; gap:1.75rem; padding-top:1.25rem; border-top:1px solid rgba(246,241,222,.25); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; }
.section-intro { max-width:620px; margin:0 auto 3.5rem; text-align:center; }
.section-intro p { max-width:480px; margin:auto; }
.moments-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.moment-card { border-bottom:1px solid var(--color-border-light); }
.moment-image { position:relative; overflow:hidden; }
.moment-image img { width:100%; aspect-ratio:4/4.7; object-fit:cover; transition:transform .9s ease; }
.moment-card:hover img { transform:scale(1.045); }
.moment-number { position:absolute; top:1rem; left:1.2rem; font-family:var(--font-heading); font-size:2.5rem; color:var(--color-white); text-shadow:0 2px 10px rgba(60,52,37,.8); }
.moment-copy { padding:1.7rem 0; }
.moment-copy .section-subtitle { font-size:.6rem; letter-spacing:.12em; margin-bottom:.6rem; }
.moment-copy h3 { font-size:2.3rem; font-weight:500; margin-bottom:.8rem; }
.moment-copy p { font-size:.94rem; margin-bottom:1rem; }
.kitchen-section { background:rgba(163,149,122,.12); }
.kitchen-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:4rem; align-items:end; margin-bottom:3rem; }
.kitchen-heading .section-title { margin-bottom:0; }
.kitchen-heading p { max-width:340px; margin-bottom:.4rem; }
.dishes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.75rem 1.5rem; }
.dish-image { overflow:hidden; }
.dish-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .9s ease; }
.dish-card:hover img { transform:scale(1.06); }
.dish-card figcaption { padding-top:1rem; }
.dish-card figcaption>span { display:block; font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:var(--color-accent); margin-bottom:.4rem; }
.dish-card h3 { font-size:1.65rem; font-weight:500; }
.kitchen-bottom { margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--color-border-light); display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.kitchen-bottom p { font-size:.85rem; }
.reservation-section { position:relative; isolation:isolate; color:var(--color-white); }
.reservation-image { position:absolute; inset:0; z-index:-2; overflow:hidden; background:var(--color-dark); }
.reservation-image img { height:100%; width:100%; object-fit:cover; object-position:center 60%; }
.reservation-section::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(60,52,37,.86),rgba(60,52,37,.66)); }
.reservation-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; align-items:center; }
.reservation-copy .section-title,.reservation-copy em { color:var(--color-white); }
.reservation-copy p { max-width:380px; color:var(--color-white); }
.booking-panel { background:var(--color-white); color:var(--color-dark); padding:clamp(1.75rem,3vw,3rem); }
.booking-panel h3 { font-size:2.2rem; font-weight:500; margin-bottom:1rem; }
.booking-panel>p { margin-bottom:1.5rem; font-size:.93rem; }
.booking-panel>.btn { width:100%; }
.booking-divider { margin-top:1.75rem; padding-top:1.5rem; border-top:1px solid var(--color-border-light); }
.booking-divider span { display:block; font-size:.78rem; }
.booking-divider a { display:flex; justify-content:space-between; align-items:center; min-height:48px; font-size:1.2rem; color:var(--color-accent); }
.booking-panel .booking-note { margin:1rem 0 0; font-size:.75rem; line-height:1.65; }
.contact-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:5rem; align-items:start; }
.contact-copy>p { max-width:430px; margin-bottom:2rem; }
.contact-address { font-style:normal; display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.75rem; }
.contact-address a { display:flex; gap:1rem; align-items:center; min-height:44px; font-size:.95rem; overflow-wrap:anywhere; }
.contact-address i { color:var(--color-accent); width:18px; flex-shrink:0; }
.contact-address a:hover { color:var(--color-accent); }
.contact-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.contact-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.hours-details { margin-top:1.5rem; border-block:1px solid var(--color-border); }
.hours-details summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; padding:1.15rem 0; font-size:1.1rem; }
.hours-details summary::-webkit-details-marker { display:none; }
.hours-details summary i { font-size:.8rem; color:var(--color-accent); transition:transform .3s; }
.hours-details[open] summary i { transform:rotate(45deg); }
.hours-details dl { font-size:.84rem; margin:0 0 1rem; }
.hours-details dl div { display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; }
.hours-details dd { white-space:nowrap; }
.hours-details>.text-link { font-size:.73rem; margin-bottom:1rem; }
.social-section { padding-block:3.5rem; background:rgba(163,149,122,.15); }
.social-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:5rem; align-items:center; }
.social-layout h2 { font-size:clamp(2rem,3.8vw,3.4rem); font-weight:500; }
.social-layout p { font-size:.92rem; margin-bottom:.75rem; }
.review-link { display:block; font-size:.75rem; padding:.75rem 0; text-decoration:underline; text-underline-offset:4px; }
.site-footer { padding:2.5rem 0 1.25rem; }
.rusca-footer-top { display:flex; gap:2rem; justify-content:space-between; align-items:center; margin-bottom:2rem; }
.rusca-footer-top p { font-family:var(--font-heading); font-size:1.8rem; font-style:italic; color:var(--color-white); }
.footer-instagram { display:grid; place-content:center; width:44px; height:44px; border:1px solid rgba(246,241,222,.3); }
.footer-bottom { gap:1.5rem; }
.footer-nav { flex-wrap:wrap; gap:1.5rem; }
.footer-nav a { padding-block:.5rem; }
.footer-bottom { display:grid; grid-template-columns:1fr auto 1fr; }
.footer-bottom .footer-nav { gap:1rem; }
.footer-copy { justify-self:end; }
.developer-credit { display:flex; align-items:center; justify-content:center; gap:.65rem; color:var(--color-white); font-size:.75rem; white-space:nowrap; }
.developer-credit a { display:inline-flex; align-items:center; padding:0; background:transparent; }
.developer-credit img { display:block; width:88.4px; height:auto; }
@media(max-width:1100px) { .footer-bottom { grid-template-columns:1fr; justify-items:center; text-align:center; } .footer-bottom .footer-nav { justify-content:center; } .developer-credit { padding-block:.25rem; } .footer-copy { justify-self:center; } }
@media(min-width:901px) { .moment-card:nth-child(2) { margin-top:3rem; } .moment-card:nth-child(3) { margin-top:6rem; } }
@media(max-width:1100px) { .contact-grid,.social-layout { gap:3rem; } .hero-location { left:2rem; } }
@media(max-width:900px) {
 .editorial-grid,.philosophy-grid,.reservation-layout,.contact-grid { grid-template-columns:1fr; gap:3rem; }
 .editorial-grid { max-width:720px; }
 .refuge-main img { height:440px; }
 .refuge-detail { max-width:230px; }
 .editorial-copy { max-width:580px; }
 .philosophy-heading,.philosophy-copy { max-width:650px; }
 .moments-grid { gap:1.25rem; }
 .moment-copy h3 { font-size:1.8rem; }
 .moment-copy p { font-size:.86rem; }
 .moment-copy .text-link { font-size:.72rem; }
 .kitchen-heading { gap:2rem; }
 .dishes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .reservation-layout { max-width:760px; }
 .contact-aside { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
 .hours-details { margin-top:0; align-self:start; }
 .hero-location { display:none; }
 .hero-title { font-size:clamp(3.5rem,9vw,6rem); }
 .hero-content { max-width:720px; }
}
@media(max-width:600px) {
 html { scroll-padding-top:75px; }
 section { scroll-margin-top:70px; }
 .site-header,.site-header.scrolled { height:72px; }
 .container-fluid { padding-inline:1.1rem; }
 .header-logo img { height:40px; max-width:90px; }
 .header-right .social-link { display:none; }
 .site-header .btn { padding:.7rem .9rem; min-height:42px; font-size:.61rem; }
 .site-header .btn i { display:none; }
 .hero-section { padding:8rem 0 7rem; min-height:100svh; }
 .hero-title { font-size:clamp(2.65rem,11.5vw,4rem); margin-bottom:1.4rem; }
 .hero-description { font-size:.95rem; max-width:340px; }
 .hero-actions { max-width:290px; flex-direction:column; margin-inline:auto; }
 .hero-actions .btn { width:100%; padding:.85rem 1rem; }
 .hero-scroll-indicator { display:flex; bottom:1.5rem; }
 .refuge-photos { padding-right:1.5rem; padding-bottom:2rem; }
 .refuge-main img { height:390px; }
 .refuge-detail { width:45%; border-width:5px; }
 .photo-stamp { width:76px; height:76px; font-size:.56rem; top:-1rem; right:0; }
 .editorial-copy p,.philosophy-copy p { font-size:.95rem; }
 .editorial-copy .lead-copy,.philosophy-copy .lead-copy { font-size:1.12rem; }
 .philosophy-section { background-position:50% center; }
 .section-intro { text-align:left; margin-bottom:2.5rem; }
 .section-intro p { margin:0; }
 .moments-grid,.kitchen-heading,.social-layout { grid-template-columns:1fr; gap:2rem; }
 .moment-image img { aspect-ratio:4/3; }
 .moment-copy { padding:1.5rem 0; }
 .moment-copy h3 { font-size:2.2rem; }
 .moment-copy p { font-size:.95rem; }
 .moment-copy .text-link { font-size:.82rem; }
 .kitchen-heading p { max-width:100%; }
 .dishes-grid { gap:2rem 1rem; }
 .dish-image img { aspect-ratio:1; }
 .dish-card h3 { font-size:1.35rem; }
 .dish-card figcaption>span { font-size:.54rem; letter-spacing:.09em; }
 .kitchen-bottom { flex-direction:column; align-items:flex-start; gap:.5rem; }
 .contact-aside { display:block; }
 .hours-details { margin-top:1.5rem; }
 .contact-address a { font-size:.85rem; gap:.75rem; }
 .contact-actions { flex-direction:column; }
 .contact-actions .btn { width:100%; }
 .social-section { padding-block:3rem; }
 .rusca-footer-top { flex-wrap:wrap; gap:1.5rem; }
 .rusca-footer-top p { order:3; flex-basis:100%; font-size:1.5rem; }
 .footer-bottom { align-items:flex-start; text-align:left; }
 .footer-nav { gap:1rem; }
 .footer-nav a { font-size:.7rem; }
}
@media(max-width:350px) { .dishes-grid { grid-template-columns:1fr; } .hero-title { font-size:2.6rem; } }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; animation-iteration-count:1!important; }
 .reveal-up,.reveal-fade,.reveal-left,.reveal-right { opacity:1; transform:none; }
}

/* Word cascades and quiet text entrances keep the editorial hierarchy alive. */
.wow-mask { display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.13em; margin-bottom:-.13em; line-height:1.16; }
.wow-word { display:inline-block; transform:translateY(115%) rotate(2deg); opacity:0; transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s ease; transition-delay:var(--word-delay,0ms); }
.wow-title.revealed .wow-word { transform:translateY(0) rotate(0); opacity:1; }
.hero-title .wow-mask,.hero-title .wow-word { display:inline-block; font-style:inherit; font-weight:inherit; color:inherit; }
.reveal-copy { opacity:0; transform:translateY(18px); transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1); }
.reveal-copy.revealed { opacity:1; transform:translateY(0); }
.refuge-main img { object-position:58% 50%; }
.hero-title { font-size:clamp(3.1rem,7.3vw,6.8rem); }
.gallery-instruction { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-bottom:1.5rem; margin-bottom:1.5rem; border-bottom:1px solid var(--color-border-light); }
.gallery-instruction>span { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--color-accent); }
.gallery-instruction p { margin:0; font-size:.78rem; }
.dishes-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.5rem 1.5rem; }
.dish-card { min-width:0; text-align:center; }
.dish-button { width:100%; display:block; padding:0; border:0; background:transparent; color:inherit; cursor:zoom-in; border-radius:4px; }
.dish-button:focus-visible { outline-color:var(--color-accent); }
.dish-stage { display:grid; place-items:center; position:relative; width:100%; aspect-ratio:1.15; isolation:isolate; }
.dish-stage::after { content:''; position:absolute; bottom:8%; width:56%; height:9%; background:rgba(60,52,37,.17); filter:blur(8px); border-radius:50%; z-index:-1; transform:scale(.95); animation:dishShadow 6s ease-in-out infinite; animation-delay:var(--float-delay,0s); animation-play-state:paused; }
.dish-float { display:grid; place-items:center; width:100%; height:100%; animation:dishLevitate 6s ease-in-out infinite; animation-delay:var(--float-delay,0s); animation-play-state:paused; }
.dish-float picture { display:grid; place-items:center; width:100%; height:100%; }
.dish-float img { width:92%; height:88%; object-fit:contain; aspect-ratio:auto; filter:drop-shadow(0 8px 6px rgba(60,52,37,.12)); transition:filter .5s ease; }
.dish-card.is-in-view .dish-float,.dish-card.is-in-view .dish-stage::after { animation-play-state:running; }
.dish-button:hover img { filter:drop-shadow(0 15px 8px rgba(60,52,37,.2)); }
.dish-expand { position:absolute; bottom:1rem; right:.4rem; width:30px; height:30px; display:grid; place-content:center; color:var(--color-accent); font-size:.72rem; border:1px solid var(--color-border-light); border-radius:50%; opacity:0; transform:scale(.8); transition:opacity .3s,transform .3s; }
.dish-button:hover .dish-expand,.dish-button:focus-visible .dish-expand { opacity:1; transform:scale(1); }
.dish-card figcaption { padding-top:.5rem; }
.dish-card h3 { font-size:1.4rem; line-height:1.2; letter-spacing:-.01em; }
.dish-card figcaption>span { font-size:.56rem; letter-spacing:.1em; }
.dish-card .wow-mask { line-height:1.3; }
.dish-stage img,.dish-lightbox img { -webkit-mask-image:var(--dish-mask); mask-image:var(--dish-mask); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; }
@keyframes dishLevitate { 0%,100% { transform:translateY(0) rotate(-.4deg); } 50% { transform:translateY(-10px) rotate(.4deg); } }
@keyframes dishShadow { 0%,100% { transform:scale(1); opacity:.8; } 50% { transform:scale(.82); opacity:.45; } }

/* Native top-layer modal keeps keyboard focus inside the enlarged gallery. */
body.gallery-open { overflow:hidden; }
.dish-lightbox { width:min(980px,calc(100% - 3rem)); max-width:none; max-height:calc(100svh - 3rem); margin:auto; padding:0; border:0; background:var(--color-white); color:var(--color-dark); overflow:auto; box-shadow:0 25px 90px rgba(60,52,37,.3); }
.dish-lightbox::backdrop { background:rgba(60,52,37,.82); backdrop-filter:blur(10px); }
.lightbox-panel { position:relative; padding:2rem 2rem 1.5rem; }
.lightbox-close { position:absolute; z-index:2; top:1rem; right:1rem; }
.lightbox-close,.lightbox-prev,.lightbox-next { display:grid; place-content:center; width:44px; height:44px; padding:0; border:1px solid var(--color-border); border-radius:50%; background:var(--color-white); color:var(--color-accent); cursor:pointer; transition:background .2s,color .2s; }
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover { background:var(--color-accent); color:var(--color-white); }
.lightbox-visual { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:1rem; min-height:180px; }
.lightbox-image { display:block; width:100%; height:min(58svh,560px); object-fit:contain; }
.lightbox-caption { text-align:center; padding-top:1rem; }
.lightbox-caption h2 { font-size:clamp(1.6rem,3vw,2.4rem); margin:.5rem 0; font-weight:500; }
.lightbox-counter { font-size:.7rem; letter-spacing:.2em; color:var(--color-accent); }
.lightbox-caption p { font-size:.8rem; margin:0; }
@media(max-width:1100px) { .dishes-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:900px) { .dishes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .dish-card h3 { font-size:1.65rem; } }
@media(max-width:600px) {
 .hero-title { font-size:clamp(2.7rem,10.2vw,3.8rem); }
 .dishes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.8rem .75rem; }
 .dish-card h3 { font-size:1.27rem; }
 .dish-stage { aspect-ratio:1; }
 .dish-float img { width:97%; height:90%; filter:drop-shadow(0 6px 4px rgba(60,52,37,.12)); }
 .dish-expand { width:26px; height:26px; right:0; bottom:.2rem; opacity:.65; transform:none; font-size:.6rem; }
 .gallery-instruction { flex-direction:column; align-items:flex-start; gap:.5rem; }
 .dish-lightbox { width:calc(100% - 1.25rem); max-height:calc(100svh - 1.25rem); }
 .lightbox-panel { padding:3.5rem .75rem 1.5rem; }
 .lightbox-visual { grid-template-columns:32px minmax(0,1fr) 32px; gap:0; }
 .lightbox-prev,.lightbox-next { width:32px; height:44px; border:0; border-radius:0; }
 .lightbox-image { height:min(52svh,400px); }
 .lightbox-close { top:.75rem; right:.75rem; }
 .refuge-main img { object-position:58% 50%; }
}
@media(prefers-reduced-motion:reduce) {
 .wow-word,.reveal-copy { opacity:1; transform:none; transition:none; }
 .dish-float,.dish-stage::after { animation:none; }
}

/* Progressive enhancement: never require scripts or observers to read the site. */
html:not(.animations-ready) .reveal-up,
html:not(.animations-ready) .reveal-fade,
html:not(.animations-ready) .reveal-left,
html:not(.animations-ready) .reveal-right,
html:not(.animations-ready) .reveal-copy,
html:not(.animations-ready) .wow-word { opacity:1; transform:none; }
.sb-preloader { display:none; }
.hero-section { min-height:100vh; }
.dish-lightbox:not([open]) { display:none; }
.dish-lightbox { max-height:calc(100vh - 3rem); }
.lightbox-image { height:58vh; max-height:560px; }
@supports (height:100svh) {
 .hero-section { min-height:100svh; }
 .dish-lightbox { max-height:calc(100svh - 3rem); }
 .lightbox-image { height:58svh; }
}
@media(max-width:600px) {
 .lightbox-image { height:52vh; max-height:400px; }
 .dish-lightbox { max-height:calc(100vh - 1.25rem); }
}
@supports not (overflow:clip) { main { overflow-x:hidden; } }

/* ==========================================================================
   Rusca Cookie Consent Banner (European GDPR / LSSI-CE compliant)
   ========================================================================== */
.rusca-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  background: rgba(42, 36, 26, 0.97);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(163, 149, 122, 0.35);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
  z-index: 99998;
  padding: 0.85rem 1.5rem;
  padding-bottom: max(0.85rem, env(safe-area-inset-bottom));
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
  pointer-events: none;
}

.rusca-cookie-banner.is-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.rusca-cookie-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.rusca-cookie-text {
  flex: 1;
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.5;
  color: #F6F1DE;
  margin: 0;
}

.rusca-cookie-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
}

.rusca-cookie-btn {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 1.15rem;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.25s ease;
  border: 1px solid transparent;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.rusca-cookie-btn-reject {
  background: transparent;
  color: #F6F1DE;
  border-color: rgba(246, 241, 222, 0.35);
}

.rusca-cookie-btn-reject:hover {
  background: rgba(246, 241, 222, 0.1);
  border-color: #F6F1DE;
}

.rusca-cookie-btn-accept {
  background: #F6F1DE;
  color: #3C3425;
}

.rusca-cookie-btn-accept:hover {
  background: #ffffff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

/* Offset Kitking floating widget when cookie banner is visible */
body.has-cookie-banner #kk-fab-btn {
  bottom: 80px !important;
  transition: bottom 0.35s ease;
}

@media (max-width: 768px) {
  .rusca-cookie-banner {
    padding: 1rem 1.25rem;
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
  }
  .rusca-cookie-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.85rem;
  }
  .rusca-cookie-actions {
    width: 100%;
    justify-content: flex-end;
  }
  .rusca-cookie-btn {
    flex: 1;
    text-align: center;
  }
  body.has-cookie-banner #kk-fab-btn {
    bottom: 130px !important;
  }
}

