:root{--bg:#f6f3ee;--bg-deep:#eee8de;--surface:#fffdfa;--surface-soft:#fff9;--ink:#191714;--ink-soft:#46413a;--muted:#6f695f;--line:#1917141f;--line-strong:#19171442;--accent:#9c7b4a;--accent-ospitalita:#9c7b4a;--accent-benessere:#56755f;--accent-ristorazione:#7d2f37;--font-display:"Cormorant Garamond", "Times New Roman", Georgia, serif;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--container:1320px;--gutter:clamp(1.25rem, 4vw, 3.5rem);--header-h:82px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:clamp(.95rem,.9rem + .2vw,1.05rem);font-weight:300;line-height:1.75;overflow-x:hidden}img,svg,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;font-weight:400;line-height:1.08}h1{font-size:clamp(2.75rem,1.5rem + 5.2vw,5.5rem)}h2{font-size:clamp(2rem,1.4rem + 2.4vw,3.25rem)}h3{font-size:clamp(1.5rem,1.2rem + 1.1vw,2.125rem)}p{text-wrap:pretty}em{font-style:italic}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(4.5rem,9vw,8rem);position:relative}.eyebrow{color:var(--muted);letter-spacing:.28em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:.72rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";opacity:.5;background:currentColor;width:28px;height:1px}.muted{color:var(--muted)}.lead{color:var(--ink-soft);font-size:clamp(1.05rem,1rem + .45vw,1.3rem);line-height:1.7}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;overflow:hidden;position:absolute!important}.btn{border:1px solid var(--line-strong);font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.7rem;padding:.95rem 1.9rem;font-size:.78rem;font-weight:500;display:inline-flex;position:relative}.btn:hover{transform:translateY(-2px)}.btn--solid{border-color:var(--ink);background:var(--ink);color:var(--bg)}.btn--solid:hover{color:var(--ink);background:0 0}.btn--ghost:hover{border-color:var(--ink)}.btn[disabled],.btn[aria-busy=true]{opacity:.55;pointer-events:none}.link{padding-bottom:2px;display:inline-block;position:relative}.link:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:0;left:0;transform:scaleX(1)}.link:hover:after{transform:scaleX(0)}.field{flex-direction:column;gap:.55rem;display:flex}.field label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:500}.field input,.field textarea,.field select{border:0;border-bottom:1px solid var(--line-strong);width:100%;transition:border-color .4s var(--ease);background:0 0;border-radius:0;padding:.9rem 0;font-size:1rem;font-weight:300}.field textarea{resize:vertical;min-height:7rem}.field input:focus,.field textarea:focus{border-bottom-color:var(--ink);outline:none}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.55}.field[data-invalid=true] input,.field[data-invalid=true] textarea{border-bottom-color:#b4433f}.field__error{color:#b4433f;font-size:.78rem}html.js [data-reveal]{opacity:0;will-change:transform, opacity}html.js [data-split] .word__inner{opacity:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}html.js [data-reveal],html.js [data-split] .word__inner{opacity:1!important;transform:none!important}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
