:root { --night:#2e2014; --night-deep:#21160f; --ivory:#d4d2cf; --paper:#f6f0e6; --ink:#2e2014; --orange:#c15828; --gold:#b4a061; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; line-height:1.5; -webkit-text-size-adjust:100%; }
body { margin:0; overflow-x:hidden; overscroll-behavior-y:auto; color:var(--ink); background:var(--ivory); font-family:"Montserrat",Arial,sans-serif; }
body,h1,h2,h3,h4,p,figure { margin:0; }
body.menu-open,body.gallery-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
.fill-img { position:absolute!important; inset:0!important; display:block!important; width:100%!important; min-width:100%!important; max-width:none!important; height:100%!important; min-height:100%!important; object-fit:cover!important; object-position:center center!important; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.progress { position:fixed; z-index:120; inset:0 0 auto; height:2px; background:rgba(246,240,230,.1); }
.progress span { display:block; width:100%; height:100%; background:var(--paper); transform:scaleX(0); transform-origin:left center; }
.loader { position:fixed; z-index:999; inset:0; display:grid; place-items:center; overflow:hidden; color:var(--paper); background:var(--night); }
.loader__mark { position:relative; width:clamp(240px,28vw,390px); aspect-ratio:1795/223; overflow:hidden; opacity:0; transform:translateY(12px); }
.loader__mark-base,.loader__mark-fill img { display:block; width:100%; height:auto; }
.loader__mark-base { opacity:.18; }
.loader__mark-fill { position:absolute; right:0; bottom:0; left:0; height:0%; overflow:hidden; transition:height .18s linear; will-change:height; }
.loader__mark-fill img { position:absolute; right:0; bottom:0; left:0; max-width:none; }

.site-header { position:fixed; z-index:100; top:0; left:0; width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; padding:18px clamp(24px,4vw,68px) 30px; color:#fff; transition:transform 360ms cubic-bezier(.22,1,.36,1),opacity 260ms ease,background 300ms ease; will-change:transform; }
.site-header--top { background:linear-gradient(180deg,rgba(46,32,20,.24),rgba(46,32,20,0)); }
.site-header--visible { background:linear-gradient(180deg,rgba(46,32,20,.76) 0%,rgba(46,32,20,.4) 58%,rgba(46,32,20,0) 100%); backdrop-filter:blur(5px); }
.site-header--hidden { pointer-events:none; opacity:0; transform:translateY(-110%); }
.header-menu { grid-column:1; justify-self:start; }
.brand { grid-column:2; justify-self:center; display:block; width:clamp(160px,15vw,224px); }
.brand__logotype { display:block; width:100%; aspect-ratio:1795/223; overflow:hidden; }
.brand__logotype img { display:block; width:100%; height:auto; }
.header-actions { grid-column:3; justify-self:end; display:flex; align-items:center; gap:clamp(15px,2vw,30px); }
.menu-toggle { width:42px; height:42px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:7px; padding:0; border:0; color:inherit; background:transparent; cursor:pointer; }
.menu-toggle span { width:25px; height:1px; display:block; background:currentColor; transition:width 220ms ease,transform 320ms ease,opacity 220ms ease; }
.menu-toggle span:nth-child(2) { width:19px; }
.menu-toggle:hover span:nth-child(2),.menu-toggle:focus-visible span:nth-child(2) { width:25px; }
.menu-open .menu-toggle span:first-child { transform:translateY(8px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity:0; }
.menu-open .menu-toggle span:last-child { transform:translateY(-8px) rotate(-45deg); }
.booking-control { position:relative; }
.book-button { min-width:128px; height:44px; display:flex; align-items:center; justify-content:center; gap:12px; padding:0 16px; border:1px solid rgba(255,255,255,.78); color:#fff; background:rgba(255,255,255,.04); font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; backdrop-filter:blur(4px); transition:color 220ms ease,background 220ms ease; }
.book-button:hover,.book-button:focus-visible { color:var(--night); background:var(--paper); }
.book-button i { width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.booking-options { position:absolute; top:calc(100% + 9px); right:0; width:224px; padding:8px 0; visibility:hidden; border:1px solid rgba(246,240,230,.2); opacity:0; background:linear-gradient(180deg,rgba(46,32,20,.92),rgba(46,32,20,.7)); box-shadow:0 18px 38px rgba(22,12,7,.2); transform:translateY(-8px); backdrop-filter:blur(8px); transition:opacity 180ms ease,transform 220ms ease,visibility 220ms; }
.booking-options--open { visibility:visible; opacity:1; transform:translateY(0); }
.booking-options a { min-height:44px; display:flex; align-items:center; padding:0 12px; border-bottom:1px solid rgba(246,240,230,.18); color:rgba(255,255,255,.86); font-size:11px; letter-spacing:.11em; text-transform:uppercase; }
.booking-options a:last-child { border-bottom:0; }
.booking-options a:hover,.booking-options a:focus-visible { color:#fff; background:rgba(255,255,255,.08); }
.language-control { position:relative; }
.language-button { min-width:44px; height:44px; display:flex; align-items:center; justify-content:center; gap:8px; padding:0; border:0; color:#fff; background:transparent; font-size:10px; font-weight:500; letter-spacing:.18em; cursor:pointer; }
.language-button i { width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform 180ms ease; }
.language-button[aria-expanded="true"] i { transform:translateY(1px) rotate(225deg); }
.language-options { position:absolute; top:calc(100% + 8px); right:0; width:142px; padding:7px 0; visibility:hidden; border:1px solid rgba(246,240,230,.2); opacity:0; background:linear-gradient(180deg,rgba(46,32,20,.92),rgba(46,32,20,.72)); box-shadow:0 18px 38px rgba(22,12,7,.2); transform:translateY(-8px); backdrop-filter:blur(8px); transition:opacity 180ms ease,transform 220ms ease,visibility 220ms; }
.language-options--open { visibility:visible; opacity:1; transform:translateY(0); }
.language-options a { min-height:40px; display:flex; align-items:center; padding:0 13px; color:rgba(255,255,255,.72); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.language-options .is-active,.language-options a:hover,.language-options a:focus-visible { color:#fff; background:rgba(255,255,255,.08); }

.menu-overlay { position:fixed; z-index:90; inset:0; display:flex; align-items:center; visibility:hidden; overflow:auto; color:var(--paper); background:rgba(30,31,28,.98); opacity:0; transition:opacity 420ms ease,visibility 420ms; }
.menu-overlay--open { visibility:visible; opacity:1; }
.menu-overlay nav { width:100%; padding:clamp(110px,14vh,160px) clamp(24px,8vw,140px) 50px; }
.menu-overlay nav a { min-height:clamp(126px,18vh,180px); display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:clamp(18px,3vw,54px); border-bottom:1px solid rgba(246,240,230,.18); opacity:.72; transition:opacity 220ms ease,padding 300ms ease; }
.menu-overlay nav a:first-child { border-top:1px solid rgba(246,240,230,.18); }
.menu-overlay nav a:hover,.menu-overlay nav a:focus-visible { padding-left:18px; opacity:1; }
.menu-overlay nav span { color:rgba(246,240,230,.48); font-family:"Philosopher",Georgia,serif; font-size:24px; }
.menu-overlay nav strong { font-family:"Philosopher",Georgia,serif; font-size:clamp(38px,5vw,76px); font-weight:400; line-height:1; }
.menu-overlay nav small { color:rgba(246,240,230,.55); font-size:10px; letter-spacing:.22em; text-transform:uppercase; }

.manifesto { position:relative; min-height:360svh; background:var(--night); }
.manifesto__pin { position:sticky; top:0; height:100svh; min-height:600px; display:grid; place-items:center; overflow:hidden; isolation:isolate; }
.manifesto__bg { position:absolute!important; z-index:-3; inset:0!important; width:100%!important; height:100%!important; object-fit:cover; opacity:0; transform:scale(1.16); transform-origin:center center; }
.manifesto__bg--nature { opacity:1; object-position:center 62%; }
.manifesto__bg--living { object-position:center center; }
.manifesto__bg--sicily { object-position:center 56%; }
.manifesto__veil { position:absolute; z-index:-2; inset:0; background:radial-gradient(circle at center,rgba(46,32,20,.02),rgba(46,32,20,.22) 62%,rgba(46,32,20,.46)),linear-gradient(180deg,rgba(46,32,20,.46),rgba(46,32,20,.06) 42%,rgba(46,32,20,.66)); }
.manifesto__words { position:relative; width:min(1200px,calc(100vw - 40px)); height:min(62vh,560px); display:grid; place-items:center; }
.manifesto__word { position:absolute; inset:0; display:grid; place-items:center; margin:0; color:var(--paper); opacity:0; font-family:"Philosopher",Georgia,serif; font-size:clamp(58px,10vw,150px); font-weight:400; line-height:.84; letter-spacing:.03em; text-align:center; text-transform:uppercase; white-space:nowrap; text-shadow:0 20px 70px rgba(0,0,0,.38); transform:none; transform-origin:center center; }
.manifesto__word--nature { opacity:1; }
.manifesto__caption { position:absolute; left:50%; bottom:clamp(130px,18vh,250px); width:min(1200px,calc(100vw - 54px)); margin:0; color:rgba(246,240,230,.98); opacity:0; font-family:"Philosopher",Georgia,serif; font-size:clamp(20px,1.85vw,26px); line-height:1.2; text-align:center; text-shadow:0 12px 34px rgba(0,0,0,.58); transform:translateX(-50%); }
.manifesto__scroll { position:absolute; left:50%; bottom:clamp(28px,4vw,52px); display:grid; justify-items:center; transform:translateX(-50%); animation:bob 2.1s ease-in-out infinite; }
.manifesto__scroll::after { content:""; width:1px; height:64px; background:linear-gradient(180deg,rgba(246,240,230,.12),rgba(246,240,230,1),rgba(246,240,230,.12)); }
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(14px)} }

h1,h2,h3,h4 { font-family:"Philosopher",Georgia,serif; font-weight:400; }
p { font-size:clamp(16px,1vw,16px); line-height:1.78; }
.eyebrow { margin:0 0 18px; color:var(--orange); font-size:11px; font-weight:500; line-height:1.2; letter-spacing:.3em; text-transform:uppercase; }
.text-link { display:inline-flex; align-items:center; align-self:flex-start; margin-top:10px; padding:0 0 7px; border-bottom:1px solid var(--gold); color:var(--ink); font-size:clamp(14px,1vw,16px); font-weight:500; letter-spacing:.09em; text-transform:uppercase; transition:color 220ms ease,border-color 220ms ease; }
.text-link:hover,.text-link:focus-visible { color:#887844; border-color:#887844; }

.hospitality { position:relative; background:var(--ivory); }
.hospitality__top { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:clamp(44px,5vw,72px); padding:clamp(92px,8vw,136px) clamp(28px,5.5vw,86px); }
.hospitality__brand-lockup { display:grid; gap:7px; color:var(--orange); }
.hospitality__brand-lockup span { font-family:"Philosopher",Georgia,serif; font-size:clamp(42px,4vw,58px); line-height:.94; }
.hospitality__brand-lockup small { font-size:11px; font-weight:500; letter-spacing:.34em; text-transform:uppercase; }
.hospitality__intro-copy { display:grid; gap:18px; padding-left:clamp(42px,4.5vw,72px); border-left:1px solid rgba(46,32,20,.22); }
.hospitality__intro-copy h2 { margin:0 0 4px; font-size:clamp(42px,4vw,58px); line-height:.96; }
.hospitality__intro-copy p { max-width:760px; margin:0; color:rgba(46,32,20,.78); }
.hospitality__intro-copy strong { color:var(--ink); font-weight:600; }
.hospitality__sticky-space { position:relative; height:220svh; min-height:1450px; background:#ded9d2; }
.hospitality__stage { position:sticky; top:0; height:100svh; min-height:680px; overflow:hidden; background:#ded9d2; }
.stay { position:absolute; inset:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; opacity:0; background:#ded9d2; transform:translateY(60px) scale(.98); }
.stay.is-active { opacity:1; transform:translateY(0) scale(1); }
.stay__media { position:relative; min-height:100%; overflow:hidden; background:#aaa297; }
.stay__media img { object-fit:cover; transform:scale(1.08); will-change:transform; }
.stay--lodge .stay__media img { object-position:40% 82%; transform:scale(1.1); }
.stay--villa .stay__media img { object-position:center center; }
.stay__body { min-height:100%; display:flex; flex-direction:column; justify-content:center; padding:clamp(52px,5.6vw,88px); }
.stay__body h3 { margin:0 0 20px; font-size:clamp(38px,4vw,58px); line-height:.96; }
.stay__body > p:not(.eyebrow) { max-width:470px; margin:0 0 28px; color:rgba(46,32,20,.75); }
.hospitality__dots { position:absolute; z-index:7; top:50%; right:clamp(18px,2.4vw,30px); display:grid; gap:12px; transform:translateY(-50%); }
.hospitality__dots span { width:7px; height:7px; border-radius:50%; background:rgba(46,32,20,.24); transition:background 300ms ease,transform 300ms ease; }
.hospitality__dots span.is-active { background:var(--ink); transform:scale(1.5); }

.destination { padding:clamp(86px,8vw,126px) 0; color:var(--paper); background:var(--night); }
.split-heading { max-width:1500px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(40px,5vw,82px); align-items:start; margin:0 auto; padding:0 clamp(28px,5.5vw,86px); }
.split-heading h2 { margin:0; font-size:clamp(46px,4.8vw,72px); line-height:.96; }
.destination h2 { color:var(--paper); }
.split-heading__copy { display:grid; gap:17px; padding-left:clamp(38px,4.2vw,70px); border-left:1px solid rgba(246,240,230,.24); }
.split-heading__copy p { margin:0; color:rgba(246,240,230,.8); }
.split-heading__copy strong { color:var(--paper); font-weight:600; }
.destination-collage { position:relative; height:420svh; background:var(--night); }
.destination-collage__stage { position:sticky; top:0; width:100%; height:100svh; overflow:hidden; isolation:isolate; contain:layout paint; background:var(--night); }
.destination-panel { position:absolute; z-index:2; display:block; margin:0; overflow:hidden; contain:layout paint; background:#8c8378; transform:translateZ(0); will-change:left,top,width,height,opacity,clip-path; }
.destination-panel img { object-fit:cover; transform:scale(1.06) translateZ(0); will-change:transform; }
.destination-panel--a { left:0; top:0; width:50%; height:100%; }
.destination-panel--b { left:66%; top:24%; width:27%; height:56%; }
.destination-panel--c { z-index:4; left:0; top:0; width:50%; height:100%; visibility:hidden; opacity:0; clip-path:inset(100% 0 0 0); }
.destination-panel--d { z-index:5; left:50%; top:0; width:50%; height:100%; visibility:hidden; opacity:0; clip-path:inset(0 0 100% 0); }

.shop { min-height:100svh; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; background:var(--ivory); }
.shop__image-wrap { position:relative; min-height:100svh; overflow:hidden; background:#63765f; }
.shop__image { position:absolute; inset:-8%; background-image:linear-gradient(rgba(46,32,20,.05),rgba(46,32,20,.12)),url("https://www.scorzamara.com/wp-content/uploads/2025/07/IMG_8478-scaled.jpg"); background-position:center; background-size:cover; transform:scale(1.1); }
.shop__copy { min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding:clamp(50px,6vw,92px); }
.shop__copy h2 { margin:0 0 26px; font-size:clamp(46px,4.8vw,72px); line-height:.96; }
.shop__copy > p:not(.eyebrow) { max-width:510px; margin:0 0 30px; color:rgba(46,32,20,.75); }

.beauty { padding:clamp(94px,9vw,142px) 0; background:var(--ivory); }
.beauty h2 { color:var(--ink); }
.beauty .split-heading__copy { border-left-color:rgba(46,32,20,.22); }
.beauty .split-heading__copy p { color:rgba(46,32,20,.78); }
.beauty .split-heading__copy strong { color:var(--ink); }

.horizontal-gallery { position:relative; height:300svh; background:#efede8; }
.horizontal-gallery__stage { position:sticky; top:0; height:100svh; display:flex; align-items:center; overflow:hidden; contain:layout paint; background:#efede8; }
.horizontal-gallery__track { display:flex; align-items:center; gap:clamp(9px,.8vw,15px); width:max-content; padding:clamp(18px,2vw,34px); transform:translate3d(0,0,0); }
.horizontal-gallery__card { position:relative; flex:0 0 min(30vw,54svh); width:min(30vw,54svh); height:auto; aspect-ratio:2/3; margin:0; overflow:hidden; contain:paint; backface-visibility:hidden; background:#bdb5a6; }
.horizontal-gallery__open { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; overflow:hidden; color:#fff; background:transparent; cursor:zoom-in; }
.horizontal-gallery__plus { position:absolute; z-index:2; right:18px; bottom:18px; width:38px; height:38px; border:1px solid rgba(255,255,255,.82); border-radius:50%; background:rgba(3,11,23,.25); backdrop-filter:blur(5px); transition:background 180ms ease,transform 180ms ease; }
.horizontal-gallery__plus::before,.horizontal-gallery__plus::after { content:""; position:absolute; top:50%; left:50%; width:14px; height:1px; background:currentColor; transform:translate(-50%,-50%); }
.horizontal-gallery__plus::after { transform:translate(-50%,-50%) rotate(90deg); }
.horizontal-gallery__open:hover .horizontal-gallery__plus,.horizontal-gallery__open:focus-visible .horizontal-gallery__plus { background:rgba(3,11,23,.68); transform:scale(1.08); }
.horizontal-gallery__card img { position:absolute!important; inset:0!important; display:block!important; width:100%!important; min-width:100%!important; max-width:none!important; height:100%!important; min-height:100%!important; object-fit:cover!important; object-position:center center!important; transform:scale(1.015); transform-origin:center center; backface-visibility:hidden; }
.horizontal-gallery__progress { position:absolute; left:50%; bottom:clamp(17px,2.5vh,30px); width:72px; height:2px; overflow:hidden; background:rgba(34,35,31,.2); transform:translateX(-50%); }
.horizontal-gallery__progress-fill { display:block; width:100%; height:100%; background:var(--ink); transform:scaleX(0); transform-origin:left center; }

.gallery-lightbox { position:fixed; z-index:180; inset:0; display:grid; place-items:center; padding:clamp(20px,3vw,50px); color:#fff; }
.gallery-lightbox__backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(2,7,12,.94); cursor:zoom-out; backdrop-filter:blur(10px); }
.gallery-lightbox__media { position:relative; z-index:1; width:100%; height:100%; }
.gallery-lightbox__media .fill-img { object-fit:contain!important; object-position:center center!important; }
.gallery-lightbox__close { position:absolute; z-index:3; top:clamp(16px,2vw,30px); right:clamp(16px,2vw,30px); width:50px; height:50px; padding:0; border:1px solid rgba(255,255,255,.62); color:#fff; background:rgba(3,11,23,.35); cursor:pointer; }
.gallery-lightbox__close span { position:absolute; top:24px; left:10px; width:29px; height:1px; background:currentColor; }
.gallery-lightbox__close span:first-child { transform:rotate(45deg); }
.gallery-lightbox__close span:last-child { transform:rotate(-45deg); }
.gallery-lightbox__nav { position:absolute; z-index:3; top:50%; width:70px; height:70px; border:0; color:#fff; background:rgba(3,11,23,.35); font-size:28px; cursor:pointer; transform:translateY(-50%); }
.gallery-lightbox__nav--prev { left:clamp(8px,1.5vw,24px); }
.gallery-lightbox__nav--next { right:clamp(8px,1.5vw,24px); }

.site-footer { position:relative; z-index:1; padding:clamp(50px,5vw,76px) clamp(28px,5vw,78px) 24px; overflow:hidden; color:#e6e2d7; background:#030b17; }
.site-footer::before { content:""; position:absolute; top:0; left:clamp(28px,5vw,78px); right:clamp(28px,5vw,78px); height:1px; background:rgba(180,160,97,.55); }
.site-footer__main { display:grid; grid-template-columns:minmax(350px,1.08fr) minmax(220px,.56fr) minmax(420px,1.25fr); gap:clamp(32px,3.5vw,62px); align-items:stretch; }
.site-footer__identity { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
.site-footer__logotype { display:block; width:min(100%,260px); aspect-ratio:1795/399; overflow:hidden; }
.site-footer__logo { display:block; width:100%; height:auto; }
.site-footer__navigation { width:min(100%,260px); display:grid; grid-template-columns:1fr; justify-items:start; gap:10px; margin:32px auto 0; text-align:left; }
.site-footer__navigation a { position:relative; width:max-content; max-width:100%; color:rgba(230,226,215,.8); font-size:12px; font-weight:400; line-height:1.4; text-transform:uppercase; transition:color 200ms ease; }
.site-footer__navigation a::after { content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform 220ms ease; }
.site-footer__navigation a:hover,.site-footer__navigation a:focus-visible { color:#fff; }
.site-footer__navigation a:hover::after,.site-footer__navigation a:focus-visible::after { transform:scaleX(1); transform-origin:left; }
.site-footer__contacts { width:min(100%,260px); margin:31px auto 0; }
.site-footer__contacts h3 { margin:0 0 14px; color:#d2c6a1; font-family:"Montserrat",Arial,sans-serif; font-size:10px; font-weight:500; letter-spacing:.2em; line-height:1.1; text-transform:uppercase; }
.site-footer__contacts address { display:grid; justify-items:start; gap:8px; color:rgba(230,226,215,.82); font-size:10px; font-style:normal; font-weight:400; line-height:1.45; }
.site-footer__contacts a { color:#fff; transition:color 200ms ease; }
.site-footer__contacts a:hover,.site-footer__contacts a:focus-visible { color:var(--gold); }
.site-footer__family { padding-left:clamp(24px,2.7vw,48px); border-left:1px solid rgba(230,226,215,.23); }
.site-footer__family h3 { max-width:250px; margin:0; color:#d2c6a1; font-family:"Philosopher",Georgia,serif; font-size:clamp(24px,1.7vw,32px); font-weight:400; line-height:1.15; text-transform:uppercase; }
.site-footer__newsletter > p { max-width:620px; margin:0 0 27px; color:rgba(230,226,215,.84); font-size:12px; font-weight:400; line-height:1.65; }
.site-footer__newsletter form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 10px; }
.site-footer__newsletter form > label:not(.site-footer__privacy) { display:block; border-bottom:1px solid rgba(230,226,215,.42); }
.site-footer__newsletter form > label > span { display:block; color:rgba(230,226,215,.6); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.site-footer__newsletter input[type="text"],.site-footer__newsletter input[type="email"] { width:100%; height:27px; padding:0; border:0; outline:0; color:#fff; background:transparent; font:inherit; font-size:13px; }
.site-footer__newsletter form > label:focus-within { border-color:var(--gold); }
.site-footer__privacy { display:flex; align-items:center; gap:8px; min-height:43px; }
.site-footer__privacy input { flex:0 0 11px; width:11px; height:11px; margin:0; accent-color:var(--gold); }
.site-footer__privacy span { color:rgba(230,226,215,.78)!important; font-size:9px!important; line-height:1.3; }
.site-footer__privacy a { color:inherit; }
.site-footer__newsletter button { min-height:43px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 12px; border:0; border-left:1px solid rgba(230,226,215,.45); color:#fff; background:transparent; font:inherit; font-size:11px; font-weight:500; letter-spacing:.04em; line-height:1.12; text-align:left; text-transform:uppercase; cursor:pointer; transition:color 200ms ease,border-color 200ms ease; }
.site-footer__newsletter button:hover,.site-footer__newsletter button:focus-visible { color:var(--gold); border-color:var(--gold); }
.ui-arrow { position:relative; flex:0 0 16px; width:16px; height:16px; display:inline-block; transition:transform 220ms ease; }
.ui-arrow::before { content:""; position:absolute; top:2px; right:1px; width:8px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; }
.ui-arrow::after { content:""; position:absolute; left:3px; top:9px; width:11px; height:1px; background:currentColor; transform:rotate(-45deg); transform-origin:center; }
.site-footer__newsletter button:hover .ui-arrow,.site-footer__newsletter button:focus-visible .ui-arrow { transform:translate(3px,-3px); }
.site-footer__bottom { min-height:88px; display:grid; grid-template-columns:1fr auto auto; align-items:end; gap:clamp(28px,4vw,62px); margin-top:clamp(44px,5vw,72px); padding-top:20px; border-top:1px solid rgba(180,160,97,.28); color:rgba(230,226,215,.55); font-size:10px; font-weight:400; letter-spacing:.04em; }
.site-footer__contact p { margin:0; font-size:9px; letter-spacing:.04em; text-transform:uppercase; }
.site-footer__contact a { color:inherit; transition:color 200ms ease; }
.site-footer__contact a:hover,.site-footer__contact a:focus-visible { color:var(--gold); }
.site-footer__follow > span { color:rgba(230,226,215,.68); font-size:10px; text-transform:lowercase; }
.site-footer__socials { display:flex; gap:8px; margin-top:8px; }
.site-footer__socials a { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(230,226,215,.55); border-radius:50%; color:#fff; transition:color 200ms ease,background-color 200ms ease,border-color 200ms ease; }
.site-footer__socials a:hover,.site-footer__socials a:focus-visible { color:#030b17; border-color:var(--gold); background:var(--gold); }
.site-footer__socials svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; }
.site-footer__socials a:last-child svg { fill:currentColor; stroke:none; }
.site-footer__socials .social-icon__dot { fill:currentColor; stroke:none; }
.site-footer__language-switcher { position:relative; align-self:center; }
.site-footer__language-button { min-width:46px; height:38px; display:flex; align-items:center; justify-content:center; gap:9px; padding:0; border:0; color:var(--gold); background:transparent; font:inherit; font-size:11px; letter-spacing:.16em; cursor:pointer; }
.site-footer__language-button i { width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform 180ms ease; }
.site-footer__language-button[aria-expanded="true"] i { transform:translateY(1px) rotate(225deg); }
.site-footer__language-options { position:absolute; right:0; bottom:calc(100% + 8px); z-index:5; width:142px; padding:7px 0; visibility:hidden; border:1px solid rgba(230,226,215,.2); opacity:0; background:rgba(3,11,23,.97); box-shadow:0 18px 38px rgba(0,0,0,.28); transform:translateY(8px); transition:opacity 180ms ease,transform 220ms ease,visibility 220ms; }
.site-footer__language-options--open { visibility:visible; opacity:1; transform:translateY(0); }
.site-footer__language-options a { min-height:40px; display:flex; align-items:center; padding:0 13px; color:rgba(230,226,215,.72); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.site-footer__language-options .is-active,.site-footer__language-options a:hover,.site-footer__language-options a:focus-visible { color:#fff; background:rgba(255,255,255,.08); }

@media (min-width:1100px) { .manifesto__caption { width:auto; max-width:calc(100vw - 54px); white-space:nowrap; } }
@media (min-width:761px) and (max-width:1100px) {
  .site-footer__main { grid-template-columns:1fr 1fr; }
  .site-footer__identity { grid-column:1/-1; padding-bottom:42px; border-bottom:1px solid rgba(230,226,215,.18); }
  .site-footer__family { padding-left:0; border-left:0; }
  .site-footer__bottom { grid-template-columns:1fr auto; }
  .site-footer__language-switcher { grid-column:2; }
}
@media (max-width:760px) {
  .site-header { display:flex; align-items:center; gap:0; padding:18px 14px 28px; }
  .site-header--hidden { pointer-events:auto; opacity:1; background:linear-gradient(180deg,rgba(46,32,20,.76) 0%,rgba(46,32,20,.4) 58%,rgba(46,32,20,0) 100%); transform:none; backdrop-filter:none; }
  .site-header--visible { backdrop-filter:none; }
  .header-menu { order:1; }
  .brand { position:absolute; left:50%; order:2; width:clamp(84px,26vw,118px); transform:translateX(-50%); }
  .header-actions { order:3; gap:2px; margin-left:auto; }
  .menu-toggle { width:34px; align-items:flex-start; }
  .book-button { min-width:72px; height:38px; gap:6px; padding:0 7px; font-size:7.5px; letter-spacing:.1em; }
  .language-button { min-width:32px; height:38px; gap:4px; font-size:8.5px; letter-spacing:.08em; }
  .booking-options { right:0; width:196px; }
  .language-options { width:128px; }
  .menu-overlay nav { padding:96px 22px 36px; }
  .menu-overlay nav a { min-height:132px; grid-template-columns:38px minmax(0,1fr); gap:16px; }
  .menu-overlay nav strong { font-size:clamp(31px,10vw,48px); }
  .menu-overlay nav small { grid-column:2; margin-top:-34px; }
  .manifesto { min-height:330svh; }
  .manifesto__pin { height:100svh; min-height:0; }
  .manifesto__bg--nature { object-position:center 63%; }
  .manifesto__word { font-size:clamp(50px,18vw,82px); }
  .manifesto__caption { bottom:clamp(96px,14svh,128px); width:calc(100vw - 42px); font-size:18px; }
  .hospitality__top { grid-template-columns:1fr; gap:48px; padding:72px 24px 76px; }
  .hospitality__brand-lockup span { font-size:45px; }
  .hospitality__intro-copy { padding-left:26px; }
  .hospitality__intro-copy h2 { font-size:44px; }
  .hospitality__sticky-space { height:245svh; min-height:1450px; }
  .hospitality__stage { min-height:620px; }
  .stay { grid-template-columns:1fr; grid-template-rows:56% 44%; }
  .stay__media { min-height:0; }
  .stay--lodge .stay__media img { object-position:31% 88%; transform:scale(1.18); }
  .stay__body { min-height:0; padding:34px 24px 42px; }
  .stay__body h3 { margin-bottom:14px; font-size:41px; }
  .stay__body > p:not(.eyebrow) { margin-bottom:16px; font-size:14px; line-height:1.62; }
  .stay__body .eyebrow { margin-bottom:10px; }
  .hospitality__dots { top:52%; right:15px; }
  .destination { padding:74px 0; }
  .split-heading { grid-template-columns:1fr; gap:38px; padding:0 24px; }
  .split-heading h2 { font-size:46px; }
  .split-heading__copy { padding-left:25px; }
  .destination-collage { height:360svh; }
  .destination-collage__stage { height:100svh; }
  .shop { min-height:auto; grid-template-columns:1fr; }
  .shop__image-wrap { min-height:62svh; }
  .shop__copy { min-height:auto; padding:64px 24px 74px; }
  .shop__copy h2 { font-size:48px; }
  .beauty { padding:76px 0 82px; }
  .horizontal-gallery { height:270svh; }
  .horizontal-gallery__track { gap:10px; padding:14px; }
  .horizontal-gallery__card { flex-basis:82vw; width:82vw; height:74svh; aspect-ratio:auto; }
  .horizontal-gallery__plus { right:14px; bottom:14px; width:36px; height:36px; }
  .horizontal-gallery__progress { bottom:22px; }
  .gallery-lightbox { padding:12px; }
  .gallery-lightbox__close { top:12px; right:12px; width:45px; height:45px; }
  .gallery-lightbox__close span { top:21px; left:8px; }
  .gallery-lightbox__nav { top:auto; bottom:18px; width:58px; height:58px; transform:none; background:rgba(3,11,23,.58); }
  .gallery-lightbox__nav--prev { left:18px; }
  .gallery-lightbox__nav--next { right:18px; }
  .site-footer { padding:60px 24px 22px; background:#030b17; }
  .site-footer::before { left:24px; right:24px; }
  .site-footer__main { grid-template-columns:1fr; gap:40px; }
  .site-footer__identity { align-items:flex-start; padding:0; }
  .site-footer__logotype { width:min(86%,280px); margin-right:0; margin-left:0; }
  .site-footer__navigation,.site-footer__contacts { width:min(100%,280px); margin-right:0; margin-left:0; }
  .site-footer__family { padding:34px 0 0; border-top:1px solid rgba(230,226,215,.2); border-left:0; }
  .site-footer__family h3 { max-width:320px; font-size:30px; }
  .site-footer__newsletter > p { max-width:430px; font-size:12px; }
  .site-footer__newsletter form { grid-template-columns:1fr; gap:17px; }
  .site-footer__privacy { min-height:30px; }
  .site-footer__newsletter button { min-height:52px; border:1px solid rgba(230,226,215,.45); }
  .site-footer__bottom { min-height:0; grid-template-columns:1fr auto; align-items:end; gap:28px 20px; padding:28px 0 8px; }
  .site-footer__contact { grid-column:1/-1; }
  .site-footer__follow { grid-column:1; }
  .site-footer__language-switcher { grid-column:2; align-self:end; }
}


/* iPhone / Safari stability: avoid negative-z sticky layers and expensive contained GPU surfaces. */
@media (max-width:760px) {
  html,body { overscroll-behavior-y:none; }
  .manifesto__pin { background:var(--night); }
  .manifesto__bg {
    z-index:0;
    inset:-3px!important;
    width:calc(100% + 6px)!important;
    height:calc(100% + 6px)!important;
    max-width:none!important;
    visibility:visible;
    transform:translate3d(0,0,0) scale(1.055);
    transform-origin:center center;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    will-change:opacity;
  }
  .manifesto__veil { z-index:1; }
  .manifesto__words,.manifesto__caption,.manifesto__scroll { z-index:2; }
  .horizontal-gallery__stage { contain:none; }
  .horizontal-gallery__track { transform:translateX(0); will-change:transform; }
  .horizontal-gallery__card { contain:none; }
}



/* iPhone full-viewport sticky fix (2026-08-23)
   Use the LARGE viewport unit for pinned scenes: it is stable while Safari's bars expand/collapse
   and, unlike svh, it always covers the whole visible screen when the bars are hidden. */
@media (max-width:760px) {
  .manifesto { min-height:330lvh; }
  .hospitality__sticky-space { height:245lvh; }
  .horizontal-gallery { height:270lvh; }

  .manifesto__pin {
    height:100vh;
    height:100lvh;
    min-height:100vh;
    min-height:100lvh;
    background:
      linear-gradient(180deg,rgba(46,32,20,.10),rgba(46,32,20,.20)),
      url("../images/nature.webp") center 63% / cover no-repeat;
  }

  .manifesto__bg {
    inset:-8px!important;
    width:calc(100% + 16px)!important;
    height:calc(100% + 16px)!important;
  }

  .manifesto__caption {
    bottom:clamp(96px,14lvh,132px);
  }


  /* Keep other sticky stages tall enough when Safari hides its UI,
     without using a dynamically-changing viewport unit. */
  .hospitality__stage,
  .horizontal-gallery__stage {
    height:100vh;
    height:100lvh;
  }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .manifesto { min-height:100svh; }
  .manifesto__bg--nature { opacity:1; }
  .manifesto__bg--living,.manifesto__bg--sicily,.manifesto__word--living,.manifesto__word--sicily,.manifesto__caption { display:none; }
}


