@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/OpenSans/OpenSans-Regular.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/OpenSans/OpenSans-SemiBold.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/OpenSans/OpenSans-Bold.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/OpenSans/OpenSans-ExtraBold.ttf') format('truetype');
  font-display: swap;
}

:root{
  --c-bg:#0f0f0f;
  --c-panel:#121212;
  --c-card:#141414;
  --c-text:#f3f4f6;
  --c-muted:#b7bec5;
  --c-accent:#bb1822;
  --c-accent-2:#880f17;
  --c-border:#272727;
  --c-rail:#1a1a1a;
  --gap-y:24px;
  --gap-x:28px;
}

*{box-sizing:border-box}
html,body{
  height:100%;margin:0;background:var(--c-bg);color:var(--c-text);
  font-family: 'Open Sans', sans-serif;
}
img{max-width:100%;display:block}

body.page-transition{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .32s ease, transform .32s cubic-bezier(.32,1,.68,1);
}
body.page-transition.page-mounted{
  opacity:1;
  transform:none;
}
body.page-transition.page-leaving{
  opacity:0;
  transform:translateY(18px);
  pointer-events:none;
}

body.page-landing,
body.page-waly,
body.page-restauracja{
  height:100vh;
  overflow:hidden;
}

html.page-landing{position:relative; background:var(--c-bg);}
html.page-landing::before{
  content:"";
  position:fixed;
  inset:0;
  background:url("../images/restauracja/waly_bg.jpg") center/cover no-repeat;
  opacity:.30;
  filter:saturate(118%) contrast(106%) brightness(1.06);
  pointer-events:none;
  z-index:0;
}
.page-landing body{position:relative; z-index:1; background:transparent;}

html.page-waly{position:relative; background:var(--c-bg);}
html.page-waly::before{
  content:"";
  position:fixed;
  inset:0;
  background:url("../images/restauracja/waly_bg.jpg") center/cover no-repeat;
  opacity:.36;
  filter:saturate(120%) contrast(108%) brightness(1.08);
  pointer-events:none;
  z-index:0;
}
.page-waly body{position:relative; z-index:1; background-color:rgba(10,10,10,.72);}

html.page-restauracja{position:relative; background:var(--c-bg);}
html.page-restauracja::before{
  content:"";
  position:fixed;
  inset:0;
  background:url("../images/restauracja/Columbus_22.jpg") center/cover no-repeat;
  opacity:.34;
  filter:saturate(122%) contrast(108%) brightness(1.06);
  mix-blend-mode:screen;
  pointer-events:none;
  z-index:0;
}
.page-restauracja body{position:relative; z-index:1; background:transparent;}

/* Topbar */
.topbar{
  position:fixed; top:12px; right:14px; left:auto; z-index:40;
  display:flex; align-items:center; gap:10px;
}
.lang{display:flex; gap:8px}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border:1px solid var(--c-border); border-radius:999px;
  background:#0f0f0f; color:var(--c-muted); font-weight:700; cursor:pointer; text-decoration:none;
}
.pill img{width:18px;height:12px;object-fit:cover}
.pill.active{color:#fff; border-color:var(--c-accent)}
.back{
  display:inline-flex; align-items:center; gap:9px;
  height:36px; padding:0 18px; border-radius:999px; border:1px solid var(--c-border);
  background:#0f0f0f; color:#fff; cursor:pointer; font-size:18px; text-decoration:none;
}
.back span{font-size:12px; letter-spacing:.6px; text-transform:uppercase; font-weight:700;}

/* ===== INTRO ===== */
.page-intro{overflow:hidden;}

.hero{
  position:relative; min-height:100dvh; display:grid; place-items:center; padding:24px; overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:saturate(105%) contrast(105%);
}
.hero-vignette{
  position:absolute; inset:0;
  background:
    radial-gradient(70% 70% at 50% 50%, #0000 55%, #0008 75%, #000c 100%),
    linear-gradient(#0004,#0009);
  pointer-events:none;
}
.hero-plain{
  position:relative; z-index:3;
  width:min(980px,92vw);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:6px; /* mniejszy odstęp h1–p */
  margin-inline:auto;
  transform: translateY(-15%); /* całość podniesiona o 15% */
}
.brand-mark{
  width:min(340px,22vw);
  max-width:200px;
  height:auto;
  filter:drop-shadow(0 4px 20px #0007);
  opacity:.95;
  margin-bottom:10px;
}
.hero-plain h1{margin:0; font-weight:800; letter-spacing:.2px; font-size:clamp(34px,5vw,54px)}
.hero-plain p{margin:0; color:var(--c-muted); font-size:clamp(14px,1.4vw,20px); max-width:48ch}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:16px 32px; border-radius:999px;
  font-weight:800; letter-spacing:.6px; font-size:16px; text-decoration:none;
  text-transform:uppercase; cursor:pointer;
  transition:transform .2s cubic-bezier(.33,1,.68,1), box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
  min-height:56px;
}
.btn:focus-visible{outline:2px solid var(--c-accent); outline-offset:3px;}
.btn-primary{
  border:1px solid var(--c-accent);
  color:#fff;
  background:linear-gradient(180deg,var(--c-accent),var(--c-accent-2));
  box-shadow:0 14px 32px rgba(187,24,34,.28);
}
.btn-outline{
  border:1px solid rgba(255,255,255,.38);
  background:rgba(18,18,18,.72);
  color:#fff;
  backdrop-filter:blur(12px);
  box-shadow:0 12px 32px rgba(0,0,0,.32);
}
.btn-outline:hover{border-color:rgba(255,255,255,.65); background:rgba(26,26,26,.78);}
.btn-outline:focus-visible{border-color:var(--c-accent);}

/* ===== MENU LAYOUT ===== */

/* BLOKADA scrolla całej strony – osobne scrolle kolumn */
.page-menu{
  height:100svh;             /* nowoczesne mobilne */
  height:100vh;              /* fallback */
  overflow:hidden;
}

/* Siatka menu w pełnej wysokości i bez auto-min-height */
.layout{
  height:100%;
  display:grid; grid-template-columns: 360px 1fr; gap:0;
  min-height:0;              /* ważne dla scrolli wewnątrz grida */
}

/* LEWA KOLUMNA */
.side{
  height:100%; background:var(--c-panel); border-right:1px solid var(--c-border);
  display:grid; grid-template-rows: auto 1fr auto;
  min-height:0;              /* <- pozwala środkowi się kurczyć i przewijać */
  min-width:0;
}
.side-head{
  position:sticky; top:0; z-index:2;
  padding:14px 16px 8px; background:var(--c-panel); border-bottom:1px solid var(--c-border);
}
.side-head h2{margin:0 0 4px; font-size:16px}
.side-head p{margin:0; color:var(--c-muted); font-size:12px}

.side-rail{
  height:100%; display:grid; grid-template-rows: 44px 1fr 44px; gap:10px;
  padding:10px 12px;
  min-height:0;              /* <- bez tego 1fr nie odda miejsca */
}
.scroll-btn{
  border:none; border-radius:999px; width:44px; height:44px;
  background:var(--c-accent); color:#fff; font-weight:900; font-size:18px; cursor:pointer;
  justify-self:center; display:grid; place-items:center;
}
.scroll-btn.disabled,.scroll-btn:disabled{background:#3a3a3a; color:#888; cursor:default}

.side-scroll{
  width:100%; height:100%;
  overflow-y:auto; overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  background:var(--c-rail);
  border:1px solid var(--c-border); border-radius:14px; padding:10px;
  min-height:0;              /* Safari friendliness */
  position:relative;
}
.side-scroll::before,
.side-scroll::after{
  content:"";
  position:sticky;
  left:0; right:0;
  height:38px;
  pointer-events:none;
  z-index:3;
  opacity:0;
  transition:opacity .2s ease;
}
.side-scroll::before{
  top:-10px;
  background:linear-gradient(180deg, rgba(15,15,15,.85), rgba(15,15,15,0));
}
.side-scroll::after{
  bottom:-10px;
  background:linear-gradient(0deg, rgba(15,15,15,.85), rgba(15,15,15,0));
}
.side-scroll.show-top::before{opacity:1;}
.side-scroll.show-bottom::after{opacity:1;}
.side-list{display:grid; gap:10px}
.cat{
  display:grid; grid-template-columns: 86px 1fr auto; align-items:center; gap:12px;
  width:100%; padding:10px; border:1px solid var(--c-border); border-radius:14px;
  background:var(--c-card); color:#fff; cursor:pointer; text-align:left;
  transition:transform .24s cubic-bezier(.33,1,.68,1), box-shadow .24s ease, border-color .24s ease, background .24s ease;
}
.cat img{width:86px; height:64px; object-fit:cover; border-radius:10px}
.cat .cat-name{font-weight:800; letter-spacing:.4px}
.cat .cat-hint{color:var(--c-muted); font-size:12px}
.cat .chev{opacity:.6; font-size:24px}
.cat.active{border-color:var(--c-accent)}
.cat:hover,.cat:focus-visible{
  border-color:var(--c-accent);
  background:#181818;
}

.side-foot{padding:8px 16px 12px; color:var(--c-muted); font-size:12px; border-top:1px solid var(--c-border)}

/* PRAWA KOLUMNA */
.pane{
  height:100%;
  display:grid; grid-template-rows: 384px 1fr auto;
  overflow-y:auto; overflow-x:hidden;      /* własny scroll */
  -webkit-overflow-scrolling:touch;
  min-height:0; min-width:0;               /* kluczowy duet przy gridzie */
}
.pane-hero{position:relative; overflow:hidden; border-bottom:1px solid var(--c-border)}
.pane-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s cubic-bezier(.32,1,.68,1), opacity .35s ease; opacity:1}
.pane-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0000,#0007); opacity:1; transition:opacity .35s ease}
.pane-title{position:absolute; left:24px; bottom:22px; z-index:1; font-weight:800; font-size:clamp(24px,3.4vw,42px); text-shadow:0 4px 24px #000; transition:transform .35s cubic-bezier(.32,1,.68,1), opacity .35s ease; transform-origin:left bottom; opacity:1; transform:none}
.pane{position:relative}
.pane[data-transition="out"] .pane-hero img{opacity:0}
.pane[data-transition="out"] .pane-hero::after{opacity:0}
.pane[data-transition="out"] .pane-title{opacity:0}
.pane[data-transition="out"] .items{opacity:0}
.pane[data-transition="in"] .pane-hero img,
.pane[data-transition="in"] .pane-hero::after,
.pane[data-transition="in"] .pane-title,
.pane[data-transition="in"] .items{opacity:1}

.items{
  padding:18px 24px 28px;
  display:flex;
  flex-direction:column;
  gap:var(--gap-y);
  transition:opacity .3s ease, transform .3s cubic-bezier(.32,1,.68,1);
  opacity:1;
  transform:none;
}
.items-cols{display:flex; gap:var(--gap-x);}
.items-col{flex:1; display:flex; flex-direction:column; gap:var(--gap-y);}
.item{background:var(--c-card); border:1px solid var(--c-border); border-radius:14px; padding:14px 16px; transition:transform .24s cubic-bezier(.33,1,.68,1), box-shadow .24s ease, border-color .24s ease, background .24s ease; will-change:transform}
.item.has-logo{display:flex; gap:16px; align-items:flex-start}
.item.has-logo .item-body{flex:1}
.item-body{display:grid; grid-template-columns:1fr auto; column-gap:12px; row-gap:6px;}
.item-logo{flex-shrink:0; display:flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:14px; background:#f9f9f9; border:1px solid rgba(255,255,255,.35); padding:10px; box-shadow:0 12px 30px rgba(0,0,0,.45)}
.item-logo img{width:100%; height:100%; object-fit:contain}
.price-wrap{display:flex; flex-direction:column; align-items:flex-end; justify-self:end; align-self:flex-start; gap:6px; min-width:56px; grid-column:2; grid-row:1 / span 3;}
.item.has-thumb .price-wrap{min-width:110px;}
.item h4{margin:0; font-size:18px; transition:color .24s ease; grid-column:1;}
.item p{margin:0; color:var(--c-muted); font-size:14px; grid-column:1;}
.item-body > p:first-of-type{margin-top:4px;}
.item p + p{margin-top:6px;}
.item-thumb{width:72px; height:72px; border-radius:14px; overflow:hidden; border:1px solid rgba(255,255,255,.14); background:rgba(0,0,0,.35); display:block; padding:0; cursor:inherit; transition:transform .24s ease, box-shadow .24s ease; font:inherit; color:inherit;}
.item-thumb:hover,.item-thumb:focus-visible{box-shadow:0 14px 36px rgba(0,0,0,.45);}
.item-thumb:focus-visible{outline:2px solid var(--c-accent); outline-offset:2px;}
.item-thumb img{width:100%; height:100%; object-fit:cover; display:block; pointer-events:none;}
.price{font-weight:800}
.item:hover,.item:focus-visible{
  border-color:rgba(255,255,255,.18);
  background:#191919;
}
.item.has-viewer{cursor:pointer;}
.item.has-viewer:focus-visible{outline:2px solid var(--c-accent); outline-offset:2px;}
.item:hover h4,.item:focus-visible h4{color:#fff}

/* Grupy */
.group{
  border:none;
  border-radius:0;
  padding:0;
  margin:0;
  display:grid;
  gap:var(--gap-y) var(--gap-x);
  align-items:start;
}
.group-extras,
.group-collection{grid-template-columns:repeat(2, minmax(0, 1fr));}
.group-notes{grid-template-columns:1fr; gap:12px;}
.group-title{
  grid-column:1 / -1;
  margin:0;
  padding:0 2px;
  font-size:15px;
  color:var(--c-muted);
  text-transform:uppercase;
  letter-spacing:.6px;
}

.pane-foot{padding:22px 24px 28px; border-top:1px solid var(--c-border)}
.pane-foot-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  flex-wrap:wrap;
  width:100%;
  max-width:520px;
  margin:0 auto;
}
.pane-foot-nav img{height:120px; opacity:.9;}
.pane-foot-nav .foot-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 22px;
  border-radius:999px;
  border:1px solid var(--c-border);
  text-transform:uppercase;
  letter-spacing:.6px;
  font-weight:700;
  font-size:14px;
  color:var(--c-text);
  text-decoration:none;
  transition:background .24s ease, color .24s ease, border-color .24s ease;
}
.pane-foot-nav .foot-link:hover,
.pane-foot-nav .foot-link:focus-visible{
  background:#1b1b1b;
  border-color:rgba(255,255,255,.25);
  color:#fff;
}
.pane-foot-nav .foot-link:focus-visible{
  outline:2px solid var(--c-accent);
  outline-offset:3px;
}

/* Pion (kiosk) */
@media (orientation:portrait){
  .layout{grid-template-columns: minmax(240px, 32vw) 1fr}
  .pane{grid-template-rows: 336px 1fr auto}
  .pane-title{font-size:clamp(28px,4.6vw,56px)}
  .items{padding:26px 32px 40px; gap:32px}
  .items-cols{flex-direction:column; gap:32px}
  .items-col{gap:32px}
  .item{padding:20px 22px}
  .item.has-logo{gap:22px}
  .item-logo{width:110px; height:110px; border-radius:20px; padding:16px}
  .item h4{font-size:22px}
  .item p{font-size:16px}
  .price{font-size:22px}
  .item-body{row-gap:10px}
  .item.has-thumb .price-wrap{min-width:150px}
  .price-wrap{gap:12px}
  .item-thumb{width:110px; height:110px; border-radius:20px}
  .group{grid-template-columns:1fr; gap:32px 32px}
  .group-title{font-size:17px; padding:0 4px}
}

@media (prefers-reduced-motion: reduce){
  body.page-transition{transition:none !important; transform:none !important; opacity:1 !important;}
  .cat,
  .item,
  .pane-hero img,
  .pane-hero::after,
  .pane-title,
  .items{transition:none !important; transform:none !important;}
}

/* scrollbar subtelny */
::-webkit-scrollbar{height:10px;width:10px}
::-webkit-scrollbar-thumb{background:#2a2a2a; border-radius:10px}

/* Alergeny – drobna, niemal „pomocnicza” linia pod opisem */
.item .allergens{
  margin-top: 10px;
  font-size: 10px;
  line-height: 1.3;
  color: var(--c-muted);
  font-weight: 400; /* bez bolda */
}
.group-notes .allergens{margin:0; font-size:13px; color:var(--c-muted); letter-spacing:.2px}

/* ===== ITEM VIEWER ===== */
body.viewer-open{overflow:hidden;}
.item-viewer{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:32px 20px; background:rgba(0,0,0,.75); backdrop-filter:blur(12px); z-index:1100;}
.item-viewer[hidden]{display:none;}
.item-viewer__dialog{position:relative; width:min(90vw, 540px); background:rgba(18,18,20,.96); border-radius:28px; padding:24px 28px 32px; box-shadow:0 40px 120px rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.12); display:grid; gap:22px;}
.item-viewer__image{border-radius:20px; overflow:hidden; aspect-ratio:4/3; background:#111;}
.item-viewer__image img{width:100%; height:100%; object-fit:cover;}
.item-viewer__meta{display:grid; grid-template-columns:1fr auto; column-gap:16px; row-gap:10px; align-items:start;}
.item-viewer__meta h3{margin:0; font-size:22px;}
.item-viewer__price{font-weight:800; font-size:20px;}
.item-viewer__price.is-hidden{display:none;}
.item-viewer__desc{grid-column:1 / -1; margin:0; color:var(--c-muted); font-size:15px;}
.item-viewer__desc.is-hidden{display:none;}
.item-viewer__allergens{grid-column:1 / -1; margin:0; font-size:12px; letter-spacing:.2px; color:var(--c-muted);}
.item-viewer__allergens.is-hidden{display:none;}
.item-viewer__control{
  position:absolute;
  width:44px; height:44px; border-radius:999px;
  display:grid; place-items:center;
  background:linear-gradient(180deg,var(--c-accent),var(--c-accent-2));
  border:1px solid var(--c-accent);
  color:#fff; font-size:22px; font-weight:800;
  cursor:pointer;
  box-shadow:0 18px 36px rgba(0,0,0,.55);
  transition:transform .2s ease, filter .2s ease, box-shadow .2s ease;
  z-index:5;
}
.item-viewer__control:hover,
.item-viewer__control:focus-visible{
  transform:scale(1.07);
  filter:brightness(1.08);
}
.item-viewer__control:focus-visible{
  outline:2px solid rgba(255,255,255,.3);
  outline-offset:3px;
}
.item-viewer__close{
  top:-58px;
  right:-18px;
}
.item-viewer__nav{
  top:50%;
  transform:translateY(-50%);
}
.item-viewer__nav:hover,
.item-viewer__nav:focus-visible{
  transform:translateY(-50%) scale(1.07);
}
.item-viewer__prev{left:-74px;}
.item-viewer__next{right:-74px;}
.item-viewer__nav[disabled]{opacity:.4; pointer-events:none; filter:grayscale(.3);}

@media (max-width:720px){
  .item-viewer__dialog{width:min(94vw, 460px); padding:20px 22px 28px;}
  .item-viewer__close{top:-52px; right:-12px;}
  .item-viewer__prev{left:-48px;}
  .item-viewer__next{right:-48px;}
}

/* ===== LANDING / WAŁY / RESTAURACJA ===== */
.landing{
  position:relative;
  display:grid;
  place-items:center;
  height:100vh;
  min-height:100dvh;
  padding:clamp(64px,6vh,96px) clamp(60px,5vw,96px);
  box-sizing:border-box;
  color:#fff;
  overflow:hidden;
}
.landing-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(110%) contrast(108%);
}
.landing::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(145deg, rgba(0,0,0,.24) 8%, rgba(10,10,10,.12) 52%, rgba(0,0,0,.36) 100%);
  z-index:-1;
}
.landing-body{
  position:relative;
  z-index:2;
  display:grid;
  gap:clamp(28px,3.6vw,48px);
  max-width:min(880px,74vw);
  justify-items:center;
}
.landing-primary{
  display:grid;
  gap:clamp(18px,3vh,26px);
  justify-items:center;
  text-align:center;
}
.landing-primary h1{
  margin:0;
  font-weight:800;
  letter-spacing:.4px;
  font-size:clamp(29px,4vw,51px);
  text-shadow:0 20px 50px rgba(0,0,0,.6);
}
.landing-primary p{
  margin:0;
  font-size:clamp(16px,1.9vw,24px);
  color:rgba(255,255,255,.82);
  max-width:48ch;
  line-height:1.35;
}
.landing-primary .btn{justify-self:center;}
.landing-secondary{
  background:rgba(16,16,16,.75);
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  padding:28px 36px;
  box-shadow:0 26px 64px rgba(0,0,0,.34);
  backdrop-filter:blur(14px);
  display:grid;
  gap:clamp(20px,2.4vw,28px);
  justify-items:center;
  max-width:min(640px,66vw);
}
.landing-secondary-head{
  display:flex;
  align-items:center;
  gap:22px;
  text-align:left;
}
.landing-logo-wrap{
  width:92px;
  height:92px;
  border-radius:50%;
  background:rgba(18,18,18,.8);
  border:2px solid rgba(255,255,255,.18);
  display:grid;
  place-items:center;
  box-shadow:0 16px 38px rgba(0,0,0,.35);
}
.landing-logo{width:58px; height:auto; filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));}
.landing-secondary-copy{display:flex; flex-direction:column; gap:6px;}
.landing-secondary h2{margin:0; font-size:clamp(26px,3vw,36px); letter-spacing:.3px; text-align:left;}
.landing-subline{margin:0; color:rgba(255,255,255,.78); font-size:clamp(14px,1.4vw,18px); line-height:1.4;}
.landing-actions{display:flex; flex-wrap:wrap; gap:18px; justify-content:center; width:100%;}
.landing-actions .btn{min-width:220px;}

.waly{
  display:flex;
  flex-direction:column;
  height:100vh;
  min-height:100dvh;
  padding:clamp(36px,3.6vh,64px) clamp(48px,4.4vw,86px) clamp(32px,3.6vh,56px);
  gap:clamp(24px,3vh,38px);
  box-sizing:border-box;
  overflow:hidden;
}
.waly-head h1{
  margin:0 0 4px;
  font-size:clamp(22px,2.4vw,36px);
  letter-spacing:.22px;
}
.waly-head p{margin:0; color:rgba(255,255,255,.78); font-size:clamp(13px,1.2vw,17px);}
.waly-slider{
  display:grid;
  grid-template-columns:minmax(0,0.98fr) minmax(0,0.9fr);
  gap:clamp(22px,3vw,36px);
  align-items:stretch;
  flex:1;
  min-height:0;
  height:clamp(380px, 46vh, 520px);
  padding:24px 28px;
  background:rgba(18,18,18,.7);
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  box-shadow:0 24px 58px rgba(0,0,0,.32);
}
.waly-media{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  min-height:0;
  background:#0f0f0f;
  border:2px solid rgba(255,255,255,.1);
  box-shadow:0 22px 50px rgba(0,0,0,.4);
  display:flex;
}
.waly-media::before{content:""; display:none;}
.waly-media img{width:100%; height:100%; object-fit:cover; object-position:center center; transition:transform .6s cubic-bezier(.33,1,.68,1), filter .4s ease;}
.waly-media:hover img{transform:scale(1.02);}
.waly-media-shade{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.55));}
.waly-panel{display:flex; flex-direction:column; gap:clamp(18px,2.4vh,26px); min-width:0; height:100%;}
.waly-slide-title{
  margin:0;
  font-size:clamp(22px,2.8vw,32px);
  font-weight:700;
  letter-spacing:.2px;
}
.waly-slide-text{
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:clamp(13px,1.3vw,18px);
  line-height:1.45;
  max-width:44ch;
}
.waly-nav{
  margin-top:auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
  align-self:flex-start;
  width:100%;
}
.waly-nav-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 18px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(15,15,15,.76);
  color:#fff;
  font-size:14px;
  text-align:left;
  cursor:pointer;
  transition:transform .24s cubic-bezier(.33,1,.68,1), border-color .24s ease, background .24s ease, box-shadow .24s ease;
  min-height:58px;
}
.waly-nav-btn.left{justify-content:flex-start; text-align:left;}
.waly-nav-btn.left .waly-nav-copy{margin-left:10px;}
.waly-nav-btn.right{justify-content:flex-end; text-align:right;}
.waly-nav-btn.right .waly-nav-copy{margin-right:10px;}
.waly-nav-btn small{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:rgba(255,255,255,.55); margin-bottom:2px;}
.waly-nav-copy span{display:block; font-size:14px; color:#fff; line-height:1.3;}
.waly-nav-icon{font-size:22px; font-weight:800;}
.waly-nav-btn:hover,.waly-nav-btn:focus-visible{border-color:var(--c-accent); background:rgba(26,26,26,.9);}
.waly-cta{
  display:grid;
  grid-template-columns:minmax(0,2fr) auto;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg, rgba(18,18,18,.9), rgba(187,24,34,.18));
  border-radius:26px;
  padding:24px 28px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 22px 52px rgba(0,0,0,.32);
}
.waly-cta-head{display:flex; align-items:center; gap:18px;}
.waly-cta-logo{display:flex; align-items:center; justify-content:center; flex-shrink:0; width:110px; height:110px;}
.waly-cta-mark{
  width:100px;
  height:100px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.2);
  background:rgba(12,12,12,.82);
  display:grid;
  place-items:center;
  padding:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.waly-cta-mark img{max-width:68%; height:auto; filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));}
.waly-cta-copy h2{margin:0 0 6px; font-size:clamp(20px,2.2vw,30px);}
.waly-cta-copy p{margin:0; color:rgba(255,255,255,.75); max-width:52ch; font-size:13px; line-height:1.45;}
.waly-cta-actions{display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:flex-end;}
.waly-cta-actions .btn{min-width:170px; padding-inline:22px; min-height:52px;}

.resto{
  display:flex;
  flex-direction:column;
  height:100vh;
  min-height:100dvh;
  padding:clamp(52px,4.6vh,84px) clamp(48px,4.2vw,86px) clamp(38px,4vh,60px);
  gap:clamp(22px,2.8vh,34px);
  box-sizing:border-box;
  overflow:hidden;
}
.resto-head h1{margin:0 0 6px; font-size:clamp(26px,3vw,44px); letter-spacing:.22px;}
.resto-head p{margin:0; color:rgba(255,255,255,.78); font-size:clamp(14px,1.5vw,20px);}
.resto-slider{
  display:grid;
  grid-template-columns:minmax(0,0.98fr) minmax(0,0.9fr);
  gap:clamp(22px,3vw,36px);
  align-items:stretch;
  flex:1;
  min-height:0;
  height:clamp(380px, 46vh, 520px);
  padding:24px 28px;
  background:rgba(18,18,18,.72);
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  box-shadow:0 24px 58px rgba(0,0,0,.32);
  overflow:hidden;
  position:relative;
}
.resto-media{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  background:#0f0f0f;
  border:2px solid rgba(255,255,255,.1);
  box-shadow:0 22px 50px rgba(0,0,0,.4);
  display:flex;
  min-height:100%;
  height:100%;
}
.resto-media img{width:100%; height:100%; object-fit:cover; object-position:center center; transition:transform .6s cubic-bezier(.33,1,.68,1), filter .4s ease;}
.resto-panel{
  display:flex;
  flex-direction:column;
  gap:clamp(18px,2.4vh,26px);
  min-width:0;
  height:100%;
}
.resto-panel-copy{flex:1; display:flex; flex-direction:column; gap:clamp(12px,2vh,20px); justify-content:center;}
.resto-nav{margin-top:auto; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; align-self:stretch; width:100%;}
.resto-slide-title{margin:0; font-size:clamp(22px,2.8vw,34px); font-weight:700; letter-spacing:.2px;}
.resto-slide-text{margin:0; color:rgba(255,255,255,.78); font-size:clamp(10px,0.98vw,13.5px); line-height:1.45; max-width:44ch;}
.resto-facts{display:none;}
.resto-nav-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 18px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(15,15,15,.76);
  color:#fff;
  font-size:14px;
  text-align:left;
  cursor:pointer;
  transition:transform .24s cubic-bezier(.33,1,.68,1), border-color .24s ease, background .24s ease, box-shadow .24s ease;
  min-height:58px;
}
.resto-nav-btn.left{justify-content:flex-start; text-align:left;}
.resto-nav-btn.left .resto-nav-copy{margin-left:10px;}
.resto-nav-btn.right{justify-content:flex-end; text-align:right;}
.resto-nav-btn.right .resto-nav-copy{margin-right:10px;}
.resto-nav-btn small{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:rgba(255,255,255,.55); margin-bottom:2px;}
.resto-nav-copy span{display:block; font-size:14px; color:#fff; line-height:1.3;}
.resto-nav-icon{font-size:22px; font-weight:800;}
.resto-nav-btn:hover,.resto-nav-btn:focus-visible{border-color:var(--c-accent); background:rgba(26,26,26,.9);}
.resto-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:linear-gradient(135deg, rgba(20,20,20,.9), rgba(187,24,34,.24));
  border-radius:26px;
  padding:24px 30px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 58px rgba(0,0,0,.34);
}
.resto-cta-info{display:flex; align-items:center; gap:18px; flex:1;}
.resto-cta-logo{width:82px; height:82px; border-radius:50%; border:2px solid rgba(255,255,255,.18); background:rgba(12,12,12,.82); display:grid; place-items:center; padding:14px; flex-shrink:0;}
.resto-cta-logo img{max-width:72%; filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));}
.resto-cta-text h2{margin:0 0 4px; font-size:clamp(20px,2.2vw,30px);}
.resto-cta-text p{margin:0; color:rgba(255,255,255,.75); font-size:13px; line-height:1.45; max-width:46ch;}
.resto-cta-actions{display:flex; flex-wrap:wrap; gap:16px; margin-left:auto; align-items:center;}
.resto-cta-actions .btn{min-width:180px;}

@media (orientation:portrait){
  .landing{padding:120px 48px 96px; align-items:flex-start;}
  .landing-body{max-width:100%; gap:38px;}
  .landing-secondary{max-width:100%; padding:26px 30px;}
  .landing-secondary-head{flex-direction:column; gap:16px; text-align:center;}
  .landing-secondary-copy{align-items:center; text-align:center;}
  .landing-secondary h2{text-align:center;}
  .landing-subline{text-align:center;}
  .landing-actions{flex-direction:column; width:100%;}
  .landing-actions .btn{width:100%;}

  .waly{padding:96px 46px 72px;}
  .waly-slider{grid-template-columns:1fr; gap:20px; padding:20px 22px;}
  .waly-nav{grid-template-columns:repeat(2, minmax(0,1fr));}
  .waly-media::before{padding-top:50%;}
  .waly-cta{grid-template-columns:1fr; justify-items:flex-start;}
  .waly-cta-head{flex-direction:column; align-items:flex-start; gap:14px;}
  .waly-cta-copy h2{text-align:left;}
  .waly-cta-copy p{text-align:left;}
  .waly-cta-actions{width:100%; justify-content:flex-start;}
  .waly-cta-actions .btn{flex:1; min-width:0;}

  .resto{padding:126px 46px 92px;}
  .resto-slider{grid-template-columns:1fr; height:auto; min-height:0;}
  .resto-nav{grid-template-columns:repeat(2, minmax(0,1fr));}
  .resto-cta{flex-direction:column; align-items:flex-start;}
  .resto-cta-actions{width:100%; justify-content:flex-start; margin-left:0;}
  .resto-cta-actions .btn{flex:1; min-width:0;}
}

@media (max-width:1200px){
  .landing{padding:108px 48px 88px;}
  .landing-secondary{padding:24px 28px;}
  .waly{padding:92px 48px 74px;}
  .waly-slider{gap:32px;}
  .resto{padding:112px 48px 82px;}
}

@media (max-width:860px){
  .landing{padding:108px 28px 88px;}
  .landing-secondary{padding:24px 24px;}
  .waly{padding:88px 28px 74px;}
  .resto{padding:112px 28px 86px;}
}
