/* Bouche à Bouche – stylesheet
   Computer først. Breakpoints som i Webflow: 991 px (tablet), 767 px (mobil), 479 px (lille mobil).
   Hver komponent har sine egne breakpoints lige efter sig. Farver og skrift er variabler,
   så de kan oprettes 1:1 som Webflow Variables. */

/* ---------- Variabler ---------- */
:root{
  --ink:#121212;
  --cream:#F4EFE7;
  --green:#2E3D2B;
  --line:rgba(18,18,18,.16);
  --line-soft:rgba(18,18,18,.08);
  --muted:rgba(18,18,18,.6);
  --cream-line:rgba(244,239,231,.2);
  --cream-muted:rgba(244,239,231,.72);
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"EB Garamond",Garamond,"Times New Roman",serif;
  --pad:28px;
  --nav-h:64px;
  --bar-h:54px;
  --sh:1vh; /* 1 % af skærmhøjden. Låses i pixels af scriptet i <head>, se dér. */
  --ease:cubic-bezier(.22,1,.36,1);
}
@supports (height:1svh){:root{--sh:1svh}}
@media (max-width:767px){
  :root{--pad:18px;--nav-h:56px}
}

/* ---------- Grundlag ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body,h1,h2,h3,h4,p,figure,ul{margin:0;padding:0}
ul{list-style:none}
h1,h2,h3,h4{font-size:inherit;font-weight:inherit}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:13px;line-height:1.55;letter-spacing:.03em}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}

/* Lenis (blød scroll) – reglerne fra lenis.css 1.3.26 */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---------- Fælles småting ---------- */
.eyebrow{font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.link-line{border-bottom:1px solid currentColor;padding-bottom:2px;transition:opacity .25s}
.link-line:hover{opacity:.65}
.skip-link{position:absolute;left:16px;top:-80px;z-index:200;padding:10px 14px;background:var(--ink);color:var(--cream)}
.skip-link:focus{top:16px}

/* ---------- Booking ----------
   "Book bord" slås fra overalt ved at fjerne kommentartegnene om linjen herunder: */
/* .booking{display:none!important} */

/* Skjult, indtil intro-animationen starter. Klassen sættes kun, når animationer er slået til (se <head>). */
.js-anim .hero_title,.js-anim .hero_info>*,.js-anim .mhero_text>*,.js-anim .nav_left,.js-anim .nav_links{opacity:0}

/* ---------- Menulinje ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--pad);color:#fff;transition:background-color .35s,color .35s,box-shadow .35s}
.nav-solid .nav{background:var(--cream);color:var(--ink);box-shadow:0 1px 0 var(--line-soft)}
.nav_left{position:relative;display:flex;align-items:center;min-width:120px;height:100%}
.nav_place{transition:opacity .35s}
.nav_logo{position:absolute;left:0;top:50%;width:120px;transform:translateY(-50%);transition:opacity .35s}
.nav_logo img{width:100%;height:auto;filter:invert(1);transition:filter .35s}
.nav-solid .nav_logo img{filter:none}
.page-home .nav_logo{opacity:0;pointer-events:none}
.nav-solid .page-home .nav_logo{opacity:1;pointer-events:auto}
.nav-solid .page-home .nav_place{opacity:0}
.nav_links{display:flex;align-items:center;gap:22px}
.nav_link{transition:opacity .25s,background-color .25s,color .25s,border-color .25s}
.nav_link:hover{opacity:.65}
.nav_link[aria-current="page"]{border-bottom:1px solid currentColor;padding-bottom:2px}
.nav_book{border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:6px 13px}
.nav_book:hover{opacity:1;background:#fff;border-color:#fff;color:var(--ink)}
.nav-solid .nav_book{border-color:var(--line)}
.nav-solid .nav_book:hover{background:var(--ink);border-color:var(--ink);color:var(--cream)}
@media (max-width:767px){
  .nav{gap:16px}
  .nav_place{display:none}
  .nav_left{min-width:104px}
  .nav_logo{width:104px}
  .nav_links{gap:16px}
}
@media (max-width:479px){
  .nav_link-home{display:none}
}

/* ---------- Forside: hero ---------- */
.hero{position:relative;height:calc(var(--sh)*100);min-height:560px;overflow:hidden;background:var(--ink);color:#fff}
.hero_media{position:absolute;inset:0;transform-origin:50% 60%}
.hero_media img{width:100%;height:100%;object-fit:cover}
.hero_shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,18,18,.5) 0%,rgba(18,18,18,.18) 28%,rgba(18,18,18,.22) 62%,rgba(18,18,18,.7) 100%)}
.hero_title{position:absolute;left:50%;top:50%;width:min(62vw,760px);transform:translate(-50%,-50%)}
.hero_title svg{width:100%;height:auto;overflow:visible}
.hero_title path{fill:currentColor}
.hero_info{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:0 var(--pad) 30px;text-align:center;line-height:1.9}
/* Mail og telefon står lige under hinanden. Som blokke på linjen bliver de lige så høje som linjen (1.9 = 24,7 px),
   så trykfladen er mindst 24 px, og alle kolonner holder samme linjeafstand (også i footeren). */
.hero_info a{display:inline-block;transition:opacity .25s}
.hero_info a:hover{opacity:.65}
@media (max-width:991px){
  .hero_title{width:70vw}
}
@media (max-width:767px){
  .hero_title{width:84vw}
  .hero_info{grid-template-columns:1fr;gap:12px;padding-bottom:26px}
}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:var(--cream);padding:96px var(--pad) 32px;text-align:center}
.footer_bab{width:140px;margin:0 auto 56px;color:var(--cream)}
.footer_bab svg{width:100%;height:auto}
.footer_bab path{fill:currentColor}
.footer_cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1040px;margin:0 auto;line-height:1.9}
.footer_label{margin-bottom:10px;color:var(--cream-muted)}
.footer_cols a{display:inline-block}
.footer a{transition:opacity .25s}
.footer a:hover{opacity:.6}
.footer_icons{display:flex;justify-content:center;gap:16px;margin-top:48px}
.footer_icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--cream-line);border-radius:50%}
.footer_icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer_bottom{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin-top:64px;padding-top:24px;border-top:1px solid rgba(244,239,231,.14);font-size:11px;color:var(--cream-muted)}
@media (max-width:767px){
  .footer{padding:80px var(--pad) 28px}
  .footer_cols{grid-template-columns:1fr;gap:28px}
}

/* ---------- Bløde sideskift ---------- */
.page-fade{position:fixed;inset:0;z-index:100;background:var(--cream);opacity:0;pointer-events:none;transition:opacity .3s ease}
.js-anim .page-fade{opacity:1;transition:none}
.is-leaving .page-fade{opacity:1}

/* ---------- Reducer bevægelse ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------- Udskrift ----------
   Hele vinkortet skal med på papir: rækker og ord, der endnu ikke er gledet ind, vises, og menulinje,
   kategoribar og slør skjules. Kys-tegningen printes hel, også før den har tegnet sig selv.
   Mørke og grønne flader printes i deres farve, så den lyse tekst kan læses. */
@media print{
  .nav,.cats,.page-fade,.skip-link{display:none!important}
  .wine,.word,.hero_title path,.hero_info>*,.mhero_text>*,[data-anim]{opacity:1!important;transform:none!important;clip-path:none!important}
  [data-anim="draw"] [mask]{mask:none!important}
  .wine{break-inside:avoid}
  .menu_head,.menu_type{break-after:avoid}
  .footer{break-inside:avoid}
  .hero,.mhero,.winecta,.footer{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- Forside: Hvem er vi (signatur-effekt C) ---------- */
.about{position:relative;height:calc(var(--sh)*280);background:var(--cream)}
.about_sticky{position:sticky;top:0;height:calc(var(--sh)*100);display:flex;align-items:center;justify-content:center;padding:0 var(--pad)}
.about_center{position:relative;z-index:1;width:min(500px,44vw);text-align:center}
.about_kiss{width:clamp(70px,7vw,104px);margin:0 auto 34px;color:var(--green)}
.about_kiss svg{width:100%;height:auto}
/* Kun selve tegningen farves. Pennestrøgene i masken er hvide linjer uden fyld og må ikke rammes. */
.about_kiss [mask]{fill:currentColor}
.about_eyebrow{margin-bottom:18px}
.about_text{font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);line-height:1.36;letter-spacing:0}
.about_photo{position:absolute;z-index:2}
.about_photo img{width:100%;height:auto}
.about_photo.is-1{left:6vw;top:calc(var(--sh)*30);width:17vw}
.about_photo.is-2{left:74vw;top:calc(var(--sh)*58);width:21vw}
.about_photo.is-3{left:12vw;top:calc(var(--sh)*112);width:13vw}
.about_photo.is-4{left:80vw;top:calc(var(--sh)*150);width:15vw}
.about_photo.is-5{left:4vw;top:calc(var(--sh)*186);width:20vw}
.about_photo.is-6{left:74vw;top:calc(var(--sh)*214);width:14vw}
@media (max-width:767px){
  .about{height:auto;padding:100px 0 90px;overflow-x:hidden;overflow-x:clip}
  .about_sticky{position:static;display:block;height:auto;padding:0}
  .about_center{width:auto;max-width:calc(440px + 2 * var(--pad));margin:0 auto;padding:0 var(--pad)}
  /* De seks fotos som slider: én række, man swiper igennem. Hvert foto falder på plads, og det næste titter frem. */
  .about_photos{display:flex;gap:12px;margin-top:64px;padding:0 var(--pad);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--pad);overscroll-behavior-x:contain;scrollbar-width:none}
  .about_photos::-webkit-scrollbar{display:none}
  .about .about_photo{position:static;flex:0 0 72vw;width:72vw;scroll-snap-align:start}
  .about .about_photo img{aspect-ratio:3/4;object-fit:cover}
}

/* ---------- Lightbox: fotoene i "Hvem er vi" i fuld størrelse (main.js › initLightbox) ---------- */
.about_photo_link{display:block;cursor:zoom-in}
/* Kun html: overflow på body gør body til sin egen scroll-boks og får det faste i "Hvem er vi" til at hoppe væk. */
html.has-lightbox{overflow:hidden}
/* Halvgennemsigtig og let sløret, så siden anes bagved. Toner ind og ud (is-open sættes af main.js), og billedet vokser let på plads. */
.lightbox{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(18,18,18,.75);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--cream);opacity:0;transition:opacity .4s var(--ease)}
.lightbox.is-open{opacity:1}
.lightbox::backdrop{background:transparent}
.lightbox_track{display:flex;width:100%;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none}
.lightbox_track::-webkit-scrollbar{display:none}
.lightbox_slide{flex:0 0 100%;display:flex;align-items:center;justify-content:center;height:100%;margin:0;padding:64px var(--pad);scroll-snap-align:start;cursor:zoom-out}
.lightbox_slide img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;cursor:default;transform:scale(.94);transition:transform .5s var(--ease)}
.lightbox.is-open .lightbox_slide img{transform:none}
/* Runde knapper i samme stil som "Se vinkortet" og "Book bord". */
.lightbox_btn{position:absolute;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(244,239,231,.55);border-radius:999px;background:none;color:inherit;cursor:pointer;transition:background-color .25s,border-color .25s,color .25s}
.lightbox_btn svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.lightbox_btn:hover,.lightbox_btn:focus-visible{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.lightbox_close{top:16px;right:16px}
.lightbox_prev,.lightbox_next{top:50%;transform:translateY(-50%)}
.lightbox_prev{left:24px}
.lightbox_next{right:24px}
.lightbox_count{position:absolute;left:0;right:0;bottom:22px;font-size:12px;letter-spacing:.16em;text-align:center}
@media (max-width:767px){
  /* På mobil swiper man; pilene fylder bare. */
  .lightbox_prev,.lightbox_next{display:none}
}

/* ---------- Forside: stort foto i fuld bredde ---------- */
/* Billedet er højere end båndet, så det kan glide lidt, mens man scroller, uden at kanten kommer til syne. */
.photoband{position:relative;height:calc(var(--sh)*85);min-height:420px;margin:0;overflow:hidden;background:var(--ink)}
.photoband img{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover}
@media (max-width:767px){
  .photoband{height:calc(var(--sh)*70);min-height:360px}
}

/* ---------- Forside: vinkortet (grøn sektion) ---------- */
.winecta{background:var(--green);color:var(--cream);padding:150px var(--pad);text-align:center}
.winecta_inner{max-width:760px;margin:0 auto}
.winecta_title{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:clamp(40px,4.4vw,58px);line-height:1;letter-spacing:0}
/* Regionerne står som én stille linje med luft imellem (prikker endte for enden af linjerne); hver er et link til sit afsnit. */
.winecta_regions{max-width:620px;margin:40px auto 0;padding:0;list-style:none;text-wrap:balance;font-family:var(--serif);font-style:italic;font-size:clamp(20px,1.8vw,24px);line-height:1.7;letter-spacing:0}
.winecta_regions li{display:inline-block;margin:0 .5em}
.winecta_regions a{border-bottom:1px solid transparent;transition:border-color .25s}
.winecta_regions a:hover,.winecta_regions a:focus-visible{border-bottom-color:currentColor}
.winecta_button{display:inline-block;margin-top:44px;padding:10px 22px;border:1px solid rgba(244,239,231,.55);border-radius:999px;transition:background-color .25s,color .25s,border-color .25s}
.winecta_button:hover{background:var(--cream);border-color:var(--cream);color:var(--green)}
@media (max-width:767px){
  .winecta{padding:96px var(--pad)}
}

/* ---------- Vinkort: lav hero ---------- */
.mhero{position:relative;height:calc(var(--sh)*54);min-height:380px;max-height:620px;overflow:hidden;background:var(--ink);color:#fff}
.mhero_media{position:absolute;inset:0;transform-origin:50% 60%}
.mhero_media img{width:100%;height:100%;object-fit:cover}
.mhero_shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,18,18,.55),rgba(18,18,18,.2) 40%,rgba(18,18,18,.62))}
.mhero_text{position:absolute;left:var(--pad);right:var(--pad);bottom:28px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.mhero_title{margin-top:10px;font-family:var(--serif);font-style:italic;font-size:clamp(40px,4.4vw,58px);line-height:1;letter-spacing:0}
@media (max-width:767px){
  .mhero{height:calc(var(--sh)*46);min-height:320px}
}

/* ---------- Vinkort: kategoribar ---------- */
/* Står fast lige under menulinjen, som aldrig forsvinder. */
.cats{position:sticky;top:var(--nav-h);z-index:30;height:var(--bar-h);background:var(--cream);border-bottom:1px solid var(--line)}
.cats_inner{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:24px;height:100%;padding:0 var(--pad);overflow-x:auto;scrollbar-width:none}
.cats_inner::-webkit-scrollbar{display:none}
/* 13 regioner er bredere end mange skærme: centreret, når de kan være der, ellers rulles der fra første punkt.
   justify-content:center ville skære det første punkt af, når baren er for smal. */
.cats_link:first-child{margin-left:auto}
.cats_link:last-child{margin-right:auto}
.cats_link{flex:none;padding:6px 0;border-bottom:1px solid transparent;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase;transition:color .25s,border-color .25s}
.cats_link:hover{color:var(--ink)}
.cats_link.is-active{color:var(--ink);border-bottom-color:var(--ink)}
@media (max-width:767px){
  .cats_inner{gap:22px}
}

/* ---------- Vinkort: selve kortet (layout A · Klassisk) ---------- */
.menu{padding-bottom:120px}
.menu_cat{max-width:760px;margin:0 auto;padding:88px var(--pad) 0;scroll-margin-top:calc(var(--nav-h) + var(--bar-h))}
.menu_head{margin-bottom:26px;text-align:center}
.menu_title{font-family:var(--serif);font-style:italic;font-size:34px;line-height:1;letter-spacing:0}
/* Vintypen skal læses som underoverskrift, ikke som endnu en producent: lidt større og mørk, med luft over. */
.menu_type{margin-top:56px;padding-bottom:10px;border-bottom:1px solid var(--line);text-transform:uppercase}
.menu_head+.menu_type{margin-top:0}
.menu_type_title{color:var(--ink);font-size:12px;font-weight:500;letter-spacing:.2em}
.wine{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;padding:16px 0;border-bottom:1px solid var(--line-soft)}
.wine_producer{font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.wine_name{margin-top:3px;font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.2;letter-spacing:0}
.wine_year{margin-left:8px;font-family:var(--sans);font-style:normal;font-weight:300;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.wine_info{margin-top:4px;font-size:12px;color:var(--muted)}
.wine_price{display:flex;align-self:center;gap:22px;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wine_amount{min-width:56px;text-align:right}
@media (max-width:767px){
  .menu_cat{padding-top:72px}
  .menu_type{margin-top:44px}
  .menu_title{font-size:30px}
  .menu{padding-bottom:90px}
}
@media (max-width:479px){
  .wine{column-gap:12px}
  .wine_name{font-size:18px}
  .wine_price{gap:10px}
}
