@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,600;9..40,700;9..40,900&display=swap');

body.kai-carta-v1-active {
  --black: #050505;
  --red: #ed1c24;
  --white: #f7f6f1;
  --cream: #e7decc;
  --line: rgba(5, 5, 5, .22);
  --impact: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
  --sans: 'DM Sans', Arial, sans-serif;
}

* { box-sizing: border-box; }
body.kai-carta-v1-active { scroll-behavior: smooth; margin: 0; background: var(--white); color: var(--black); font-family: var(--sans); }
body.kai-carta-v1-active .elementor-location-header, body.kai-carta-v1-active .elementor-location-footer { display:none!important; }
body.kai-carta-v1-active .kai-carta-elementor-root, body.kai-carta-v1-active .kai-carta-elementor-root > .e-con-inner { display:block!important; width:100%; max-width:none!important; padding:0!important; margin:0!important; }
body.kai-carta-v1-active .kai-carta-elementor-root .elementor-widget-shortcode { margin:0; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, summary:focus-visible { outline: 3px solid #ffcf00; outline-offset: 4px; }

.site-header {
  position: absolute; z-index: 20; top: 0; left: 0; display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; width: 100%; min-height: 90px; padding: 12px clamp(18px, 4vw, 62px); color: white;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.brand { width: 96px; }
.brand img { width: 100%; height: 50px; object-fit: contain; }
.desktop-nav { display: flex; justify-content: center; gap: clamp(18px, 3vw, 48px); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.desktop-nav a, .text-cta { padding: 12px 0; border-bottom: 2px solid transparent; }
.desktop-nav a:hover, .desktop-nav a:focus-visible, .text-cta:hover, .text-cta:focus-visible { border-color: var(--red); }
.header-actions { display: flex; align-items: center; gap: 16px; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 22px; border: 2px solid currentColor; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button--red { border-color: var(--red); background: var(--red); color: white; }
.button--light { border-color: white; background: white; color: var(--black); }
.button--ghost { border-color: white; color: white; }

.menu-hero {
  position: relative; display: flex; min-height: min(74svh, 780px); flex-direction: column; justify-content: flex-end;
  overflow: hidden; isolation: isolate; padding: 142px clamp(18px, 4vw, 64px) clamp(42px, 5vw, 72px); color: white;
}
.menu-hero > img, .menu-hero__shade { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; }
.menu-hero > img { object-fit: cover; object-position: center 54%; }
.menu-hero__shade { z-index: -1; background: linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.22) 62%,rgba(0,0,0,.04)), linear-gradient(0deg,rgba(0,0,0,.72),transparent 60%); }
.menu-hero__eyebrow { margin: 0 0 12px; font-size: 11px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
.menu-hero h1 { margin: 0; font-family: var(--impact); font-size: clamp(88px, 15vw, 220px); font-weight: 900; letter-spacing: -.055em; line-height: .76; text-transform: uppercase; }
.menu-hero__intro { max-width: 520px; margin: 26px 0 0; font-size: clamp(18px, 2vw, 27px); font-weight: 700; line-height: 1.15; }
.menu-hero__edition { position: absolute; right: clamp(18px,4vw,64px); bottom: 28px; font-size: 8px; font-weight: 900; letter-spacing: .16em; opacity: .58; }

.category-nav {
  position: sticky; z-index: 30; top: 0; display: grid; grid-template-columns: 190px minmax(0, 1fr); align-items: stretch;
  min-height: 72px; border-bottom: 1px solid rgba(255,255,255,.18); background: var(--black); color: white;
}
.category-nav > span { display: flex; align-items: center; padding: 0 24px; border-right: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.55); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.category-nav > div { display: flex; min-width: 0; }
.category-nav a { display: flex; flex: 1; gap: 12px; align-items: center; justify-content: center; min-width: 150px; padding: 0 18px; border-right: 1px solid rgba(255,255,255,.18); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.category-nav a:hover, .category-nav a:focus-visible { background: var(--red); }
.category-nav b { color: var(--red); font-family: var(--impact); font-size: 18px; }
.category-nav a:hover b, .category-nav a:focus-visible b { color: white; }

.menu-category { padding: clamp(82px, 10vw, 150px) clamp(18px, 4vw, 64px); scroll-margin-top: 72px; }
.menu-category:nth-child(odd) { background: var(--white); }
.menu-category--burgers { background: var(--cream); }
.menu-category--postres { background: var(--cream); }
.menu-category--postres .category-heading { grid-template-columns: 120px minmax(0,1fr); }
.menu-category--postres .category-heading span:empty { display: none; }
.category-heading { display: grid; grid-template-columns: 120px minmax(300px, 1fr) minmax(220px, .46fr); gap: clamp(20px, 4vw, 70px); align-items: end; margin-bottom: clamp(56px, 8vw, 110px); }
.category-heading p { margin: 0 0 12px; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.category-heading h2 { margin: 0; font-family: var(--impact); font-size: clamp(78px, 12vw, 178px); letter-spacing: -.045em; line-height: .72; text-transform: uppercase; }
.category-heading span { max-width: 360px; padding-bottom: 8px; font-size: clamp(17px, 1.7vw, 24px); font-weight: 700; line-height: 1.18; }

.product-list { border-top: 3px solid var(--black); }
.product-row { padding: clamp(25px, 3vw, 40px) 0; border-bottom: 1px solid var(--line); }
.product-title-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: start; }
.product-title-line h3 { margin: 0; font-family: var(--impact); font-size: clamp(34px, 4.2vw, 64px); font-weight: 900; letter-spacing: -.025em; line-height: .92; text-transform: uppercase; }
.product-price { margin: 1px 0 0; font-family: var(--impact); font-size: clamp(30px, 3.2vw, 52px); line-height: .95; white-space: nowrap; }
.secondary-price { margin: 8px 0 0; color: var(--red); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.product-description { max-width: 840px; margin: 16px 0 0; color: #2a2a2a; font-size: clamp(14px, 1.3vw, 18px); font-weight: 600; line-height: 1.45; }
.product-review-note { display: inline-block; margin: 14px 0 0; padding: 7px 9px; border: 1px dashed var(--red); color: #721015; font-size: 10px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.allergen-disclosure { margin-top: 14px; }
.allergen-disclosure summary { width: max-content; cursor: pointer; color: #383838; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.allergen-disclosure summary::marker { color: var(--red); }
.allergen-disclosure p { max-width: 650px; margin: 10px 0 0; padding-left: 12px; border-left: 3px solid var(--red); font-size: 12px; line-height: 1.4; }
.product-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 0; padding: 0; list-style: none; }
.product-badges li { padding: 7px 9px; background: var(--red); color: white; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }

.featured-products { display: grid; gap: clamp(90px, 12vw, 180px); margin-bottom: clamp(100px, 14vw, 210px); }
.featured-product { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(320px, .94fr); gap: clamp(40px, 7vw, 110px); align-items: center; }
.featured-product--reverse .featured-product__media { order: 2; transform: rotate(1.8deg); }
.featured-product--normal .featured-product__media { transform: rotate(-1.6deg); }
.featured-product__media { position: relative; min-height: min(67vw, 850px); margin: 0; overflow: hidden; border: clamp(8px, 1vw, 14px) solid var(--black); background: #111; }
.featured-product__media::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); pointer-events: none; }
.featured-product__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; }
.featured-product__media figcaption { position: absolute; left: 14px; bottom: 14px; padding: 8px 10px; border: 1px solid white; background: rgba(5,5,5,.7); color: white; font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.featured-product__copy .product-title-line { display: block; }
.featured-product__copy .product-title-line h3 { margin-top: 16px; font-size: clamp(62px, 7.8vw, 118px); line-height: .79; }
.featured-product__copy .product-price { margin-top: 28px; color: var(--red); font-size: clamp(44px, 5vw, 76px); }
.featured-product__copy .product-description { font-size: clamp(16px, 1.6vw, 22px); line-height: 1.32; }
.featured-product__label { display: inline-block; margin: 0; padding: 9px 11px; background: var(--red); color: white; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.dessert-editorial { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(260px,.9fr); gap: 24px clamp(32px,6vw,100px); padding-top: 28px; border-top: 3px solid var(--black); }
.dessert-editorial__label { grid-column: 1/-1; margin: 0; color: var(--red); font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.dessert-editorial h3 { margin: 0; font-family: var(--impact); font-size: clamp(58px,8vw,120px); letter-spacing: -.045em; line-height: 1; text-transform: uppercase; text-wrap: balance; }
.dessert-editorial__text { max-width: 560px; margin: 0; align-self: end; font-size: clamp(19px,2vw,28px); font-weight: 700; line-height: 1.25; }
.dessert-editorial__note { grid-column: 1/-1; margin: clamp(12px,3vw,42px) 0 0; padding: clamp(18px,3vw,36px); background: var(--red); color: white; font-size: clamp(18px,2.2vw,30px); font-weight: 900; line-height: 1.12; }
.menu-category--postres .product-list,.menu-category--postres .featured-products { margin-top: clamp(54px,7vw,96px); }

.editorial-break { position: relative; display: grid; min-height: min(78svh, 880px); place-items: center; overflow: hidden; isolation: isolate; background: var(--black); color: white; }
.editorial-break > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 57%; }
.editorial-break::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.1),rgba(0,0,0,.56)); }
.editorial-break p { margin: 0; text-align: center; text-transform: uppercase; transform: rotate(-4deg); }
.editorial-break span, .editorial-break strong { display: block; font-family: var(--impact); font-weight: 900; letter-spacing: -.055em; line-height: .72; }
.editorial-break span { font-size: clamp(66px, 9vw, 140px); }
.editorial-break strong { color: var(--red); font-size: clamp(104px, 16vw, 250px); }
.editorial-break small { position: absolute; left: 20px; bottom: 20px; padding: 8px 10px; border: 1px solid white; font-size: 8px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }

.allergen-section { padding: clamp(82px, 10vw, 150px) clamp(18px, 4vw, 64px); background: var(--cream); }
.kicker { margin: 0 0 18px; font-size: 10px; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.allergen-section h2, .menu-cta h2 { margin: 0; font-family: var(--impact); font-size: clamp(72px, 12vw, 180px); letter-spacing: -.045em; line-height: .8; text-transform: uppercase; }
.allergen-section > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; margin: 46px 0; padding-top: 26px; border-top: 2px solid; }
.allergen-section > div p { max-width: 760px; margin: 0; font-size: clamp(16px, 1.7vw, 23px); font-weight: 700; line-height: 1.3; }
.allergen-section > div a, .arrow-link { display: inline-flex; gap: 18px; align-items: center; padding-bottom: 7px; border-bottom: 2px solid; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.source-note, .terrace-note { max-width: 920px; margin: 9px 0 0; color: #4b463e; font-size: 11px; font-weight: 700; line-height: 1.4; }

.menu-cta { padding: clamp(92px, 12vw, 180px) clamp(18px, 4vw, 64px); background: var(--red); color: white; }
.menu-cta h2 { font-size: clamp(76px, 12vw, 184px); }
.menu-cta h2 em { color: var(--black); font-style: normal; }
.menu-cta > div { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; margin-top: 50px; }
.menu-cta .arrow-link { margin-left: auto; }

.footer { padding: 72px clamp(18px,4vw,64px) 24px; background: var(--black); color: white; }
.footer__top { display: flex; align-items: end; justify-content: space-between; min-height: 210px; padding-bottom: 44px; }
.footer__top img { width: min(420px, 50vw); height: 180px; object-fit: contain; object-position: left center; }
.footer__top p { margin: 0; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.footer__legal { display: flex; flex-wrap: wrap; gap: 16px 40px; justify-content: space-between; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.62); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: auto 1fr; }
  .desktop-nav { display: none; }
  .header-actions { justify-self: end; }
  .category-nav { grid-template-columns: 150px minmax(0,1fr); }
  .category-nav > div { overflow-x: auto; scrollbar-width: none; }
  .category-nav > div::-webkit-scrollbar { display: none; }
  .category-nav a { flex: 0 0 auto; }
  .category-heading { grid-template-columns: 90px minmax(0,1fr); }
  .category-heading span { grid-column: 2; }
  .featured-product { grid-template-columns: minmax(0,1fr) minmax(290px,.9fr); }
}

@media (max-width: 760px) {
  .site-header { min-height: 72px; padding: 8px 16px; }
  .brand { width: 76px; }
  .brand img { height: 42px; }
  .header-actions { gap: 9px; }
  .text-cta { display: none; }
  .button { min-height: 44px; padding: 0 16px; }
  .menu-hero { min-height: 67svh; padding: 110px 18px 40px; }
  .menu-hero > img { object-position: 57% center; }
  .menu-hero h1 { font-size: clamp(84px, 29vw, 122px); }
  .menu-hero__intro { width: 77%; margin-top: 18px; font-size: 18px; }
  .menu-hero__edition { display: none; }
  .category-nav { grid-template-columns: 1fr; min-height: 62px; }
  .category-nav > span { display: none; }
  .category-nav > div { overflow-x: auto; }
  .category-nav a { min-width: auto; min-height: 62px; padding: 0 17px; font-size: 10px; }
  .category-nav b { font-size: 15px; }
  .menu-category { padding-block: 76px; scroll-margin-top: 62px; }
  .category-heading { display: block; margin-bottom: 54px; }
  .category-heading p { margin-bottom: 18px; }
  .category-heading h2 { font-size: clamp(68px, 23vw, 98px); }
  .category-heading span { display: block; margin-top: 24px; font-size: 17px; }
  .product-row { padding: 26px 0; }
  .product-title-line { gap: 12px; }
  .product-title-line h3 { font-size: clamp(29px, 8.7vw, 38px); overflow-wrap: anywhere; }
  .product-price { font-size: clamp(26px, 7.5vw, 32px); }
  .secondary-price { text-align: left; }
  .product-description { margin-top: 12px; font-size: 14px; }
  .allergen-disclosure { margin-top: 13px; }
  .featured-products { gap: 82px; margin-bottom: 100px; }
  .featured-product { display: flex; flex-direction: column; gap: 32px; align-items: stretch; }
  .featured-product--reverse .featured-product__media { order: 0; }
  .featured-product__media { min-height: auto; aspect-ratio: 4 / 5; border-width: 7px; }
  .featured-product__copy .product-title-line h3 { font-size: clamp(58px, 18vw, 74px); }
  .featured-product__copy .product-price { margin-top: 20px; font-size: 44px; }
  .featured-product__copy .product-description { font-size: 16px; }
  .dessert-editorial { display: block; padding-top: 24px; }
  .dessert-editorial h3 { margin-top: 22px; font-size: clamp(62px,18vw,88px); }
  .dessert-editorial__text { margin-top: 28px; font-size: 18px; }
  .dessert-editorial__note { margin-top: 30px; font-size: 19px; }
  .editorial-break { min-height: 65svh; }
  .editorial-break > img { object-position: 57% center; }
  .editorial-break p { transform: rotate(-4deg) translateY(8%); }
  .editorial-break span { font-size: 58px; }
  .editorial-break strong { font-size: 101px; }
  .allergen-section > div { grid-template-columns: 1fr; gap: 30px; }
  .allergen-section h2, .menu-cta h2 { font-size: clamp(65px, 21vw, 86px); }
  .menu-cta > div { align-items: stretch; }
  .menu-cta .button { flex: 1; }
  .menu-cta .arrow-link { width: 100%; margin: 26px 0 0; }
  .footer { padding-top: 50px; }
  .footer__top { display: block; min-height: 180px; }
  .footer__top img { width: 220px; height: 110px; }
  .footer__top p { margin-top: 18px; }
  .footer__legal { display: grid; justify-content: start; }
}

/* Carta sticky under the fixed header; remove Elementor overflow clipping. */ body.kai-carta-v1-active, body.kai-carta-v1-active .kai-carta-elementor-root { overflow-x: clip !important; overflow-y: visible !important; } body.kai-carta-v1-active .category-nav { top: 94px; } body.kai-carta-v1-active .menu-category, body.kai-carta-v1-active #alergenos { scroll-margin-top: 182px; } @media (max-width: 700px) { body.kai-carta-v1-active .category-nav { top: 70px; } body.kai-carta-v1-active .menu-category, body.kai-carta-v1-active #alergenos { scroll-margin-top: 149px; } } @media (prefers-reduced-motion: reduce) {
  body.kai-carta-v1-active { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Current Carta category: visual state without changing sticky geometry. */
body.kai-carta-v1-active .category-nav a[aria-current="location"] { background: var(--red); color: #fff; }
body.kai-carta-v1-active .category-nav a[aria-current="location"] b { color: #fff; }

/* Keep the active category as the only red tab; retain a visible keyboard focus. */
body.kai-carta-v1-active .category-nav a:not([aria-current="location"]):is(:hover, :focus-visible) { background: #000; }
body.kai-carta-v1-active .category-nav a:not([aria-current="location"]):is(:hover, :focus-visible) b { color: var(--red); }
body.kai-carta-v1-active .category-nav a:not([aria-current="location"]):focus-visible { outline: 2px solid var(--red); outline-offset: -3px; }
