:root{--red:#b20f19;--red-dark:#870912;--ink:#111113;--paper:#f4f0e9;--white:#fff;--muted:#77716c;--radius:28px;--shadow:0 22px 70px rgba(20,8,8,.16);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);overflow-x:hidden}body.is-locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border:0;border-radius:999px;background:var(--red);color:#fff;font-weight:800;transition:.25s ease}.button:hover{transform:translateY(-2px);background:var(--red-dark)}.button--small{min-height:42px;padding:0 18px;font-size:.86rem}.button--ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(10px)}.button--light{background:#fff;color:var(--ink)}.button--light:hover{color:#fff}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}
.portal-page{min-height:100vh;background:#0c0c0d;color:#fff}.portal-page:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 50% 0,rgba(178,15,25,.22),transparent 36%),linear-gradient(135deg,transparent 0 48%,rgba(255,255,255,.025) 48% 49%,transparent 49%);pointer-events:none}.portal-shell{width:min(1440px,100%);margin:auto;padding:28px 4vw 20px;position:relative}.portal-head{display:flex;align-items:center;justify-content:space-between}.brand-mark{width:74px;height:74px;border-radius:17px;box-shadow:0 10px 40px rgba(0,0,0,.38)}.language-switch{display:flex;gap:3px;padding:4px;border:1px solid rgba(128,128,128,.28);border-radius:999px;background:rgba(255,255,255,.08)}.language-switch button{border:0;background:transparent;color:inherit;border-radius:999px;padding:7px 9px;font-size:.7rem;font-weight:800}.language-switch button.is-active{background:var(--red);color:#fff}.portal-intro{text-align:center;max-width:760px;margin:7vh auto 4vh}.portal-intro .eyebrow{color:#ff9197}.portal-intro h1{font-family:Georgia,serif;font-size:clamp(3rem,7vw,6.7rem);font-weight:500;line-height:.95;margin:.18em 0}.portal-intro>p:last-child{color:#bdb8b4;font-size:clamp(1rem,1.8vw,1.25rem)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.location-card{min-height:390px;border-radius:var(--radius);padding:24px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background-image:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.03) 70%),var(--photo);background-size:cover;background-position:center;box-shadow:0 20px 80px rgba(0,0,0,.4);isolation:isolate}.location-card:before{content:"";position:absolute;inset:0;background:var(--red);mix-blend-mode:multiply;opacity:0;transition:.5s;z-index:-1}.location-card:hover:before{opacity:.58}.location-card:hover .location-card__content strong{transform:translateX(10px)}.location-card__tag{align-self:flex-start;background:rgba(15,15,15,.62);backdrop-filter:blur(12px);padding:10px 14px;border-radius:999px;font-size:.76rem}.location-card__content{display:flex;flex-direction:column;gap:8px}.location-card__content small{letter-spacing:.14em;text-transform:uppercase}.location-card__content strong{font-family:Georgia,serif;font-size:clamp(2.7rem,5vw,5rem);font-weight:500;line-height:1;transition:.35s}.location-card__content span{font-weight:800;margin-top:6px}.portal-foot{display:flex;justify-content:space-between;padding:24px 4px 4px;color:#7e7b79;font-size:.75rem}
.site-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:rgba(244,240,233,.92);backdrop-filter:blur(18px);position:fixed;top:0;left:0;right:0;z-index:20;border-bottom:1px solid rgba(0,0,0,.06)}.wordmark{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:1.25rem}.wordmark img{width:48px;height:48px;border-radius:10px}.wordmark b{font-family:inherit;font-weight:400;color:var(--red)}.site-header nav{display:flex;align-items:center;gap:28px;font-size:.85rem;font-weight:700}.site-header nav a,.text-button{border:0;background:none;padding:8px 0}.site-header nav a:hover,.text-button:hover{color:var(--red)}.header-actions{display:flex;align-items:center;gap:12px}.site-header .language-switch{background:rgba(0,0,0,.04)}.menu-toggle{display:none;border:0;background:none;font-size:1.45rem}.hero{min-height:94vh;display:flex;align-items:flex-end;padding:150px 7vw 9vh;position:relative;color:white;background-size:cover;background-position:center}.hero--sabadell{background-image:url('/assets/img/sabadell-0.webp')}.hero--castellar{background-image:url('/assets/img/castellar-5.webp')}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.12) 70%),linear-gradient(0deg,rgba(0,0,0,.45),transparent 55%)}.hero-content{position:relative;max-width:800px}.hero .eyebrow{color:#ffafb4}.hero h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(4rem,9vw,9.2rem);line-height:.82;letter-spacing:-.055em;margin:.18em 0}.hero-content>p:not(.eyebrow){font-size:clamp(1rem,2vw,1.35rem);max-width:520px;line-height:1.5;color:#e6e0dc}.hero-buttons{display:flex;gap:12px;margin-top:30px}.hero-note{position:absolute;right:4vw;bottom:6vh;display:flex;align-items:center;gap:12px;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}.hero-note i{display:block;width:48px;height:1px;background:#fff}.section{padding:110px max(5vw,calc((100vw - 1380px)/2));}.about{display:grid;grid-template-columns:.55fr 1.1fr 1fr;gap:6vw;align-items:center}.section-label{align-self:start;color:var(--red);font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.about h2,.reservation h2,.contact h2,.gallery h2,.menu-panel h2{font-family:Georgia,serif;font-size:clamp(2.7rem,5vw,5.4rem);font-weight:500;line-height:.96;letter-spacing:-.04em;margin:.2em 0}.about-copy>p:last-child,.reservation-copy>p{font-size:1.08rem;line-height:1.75;color:#615c57}.rounded-media{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}.rounded-media img{width:100%;height:100%;object-fit:cover}.menu-teaser{background:var(--red);color:#fff;display:grid;grid-template-columns:1.25fr 1fr;gap:7vw;overflow:hidden}.menu-panel{max-width:650px}.menu-panel .eyebrow{color:#ffc1c5}.menu-panel>p:not(.eyebrow,.sync-note){font-size:1.08rem;line-height:1.7;max-width:520px}.sync-note{font-size:.72rem;opacity:.65;margin-top:26px}.menu-words{display:flex;flex-direction:column;justify-content:center}.menu-words span{font-family:Georgia,serif;font-size:clamp(3.2rem,7vw,7rem);line-height:.83;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.48);transform:rotate(-4deg)}.menu-words span:nth-child(even){transform:translateX(12%) rotate(3deg);color:rgba(255,255,255,.13)}.reservation{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.booking-card{border-radius:var(--radius);background:#fff;padding:42px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px;min-height:300px;justify-content:center;position:relative;overflow:hidden}.booking-card:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:rgba(178,15,25,.09);right:-90px;bottom:-110px}.booking-card small{text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.booking-card strong{font-family:Georgia,serif;font-size:2rem;line-height:1.15;max-width:420px}.booking-card p{color:var(--muted);line-height:1.65;max-width:500px}.booking-card--phone{background:var(--ink);color:#fff}.booking-card--phone span{font-size:1.35rem;color:#ff9ba1}.status-dot{width:12px;height:12px;background:#e9ab22;border-radius:50%;box-shadow:0 0 0 8px rgba(233,171,34,.13)}.gallery{background:#121214;color:#fff}.gallery-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:42px}.gallery-head .eyebrow{color:#ff979e}.gallery-head a{color:#c5bfba;font-size:.85rem}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:180px;gap:14px}.gallery-grid button{border:0;padding:0;border-radius:20px;overflow:hidden;background:#333}.gallery-grid button:nth-child(1){grid-column:span 7;grid-row:span 2}.gallery-grid button:nth-child(2){grid-column:span 5;grid-row:span 3}.gallery-grid button:nth-child(3){grid-column:span 4;grid-row:span 2}.gallery-grid button:nth-child(4){grid-column:span 3;grid-row:span 2}.gallery-grid button:nth-child(5){grid-column:span 7;grid-row:span 2}.gallery-grid button:nth-child(6){grid-column:span 5;grid-row:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:.5s}.gallery-grid button:hover img{transform:scale(1.04)}.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.contact-card address{font-style:normal;line-height:1.7;color:var(--muted)}.contact-card>a{font-weight:800;border-bottom:1px solid}.contact-form{background:#fff;padding:40px;border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:22px}.contact-form label{display:grid;gap:8px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid #c9c3bd;background:transparent;padding:12px 0;outline:none;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--red)}.contact-form small{color:var(--muted)}.site-footer{background:#080809;color:#fff;padding:54px 5vw 90px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px}.site-footer>div{display:flex;gap:22px;font-size:.76rem;color:#aaa}.site-footer>p{text-align:right;color:#777;font-size:.72rem}.mobile-bar{display:none}
.menu-drawer{position:fixed;inset:0;background:#f6f2ec;z-index:50;transform:translateY(105%);transition:.55s cubic-bezier(.7,0,.2,1);overflow:auto;padding:34px max(4vw,calc((100vw - 1200px)/2)) 80px}.menu-drawer.is-open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d8d1c9;padding-bottom:22px}.drawer-head h2{font-family:Georgia,serif;font-size:clamp(2.8rem,6vw,6rem);margin:0;line-height:1}.drawer-head small{text-transform:uppercase;letter-spacing:.14em;color:var(--red)}.drawer-head button,.lightbox button,.modal-card>button{border:0;background:#111;color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.8rem}.menu-tools{position:sticky;top:0;background:#f6f2ec;padding:22px 0 12px;z-index:2}.menu-tools input{width:100%;border:1px solid #d1cac3;border-radius:999px;background:#fff;padding:15px 20px;outline:none}.category-chips{display:flex;gap:8px;overflow:auto;padding:12px 0 4px;scrollbar-width:none}.category-chips button{white-space:nowrap;border:1px solid #d3ccc5;border-radius:999px;background:transparent;padding:9px 14px;font-size:.75rem;font-weight:800}.category-chips button.is-active{background:var(--red);color:#fff;border-color:var(--red)}.menu-section{padding:45px 0;border-bottom:1px solid #d8d1c9}.menu-section h3{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.8rem);font-weight:500;margin:0 0 24px;color:var(--red)}.menu-item{display:grid;grid-template-columns:1fr auto;gap:8px 30px;padding:16px 0;border-top:1px dashed #d8d1c9}.menu-item strong{font-size:1rem}.menu-item .price{font-weight:800}.menu-item p{grid-column:1/2;margin:0;color:#77716c;font-size:.86rem;line-height:1.5}.allergens{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap}.allergens span{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;background:#e9e2da;padding:4px 7px;border-radius:99px}.lightbox,.modal{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:70;display:flex;align-items:center;justify-content:center;padding:5vw;opacity:0;visibility:hidden;transition:.25s}.lightbox.is-open,.modal.is-open{opacity:1;visibility:visible}.lightbox img{max-width:90vw;max-height:82vh;border-radius:20px}.lightbox button{position:absolute;top:24px;right:24px}.modal-card{background:#fff;border-radius:24px;padding:42px;max-width:680px;max-height:82vh;overflow:auto;position:relative}.modal-card>button{position:absolute;right:18px;top:18px}.modal-card h2{font-family:Georgia,serif;font-size:2.4rem;margin-top:0;padding-right:50px}.modal-card p{line-height:1.7;color:#666}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120px);background:#111;color:#fff;border-radius:999px;padding:14px 22px;z-index:90;transition:.3s;box-shadow:var(--shadow)}.toast.is-visible{transform:translate(-50%,0)}
@media(max-width:920px){.site-header{height:72px}.site-header nav{position:fixed;top:72px;left:0;right:0;background:var(--paper);padding:24px;display:none;flex-direction:column;align-items:flex-start}.site-header nav.is-open{display:flex}.site-header>.header-actions>.language-switch,.site-header .button--small{display:none}.menu-toggle{display:block}.wordmark img{width:42px;height:42px}.hero{min-height:88svh;padding:130px 6vw 70px}.hero h1{font-size:clamp(4rem,17vw,7rem)}.hero-note{display:none}.section{padding:80px 6vw}.about{grid-template-columns:1fr}.section-label{margin-bottom:-20px}.rounded-media{aspect-ratio:16/10}.menu-teaser{grid-template-columns:1fr}.menu-words{display:none}.reservation,.contact{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:130px}.site-footer{grid-template-columns:1fr;text-align:left}.site-footer>p{text-align:left}.mobile-bar{position:fixed;display:grid;grid-template-columns:1fr 1fr;z-index:25;bottom:12px;left:12px;right:12px;background:#111;border-radius:999px;padding:5px;box-shadow:0 14px 50px rgba(0,0,0,.35)}.mobile-bar>*{border:0;background:none;color:#fff;text-align:center;padding:12px;font-weight:800}.mobile-bar>*:last-child{background:var(--red);border-radius:999px}.portal-intro{margin:7vh auto 4vh}.location-card{min-height:340px}.gallery-head{align-items:flex-start;gap:20px;flex-direction:column}}
@media(max-width:680px){.portal-shell{padding:18px 16px 90px}.brand-mark{width:58px;height:58px}.portal-intro{text-align:left}.portal-intro h1{font-size:3.7rem}.location-grid{grid-template-columns:1fr}.location-card{min-height:280px}.location-card__content strong{font-size:3.4rem}.portal-foot{flex-direction:column;gap:8px}.hero-buttons{flex-direction:column;align-items:stretch}.hero-buttons>*{width:100%}.about h2,.reservation h2,.contact h2,.gallery h2,.menu-panel h2{font-size:2.8rem}.contact-form,.booking-card{padding:28px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.gallery-grid button:nth-child(n){grid-column:span 1;grid-row:span 1}.gallery-grid button:nth-child(1),.gallery-grid button:nth-child(4){grid-column:span 2}.site-footer>div{flex-wrap:wrap}.menu-drawer{padding:20px 18px 80px}.menu-item{grid-template-columns:1fr auto}.modal-card{padding:32px 24px}.modal-card>button{right:12px;top:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}
.map-actions{display:flex;gap:10px;flex-wrap:wrap}.map-actions a{font-size:.78rem;font-weight:800;border:1px solid #cbc4bd;border-radius:999px;padding:11px 14px;background:#fff}.map-actions a:hover{border-color:var(--red);color:var(--red)}.map-frame{grid-column:1/-1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);height:420px}.map-frame iframe{width:100%;height:100%;border:0;filter:saturate(.75) contrast(1.05)}@media(max-width:680px){.map-frame{height:330px}}
.menu-top{position:fixed;right:24px;bottom:24px;z-index:4;border:0;border-radius:999px;background:var(--red);color:#fff;padding:13px 18px;font-weight:800;box-shadow:0 12px 32px rgba(0,0,0,.24);opacity:0;transform:translateY(16px);pointer-events:none;transition:.25s}.menu-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.portal-page .location-card{background:#101011;display:grid;grid-template-rows:auto minmax(165px,1fr) auto;gap:18px;min-height:430px}.location-card__photo{display:block;border-radius:20px;overflow:hidden;min-height:165px}.location-card__photo img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.location-card:hover .location-card__photo img{transform:scale(1.045)}.portal-page .location-card:before{mix-blend-mode:normal;background:linear-gradient(135deg,rgba(178,15,25,.12),transparent 65%);opacity:0}.portal-page .location-card:hover:before{opacity:1}.portal-page .location-card__content{position:relative;z-index:1}
.about{padding-top:78px;padding-bottom:62px}.about .rounded-media{width:min(100%,400px);aspect-ratio:4/3;justify-self:end}.map-actions--below{grid-column:1/-1;justify-content:center;margin-top:-4vw}.map-actions--below a{display:inline-flex;align-items:center;gap:10px;min-width:170px;justify-content:center}.map-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;color:#fff;font-weight:900;font-size:.78rem}.map-icon--google{background:linear-gradient(135deg,#4285f4 0 38%,#34a853 38% 60%,#fbbc05 60% 78%,#ea4335 78%)}.map-icon--waze{background:#31c5f0;color:#10242b}@media(max-width:920px){.about{padding-top:62px;padding-bottom:48px}.about .rounded-media{justify-self:start;width:min(100%,360px)}.map-actions--below{margin-top:-34px}}@media(max-width:680px){.map-actions--below{display:grid;grid-template-columns:1fr 1fr;width:100%}.map-actions--below a{min-width:0}}


/* Legal pages + cookie banner (boilerplate) */
.page-legal{background:var(--paper);color:var(--ink);min-height:100vh}
.legal-topbar{position:sticky;top:0;z-index:30;background:rgba(244,240,233,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06)}
.legal-topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(920px,calc(100% - 32px));margin:0 auto;padding:16px 0}
.legal-logo{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:1.15rem}
.legal-logo img{width:48px;height:48px;border-radius:10px}
.legal-back{border:1px solid rgba(0,0,0,.12);border-radius:999px;padding:10px 16px;font-size:.78rem;font-weight:800}
.legal-back:hover{border-color:var(--red);color:var(--red)}
.legal-page{width:min(820px,calc(100% - 32px));margin:0 auto;padding:48px 0 100px}
.legal-page h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(2.4rem,5vw,3.8rem);line-height:1;margin:.2em 0 .4em}
.legal-page h2{font-family:Georgia,serif;font-weight:500;font-size:1.55rem;margin:2em 0 .6em}
.legal-page p,.legal-page li{line-height:1.7;color:#4f4a46}
.legal-page .micro{font-size:.78rem;color:var(--muted)}
.legal-nav-page{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.legal-nav-page a{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:8px 12px;border-radius:999px;border:1px solid #d8d1c9}
.legal-nav-page a[aria-current="page"]{background:var(--red);color:#fff;border-color:var(--red)}
.legal-table-wrap{overflow:auto;margin:18px 0}
.legal-table{width:100%;border-collapse:collapse;font-size:.86rem}
.legal-table th,.legal-table td{border:1px solid #ddd6ce;padding:10px 12px;text-align:left;vertical-align:top}
.legal-table th{background:#ebe4db}
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:80}
.cookie-banner-inner{max-width:920px;margin:0 auto;background:#111;color:#fff;border-radius:22px;padding:18px 20px;display:flex;gap:18px;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}
.cookie-banner-title{margin:0 0 4px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;color:#ff9ba1}
.cookie-banner-copy p{margin:0;font-size:.9rem;line-height:1.5;color:#ddd}
.cookie-banner-copy a{text-decoration:underline}
.cookie-banner-actions{display:flex;gap:8px;flex-shrink:0}
.cookie-banner-btn{border:0;border-radius:999px;padding:11px 16px;font-weight:800;font-size:.78rem}
.cookie-banner-reject{background:rgba(255,255,255,.12);color:#fff}
.cookie-banner-accept{background:var(--red);color:#fff}
.portal-foot a{color:#9a9591}
.portal-foot a:hover{color:#fff}
.page-404 .legal-page{text-align:left}
@media(max-width:680px){.cookie-banner-inner{flex-direction:column;align-items:stretch}.cookie-banner-actions{display:grid;grid-template-columns:1fr 1fr}}
