/* Tavernacinque – landing */
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url("../fonts/figtree-latin-wght-normal.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

html{scroll-behavior:smooth;scroll-padding-top:84px}
body.tc-landing-body{margin:0;background:#0b2926}

.tcl{--abete:#0b2926;--bosco:#123d38;--oro:#dfb46d;--legno:#d9b88f;--pistacchio:#bfd08a;--porc:#f2f4ef;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --pad:clamp(20px,5vw,72px);
  font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--porc);background:var(--abete);-webkit-font-smoothing:antialiased;overflow-x:clip}
.tcl *,.tcl *::before,.tcl *::after{box-sizing:border-box}
.tcl img{display:block;max-width:100%;height:auto}
.tcl h1,.tcl h2,.tcl h3,.tcl p,.tcl ul{margin:0;padding:0}
.tcl ul{list-style:none}
.tcl a{color:inherit}
.tcl .sr,.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tcl-skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--pistacchio);color:var(--abete);padding:10px 16px;border-radius:10px;font-weight:700;text-decoration:none}
.tcl-skip:focus{top:12px}
.tcl :focus-visible{outline:3px solid var(--pistacchio);outline-offset:3px}

/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1.5px solid transparent;font:600 1rem/1 var(--sans);text-decoration:none!important;cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn--oro{background:var(--oro);color:var(--abete)!important}
.btn--oro:hover{background:#ebc47f}
.btn--ghost{border-color:rgba(242,244,239,.55);color:var(--porc)!important;background:rgba(11,41,38,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn--ghost:hover{background:rgba(242,244,239,.16);border-color:var(--porc)}
.btn--dark{background:var(--abete);color:var(--porc)!important}
.btn--dark:hover{background:var(--bosco)}
.btn--lg{min-height:60px;padding:0 32px;font-size:1.08rem}

/* header */
.tcl-head{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px var(--pad);transition:background .3s,padding .3s}
.tcl-head.is-solid{background:rgba(11,41,38,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-top:10px;padding-bottom:10px}
body.admin-bar .tcl-head{top:32px}
.tcl-mark{text-decoration:none}
.tcl-nav{display:flex;gap:28px;margin-left:auto;margin-right:12px}
.tcl-nav a{text-decoration:none;font-weight:500;font-size:.98rem;opacity:.85;padding:6px 0}
.tcl-nav a:hover{opacity:1;text-decoration:underline!important;text-underline-offset:6px}
.tcl-act{display:flex;gap:10px}

/* hero */
.hero{display:grid;grid-template-columns:minmax(340px,35%) 1fr;min-height:100vh;min-height:100svh;background:var(--abete)}
.hero__copy{align-self:end;padding:130px 24px 48px var(--pad);display:flex;flex-direction:column;gap:26px}
.hero h1{font-family:var(--serif);font-weight:350;font-size:clamp(2.9rem,5.3vw,5.2rem);line-height:.98;letter-spacing:-.025em;font-variation-settings:"opsz" 144}
.hero h1 em{font-weight:300;color:var(--oro)}
.hero__lead{max-width:34ch;font-size:1.12rem;color:rgba(242,244,239,.82)}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px}

.moments{display:flex;gap:10px;padding:12px 12px 12px 0;height:100vh;height:100svh}
.mom{position:relative;flex:1 1 0;min-width:0;border:0;padding:0;border-radius:24px;overflow:hidden;cursor:pointer;color:#fff;background:var(--bosco);text-align:left;font:inherit;transition:flex-grow .85s cubic-bezier(.22,.8,.2,1)}
.mom[aria-expanded="true"]{flex-grow:5.4;cursor:default}
.mom img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);filter:saturate(.75) brightness(.72);transition:transform 1.3s cubic-bezier(.22,.8,.2,1),filter .8s}
.mom[aria-expanded="true"] img{transform:scale(1);filter:none}
.mom::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(4,18,16,.88) 0%,rgba(4,18,16,.1) 52%,rgba(4,18,16,.28) 100%)}
.mom__label{position:absolute;z-index:2;left:50%;bottom:26px;writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);font:400 1.45rem/1 var(--serif);letter-spacing:.01em;white-space:nowrap;transition:opacity .3s}
.mom[aria-expanded="true"] .mom__label{opacity:0}
.mom__body{position:absolute;z-index:2;left:30px;right:30px;bottom:30px;display:block;opacity:0;transform:translateY(14px);transition:opacity .5s,transform .6s;pointer-events:none}
.mom[aria-expanded="true"] .mom__body{opacity:1;transform:none;transition-delay:.25s}
.mom__name{display:block;font:350 clamp(2.4rem,4.4vw,4.4rem)/1 var(--serif);letter-spacing:-.02em}
.mom__text{display:block;margin-top:12px;max-width:30ch;font-size:1.05rem;color:rgba(255,255,255,.88)}

/* menu */
.menu{background:var(--porc);color:var(--abete);display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center;padding:clamp(72px,10vw,150px) var(--pad)}
.menu h2{font:350 clamp(2.5rem,5.4vw,5rem)/1 var(--serif);letter-spacing:-.025em;max-width:11ch}
.menu__txt p{margin:22px 0 34px;max-width:36ch;font-size:1.18rem;color:#33433f}
.menu__pics{position:relative;aspect-ratio:1/1;max-width:560px;width:100%;justify-self:end}
.menu__a{position:absolute;left:0;top:0;width:62%;aspect-ratio:4/5;object-fit:cover;border-radius:26px}
.menu__b{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/5;object-fit:cover;border-radius:26px;border:10px solid var(--porc)}

/* mondi */
.mondi{padding:clamp(72px,10vw,150px) var(--pad);display:grid;gap:clamp(72px,10vw,140px)}
.mondi__title{font:350 clamp(2.2rem,4.6vw,4.2rem)/1.04 var(--serif);letter-spacing:-.02em;max-width:16ch}
.world{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,96px);align-items:center}
.world--flip{grid-template-columns:5fr 7fr}
.world--flip .world__media{order:2}
.world__media{position:relative;padding-bottom:9%}
.world__main{width:78%;aspect-ratio:4/5;object-fit:cover;border-radius:26px}
.world__side{position:absolute;right:0;bottom:0;width:38%;aspect-ratio:3/4;object-fit:cover;border-radius:20px;border:9px solid var(--abete)}
.world--flip .world__main{margin-left:auto}
.world--flip .world__side{right:auto;left:0}
.world h3{font:350 clamp(2.2rem,4vw,3.6rem)/1 var(--serif);letter-spacing:-.02em;margin-bottom:16px}
.world__txt p{max-width:36ch;font-size:1.15rem;color:rgba(242,244,239,.8)}

/* locale */
.locale{background:var(--porc);color:var(--abete);padding:clamp(72px,10vw,150px) var(--pad)}
.locale__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(32px,5vw,64px)}
.locale h2{font:350 clamp(2.3rem,4.8vw,4.4rem)/1.02 var(--serif);letter-spacing:-.025em;max-width:13ch}
.locale__head p{max-width:42ch;font-size:1.12rem;color:#33433f}
.locale__head a{font-weight:600;text-underline-offset:4px}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,clamp(180px,24vw,340px));gap:12px}
.gal img{width:100%;height:100%;object-fit:cover;border-radius:20px}
.g1{grid-column:1;grid-row:1/3}.g2{grid-column:2;grid-row:1/3}.g3{grid-column:3;grid-row:1}.g4{grid-column:4;grid-row:1/3}.g5{grid-column:3;grid-row:2}

/* prenota */
.book{background:var(--bosco);display:grid;grid-template-columns:1fr minmax(0,560px);gap:clamp(32px,7vw,110px);align-items:start;padding:clamp(72px,10vw,150px) var(--pad)}
.book__txt{position:sticky;top:110px}
.book h2{font:350 clamp(2.5rem,5.2vw,4.8rem)/1 var(--serif);letter-spacing:-.025em;max-width:10ch}
.book__txt>p{margin:20px 0 28px;max-width:34ch;font-size:1.15rem;color:rgba(242,244,239,.85)}
.book__info{display:grid;gap:10px;color:rgba(242,244,239,.85);font-size:1rem}
.book__info a{font-weight:600;text-underline-offset:4px}
.book__widget{width:100%}

/* footer */
.foot{background:#071b19;padding:56px var(--pad) 120px;display:grid;gap:20px}
.foot__mark{line-height:1.1}
.foot__mark span{display:block;margin-top:8px;font:400 .82rem/1 var(--sans);letter-spacing:.1em;text-transform:none;color:#9fb8b1}
.foot__links{display:flex;gap:22px;flex-wrap:wrap}
.foot__links a{text-underline-offset:5px;font-weight:500}
.foot__addr{color:#9fb8b1;font-size:.92rem}

/* dock mobile */
.dock{display:none}

@media (max-width:980px){
  .tcl-nav{display:none}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__copy{padding:112px var(--pad) 28px;gap:20px}
  .hero h1{font-size:clamp(2.8rem,12vw,4.4rem)}
  .moments{flex-direction:column;height:min(78svh,720px);padding:0 12px 12px;gap:8px}
  .mom{border-radius:20px}
  .mom__label{writing-mode:horizontal-tb;transform:none;left:22px;bottom:auto;top:50%;margin-top:-.6em}
  .mom__body{left:22px;right:22px;bottom:22px}
  .mom[aria-expanded="true"]{flex-grow:6}
  .menu,.locale__head,.book{grid-template-columns:minmax(0,1fr)}
  .menu__pics{justify-self:start;max-width:420px}
  .world,.world--flip{grid-template-columns:minmax(0,1fr)}
  .world--flip .world__media{order:0}
  .world__media{padding-bottom:12%}
  .book__txt{position:static}
  .gal{grid-template-columns:repeat(2,1fr);grid-template-rows:none;grid-auto-rows:clamp(190px,46vw,300px)}
  .g1,.g2,.g3,.g4,.g5{grid-column:auto;grid-row:auto}
  .g1{grid-row:span 2}.g4{grid-row:span 2}
  .dock{position:fixed;z-index:55;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;gap:10px;padding:10px;border-radius:999px;background:rgba(11,41,38,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 30px rgba(0,0,0,.35);transform:translateY(140%);transition:transform .35s}
  .dock .btn{flex:1}
  .dock.is-on{transform:none}
  .tcl-act .btn--ghost{display:none}
}
@media (max-width:520px){
  .hero__cta .btn{flex:1 1 100%}
  body.admin-bar .tcl-head{top:46px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tcl *{transition-duration:.01ms!important;animation:none!important}
}

/* ===== Brand: logo vettoriale + texture del logo ===== */
.tcl{--crema:#ece6dc;--cacao:#473426}
.tcl .logo,.tcl-mark{display:block;background:currentColor;-webkit-mask:url("../brand/logo.svg") left center/contain no-repeat;mask:url("../brand/logo.svg") left center/contain no-repeat}
.tcl-mark{width:clamp(150px,17vw,214px);aspect-ratio:3742/543;font-size:0;color:var(--porc)}
.foot__mark .logo{width:min(300px,78vw);aspect-ratio:3742/543;color:var(--porc)}
.foot__mark span{margin-top:14px}
.tcl,.world{background:var(--abete) url("../brand/texture-abete.png") 0 0/48px 96px}
.hero{background:var(--abete) url("../brand/texture-abete.png") 0 0/48px 96px}
.book{background:var(--bosco) url("../brand/texture-bosco.png") 0 0/48px 96px}
.foot{background:#071b19 url("../brand/texture-abete.png") 0 0/48px 96px}
.menu,.locale{background:var(--crema) url("../brand/texture-crema.png") 0 0/48px 96px}
.menu__b{border-color:var(--crema)}
.locale__head h2,.menu h2{color:var(--cacao)}

/* mobile: nessun figlio della griglia deve allargare la colonna */
.menu>*,.locale__head>*,.book>*,.world>*{min-width:0}
.book__widget,.tcb{min-width:0}

/* ===== WhatsApp ===== */
.wa-ic{flex:none;display:block}
.btn--wa{gap:10px;border-color:var(--oro);color:var(--oro)!important;background:transparent}
.btn--wa:hover{background:var(--oro);color:var(--abete)!important}
.book__wa{margin:0 0 22px!important}
.wa-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none;border-radius:50%;border:1.5px solid rgba(242,244,239,.55);color:var(--porc)!important;background:rgba(11,41,38,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,color .2s,border-color .2s}
.wa-btn:hover{background:var(--oro);border-color:var(--oro);color:var(--abete)!important}
.wa-btn--dock{display:none}
@media (max-width:980px){
  .wa-btn--head{display:none}
  .wa-btn--dock{display:inline-flex;width:auto;aspect-ratio:1;height:auto;min-height:46px;border-color:rgba(242,244,239,.4);background:transparent}
}
