@font-face{font-family:"Bricolage Grotesque";src:url("assets/fonts/bricolage-grotesque.woff2") format("woff2");font-style:normal;font-weight:400 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url("assets/fonts/nunito-sans.woff2") format("woff2");font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:"Caveat";src:url("assets/fonts/caveat.woff2") format("woff2");font-style:normal;font-weight:500 600;font-display:swap}

:root{
  --casa:#fffdf7;
  --mare:#2f78b7;
  --mare-scuro:#175487;
  --acqua:#70bdb0;
  --acqua-chiara:#dff4ef;
  --cipresso:#68a62b;
  --cipresso-scuro:#39701b;
  --sole:#f2cb24;
  --corallo:#ee4438;
  --inchiostro:#17384c;
  --bianco:#fff;
  --linea:rgba(23,56,76,.15);
  --ombra:0 26px 70px rgba(23,56,76,.16);
  --display:"Bricolage Grotesque",sans-serif;
  --body:"Nunito Sans",sans-serif;
  --hand:"Caveat",cursive;
  --max:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--casa);color:var(--inchiostro);font-family:var(--body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.modal-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--display);font-variation-settings:"wdth" 92;font-weight:650;line-height:.98;letter-spacing:-.045em}
em{font-family:var(--hand);font-style:normal;font-weight:600;letter-spacing:0}
.skip-link{position:fixed;z-index:300;top:8px;left:8px;background:var(--inchiostro);color:#fff;padding:.7rem 1rem;transform:translateY(-160%)}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid var(--sole);outline-offset:4px}
.section{padding:clamp(5rem,9vw,9rem) max(5vw,calc((100vw - var(--max))/2))}
.kicker{font-size:.69rem;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--mare);margin-bottom:1.15rem}
.lead{font-size:clamp(1.13rem,1.7vw,1.4rem);line-height:1.55;font-weight:650;color:#284f62}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.82rem 1.35rem;border:0;background:var(--mare);color:#fff;font-weight:800;line-height:1.1;transition:transform .22s,box-shadow .22s,background .22s}
.button:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(23,56,76,.22);background:var(--mare-scuro)}
.button-sun{background:var(--sole);color:var(--inchiostro)}
.button-sun:hover{background:#ffdc35}
.button-ghost{border:2px solid rgba(255,255,255,.88);background:rgba(9,47,66,.18);color:#fff;backdrop-filter:blur(5px)}
.button-ghost:hover{background:#fff;color:var(--inchiostro)}
.button-coral{background:var(--corallo)}
.button-coral:hover{background:#d9342b}
.wide{width:100%}

.site-nav{position:absolute;z-index:80;top:0;left:0;right:0;height:86px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:0 max(4vw,calc((100vw - 1380px)/2));background:rgba(255,253,247,.92);border-bottom:1px solid rgba(255,255,255,.5);backdrop-filter:blur(12px);transition:height .25s,box-shadow .25s,background .25s}
.site-nav.scrolled{position:fixed;height:72px;background:rgba(255,253,247,.97);box-shadow:0 10px 40px rgba(23,56,76,.1)}
.brand{display:flex;align-items:center}
.brand img{width:190px;height:68px;object-fit:contain;transition:width .25s,height .25s}
.site-nav.scrolled .brand img{width:168px;height:56px}
.nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(.9rem,2.1vw,2rem)}
.nav-links a{position:relative;font-size:.82rem;font-weight:800;white-space:nowrap}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-9px;width:100%;height:3px;background:linear-gradient(90deg,var(--mare),var(--acqua),var(--cipresso),var(--sole),var(--corallo));transform:scaleX(0);transform-origin:left;transition:transform .22s}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:.9rem}
.nav-button{min-height:42px;padding:.68rem 1rem;font-size:.78rem}
.languages{display:flex;border:1px solid var(--linea);background:#fff}
.languages button{border:0;background:transparent;padding:.55rem .58rem;font-size:.69rem;font-weight:800}
.languages button.active{background:var(--cipresso);color:#fff}
.menu-toggle{display:none;border:0;background:transparent;padding:.5rem}
.menu-toggle span{display:block;width:26px;height:2px;background:var(--inchiostro);margin:5px}
.menu-toggle b{position:absolute;clip:rect(0 0 0 0)}

.hero{position:relative;height:max(760px,100svh);min-height:680px;overflow:hidden;background:var(--mare-scuro);color:#fff}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,42,61,.73) 0%,rgba(8,42,61,.36) 38%,rgba(8,42,61,.05) 67%),linear-gradient(0deg,rgba(9,47,66,.7) 0%,transparent 38%,rgba(9,43,62,.06) 70%)}
.hero-copy{position:absolute;z-index:2;left:max(5vw,calc((100vw - var(--max))/2));top:50%;transform:translateY(-34%);width:min(1050px,78vw);text-shadow:0 2px 20px rgba(8,42,61,.34)}
.hero-kicker{color:#fff;margin-bottom:1.35rem}
.hero-copy h1{font-size:clamp(2.9rem,5.3vw,5.6rem);font-weight:680;line-height:.95;letter-spacing:-.055em;margin-bottom:1.9rem}
.hero-copy h1 em{display:inline-block;color:var(--sole);font-size:1.04em;transform:rotate(-2deg);text-shadow:0 3px 20px rgba(8,42,61,.4)}
.hero-intro{font-size:clamp(1.08rem,1.8vw,1.4rem);line-height:1.5;font-weight:650;max-width:43ch;margin-bottom:2rem}
.hero-actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.hero-link{display:inline-flex;align-items:center;gap:.8rem;font-weight:800;border-bottom:2px solid rgba(255,255,255,.75);padding:.4rem 0}
.hero-link b{font-size:1.2rem;transition:transform .2s}.hero-link:hover b{transform:translateY(4px)}
.hero-facts{position:absolute;z-index:3;right:max(4vw,calc((100vw - var(--max))/2));bottom:34px;display:flex;align-items:stretch;border:1px solid rgba(255,255,255,.32);background:rgba(11,56,76,.45);backdrop-filter:blur(8px)}
.hero-facts span{display:grid;grid-template-columns:auto;align-content:center;min-width:145px;padding:1rem 1.15rem;border-left:1px solid rgba(255,255,255,.28)}
.hero-facts span:first-child{border-left:0}
.hero-facts b{font-family:var(--display);font-size:1.4rem;line-height:1}
.hero-facts i{font-style:normal;font-size:.57rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.3rem;color:rgba(255,255,255,.83)}

.brand-flow{position:relative;z-index:4;height:58px;margin-top:-18px;overflow:hidden;pointer-events:none}
.brand-flow i{position:absolute;left:-4%;width:108%;height:26px;border-radius:50%;transform:rotate(-1deg)}
.brand-flow i:nth-child(1){top:2px;background:var(--mare)}
.brand-flow i:nth-child(2){top:14px;left:-2%;background:var(--acqua);transform:rotate(1.2deg)}
.brand-flow i:nth-child(3){top:27px;background:var(--cipresso);transform:rotate(-.6deg)}

.hospitality{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(3.5rem,8vw,8rem);align-items:center;padding-top:clamp(5rem,8vw,8rem)}
.hospitality-copy h2,.section-heading h2,.care-copy h2,.reviews-title h2,.contact-copy h2{font-size:clamp(3rem,5.7vw,5.6rem);margin-bottom:2rem}
.hospitality-copy h2 em{color:var(--corallo)}
.hospitality-copy>p:not(.kicker):not(.lead){color:#4e6978;max-width:58ch}
.hand-note{display:block;font-family:var(--hand);font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.1;color:var(--cipresso-scuro);margin-top:2rem;transform:rotate(-1deg)}
.hospitality-photo{position:relative;margin:0;padding:0 0 3rem 3rem}
.hospitality-photo::before{content:"";position:absolute;z-index:-1;left:0;bottom:0;width:62%;height:72%;background:var(--sole)}
.hospitality-photo img{width:100%;height:min(680px,62vw);object-fit:cover;box-shadow:var(--ombra)}
.hospitality-photo figcaption{position:absolute;left:0;bottom:0;background:var(--corallo);color:#fff;padding:1rem 1.4rem;min-width:230px}
.hospitality-photo figcaption span{display:block;font-size:.61rem;text-transform:uppercase;letter-spacing:.13em}
.hospitality-photo figcaption b{display:block;font-family:var(--hand);font-size:1.5rem;line-height:1.1}

.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:clamp(3rem,6vw,5rem)}
.section-heading h2{margin-bottom:0}
.section-heading h2 em{color:var(--mare)}
.section-heading>p{max-width:43ch;margin-bottom:.7rem;color:#4d6978}
.rooms{position:relative;background:var(--acqua-chiara);overflow:hidden}
.rooms::before{content:"";position:absolute;right:-90px;top:90px;width:230px;height:230px;border-radius:50%;background:var(--sole);opacity:.45}
.room-grid{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2.4vw,2rem)}
.room-card{--room-accent:var(--mare);position:relative;background:#fff;cursor:pointer;box-shadow:0 14px 45px rgba(31,92,104,.1);transition:transform .25s,box-shadow .25s;overflow:hidden}
.room-card:hover{transform:translateY(-6px);box-shadow:var(--ombra)}
.room-card.featured{grid-column:span 2;display:grid;grid-template-columns:1.16fr .84fr}
.room-card.featured.reverse{grid-template-columns:.84fr 1.16fr}
.room-card.featured.reverse .room-image{order:2}
.room-card.featured.reverse .room-body{order:1}
.room-card[data-accent="mare"]{--room-accent:var(--mare)}
.room-card[data-accent="corallo"]{--room-accent:var(--corallo)}
.room-card[data-accent="sole"]{--room-accent:var(--sole)}
.room-card[data-accent="inchiostro"]{--room-accent:var(--inchiostro)}
.room-image{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--inchiostro)}
.room-card.featured .room-image{aspect-ratio:auto;min-height:520px}
.room-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.room-card:hover .room-image img{transform:scale(1.03)}
.room-color{position:absolute;left:0;bottom:0;width:100%;height:9px;background:var(--room-accent)}
.room-badge{position:absolute;top:16px;left:16px;background:#fff;color:var(--inchiostro);padding:.48rem .7rem;font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.room-body{position:relative;padding:clamp(1.5rem,3vw,2.4rem);display:flex;flex-direction:column}
.room-body::before{content:"";position:absolute;right:0;top:0;width:52px;height:8px;background:var(--room-accent)}
.room-body h3{font-size:clamp(2.15rem,3.5vw,3.45rem);margin-bottom:.8rem}
.room-body p{color:#526f7c}
.room-facts{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0 1.5rem}
.room-facts span{border:1px solid var(--linea);padding:.35rem .55rem;font-size:.73rem;font-weight:700}
.room-open{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--linea);padding-top:1rem;font-weight:800;color:var(--room-accent)}
.room-open i{font-style:normal;font-size:1.5rem}

.care{position:relative;background:var(--inchiostro);color:#fff;overflow:hidden}
.care::after{content:"";position:absolute;right:-110px;bottom:-130px;width:320px;height:320px;border-radius:50%;background:var(--corallo);opacity:.18}
.care-photo{position:relative;z-index:2;min-height:700px}
.care-photo::before{content:"";position:absolute;left:-24px;top:-24px;width:60%;height:45%;background:var(--acqua)}
.care-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;box-shadow:var(--ombra)}
.care-photo-label{position:absolute;left:0;bottom:0;background:var(--sole);color:var(--inchiostro);padding:.8rem 1.1rem;font-family:var(--hand);font-size:1.45rem;font-weight:600}
.care-copy{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,8vw,8rem);align-items:center}
.care-intro{position:relative}
.care-copy .kicker{color:var(--sole)}
.care-copy h2 em{color:var(--sole)}
.care-copy .lead{color:#e4f0f2}
.care-mark{position:absolute;right:0;top:-90px;width:150px;height:105px;opacity:.92}
.care-mark i{position:absolute;bottom:18px;width:20px;border-radius:55% 55% 45% 45%;background:linear-gradient(90deg,var(--cipresso-scuro),#8cbd27,var(--cipresso-scuro))}
.care-mark i:first-child{right:54px;height:84px}.care-mark i:nth-child(2){right:26px;height:98px}
.care-mark b{position:absolute;left:2px;bottom:0;width:77px;height:47px;background:var(--sole);clip-path:polygon(0 34%,50% 0,100% 34%,100% 100%,0 100%)}
.care-list{list-style:none;padding:0;margin:0;border-top:1px solid rgba(255,255,255,.18)}
.care-list li{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.18)}
.care-list li>b{display:block;width:32px;height:12px;border-radius:999px;background:var(--acqua);transform:rotate(-7deg)}
.care-list li:nth-child(2)>b{background:var(--sole);transform:rotate(5deg)}
.care-list li:nth-child(3)>b{background:var(--corallo);transform:rotate(-3deg)}
.care-list strong,.care-list small{display:block}.care-list strong{font-size:1rem}.care-list small{color:#a9c0c9;margin-top:.2rem;font-size:.82rem}

.story{position:relative;display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:clamp(3.5rem,9vw,9rem);align-items:center;background:var(--casa);overflow:hidden}
.story::after{content:"“";position:absolute;right:-.03em;bottom:-.32em;font-family:var(--hand);font-size:clamp(18rem,32vw,36rem);line-height:1;color:var(--acqua-chiara);pointer-events:none}
.story-portrait{position:relative;z-index:2;margin:0 0 1.5rem 1.5rem}
.story-photo-frame{position:relative;padding:14px;background:linear-gradient(135deg,var(--mare) 0 20%,var(--acqua) 20% 39%,var(--cipresso) 39% 58%,var(--sole) 58% 78%,var(--corallo) 78%);clip-path:polygon(3% 0,100% 2%,97% 100%,0 97%);box-shadow:var(--ombra)}
.story-photo-frame img{width:100%;height:min(650px,54vw);object-fit:cover;object-position:center 34%;clip-path:polygon(1% 1%,99% 0,100% 98%,0 100%)}
.story-portrait>span{position:absolute;right:-1.5rem;bottom:-2.3rem;max-width:300px;padding:.75rem 1.1rem;background:var(--sole);font-family:var(--hand);font-size:clamp(1.25rem,2.1vw,1.7rem);font-weight:600;line-height:1.05;transform:rotate(-2deg);box-shadow:0 12px 30px rgba(23,56,76,.13)}
.story-preview{position:relative;z-index:2;max-width:680px}
.story-preview .kicker{color:var(--cipresso-scuro)}
.story-preview h2{font-size:clamp(4rem,7vw,7rem);margin-bottom:2rem}
.story-preview h2 em{color:var(--corallo)}
.story-narrative{max-width:62ch}
.story-narrative>p{color:#466675;margin:0 0 1.25rem}
.story-narrative .story-opening{max-width:34ch;font-size:clamp(1.25rem,1.9vw,1.58rem);line-height:1.42;font-weight:750;color:var(--inchiostro)}
.story-quote{position:relative;margin:2rem 0 0;padding:1.45rem 1.65rem;background:var(--sole);font-family:var(--hand);font-size:clamp(1.35rem,2vw,1.85rem);font-weight:600;line-height:1.18;transform:rotate(-.6deg);box-shadow:0 14px 34px rgba(23,56,76,.1)}

.details{position:relative;background:#f5f0e3;overflow:hidden}
.details::before{content:"";position:absolute;top:-120px;right:-90px;width:300px;height:300px;border:58px solid var(--sole);border-radius:50%;opacity:.38}
.details-heading{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:2rem 5rem;align-items:end;margin-bottom:clamp(3rem,6vw,5rem)}
.details-heading .kicker{grid-column:1/-1;margin-bottom:-.5rem;color:var(--cipresso-scuro)}
.details-heading h2{font-size:clamp(3rem,5.7vw,5.6rem);margin:0}
.details-heading h2 em{color:var(--corallo)}
.details-heading>p:last-child{max-width:44ch;margin:0 0 .55rem;color:#4e6978;font-weight:650}
.detail-mosaic{position:relative;z-index:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:270px;gap:1rem}
.detail-item{position:relative;margin:0;overflow:hidden;background:var(--inchiostro);box-shadow:0 18px 45px rgba(23,56,76,.12)}
.detail-item:nth-child(1){grid-column:span 7;grid-row:span 2}
.detail-item:nth-child(2),.detail-item:nth-child(3){grid-column:span 5}
.detail-item:nth-child(4){grid-column:span 5}
.detail-item:nth-child(5){grid-column:span 4}
.detail-item:nth-child(6){grid-column:span 3}
.detail-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.detail-item:nth-child(2) img{object-position:center 42%}
.detail-item:hover img{transform:scale(1.035)}
.detail-item figcaption{position:absolute;left:0;right:clamp(1rem,8%,4rem);bottom:0;padding:1rem 1.25rem;background:var(--mare);color:#fff;font-family:var(--display);font-size:clamp(.9rem,1.35vw,1.15rem);font-weight:750;line-height:1.2;letter-spacing:-.02em}
.detail-item:nth-child(2) figcaption{background:var(--sole);color:var(--inchiostro)}
.detail-item:nth-child(3) figcaption{background:var(--corallo)}
.detail-item:nth-child(4) figcaption{background:var(--cipresso-scuro)}
.detail-item:nth-child(5) figcaption{background:var(--acqua);color:var(--inchiostro)}
.detail-item:nth-child(6) figcaption{background:var(--inchiostro)}

.comforts{background:var(--casa)}
.section-heading.compact{margin-bottom:3rem}
.comfort-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--linea);border-left:1px solid var(--linea)}
.comfort-grid article{position:relative;min-height:230px;padding:clamp(1.4rem,3vw,2.4rem);border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);overflow:hidden}
.comfort-grid article::after{content:"";position:absolute;right:-28px;bottom:-38px;width:90px;height:90px;border-radius:50%;background:var(--tone,var(--mare));opacity:.12}
.comfort-grid article:nth-child(1),.comfort-grid article:nth-child(6){--tone:var(--mare)}
.comfort-grid article:nth-child(2),.comfort-grid article:nth-child(5){--tone:var(--sole)}
.comfort-grid article:nth-child(3),.comfort-grid article:nth-child(4){--tone:var(--cipresso)}
.comfort-grid article>span{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--tone);color:#fff;font-size:1.35rem}
.comfort-grid article:nth-child(2)>span,.comfort-grid article:nth-child(5)>span{color:var(--inchiostro)}
.comfort-grid h3{font-size:1.65rem;letter-spacing:-.03em;margin:2.2rem 0 .7rem}
.comfort-grid p{margin:0;color:#58717e;font-size:.9rem;max-width:28ch}

.place{background:#eaf5fa}
.place-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.place-card{position:relative;grid-column:span 4;min-height:390px;color:#fff;background:var(--inchiostro);overflow:hidden;cursor:pointer}
.place-card:nth-child(1),.place-card:nth-child(5){grid-column:span 7}.place-card:nth-child(2),.place-card:nth-child(6){grid-column:span 5}
.place-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .65s}
.place-card:hover img{transform:scale(1.035)}
.place-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,48,66,.82),transparent 60%)}
.place-card-copy{position:absolute;z-index:2;left:1.4rem;right:1.4rem;bottom:1.25rem;display:flex;align-items:end;justify-content:space-between;gap:1rem}
.place-card-copy span{font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em}
.place-card-copy h3{font-size:clamp(1.8rem,3vw,2.8rem);margin:.25rem 0 0}
.place-card-copy b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--sole);color:var(--inchiostro);font-size:1.35rem}

.sea-quote{position:relative;height:min(78vh,780px);min-height:580px;color:#fff;overflow:hidden}
.sea-quote>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sea-quote::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,48,66,.72),rgba(11,48,66,.08) 72%)}
.sea-quote blockquote{position:absolute;z-index:2;left:max(5vw,calc((100vw - var(--max))/2));top:50%;transform:translateY(-50%);max-width:760px;margin:0}
.sea-quote p{font-family:var(--display);font-size:clamp(2.8rem,5vw,5.2rem);font-weight:650;line-height:.98;letter-spacing:-.05em;margin-bottom:1.5rem}
.sea-quote cite{font-style:normal;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}

.reviews{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(3rem,8vw,8rem);background:var(--sole)}
.reviews-title{position:sticky;top:120px;align-self:start}
.reviews-title .kicker{color:var(--inchiostro)}
.reviews-title h2 em{color:var(--corallo)}
.reviews-title>p:last-child{max-width:40ch}
.review-stack{display:grid;gap:1rem}
.review-stack blockquote{margin:0;background:var(--casa);padding:clamp(1.6rem,3vw,2.6rem);box-shadow:0 12px 40px rgba(98,78,8,.1)}
.review-stack blockquote:nth-child(2){transform:translateX(30px)}
.review-stack div{color:var(--corallo);letter-spacing:.14em}
.review-stack p{font-family:var(--display);font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.45;font-weight:550;margin:1.2rem 0 1.5rem}
.review-stack cite{font-style:normal;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:#57707c}

.contact{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(3rem,8vw,8rem);background:var(--cipresso);color:#fff}
.contact .kicker{color:var(--sole)}
.contact-copy h2 em{color:var(--sole)}
.contact-copy>p:not(.kicker){color:#e4f0dd;max-width:43ch}
.contact-details{margin-top:3rem;border-top:1px solid rgba(255,255,255,.28)}
.contact-details a{display:block;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.28)}
.contact-details span,.contact-details b{display:block}
.contact-details span{font-size:.61rem;text-transform:uppercase;letter-spacing:.11em;color:#cce1c0}
.contact-details b{font-size:.95rem}
.request-form{align-self:start;background:var(--casa);color:var(--inchiostro);padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--ombra)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.request-form label>span{display:block;font-size:.75rem;font-weight:800;margin-bottom:.38rem}
.request-form input,.request-form select,.request-form textarea{width:100%;border:1px solid #bed0c8;background:#fff;padding:.82rem .9rem;border-radius:0}
.request-form textarea{resize:vertical}
.request-form>label{display:block;margin-top:1rem}
.privacy{display:flex!important;align-items:flex-start;gap:.7rem}.privacy input{width:auto;margin-top:.25rem}.privacy span{font-weight:600!important;color:#5e7267}
.request-form .button{margin-top:1.4rem}
.form-note{text-align:center;font-size:.71rem;color:#64776e;margin:.7rem 0 0}

footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:3.2rem max(5vw,calc((100vw - var(--max))/2));background:#102e3e;color:#d6e2e7}
footer img{width:185px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
footer p{max-width:39ch;margin:0;font-size:.86rem}
footer>div{display:flex;gap:1.4rem;font-size:.78rem;font-weight:700;flex-wrap:wrap;justify-content:flex-end}
footer small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.14);padding-top:1.3rem;color:#829aa6}
footer small a{color:var(--acqua);font-weight:800}
.whatsapp{position:fixed;z-index:70;right:22px;bottom:22px;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#20b866;color:#fff;font-weight:900;font-size:.72rem;box-shadow:0 10px 28px rgba(0,0,0,.2)}

dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none}
dialog::backdrop{background:rgba(7,34,47,.9);backdrop-filter:blur(4px)}
.room-dialog{width:auto;max-width:none}
.dialog-shell{position:relative;width:calc(100vw - 56px);max-width:1480px;height:min(830px,calc(100svh - 56px));display:grid;grid-template-columns:minmax(0,1.7fr) minmax(420px,.9fr);background:#fff;overflow:hidden;box-shadow:0 30px 90px rgba(3,25,31,.4)}
.dialog-close{position:absolute;z-index:12;right:14px;top:14px;width:45px;height:45px;border:0;border-radius:50%;background:var(--corallo);color:#fff;font-size:1.45rem;line-height:1}
.dialog-media{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 94px;background:#0c3144}
.dialog-media>img{width:100%;height:100%;min-height:0;object-fit:contain}
.photo-arrow{position:absolute;z-index:8;top:44%;width:48px;height:48px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(12,49,68,.72);color:#fff;font-size:1.6rem}
.photo-arrow.prev{left:16px}.photo-arrow.next{right:16px}
.photo-counter{position:absolute;z-index:8;right:16px;bottom:110px;background:rgba(12,49,68,.75);color:#fff;padding:.4rem .7rem;font-size:.67rem;font-weight:800}
.room-thumbs{display:flex;gap:7px;overflow-x:auto;padding:10px;background:#0c3144;scrollbar-color:var(--corallo) transparent}
.room-thumbs button{flex:0 0 88px;border:2px solid transparent;padding:0;background:none;opacity:.55}.room-thumbs button.active{border-color:var(--sole);opacity:1}
.room-thumbs img{width:100%;height:65px;object-fit:cover}
.dialog-copy{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto;background:var(--casa);padding:clamp(2rem,3vw,3.2rem)}
.dialog-copy .kicker{padding-right:3rem}.dialog-copy h2{font-size:clamp(2.7rem,3.6vw,4rem);margin-bottom:1rem}.dialog-copy>p:not(.kicker){color:#526e7c}
.dialog-copy ul{list-style:none;padding:0;margin:1rem 0 1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;border-top:1px solid var(--linea)}
.dialog-copy li{border-bottom:1px solid var(--linea);padding:.65rem 0;font-size:.79rem}.dialog-copy li::before{content:"—";color:var(--corallo);margin-right:.45rem}
.dialog-copy .button{margin-top:auto}
.gallery-dialog{width:min(1380px,96vw);height:min(900px,94vh);background:#0c3144}
.gallery-stage{position:relative;width:100%;height:100%;display:grid;place-items:center}
.gallery-stage>img{width:100%;height:100%;object-fit:contain}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:3rem 2rem 1.3rem;color:#fff;background:linear-gradient(transparent,rgba(5,26,37,.92));display:flex;justify-content:space-between;align-items:end}
.gallery-caption h2{font-size:clamp(1.7rem,3vw,3rem);margin:0}.gallery-caption span{font-size:.7rem;font-weight:800}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}

@media(max-width:1080px){
  .site-nav{grid-template-columns:1fr auto auto;gap:1rem}.nav-links{position:absolute;top:86px;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;padding:1.5rem 5vw;background:var(--casa);box-shadow:0 14px 36px rgba(23,56,76,.12)}.nav-links.open{display:flex}.site-nav.scrolled .nav-links{top:72px}.menu-toggle{display:block}.nav-button{display:none}
  .hero-copy{width:min(880px,82vw)}.hero-facts span{min-width:125px}
  .hospitality,.care,.story,.reviews,.contact{gap:3.5rem}.comfort-grid{grid-template-columns:repeat(2,1fr)}
  .dialog-shell{width:calc(100vw - 30px);grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)}
}

@media(max-width:760px){
  body{font-size:15px}.section{padding:4.8rem 20px}html{scroll-padding-top:72px}
  .site-nav{height:72px;padding:0 14px}.brand img{width:150px;height:56px}.languages button{padding:.45rem}.nav-links{top:72px;padding:1.4rem 20px}
  .hero{height:820px;min-height:0}.hero-photo{object-position:58% center}.hero-shade{background:linear-gradient(0deg,rgba(7,39,55,.88) 0%,rgba(7,39,55,.36) 54%,rgba(7,39,55,.05) 78%)}
  .hero-copy{left:20px;right:20px;top:auto;bottom:142px;transform:none;width:auto}.hero-copy h1{font-size:clamp(2.25rem,10.3vw,3.2rem);line-height:.97;letter-spacing:-.05em;margin-bottom:1.45rem}.hero-actions{gap:.7rem}.hero-actions .button{min-height:46px;padding:.72rem .9rem;font-size:.8rem}
  .hero-facts{left:20px;right:20px;bottom:20px}.hero-facts span{min-width:0;flex:1;padding:.75rem .55rem}.hero-facts b{font-size:1.1rem}.hero-facts i{font-size:.46rem}.brand-flow{height:42px}.brand-flow i{height:20px}.brand-flow i:nth-child(2){top:10px}.brand-flow i:nth-child(3){top:20px}
  .hospitality,.care,.story,.reviews,.contact{grid-template-columns:1fr}.hospitality{gap:3rem}.hospitality-photo{padding:0 0 2rem 1.4rem}.hospitality-photo img{height:520px}.hospitality-photo figcaption{left:0}
  .section-heading{display:block}.section-heading>p{margin-top:1.4rem}.room-grid{grid-template-columns:1fr}.room-card.featured,.room-card.featured.reverse{grid-column:auto;display:block}.room-card.featured.reverse .room-image,.room-card.featured.reverse .room-body{order:initial}.room-card.featured .room-image{min-height:0;aspect-ratio:4/3}
  .care{padding-top:5.5rem}.care-copy{grid-template-columns:1fr;gap:2rem;padding-top:1rem}.care-mark{top:-72px;transform:scale(.8);transform-origin:right top}.story{gap:4rem}.story-portrait{margin:0 1rem 1.2rem}.story-photo-frame img{height:auto;aspect-ratio:4/5}.story-portrait>span{right:-.5rem;bottom:-2.2rem;max-width:250px}.story-preview h2{font-size:clamp(3.8rem,19vw,5.4rem)}.details-heading{grid-template-columns:1fr;gap:1.2rem}.details-heading .kicker{grid-column:auto;margin-bottom:0}.details-heading>p:last-child{margin:0}.detail-mosaic{grid-template-columns:1fr;grid-auto-rows:auto;gap:1.25rem}.detail-item:nth-child(n){grid-column:auto;grid-row:auto}.detail-item img{height:auto;aspect-ratio:4/3;object-fit:cover}.detail-item:first-child img{aspect-ratio:4/5}.detail-item figcaption{position:static;padding:1rem 1.1rem}.comfort-grid{grid-template-columns:1fr}.comfort-grid article{min-height:190px}.comfort-grid h3{margin-top:1.5rem}
  .place-grid{display:block}.place-card,.place-card:nth-child(n){min-height:360px;margin-bottom:1rem}.sea-quote{min-height:620px}.sea-quote blockquote{left:20px;right:20px}.sea-quote::after{background:linear-gradient(0deg,rgba(11,48,66,.78),rgba(11,48,66,.1) 80%)}
  .reviews-title{position:static}.review-stack blockquote:nth-child(2){transform:none}.form-grid{grid-template-columns:1fr}
  footer{display:block;text-align:center;padding:3rem 20px}footer img{margin:0 auto 1rem}footer p{margin:0 auto 1.5rem}footer>div{justify-content:center;flex-wrap:wrap}footer small{display:block;margin-top:1.5rem}.whatsapp{right:14px;bottom:14px;width:52px;height:52px;opacity:0;transform:scale(.75);pointer-events:none;transition:opacity .2s,transform .2s}body.has-scrolled .whatsapp{opacity:1;transform:scale(1);pointer-events:auto}
  .story-narrative{max-width:none}.story-quote{margin-top:1.7rem}.dialog-shell{width:100vw;height:100svh;max-height:none;display:block;overflow:auto}.dialog-media{height:53svh;grid-template-rows:minmax(0,1fr) 74px}.dialog-copy{min-height:47svh;padding:1.5rem}.dialog-copy h2{font-size:2.7rem}.dialog-copy ul{grid-template-columns:1fr}.photo-counter{bottom:88px}.room-thumbs button{flex-basis:76px}.room-thumbs img{height:53px}.room-dialog,.gallery-dialog{margin:0}.gallery-dialog{width:100vw;height:100svh}.gallery-caption{padding:3rem 1rem 1rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
