/* Fonts are self-hosted (Fontsource, SIL OFL) so no request reaches Google Fonts. */
@font-face { font-family:'Inter'; font-style:normal; font-weight:300 700; font-display:swap; src:url('fonts/inter-latin-ext-wght-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:300 700; font-display:swap; src:url('fonts/inter-latin-wght-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:300 700; font-display:swap; src:url('fonts/cormorant-garamond-latin-ext-wght-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:300 700; font-display:swap; src:url('fonts/cormorant-garamond-latin-wght-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root { --ink:#23211f; --paper:#f6f0e8; --earth:#8a6d57; --olive:#68725a; --sand:#e8d6c1; --line:rgba(35,33,31,.11); --white:#fff; --surface:rgba(255,255,255,.72); --shadow:0 18px 40px rgba(35,33,31,.09); --lift:0 26px 65px rgba(35,33,31,.15); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { min-width:320px; margin:0; overflow-x:hidden; color:var(--ink); background:radial-gradient(circle at top left,rgba(232,214,193,.56),transparent 28%),radial-gradient(circle at bottom right,rgba(104,114,90,.1),transparent 32%),var(--paper); font:15px/1.6 Inter,ui-sans-serif,system-ui,sans-serif; text-rendering:optimizeLegibility; }
body::before { position:fixed; z-index:-2; inset:0; content:""; pointer-events:none; opacity:.55; background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 32%),radial-gradient(circle at 20% 20%,rgba(104,114,90,.08),transparent 20%),radial-gradient(circle at 80% 12%,rgba(138,109,87,.08),transparent 16%); }
::selection { background:rgba(104,114,90,.22); }
img { display:block; max-width:100%; } a { color:inherit; text-underline-offset:3px; } button,input,select,textarea { font:inherit; } button { cursor:pointer; }
h1,h2,h3,p,figure,blockquote,dl,dd { margin:0; } h1,h2,h3,.brand strong,.site-footer strong { font-family:"Cormorant Garamond",Georgia,serif; line-height:.96; } h1 { max-width:1000px; font-size:clamp(3.2rem,7vw,5.7rem); font-weight:600; letter-spacing:-.04em; } h2 { font-size:clamp(2.25rem,4.8vw,3.7rem); font-weight:600; letter-spacing:-.035em; } h3 { font-size:1.85rem; font-weight:600; letter-spacing:-.025em; }
.shell { width:min(100% - 32px,1400px); margin:auto; }.section { padding:clamp(4.5rem,9vw,7.5rem) 0; }.section-divider::after { display:block; width:min(16rem,36vw); height:1px; margin:2.3rem auto 0 0; content:""; background:linear-gradient(90deg,transparent,rgba(35,33,31,.18),transparent); }.sand-section { background:rgba(239,228,214,.8); }.page-intro { min-height:65vh; }.page-intro .section-heading { max-width:880px; }
.site-progress { position:fixed; z-index:200; top:0; left:0; width:100%; height:3px; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,var(--earth),var(--olive),var(--sand)); }.site-aura { position:fixed; z-index:-1; pointer-events:none; border-radius:50%; filter:blur(90px); opacity:.32; }.site-aura-one { top:19vh; left:8vw; width:18rem; height:18rem; background:var(--olive); }.site-aura-two { top:30vh; right:8vw; width:22rem; height:22rem; background:var(--earth); }
.site-header { position:sticky; z-index:80; top:0; border-bottom:1px solid rgba(255,255,255,.5); background:rgba(246,240,232,.76); backdrop-filter:blur(20px); }.nav-wrap { display:flex; min-height:80px; align-items:center; justify-content:space-between; gap:18px; }.brand { display:flex; min-width:max-content; align-items:center; gap:12px; text-decoration:none; }.brand-mark { display:grid; width:45px; height:45px; overflow:hidden; place-items:center; border-radius:1rem; background:#fff; box-shadow:var(--shadow); }.brand-mark img { width:100%; height:100%; object-fit:cover; }.brand>span:last-child { display:grid; gap:4px; }.brand strong { font-size:1.35rem; }.brand small { max-width:170px; overflow:hidden; color:var(--earth); font-size:9px; font-weight:600; letter-spacing:.17em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }.main-nav,.nav-actions { display:flex; align-items:center; gap:clamp(13px,1.7vw,28px); }.main-nav>a { color:rgba(35,33,31,.75); font-size:.84rem; text-decoration:none; transition:color .25s,transform .25s; }.main-nav>a:hover,.main-nav>a.active { color:var(--ink); transform:translateY(-1px); }.nav-actions { gap:10px; }.language-menu { position:relative; display:flex; align-items:center; gap:7px; }.language-menu-label { color:var(--earth); font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }.language-menu-trigger { display:flex; min-width:142px; min-height:38px; align-items:center; justify-content:space-between; gap:8px; border:1px solid rgba(35,33,31,.16); border-radius:999px; padding:5px 10px 5px 6px; color:var(--ink); background:rgba(255,255,255,.82); box-shadow:0 4px 12px rgba(35,33,31,.05); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; transition:border-color .25s,background .25s,box-shadow .25s; }.language-menu-trigger:hover,.language-menu.is-open .language-menu-trigger { border-color:rgba(126,104,82,.45); background:#fff; box-shadow:0 9px 20px rgba(35,33,31,.09); }.language-menu-code { display:grid; width:25px; height:25px; flex:0 0 auto; place-items:center; border-radius:50%; color:var(--paper); background:var(--ink); font-size:9px; letter-spacing:.06em; }.language-menu-current { flex:1; text-align:left; }.language-menu-chevron { width:15px; height:15px; color:rgba(35,33,31,.55); transition:transform .25s ease; }.language-menu.is-open .language-menu-chevron { transform:rotate(180deg); }.language-menu-popover { position:absolute; z-index:190; top:calc(100% + 10px); right:0; display:grid; width:190px; gap:4px; border:1px solid rgba(35,33,31,.12); border-radius:1.35rem; padding:9px; background:rgba(250,247,240,.98); box-shadow:0 22px 42px rgba(35,33,31,.16); opacity:0; visibility:hidden; transform:translateY(-7px) scale(.985); transition:opacity .2s ease,transform .2s ease,visibility .2s; backdrop-filter:blur(18px); }.language-menu.is-open .language-menu-popover { opacity:1; visibility:visible; transform:none; }.language-menu-option { display:flex; width:100%; align-items:center; justify-content:space-between; border:0; border-radius:1rem; padding:11px 12px; color:rgba(35,33,31,.76); background:transparent; font-size:.86rem; text-align:left; transition:color .2s,background .2s,transform .2s; }.language-menu-option small { color:var(--earth); font-size:9px; font-weight:700; letter-spacing:.17em; }.language-menu-option:hover { color:var(--ink); background:#f3ebdf; transform:translateX(2px); }.language-menu-option.is-current { color:var(--paper); background:var(--ink); box-shadow:0 7px 14px rgba(35,33,31,.14); }.language-menu-option.is-current small { color:rgba(246,240,232,.7); }.language-menu-mobile { display:none; }.phone-link { color:rgba(35,33,31,.72); font-size:.8rem; text-decoration:none; }.nav-cta,.button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; border:1px solid transparent; border-radius:999px; padding:10px 19px; font-size:.85rem; font-weight:600; text-decoration:none; transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,background .3s; }.nav-cta,.button-dark { color:var(--paper); background:var(--ink); box-shadow:var(--shadow); }.nav-cta:hover,.button:hover { transform:translateY(-3px); box-shadow:0 20px 34px rgba(35,33,31,.17); }.button-olive { color:var(--paper); background:var(--olive); box-shadow:var(--shadow); }.button-light { border-color:rgba(35,33,31,.28); color:var(--ink); background:rgba(255,255,255,.72); }.button-white { color:var(--ink); background:#fff; }.text-link { display:inline-block; color:var(--olive); font-size:.82rem; font-weight:600; text-decoration:none; }.text-link:hover { text-decoration:underline; }.menu-toggle { display:none; border:1px solid rgba(35,33,31,.24); border-radius:999px; padding:8px 14px; color:var(--ink); background:rgba(255,255,255,.85); }
.home-hero { position:relative; overflow:hidden; background:linear-gradient(135deg,#f2e7d9,#f7f1e9 52%,#ebe0d1); }.noise { position:absolute; inset:0; opacity:.2; background-image:radial-gradient(circle at 1px 1px,rgba(35,33,31,.09) 1px,transparent 0); background-size:22px 22px; }.home-hero-grid { position:relative; display:grid; min-height:720px; grid-template-columns:1.02fr .98fr; align-items:center; gap:clamp(3rem,7vw,7.5rem); padding:clamp(4rem,8vw,7.5rem) 0; }.motto-pill { display:inline-flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.7); border-radius:999px; padding:9px 15px; color:var(--earth); background:rgba(255,255,255,.48); font-size:10px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; backdrop-filter:blur(10px); }.motto-pill i { width:6px; height:6px; border-radius:50%; background:var(--olive); }.hero-copy h1 { margin-top:25px; }.hero-lead,.detail-lead { max-width:650px; margin-top:25px; color:rgba(35,33,31,.76); font-size:clamp(1rem,1.7vw,1.22rem); line-height:1.75; }.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-top:38px; }.stat-card { min-height:114px; border:1px solid rgba(255,255,255,.62); border-radius:1.4rem; padding:20px; background:rgba(255,255,255,.67); box-shadow:var(--shadow); backdrop-filter:blur(12px); transition:transform .5s,box-shadow .5s; }.stat-card:hover { transform:translateY(-7px); box-shadow:var(--lift); }.stat-card strong { display:block; font:600 2rem "Cormorant Garamond",Georgia,serif; }.stat-card span,.dark-stat-grid small { display:block; margin-top:6px; color:rgba(35,33,31,.6); font-size:9px; letter-spacing:.16em; text-transform:uppercase; }.highlight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:24px; border:1px solid rgba(255,255,255,.65); border-radius:1.6rem; padding:12px; background:rgba(255,255,255,.52); box-shadow:var(--shadow); backdrop-filter:blur(12px); }.highlight-grid article { border-radius:1rem; padding:15px; background:rgba(246,240,232,.58); }.highlight-grid strong { font-size:.82rem; }.highlight-grid p { margin-top:7px; color:rgba(35,33,31,.68); font-size:.75rem; line-height:1.6; }.hero-visual { position:relative; }.hero-visual::before { position:absolute; top:-25px; left:-25px; width:120px; height:120px; border:1px solid rgba(255,255,255,.72); border-radius:50%; content:""; background:rgba(255,255,255,.42); }.image-frame { position:relative; overflow:hidden; border-radius:1.9rem; background:var(--sand); box-shadow:var(--shadow); }.image-frame::before { position:absolute; z-index:1; inset:0; content:""; pointer-events:none; background:linear-gradient(to top,rgba(0,0,0,.13),transparent 55%),radial-gradient(circle at top left,rgba(255,255,255,.26),transparent 38%); }.image-frame img { width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }.image-frame:hover img { transform:scale(1.045); }.hero-frame { aspect-ratio:4/5; border-radius:2rem; box-shadow:var(--lift); }
.section-heading { max-width:780px; }.section-heading>p,.eyebrow,.gallery-heading>div>p,.panel-eyebrow,.map-panel>div>p,.privacy-wrap>.eyebrow,.context-card>p,.booking-section>article>p,.booking-section>aside>p,.comparison-panel>p,.story-card>p,.logo-story>p { color:var(--earth); font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }.section-heading h1,.section-heading h2 { margin-top:12px; }.section-heading>span { display:block; max-width:700px; margin-top:15px; color:rgba(35,33,31,.69); font-size:1rem; line-height:1.75; }.property-grid { display:grid; gap:25px; margin-top:42px; }.rich-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.four-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.boutique-card { overflow:hidden; border:1px solid rgba(255,255,255,.58); border-radius:2rem; background:rgba(255,255,255,.82); box-shadow:var(--shadow); backdrop-filter:blur(15px); transition:transform .55s,box-shadow .55s; }.boutique-card:hover { transform:translateY(-8px); box-shadow:var(--lift); }.card-carousel { position:relative; margin:16px 16px 0; overflow:hidden; border-radius:1.8rem; }.card-carousel .image-frame { aspect-ratio:1; border-radius:1.8rem; box-shadow:none; }.carousel-prev,.carousel-next { position:absolute; z-index:4; top:50%; display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(255,255,255,.6); border-radius:50%; color:var(--ink); background:rgba(246,240,232,.65); font-size:26px; line-height:1; opacity:.7; transform:translateY(-50%); transition:opacity .3s,background .3s; backdrop-filter:blur(8px); }.carousel-prev { left:10px; }.carousel-next { right:10px; }.card-carousel:hover button { opacity:1; }.carousel-prev:hover,.carousel-next:hover { background:#fff; }.image-caption { position:absolute; z-index:3; right:15px; bottom:15px; left:15px; border:1px solid rgba(255,255,255,.36); border-radius:1rem; padding:10px 13px; color:#fff; background:rgba(35,33,31,.52); opacity:0; transform:translateY(7px); transition:.4s; backdrop-filter:blur(9px); }.card-carousel:hover .image-caption { opacity:1; transform:none; }.image-caption small { display:block; font-size:8px; letter-spacing:.2em; text-transform:uppercase; opacity:.75; }.image-caption span { font-size:.82rem; font-weight:600; }.property-card-content { display:flex; height:calc(100% - 1rem); flex-direction:column; gap:14px; padding:21px 23px 25px; }.property-card-content h3 { font-size:2rem; }.property-card-content>p:not(.eyebrow) { color:rgba(35,33,31,.7); font-size:.86rem; line-height:1.75; }.rating-strip { display:flex; align-items:center; justify-content:space-between; gap:10px; border-radius:1.2rem; padding:13px 15px; background:rgba(246,240,232,.72); }.rating-strip strong { font-size:.85rem; }.rating-strip span { color:var(--earth); font-size:9px; font-weight:600; letter-spacing:.16em; text-align:right; text-transform:uppercase; }.badges { display:flex; flex-wrap:wrap; gap:7px; }.badges span,.badge-overlay span { border:1px solid rgba(35,33,31,.15); border-radius:999px; padding:5px 9px; color:rgba(35,33,31,.73); background:rgba(246,240,232,.85); font-size:10px; }.card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px 11px; margin-top:auto; }.card-actions .button { min-height:40px; padding:8px 13px; font-size:.75rem; }
.two-col,.home-bottom-grid,.review-layout,.verona-layout,.about-layout,.contact-layout,.property-top,.detail-columns,.booking-section { display:grid; gap:clamp(28px,5vw,72px); }.two-col { grid-template-columns:.82fr 1.18fr; align-items:start; }.amenities-panel { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; border:1px solid rgba(255,255,255,.55); border-radius:1.8rem; padding:23px; background:rgba(255,255,255,.54); box-shadow:var(--shadow); backdrop-filter:blur(12px); }.amenities-panel div { border:1px solid rgba(35,33,31,.15); border-radius:1rem; padding:15px; background:rgba(255,255,255,.82); font-size:.82rem; box-shadow:0 6px 12px rgba(35,33,31,.03); }.rotating-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }.rotating-grid article { position:relative; overflow:hidden; border-radius:1.8rem; transition:opacity .7s,transform .7s,filter .7s; }.rotating-grid article:nth-child(1),.rotating-grid article:nth-child(4) { grid-column:span 7; }.rotating-grid article:nth-child(2),.rotating-grid article:nth-child(3) { grid-column:span 5; }.rotating-grid .image-frame { aspect-ratio:16/10; border-radius:1.8rem; }.home-gallery article>div:last-child { position:absolute; right:16px; bottom:16px; left:16px; border:1px solid rgba(255,255,255,.35); border-radius:1.1rem; padding:10px 13px; color:#fff; background:rgba(35,33,31,.55); opacity:0; transform:translateY(8px); transition:.5s; backdrop-filter:blur(10px); }.home-gallery article:hover>div:last-child { opacity:1; transform:none; }.home-gallery small { display:block; font-size:9px; letter-spacing:.18em; text-transform:uppercase; opacity:.75; }.home-gallery strong { display:block; margin-top:2px; font-size:.82rem; }.review-layout { grid-template-columns:.95fr 1.05fr; margin-top:40px; }.reviews-summary { border:1px solid rgba(35,33,31,.1); border-radius:2rem; padding:36px; color:var(--paper); background:var(--ink); box-shadow:var(--shadow); }.reviews-summary>p { color:var(--sand); font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }.reviews-summary>span { display:block; margin-top:20px; color:rgba(246,240,232,.79); font-size:.86rem; line-height:1.75; }.dark-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:26px; }.dark-stat-grid>div { border:1px solid rgba(255,255,255,.12); border-radius:1rem; padding:15px; background:rgba(255,255,255,.06); }.dark-stat-grid strong { font:600 1.7rem "Cormorant Garamond",Georgia,serif; }.dark-stat-grid small { color:rgba(246,240,232,.62); }.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; align-items:start; }.testimonial-grid figure { min-height:190px; border:1px solid rgba(35,33,31,.17); border-radius:1.8rem; padding:24px; background:#fff; box-shadow:var(--shadow); }.testimonial-grid blockquote { color:rgba(35,33,31,.8); font-size:.88rem; line-height:1.8; }.testimonial-grid figcaption { margin-top:20px; color:var(--earth); font-size:.78rem; font-weight:600; }.home-bottom-grid { grid-template-columns:1fr .92fr; }.experience-grid { display:grid; gap:14px; }.compact-grid { grid-template-columns:repeat(2,1fr); margin-top:28px; }.experience-grid article,.why-us-list article { border:1px solid rgba(255,255,255,.6); border-radius:1.6rem; padding:23px; background:rgba(255,255,255,.77); box-shadow:var(--shadow); }.experience-grid h3,.experience-grid h2,.why-us-list h3 { font-size:1.55rem; }.experience-grid p,.why-us-list p { margin-top:10px; color:rgba(35,33,31,.68); font-size:.81rem; line-height:1.75; }.experience-grid a,.why-us-list a { display:inline-block; margin-top:15px; color:var(--olive); font-size:.8rem; font-weight:600; text-decoration:none; }.why-us-list { display:grid; gap:12px; margin-top:28px; }.final-contact { padding-top:0; }.final-contact-card { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; border:1px solid rgba(255,255,255,.6); border-radius:2rem; padding:clamp(28px,5vw,52px); background:rgba(255,255,255,.7); box-shadow:var(--shadow); backdrop-filter:blur(13px); }.final-actions { display:flex; flex-direction:column; justify-content:center; gap:13px; }
.comparison-panel { margin-top:64px; border:1px solid rgba(255,255,255,.6); border-radius:2rem; padding:clamp(25px,5vw,45px); background:rgba(255,255,255,.72); box-shadow:var(--shadow); }.comparison-panel h2 { margin-top:10px; }.comparison-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-top:30px; }.comparison-grid article { border:1px solid rgba(35,33,31,.12); border-radius:1.5rem; padding:20px; background:rgba(248,243,235,.9); }.comparison-grid small { color:var(--earth); font-size:9px; letter-spacing:.2em; text-transform:uppercase; }.comparison-grid h3 { margin-top:8px; font-size:1.7rem; }.comparison-grid>article>p { min-height:50px; margin-top:12px; color:rgba(35,33,31,.68); font-size:.75rem; }.comparison-grid dl,.context-card dl,.booking-section aside dl { display:grid; gap:13px; margin-top:17px; }.comparison-grid dl div,.context-card dl div,.booking-section aside dl div { border-radius:1rem; padding:12px; background:rgba(255,255,255,.75); }.comparison-grid dt,.context-card dt,.booking-section dt,.info-card-grid small { color:var(--earth); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }.comparison-grid dd,.context-card dd,.booking-section dd { margin:6px 0 0; color:rgba(35,33,31,.72); font-size:.75rem; line-height:1.6; }
.property-detail { display:grid; gap:70px; }.property-top { grid-template-columns:1.02fr .98fr; align-items:start; }.property-copy h1 { margin-top:12px; }.detail-note,.address-line { max-width:650px; margin-top:15px; color:rgba(35,33,31,.66); font-size:.84rem; line-height:1.75; }.property-copy .rating-strip { max-width:650px; margin-top:20px; border:1px solid rgba(255,255,255,.6); box-shadow:var(--shadow); }.info-card-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:25px; }.info-card-grid article { border:1px solid rgba(255,255,255,.62); border-radius:1.3rem; padding:14px; background:rgba(255,255,255,.62); box-shadow:var(--shadow); }.info-card-grid p { margin-top:7px; color:rgba(35,33,31,.7); font-size:.75rem; line-height:1.6; }.property-image-wrap { position:relative; padding-bottom:30px; }.tall-frame { aspect-ratio:4/5; box-shadow:var(--lift); }.badge-overlay { position:absolute; right:25px; bottom:0; left:25px; border:1px solid rgba(255,255,255,.62); border-radius:1.5rem; padding:18px; background:rgba(255,255,255,.82); box-shadow:var(--shadow); backdrop-filter:blur(12px); }.badge-overlay small { color:var(--earth); font-size:9px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }.badge-overlay>div { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.dynamic-gallery-section { display:grid; gap:25px; }.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; }.gallery-heading h2 { margin-top:8px; }.gallery-heading>span { max-width:480px; color:rgba(35,33,31,.67); font-size:.82rem; line-height:1.7; }.detail-columns { grid-template-columns:1fr .78fr; align-items:start; }.amenity-detail { border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:clamp(24px,4vw,40px); background:rgba(239,228,214,.8); box-shadow:var(--shadow); }.amenity-detail .amenities-panel { grid-template-columns:repeat(2,1fr); margin-top:28px; }.context-card { border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:30px; background:rgba(255,255,255,.75); box-shadow:var(--shadow); }.context-card dl { margin-top:23px; }.context-card dl div { border-radius:0; border-bottom:1px solid var(--line); padding:0 0 14px; background:none; }.context-card dl div:last-child { border:0; padding-bottom:0; }.booking-section { grid-template-columns:1fr .78fr; }.booking-section>article { border-radius:2rem; padding:clamp(28px,5vw,45px); color:var(--paper); background:var(--ink); box-shadow:var(--shadow); }.booking-section>article>p { color:var(--sand); }.booking-section h2 { margin-top:18px; }.booking-section>article>span { display:block; max-width:680px; margin-top:16px; color:rgba(246,240,232,.78); line-height:1.75; }.booking-section .button-light { border-color:rgba(255,255,255,.65); color:#fff; background:transparent; }.booking-section aside { border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:28px; background:rgba(255,255,255,.75); box-shadow:var(--shadow); }.mobile-book-bar { display:none; }
.verona-layout { grid-template-columns:.92fr 1.08fr; }.verona-image { aspect-ratio:4/3; margin-top:28px; }.verona-layout .experience-grid article { background:#fff; }.about-layout { grid-template-columns:.92fr 1.08fr; }.story-card,.logo-story { border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:30px; background:rgba(255,255,255,.75); box-shadow:var(--shadow); }.story-card { margin-top:26px; }.story-card>div { display:grid; gap:15px; margin-top:20px; color:rgba(35,33,31,.72); line-height:1.85; }.logo-story { margin-top:16px; color:var(--paper); background:var(--ink); }.logo-story>p { color:var(--sand); }.logo-story>span { display:block; margin-top:15px; color:rgba(246,240,232,.78); line-height:1.75; }.about-media { display:grid; gap:15px; }.video-frame { position:relative; overflow:hidden; aspect-ratio:16/9; border-radius:2rem; box-shadow:var(--shadow); }.video-frame iframe { position:absolute; width:100%; height:100%; border:0; }.friends-image { aspect-ratio:1.25/1; }
.contact-layout { grid-template-columns:.86fr 1.14fr; align-items:start; }.contact-left,.contact-right { display:grid; gap:26px; }.contact-panel,.availability-panel,.map-panel { overflow:hidden; border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:26px; background:rgba(255,255,255,.8); box-shadow:var(--shadow); backdrop-filter:blur(14px); }.contact-panel h2,.availability-head h2 { margin-top:10px; font-size:2.2rem; }.contact-form,.availability-form { display:grid; gap:14px; margin-top:22px; } label { display:grid; gap:7px; color:var(--earth); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; } label small { color:rgba(35,33,31,.55); font-weight:500; } input,select,textarea { width:100%; border:1px solid rgba(35,33,31,.18); border-radius:1rem; padding:12px 14px; color:var(--ink); background:rgba(246,240,232,.67); font-size:.88rem; font-weight:400; letter-spacing:normal; outline:none; text-transform:none; transition:border .2s,background .2s,box-shadow .2s; } input:focus,select:focus,textarea:focus { border-color:var(--olive); background:#fff; box-shadow:0 0 0 3px rgba(104,114,90,.13); } textarea { min-height:150px; resize:vertical; }.direct-contact { margin-top:19px; color:rgba(35,33,31,.63); font-size:.78rem; }.direct-contact a { color:var(--olive); font-weight:600; }.form-success,.form-error,.availability-message { margin-top:15px; border-radius:1rem; padding:12px 14px; font-size:.82rem; }.form-success,.availability-message.success { border:1px solid #b4d6bb; color:#246237; background:#eff9f0; }.form-error,.availability-message.error { border:1px solid #edbdba; color:#943d35; background:#fff2f0; }
.admin-cron-ok { margin-top:15px; color:#246237; font-size:.8rem; }.availability-message.loading { border:1px solid #e8d5a9; color:#7c5b1d; background:#fff8e7; }.map-panel { padding:0; }.map-panel>div:first-child { padding:22px 25px 16px; }.map-panel>div:first-child span { display:block; margin-top:7px; color:rgba(35,33,31,.67); font-size:.78rem; line-height:1.65; }.map-frame { height:330px; overflow:hidden; }.map-frame iframe { width:100%; height:100%; border:0; filter:saturate(.67) sepia(.1); }.map-links { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; padding:16px; }.map-links a { border:1px solid var(--line); border-radius:1rem; padding:10px; background:rgba(248,243,235,.85); text-decoration:none; }.map-links small,.map-links strong,.map-links span { display:block; }.map-links small { color:var(--earth); font-size:8px; letter-spacing:.16em; text-transform:uppercase; }.map-links strong { margin-top:3px; font-size:.75rem; }.map-links span { margin-top:5px; color:var(--olive); font-size:.7rem; font-weight:600; }.availability-panel { padding:0; }.availability-head { border-bottom:1px solid var(--line); padding:25px 27px; background:linear-gradient(to bottom,rgba(255,255,255,.96),#f8f2e9); }.availability-head>p { color:var(--earth); font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }.availability-head>span { display:block; max-width:580px; margin-top:12px; color:rgba(35,33,31,.67); font-size:.82rem; line-height:1.65; }.availability-form { padding:25px 27px; margin:0; }.range-picker { display:grid; gap:9px; }.range-picker>input[type=date] { display:none; }.calendar-shell { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.calendar-month { overflow:hidden; border:1px solid var(--line); border-radius:1.35rem; padding:12px; background:rgba(255,255,255,.78); box-shadow:0 10px 23px rgba(35,33,31,.04); }.calendar-month-head { display:flex; align-items:center; justify-content:space-between; min-height:32px; padding:0 2px 8px; }.calendar-month-title { font:600 1.35rem "Cormorant Garamond",Georgia,serif; }.calendar-nav { display:flex; gap:5px; }.calendar-nav button { width:27px; height:27px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:#fff; }.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }.calendar-weekday { padding:4px 0; color:rgba(35,33,31,.5); font-size:8px; font-weight:700; letter-spacing:.08em; text-align:center; }.calendar-day { min-width:0; min-height:33px; border:1px solid transparent; border-radius:.65rem; color:var(--ink); background:rgba(255,255,255,.78); font-size:.74rem; transition:.2s; }.calendar-day:not([disabled]):hover { background:#fff; box-shadow:0 6px 12px rgba(35,33,31,.1); transform:translateY(-1px); }.calendar-day[disabled] { color:rgba(35,33,31,.27); background:transparent; cursor:not-allowed; }.calendar-day.is-start,.calendar-day.is-end { color:var(--paper); background:var(--ink); box-shadow:0 8px 15px rgba(35,33,31,.18); }.calendar-day.is-between { border-radius:.5rem; background:rgba(104,114,90,.17); }.calendar-summary { grid-column:1/-1; border-radius:1rem; padding:10px 12px; color:rgba(35,33,31,.69); background:#f7f1e8; font-size:.77rem; }.availability-result { padding:0 27px 27px; }.availability-list { display:grid; gap:11px; }.availability-card { display:grid; grid-template-columns:1fr auto; gap:5px 13px; border:1px solid var(--line); border-radius:1.35rem; padding:17px; background:rgba(255,255,255,.86); box-shadow:0 11px 24px rgba(35,33,31,.04); }.availability-card>strong { font-size:.9rem; }.availability-card>span { align-self:start; border:1px solid transparent; border-radius:999px; padding:3px 8px; font-size:9px; font-weight:700; }.availability-card.available>span { border-color:#b5d9bd; color:#276a3b; background:#eaf7ed; }.availability-card.unavailable>span { border-color:#f0c2be; color:#9b423a; background:#fff0ef; }.availability-card.unverifiable>span { border-color:#ead8ad; color:#806421; background:#fff8e7; }
.availability-card.booking>span { border-color:#bcd0e6; color:#1d4f86; background:#eef4fb; }.availability-card p,.availability-card .result-actions { grid-column:1/-1; margin-top:4px; color:rgba(35,33,31,.65); font-size:.78rem; }.result-actions { display:flex; flex-wrap:wrap; gap:9px; }.result-actions .button { min-height:38px; padding:8px 13px; font-size:.73rem; }.contact-note,.booking-note { border-radius:2rem; padding:24px; box-shadow:var(--shadow); }.contact-note { border:1px solid rgba(255,255,255,.62); color:rgba(35,33,31,.72); background:#f8f3eb; line-height:1.75; }.booking-note { color:var(--paper); background:var(--ink); }.booking-note p { color:var(--sand); font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }.booking-note span { display:block; margin-top:12px; color:rgba(246,240,232,.78); font-size:.82rem; line-height:1.75; }.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.privacy-wrap { max-width:860px; }.privacy-wrap h1 { margin-top:10px; font-size:clamp(3rem,6vw,4.5rem); }.privacy-wrap>small { display:block; margin-top:10px; color:rgba(35,33,31,.48); }.privacy-intro { margin-top:32px; color:rgba(35,33,31,.74); font-size:1rem; line-height:1.8; }.privacy-sections { display:grid; gap:18px; margin-top:40px; }.privacy-sections article { border:1px solid rgba(255,255,255,.6); border-radius:1.8rem; padding:25px; background:rgba(255,255,255,.74); box-shadow:var(--shadow); }.privacy-sections h2 { font-size:1.6rem; }.privacy-sections article>div { margin-top:11px; color:rgba(35,33,31,.7); font-size:.83rem; line-height:1.8; }.privacy-sections ul { display:grid; gap:7px; margin:0; padding-left:18px; }.centered-card { max-width:600px; margin:auto; border:1px solid rgba(255,255,255,.6); border-radius:2rem; padding:45px; background:rgba(255,255,255,.75); box-shadow:var(--shadow); text-align:center; }.centered-card p:not(.eyebrow) { margin:15px 0 25px; color:rgba(35,33,31,.65); }
.site-footer { border-top:1px solid rgba(255,255,255,.58); background:rgba(237,227,212,.95); backdrop-filter:blur(10px); }.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding:56px 0; }.site-footer strong { font-size:2rem; }.site-footer p:not(.footer-label):not(.social-links):not(.footer-legal) { max-width:460px; margin-top:12px; color:rgba(35,33,31,.67); font-size:.8rem; line-height:1.75; }.site-footer .cin { color:var(--earth)!important; font-size:9px!important; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }.footer-label { margin-bottom:16px; color:var(--earth); font-size:10px; font-weight:700; letter-spacing:.25em; text-transform:uppercase; }.site-footer a,.site-footer span { display:block; margin-top:9px; color:rgba(35,33,31,.75); font-size:.8rem; text-decoration:none; }.site-footer a:hover { color:var(--ink); text-decoration:underline; }.social-links,.footer-legal { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px!important; }.social-links a,.footer-legal a { display:inline; margin:0; color:var(--olive); }.footer-legal { gap:15px; }.footer-legal button { border:0; padding:0; color:rgba(35,33,31,.6); background:none; font-size:.72rem; text-transform:uppercase; letter-spacing:.15em; }.cookie-banner { position:fixed; z-index:500; right:20px; bottom:20px; left:20px; width:min(760px,calc(100% - 40px)); margin:auto; border:1px solid rgba(255,255,255,.45); border-radius:2rem; padding:22px; background:rgba(250,247,240,.98); box-shadow:0 -8px 40px rgba(35,33,31,.12); backdrop-filter:blur(17px); }.cookie-title { font:600 1.45rem "Cormorant Garamond",Georgia,serif; }.cookie-banner>p:not(.cookie-title) { margin-top:7px; color:rgba(35,33,31,.67); font-size:.79rem; line-height:1.7; }.cookie-details { margin-top:15px; border:1px solid var(--line); border-radius:1rem; padding:13px; background:rgba(255,255,255,.65); color:rgba(35,33,31,.66); font-size:.76rem; }.cookie-details p+p { margin-top:9px; }.cookie-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:17px; }.cookie-actions .button { min-height:39px; padding:8px 13px; font-size:.73rem; }.text-button { border:0; padding:8px; color:var(--earth); background:none; font-size:.73rem; font-weight:600; text-decoration:underline; }
[data-reveal] { opacity:0; filter:blur(8px); transform:translate3d(0,25px,0) scale(.99); transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1),filter .8s ease; }.is-visible { opacity:1!important; filter:none!important; transform:none!important; }.form-flash { animation:form-flash 7.5s ease-in-out; }@keyframes form-flash { 0%,100% { box-shadow:0 0 0 0 rgba(168,162,140,0); } 5%,40% { box-shadow:0 0 0 4px rgba(168,162,140,.4),0 0 20px 2px rgba(168,162,140,.25); } }
.mobile-contact { display:none; }
.login-page { display:grid; min-height:calc(100vh - 150px); place-items:center; padding:50px 16px; }.auth-card { display:grid; width:min(460px,100%); gap:15px; border:1px solid rgba(255,255,255,.62); border-radius:2rem; padding:34px; background:rgba(255,255,255,.8); box-shadow:var(--lift); }.auth-card h1 { font-size:2.6rem; }.admin-page { padding:60px 0 100px; }.admin-head { display:flex; align-items:start; justify-content:space-between; gap:22px; margin-bottom:30px; }.admin-head h1 { margin-top:8px; font-size:3.3rem; }.admin-property { overflow:hidden; margin:22px 0; border:1px solid rgba(255,255,255,.6); border-radius:1.6rem; background:rgba(255,255,255,.8); box-shadow:var(--shadow); }.admin-property h2 { margin:0; padding:20px 24px; font-size:1.85rem; background:rgba(248,242,233,.9); }.feed-row { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(280px,1.25fr); gap:15px 22px; align-items:end; border-top:1px solid var(--line); padding:20px 24px; }.feed-row>form { margin:0; }.feed-row>form .button { min-height:40px; padding:8px 14px; }.feed-row p { margin-top:5px; color:rgba(35,33,31,.58); font-size:.76rem; }.status { display:inline-block; margin:6px 0 0 7px; border-radius:999px; padding:3px 7px; font-size:9px; }.status-ok { color:#276a3b; background:#eaf7ed; }.status-error { color:#9b423a; background:#fff0ef; }.status-pending { color:#806421; background:#fff8e7; }.refresh-form { margin-top:14px; }
@media (max-width:1200px) { .four-grid,.comparison-grid { grid-template-columns:repeat(2,1fr); }.phone-link { display:none; }.nav-actions { gap:7px; }.main-nav { gap:15px; } }
@media (max-width:900px) { h1 { font-size:clamp(3rem,11vw,4.7rem); }.home-hero-grid,.two-col,.home-bottom-grid,.review-layout,.verona-layout,.about-layout,.contact-layout,.property-top,.detail-columns,.booking-section,.final-contact-card { grid-template-columns:1fr; }.home-hero-grid { min-height:auto; }.hero-visual { max-width:650px; margin:auto; }.main-nav { display:none; position:absolute; top:80px; right:16px; left:16px; grid-template-columns:1fr; gap:0; overflow:hidden; border:1px solid rgba(255,255,255,.58); border-radius:1.5rem; padding:9px; background:rgba(246,240,232,.98); box-shadow:var(--lift); }.main-nav.open { display:grid; }.main-nav>a { border-radius:1rem; padding:12px; }.main-nav>a:hover { background:#fff; }.nav-actions { margin-left:auto; }.nav-actions .nav-cta,.nav-actions .phone-link { display:none; }.menu-toggle { display:block; }.rich-grid { grid-template-columns:1fr; }.review-layout { gap:20px; }.testimonial-grid { grid-template-columns:repeat(3,1fr); }.property-image-wrap { max-width:650px; width:100%; margin:auto; }.gallery-heading { display:grid; align-items:start; }.gallery-heading>span { max-width:650px; }.contact-left,.contact-right { gap:20px; }.mobile-book-bar { position:fixed; z-index:150; right:12px; bottom:12px; left:12px; display:grid; grid-template-columns:1fr 1fr; gap:8px; border:1px solid rgba(255,255,255,.6); border-radius:1rem; padding:8px; background:rgba(246,240,232,.93); box-shadow:var(--lift); backdrop-filter:blur(13px); }.mobile-book-bar a { border-radius:.75rem; padding:10px; color:var(--paper); background:var(--ink); font-size:.74rem; font-weight:600; text-align:center; text-decoration:none; }.mobile-book-bar a:last-child { color:var(--ink); background:#fff; }.property-page { padding-bottom:100px; }.footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .shell { width:min(100% - 24px,1400px); }.nav-wrap { min-height:71px; }.brand-mark { width:38px; height:38px; }.brand strong { font-size:1.15rem; }.brand small { max-width:125px; font-size:8px; }.nav-actions { display:none; }.menu-toggle { margin-left:auto; }.main-nav { top:70px; right:12px; left:12px; }.home-hero-grid { gap:35px; padding:55px 0 68px; }.motto-pill { font-size:8px; }.stat-grid,.highlight-grid,.info-card-grid { grid-template-columns:1fr; }.stat-card { min-height:0; }.highlight-grid { gap:7px; }.highlight-grid article { padding:12px; }.hero-frame { aspect-ratio:4/4.6; }.section { padding:64px 0; }.amenities-panel { grid-template-columns:1fr 1fr; padding:14px; }.amenities-panel div { padding:12px; }.rotating-grid { grid-template-columns:1fr; }.rotating-grid article:nth-child(n) { grid-column:auto; }.rotating-grid .image-frame { aspect-ratio:16/10; }.testimonial-grid,.compact-grid,.four-grid,.comparison-grid { grid-template-columns:1fr; }.testimonial-grid figure { min-height:0; }.reviews-summary { padding:26px; }.comparison-panel { margin-top:40px; }.property-detail { gap:46px; }.property-card-content { padding:18px; }.property-card-content h3 { font-size:1.75rem; }.card-actions .button { flex:1; }.calendar-shell { grid-template-columns:1fr; }.calendar-month:nth-child(2) { display:none; }.map-links { grid-template-columns:1fr; }.contact-panel,.availability-head,.availability-form,.availability-result { padding-right:18px; padding-left:18px; }.footer-grid { grid-template-columns:1fr; gap:30px; padding:42px 0; }.cookie-banner { right:12px; bottom:12px; left:12px; width:auto; padding:18px; }.cookie-actions { gap:5px; }.cookie-actions .button { padding:8px 10px; }.site-aura { opacity:.2; } }
@media (max-width:900px) { .language-menu-mobile { display:block; padding:9px 12px; }.language-menu-mobile .language-menu-trigger { width:100%; min-width:0; }.language-menu-mobile .language-menu-popover { position:static; width:100%; max-height:0; margin-top:0; overflow:hidden; border-width:0; padding:0; opacity:0; visibility:hidden; transform:translateY(-5px); transition:max-height .28s ease,margin .28s ease,padding .28s ease,opacity .2s ease,transform .2s ease,visibility .2s; }.language-menu-mobile.is-open .language-menu-popover { max-height:340px; margin-top:9px; border-width:1px; padding:9px; opacity:1; visibility:visible; transform:none; }.mobile-contact { display:block!important; border-radius:1rem; padding:12px; color:var(--paper)!important; background:var(--ink); font-size:.85rem; font-weight:600; text-align:center; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } [data-reveal] { opacity:1; filter:none; transform:none; } }

/* Language selector: values aligned with the original component. */
.language-menu { gap:0; }
.language-menu-trigger { display:inline-flex; width:auto; min-width:0; min-height:0; justify-content:flex-start; gap:8px; border-color:rgba(35,33,31,.15); padding:8px 12px; color:var(--ink); background:rgba(255,255,255,.82); box-shadow:0 4px 12px rgba(35,33,31,.05); font-size:11px; font-weight:500; letter-spacing:.18em; backdrop-filter:blur(10px); }
.language-menu-trigger:hover { border-color:rgba(35,33,31,.15); color:var(--ink); background:rgba(255,255,255,1); box-shadow:0 4px 12px rgba(35,33,31,.05); }
.language-menu.is-open .language-menu-trigger { border-color:rgba(35,33,31,.15); padding:8px 12px; color:var(--ink); background:rgba(255,255,255,.82); box-shadow:0 4px 12px rgba(35,33,31,.05); }
.language-menu-code { width:auto; min-width:0; height:auto; padding:4px 10px; border-radius:999px; font-size:10px; }
.language-menu-current { flex:0 1 auto; color:var(--earth); }
.language-menu-chevron { width:16px; height:16px; margin-left:0; color:rgba(35,33,31,.55); }
.language-menu-popover { width:176px; border-color:rgba(35,33,31,.15); border-radius:1.4rem; padding:8px; background:rgba(246,240,232,.84); box-shadow:0 26px 65px rgba(35,33,31,.15); backdrop-filter:blur(24px); }
.language-menu-popover-label { padding:8px 12px; color:var(--earth); font-size:10px; font-weight:500; letter-spacing:.28em; text-transform:uppercase; }
.language-menu-option { min-height:0; border-radius:1rem; padding:10px 12px; font-size:14px; }
.language-menu-option.is-current { box-shadow:0 18px 40px rgba(35,33,31,.09); }
.room-gallery-stage,.room-gallery-control { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }

/* Contact page: two balanced columns on larger screens. */
@media (min-width:901px) {
  .contact-layout {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "contact-heading contact-form"
      "availability map"
      "availability map"
      "availability map"
      "contact-note map"
      "booking-note map";
    gap:26px;
    align-items:stretch;
  }
  .contact-left,.contact-right { display:contents; }
  .contact-layout .section-heading { grid-area:contact-heading; align-self:start; }
  .contact-layout .contact-panel { grid-area:contact-form; }
  .contact-layout .availability-panel { grid-area:availability; }
  .contact-layout .contact-note { grid-area:contact-note; }
  .contact-layout .booking-note { grid-area:booking-note; }
  .contact-layout .map-panel {
    display:flex;
    grid-area:map;
    min-height:100%;
    flex-direction:column;
  }
  .contact-layout .map-frame { height:auto; min-height:330px; flex:1 1 auto; }
}

/* On phones the same content becomes a deliberate, readable single flow. */
@media (max-width:900px) {
  .contact-layout {
    grid-template-areas:
      "contact-heading"
      "availability"
      "contact-note"
      "booking-note"
      "contact-form"
      "map";
    gap:20px;
  }
  .contact-left,.contact-right { display:contents; }
  .contact-layout .section-heading { grid-area:contact-heading; }
  .contact-layout .contact-panel { grid-area:contact-form; }
  .contact-layout .availability-panel { grid-area:availability; }
  .contact-layout .contact-note { grid-area:contact-note; }
  .contact-layout .booking-note { grid-area:booking-note; }
  .contact-layout .map-panel { grid-area:map; }
}

/* Every localized motto remains complete; longer translations simply wrap. */
.brand { min-width:0; }
.brand>span:last-child { min-width:0; }
.brand small { max-width:220px; overflow:visible; text-overflow:clip; white-space:normal; line-height:1.25; }
@media (max-width:620px) { .brand small { max-width:calc(100vw - 120px); font-size:7px; letter-spacing:.13em; } }

/* Home-gallery crossfades are intentionally slow and understated. */
.home-gallery .image-frame img { transition:opacity 1.15s ease-in-out,transform 1.15s ease-in-out; }

/* The contact DOM is grouped into independent columns after it loads. */
@media (min-width:901px) {
  .contact-layout {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:none;
    gap:26px;
    align-items:start;
  }
  .contact-left,.contact-right { display:grid; gap:26px; align-content:start; }
  .contact-layout .section-heading,
  .contact-layout .contact-panel,
  .contact-layout .availability-panel,
  .contact-layout .contact-note,
  .contact-layout .booking-note,
  .contact-layout .map-panel { grid-area:auto; }
  .contact-layout .map-panel { display:block; min-height:0; }
  .contact-layout .map-frame { height:330px; min-height:0; }
}
@media (max-width:900px) {
  .contact-layout { grid-template-areas:none; gap:20px; }
  .contact-left,.contact-right { display:grid; gap:20px; align-content:start; }
  .contact-layout .section-heading,
  .contact-layout .contact-panel,
  .contact-layout .availability-panel,
  .contact-layout .contact-note,
  .contact-layout .booking-note,
  .contact-layout .map-panel { grid-area:auto; }
}

/* Map panel: static, privacy-safe preview first; the OpenFreeMap vector map loads only after consent.
   MapLibre positions .map-marker with an inline transform, so the marker root must keep its library styles
   (no position/transform rules on .map-marker itself). */
.map-panel>.map-panel-head { padding:22px 25px 16px; }
.map-panel-head span { display:block; margin-top:7px; color:rgba(35,33,31,.67); font-size:.78rem; line-height:1.65; }
.contact-layout .map-stage,.map-stage { position:relative; height:400px; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f3ede5; }
.map-canvas,.map-stage .map-canvas.maplibregl-map { position:absolute; inset:0; width:100%; height:100%; }
.map-placeholder { position:absolute; inset:0; display:grid; place-items:end center; padding:18px; background:
  radial-gradient(circle at 30% 30%,rgba(255,255,255,.75),transparent 55%),
  linear-gradient(rgba(138,109,87,.07) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,rgba(138,109,87,.07) 1px,transparent 1px) 0 0/28px 28px,
  #f3ede5; }
.map-placeholder-pins { position:absolute; inset:0; }
.map-placeholder-pins span { position:absolute; display:grid; width:30px; height:30px; place-items:center; border:2px solid #fff; border-radius:50%; color:#fff; background:var(--earth); font-size:.75rem; font-weight:700; box-shadow:0 6px 14px rgba(35,33,31,.22); transform:translate(-50%,-50%); opacity:.85; }
.map-placeholder-body { position:relative; z-index:1; display:grid; max-width:360px; justify-items:center; gap:8px; border:1px solid rgba(255,255,255,.7); border-radius:1.5rem; padding:16px 20px; background:rgba(255,255,255,.86); box-shadow:var(--shadow); text-align:center; backdrop-filter:blur(10px); }
.map-placeholder-body p { color:rgba(35,33,31,.62); font-size:.72rem; line-height:1.55; }
.map-placeholder-body .map-placeholder-error { color:#9b423a; }
.map-stage.is-map-loading [data-map-activate] { opacity:.6; pointer-events:none; }
.map-stage .maplibregl-ctrl-bottom-right { right:12px; bottom:12px; }
.map-stage .maplibregl-ctrl-group { overflow:hidden; border:1px solid rgba(35,33,31,.12); border-radius:.85rem; box-shadow:0 8px 20px rgba(35,33,31,.14); }
.map-stage .maplibregl-ctrl-group button { width:34px; height:34px; border:0; background:rgba(255,255,255,.96); }
.map-stage .maplibregl-ctrl-group button + button { border-top:1px solid var(--line); }
.map-reset-control svg { display:block; width:18px; height:18px; margin:auto; color:var(--ink); }
.map-stage .maplibregl-ctrl-attrib { font-size:9px; }
.map-stage .maplibregl-cooperative-gesture-screen { background:rgba(35,33,31,.55); font-size:.95rem; }

.map-marker { cursor:pointer; }
.map-marker-pin { position:relative; display:grid; width:38px; height:38px; place-items:center; border:2.5px solid #fff; border-radius:50% 50% 50% 4px; padding:0; color:#fff; background:var(--earth); font-family:inherit; font-size:.85rem; font-weight:700; line-height:1; box-shadow:0 8px 18px rgba(35,33,31,.28); cursor:pointer; transform:rotate(-45deg); transition:background .2s ease,transform .25s cubic-bezier(.22,1,.36,1); }
.map-marker-pin { margin-bottom:8px; }
.map-marker-pin span { display:block; transform:rotate(45deg); }
.map-marker-label { position:absolute; top:calc(100% + 2px); left:50%; transform:translateX(-50%); border-radius:999px; padding:4px 9px; color:var(--ink); background:rgba(255,255,255,.95); font-size:.68rem; font-weight:700; letter-spacing:.06em; white-space:nowrap; box-shadow:0 4px 12px rgba(35,33,31,.16); transition:opacity .2s ease; }
.map-marker.is-active .map-marker-pin,.map-marker.is-hover .map-marker-pin,.map-marker:hover .map-marker-pin { background:var(--ink); transform:rotate(-45deg) scale(1.12); }
.map-marker.is-active { z-index:2; }
.map-stage.is-zoomed-out .map-marker-label { opacity:0; pointer-events:none; }
.map-marker-pin:focus-visible { outline:3px solid rgba(138,109,87,.45); outline-offset:3px; }

.map-popup .maplibregl-popup-content { overflow:hidden; padding:0; border-radius:1.1rem; background:#fff; box-shadow:0 18px 40px rgba(35,33,31,.22); }
.map-popup .maplibregl-popup-close-button { top:6px; right:6px; width:26px; height:26px; border-radius:50%; color:var(--ink); background:rgba(255,255,255,.92); font-size:17px; line-height:1; }
.map-popup-card img { display:block; width:100%; height:96px; object-fit:cover; }
.map-popup-body { display:grid; gap:4px; padding:12px 14px 14px; }
.map-popup-body p { color:var(--earth); font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.map-popup-body strong { font-size:.92rem; }
.map-popup-body span { color:rgba(35,33,31,.64); font-size:.74rem; line-height:1.45; }
.map-popup-links { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
.map-popup-links a { border:1px solid rgba(35,33,31,.2); border-radius:999px; padding:6px 10px; color:var(--ink); font-size:.68rem; font-weight:600; text-decoration:none; }
.map-popup-links a.is-primary { border-color:var(--ink); color:var(--paper); background:var(--ink); }

.map-legend { display:grid; gap:2px; margin:0; padding:10px; list-style:none; }
.map-legend-item { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; border-radius:1.1rem; padding:10px 12px; transition:background .2s ease; }
.map-legend-item.is-interactive { cursor:pointer; }
.map-legend-item.is-interactive:hover,.map-legend-item.is-active { background:rgba(138,109,87,.09); }
.map-legend-item:focus-visible { outline:2px solid rgba(138,109,87,.45); outline-offset:2px; }
.map-legend-num { display:grid; width:26px; height:26px; place-items:center; border-radius:50%; color:#fff; background:var(--earth); font-size:.72rem; font-weight:700; }
.map-legend-item.is-active .map-legend-num { background:var(--ink); }
.map-legend-text { display:grid; min-width:0; gap:2px; }
.map-legend-text strong { font-size:.84rem; }
.map-legend-text small { color:rgba(35,33,31,.6); font-size:.72rem; line-height:1.4; }
.map-legend-links { display:flex; gap:10px; }
.map-legend-links a { color:var(--earth); font-size:.7rem; font-weight:600; text-decoration:none; white-space:nowrap; }
.map-legend-links a:hover { color:var(--ink); text-decoration:underline; }
@media (max-width:620px) {
  .contact-layout .map-stage,.map-stage { height:340px; }
  .map-legend-item { grid-template-columns:auto 1fr; }
  .map-legend-links { grid-column:2; }
}

/* YouTube placeholder until consent. */
.consent-embed { display:grid; place-items:center; background:var(--ink); }
.consent-embed-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.62); }
.consent-embed-body { position:relative; display:grid; max-width:380px; justify-items:center; gap:12px; padding:20px; color:#fff; text-align:center; }
.consent-embed-body p { color:rgba(255,255,255,.88); text-shadow:0 1px 8px rgba(0,0,0,.55); font-size:.72rem; line-height:1.55; }
.consent-embed-play { display:inline-flex; align-items:center; gap:10px; border:0; border-radius:999px; padding:12px 20px 12px 14px; color:var(--ink); background:rgba(255,255,255,.95); font-size:.85rem; font-weight:600; cursor:pointer; box-shadow:0 12px 30px rgba(0,0,0,.25); transition:transform .25s cubic-bezier(.22,1,.36,1); }
.consent-embed-play svg { width:26px; height:26px; border-radius:50%; padding:5px; color:#fff; background:var(--earth); }
.consent-embed-play:hover { transform:scale(1.03); }
.consent-embed-play:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.form-privacy-note { margin-top:2px; color:rgba(35,33,31,.6); font-size:.72rem; line-height:1.5; }
.form-privacy-note a { color:inherit; }

/* Availability stays visually light while each property gets its own clear section. */
.availability-list { gap:22px; }
.availability-property-group { display:grid; gap:13px; border:1px solid rgba(35,33,31,.13); border-radius:1.65rem; padding:17px; background:linear-gradient(135deg,rgba(248,243,235,.96),rgba(255,255,255,.88)); box-shadow:0 12px 28px rgba(35,33,31,.055); }
.availability-property-head { display:flex; align-items:center; min-height:40px; border-bottom:1px solid rgba(35,33,31,.15); padding:1px 3px 12px; }
.availability-property-head::before { width:6px; height:27px; margin-right:11px; border-radius:999px; background:var(--earth); content:""; }
.availability-property-head h3 { margin:0; color:var(--ink); font-family:"Cormorant Garamond",Georgia,serif; font-size:1.55rem; font-weight:500; line-height:1; }
.availability-room-list { display:grid; gap:11px; }
@media (max-width:620px) { .availability-list { gap:18px; } .availability-property-group { border-radius:1.4rem; padding:14px; } .availability-property-head h3 { font-size:1.35rem; } }

/* The desktop card becomes a full-height, non-modal detail drawer over the right column. */
@media (min-width:901px) {
  .room-preview-floating { position:fixed; z-index:450; top:80px; right:0; bottom:0; left:50%; display:grid; align-content:start; border:1px solid rgba(104,114,90,.24); border-right:0; border-bottom:0; border-radius:2rem 0 0; color:var(--ink); background:linear-gradient(145deg,rgba(248,243,235,.99),rgba(255,255,255,.98)); box-shadow:-22px 0 48px rgba(35,33,31,.15); opacity:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; pointer-events:none; scrollbar-color:rgba(143,114,90,.48) transparent; transform:translateX(-34px); transition:opacity .22s ease,transform .42s cubic-bezier(.22,1,.36,1); }
  .room-preview-floating.is-open { opacity:1; pointer-events:auto; transform:translateX(0); }
  .room-preview-floating .room-detail-content { padding:25px 28px 48px; }
}
.room-preview-eyebrow { color:var(--earth); font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.room-preview h4 { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.28rem; font-weight:600; line-height:1.08; }
.room-preview-beds { display:grid; gap:7px; margin:1px 0 0; padding:0; list-style:none; }
.room-preview-beds li { display:flex; align-items:center; gap:8px; color:rgba(35,33,31,.74); font-size:.78rem; }
.room-preview-beds li::before { width:16px; height:10px; border:1.4px solid var(--earth); border-radius:3px 3px 2px 2px; box-shadow:inset 0 -3px 0 rgba(143,114,90,.14); content:""; }
.room-preview-guests { width:max-content; margin-top:2px; border-radius:999px; padding:6px 9px; color:#276a3b; background:#eaf7ed; font-size:.73rem; font-weight:700; }
@media (max-width:900px) { .room-preview { display:none; } }

/* Mobile details stay in flow and open only from their own Info control. */
.room-preview-inline,.room-preview-toggle,.calendar-next-mobile { display:none; }
@media (max-width:900px) { .room-preview-toggle { display:inline-flex; grid-column:1/-1; width:max-content; min-height:32px; align-items:center; justify-content:center; border:1px solid rgba(104,114,90,.38); border-radius:999px; padding:6px 12px; color:var(--olive); background:rgba(255,255,255,.82); font-size:.72rem; font-weight:700; } .room-preview-toggle[aria-expanded="true"] { color:var(--paper); border-color:var(--olive); background:var(--olive); } .room-preview-inline { display:grid; max-height:0; overflow:hidden; align-content:start; gap:11px; box-sizing:border-box; margin:0; border:0 solid transparent; border-radius:1.45rem; padding:0; color:var(--ink); background:transparent; opacity:0; transform:translateY(-8px); transition:max-height .32s ease,margin .32s ease,padding .32s ease,opacity .22s ease,transform .32s ease,border-color .32s ease,background .32s ease; } .room-preview-inline.is-open { max-height:340px; margin-top:1px; border-color:rgba(104,114,90,.28); padding:18px; background:linear-gradient(145deg,#f7f1e8,rgba(255,255,255,.96)); box-shadow:0 13px 25px rgba(35,33,31,.08); opacity:1; transform:none; } }
@media (max-width:620px) { .calendar-next-mobile { display:inline-grid; place-items:center; } }

/* Compact, Booking-inspired detail card for the Teatro apartment. */
.room-preview { gap:0; box-sizing:border-box; padding:0; }
.room-preview-inline { overflow:hidden; }
.room-preview-inline.is-open { max-height:2400px; padding:0; }
.room-detail-media { position:relative; overflow:hidden; aspect-ratio:16/7; background:#ddd3c7; }
.room-detail-main-image { width:100%; height:100%; object-fit:cover; object-position:center; transition:opacity .22s ease,transform .5s ease; }
.room-preview:hover .room-detail-main-image { transform:scale(1.025); }
.room-detail-thumbnails { position:absolute; right:12px; bottom:12px; left:12px; display:flex; gap:6px; overflow:auto hidden; padding:4px; scrollbar-width:none; }
.room-detail-thumbnails::-webkit-scrollbar { display:none; }
.room-detail-photo-count { position:absolute; top:12px; right:12px; border:1px solid rgba(255,255,255,.58); border-radius:999px; padding:6px 9px; color:#fff; background:rgba(35,33,31,.56); box-shadow:0 4px 10px rgba(35,33,31,.16); font-size:.68rem; font-weight:700; backdrop-filter:blur(8px); }
.room-detail-thumb { flex:0 0 auto; width:36px; height:36px; overflow:hidden; border:2px solid rgba(255,255,255,.72); border-radius:8px; padding:0; background:#fff; box-shadow:0 4px 10px rgba(35,33,31,.16); opacity:.82; transition:opacity .2s ease,transform .2s ease,border-color .2s ease; }
.room-detail-thumb:hover,.room-detail-thumb.is-active { border-color:var(--earth); opacity:1; transform:translateY(-2px); }
.room-detail-thumb img { width:100%; height:100%; object-fit:cover; }
.room-detail-content { display:grid; gap:12px; padding:19px 21px 22px; }
.room-detail-eyebrow { color:var(--earth); font-size:8px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.room-preview .room-detail-title { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.5rem; font-weight:600; line-height:1.04; }
.room-detail-highlights { display:flex; flex-wrap:wrap; gap:5px; }
.room-detail-highlights > .room-detail-highlight { display:inline-flex; align-items:center; gap:4px; border:1px solid rgba(35,33,31,.24); border-radius:.34rem; padding:4px 6px; color:rgba(35,33,31,.82); background:#fffdf9; font-size:.64rem; font-weight:600; line-height:1.1; }
.room-detail-highlight-icon { width:13px; height:13px; flex:0 0 auto; fill:none; stroke:var(--ink); stroke-linecap:round; stroke-linejoin:round; stroke-width:1.65; }
.room-detail-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:0; }
.room-detail-facts div { min-width:0; border-left:2px solid rgba(143,114,90,.45); padding:2px 0 2px 8px; }
.room-detail-facts dt { color:var(--earth); font-size:.62rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.room-detail-facts dd { margin:3px 0 0; color:rgba(35,33,31,.78); font-size:.69rem; line-height:1.35; }
.room-detail-summary { margin:0; color:rgba(35,33,31,.69); font-size:.73rem; line-height:1.55; }
.room-detail-amenities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; border-top:1px solid rgba(35,33,31,.12); padding-top:12px; }
.room-detail-amenities section:last-child { grid-column:1/-1; }
.room-detail-amenities h5 { margin:0 0 5px; color:var(--ink); font-size:.69rem; }
.room-detail-amenities ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 10px; margin:0; padding:0; list-style:none; }
.room-detail-amenities li { display:flex; gap:5px; color:rgba(35,33,31,.68); font-size:.66rem; line-height:1.35; }
.room-detail-amenities li::before { color:var(--olive); content:"✓"; font-weight:700; }
@media (max-width:900px) { .room-detail-content { padding:18px; } .room-detail-thumb { width:34px; height:34px; } }
@media (max-width:420px) { .room-detail-facts { grid-template-columns:1fr; } .room-detail-amenities { grid-template-columns:1fr; } .room-detail-amenities section:last-child { grid-column:auto; } .room-detail-amenities ul { grid-template-columns:1fr; } }

/* A calm, readable room inspector: image-led, compact on desktop and in flow on mobile. */
.room-preview { position:relative; gap:0; color:var(--ink); }
.room-detail-close { position:absolute; z-index:5; top:14px; right:14px; display:grid; width:34px; height:34px; place-items:center; border:1px solid rgba(255,255,255,.68); border-radius:50%; padding:0; color:#fff; background:rgba(35,33,31,.56); box-shadow:0 5px 14px rgba(35,33,31,.2); font-size:1.35rem; line-height:1; backdrop-filter:blur(8px); transition:background .2s ease,transform .2s ease; }
.room-detail-close:hover { background:var(--ink); transform:rotate(90deg); }
.room-detail-media { min-height:0; aspect-ratio:16/9; background:#d9cfc2; }
.room-detail-main-image { object-position:center; }
.room-detail-image-navigation { position:absolute; right:13px; bottom:62px; left:13px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.room-detail-image-control { display:grid; width:34px; height:34px; place-items:center; border:1px solid rgba(255,255,255,.72); border-radius:50%; padding:0; color:var(--ink); background:rgba(255,255,255,.92); box-shadow:0 5px 14px rgba(35,33,31,.18); font-size:1.6rem; line-height:1; pointer-events:auto; transition:transform .2s ease,background .2s ease; }
.room-detail-image-control:hover { background:#fff; transform:scale(1.08); }
.room-detail-thumbnails { right:16px; bottom:12px; left:16px; gap:7px; padding:3px 0; }
.room-detail-thumb { width:42px; height:42px; border-radius:9px; }
.room-detail-photo-count { top:14px; right:59px; padding:6px 10px; }
.room-detail-content { display:grid; align-content:start; gap:15px; padding:22px 24px 26px; background:linear-gradient(150deg,#fffdf9,rgba(248,243,235,.98)); }
.room-preview .room-detail-title { max-width:440px; font-size:clamp(1.55rem,2vw,1.9rem); line-height:1.04; }
.room-detail-eyebrow { margin:0 0 -6px; }
.room-detail-highlights { gap:6px; }
.room-detail-highlights > .room-detail-highlight { padding:5px 7px; font-size:.68rem; }
.room-detail-facts { gap:8px; padding:2px 0; }
.room-detail-facts div { border:1px solid rgba(143,114,90,.22); border-left:3px solid var(--earth); border-radius:.7rem; padding:8px 9px; background:rgba(255,255,255,.67); }
.room-detail-facts dd { font-size:.74rem; }
.room-detail-summary { max-width:520px; color:rgba(35,33,31,.72); font-size:.79rem; line-height:1.62; }
.room-detail-amenities { display:grid; grid-template-columns:1fr; gap:8px; border:0; padding:0; }
.room-detail-amenity-group { overflow:hidden; border:1px solid rgba(143,114,90,.19); border-radius:.9rem; background:rgba(255,255,255,.62); }
.room-detail-amenity-group summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 13px; color:var(--ink); cursor:pointer; font-size:.76rem; font-weight:700; list-style:none; }
.room-detail-amenity-group summary::-webkit-details-marker { display:none; }
.room-detail-amenity-group summary::after { flex:0 0 auto; color:var(--earth); content:"+"; font-size:1.05rem; font-weight:400; }
.room-detail-amenity-group[open] summary { border-bottom:1px solid rgba(143,114,90,.16); background:rgba(248,243,235,.76); }
.room-detail-amenity-group[open] summary::after { content:"−"; }
.room-detail-amenity-group summary small { margin-left:auto; color:rgba(35,33,31,.47); font-size:.63rem; font-weight:600; }
.room-detail-amenity-group ul { padding:11px 13px 13px; }
.room-detail-amenity-group li { color:rgba(35,33,31,.72); font-size:.71rem; line-height:1.45; }

@media (min-width:901px) {
  .room-preview-floating { position:fixed; z-index:450; top:calc(80px + clamp(14px,1.5vw,24px)); right:clamp(16px,2vw,34px); bottom:auto; left:auto; display:grid; width:min(540px,calc(52vw - 44px)); height:min(760px,calc(100dvh - 126px)); min-height:460px; grid-template-rows:minmax(220px,39%) minmax(0,1fr); overflow:hidden; border:1px solid rgba(104,114,90,.3); border-radius:1.8rem; background:#fffdf9; box-shadow:0 28px 70px rgba(35,33,31,.2); opacity:0; pointer-events:none; transform:translateX(-30px) translateY(8px); transition:opacity .2s ease,transform .38s cubic-bezier(.22,1,.36,1); }
  .room-preview-floating.is-open { opacity:1; pointer-events:auto; transform:translateX(0) translateY(0); }
  .room-preview-floating .room-detail-media { height:100%; aspect-ratio:auto; }
  .room-preview-floating .room-detail-content { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:23px 25px 28px; scrollbar-color:rgba(143,114,90,.45) transparent; }
}
@media (max-width:900px) {
  .room-preview-inline { display:grid; margin:0; border:1px solid transparent; border-radius:1.45rem; background:transparent; }
  .room-preview-inline.is-open { max-height:2500px; margin-top:2px; border-color:rgba(104,114,90,.26); padding:0; background:#fffdf9; box-shadow:0 15px 30px rgba(35,33,31,.09); }
  .room-preview-inline .room-detail-content { overflow:visible; padding:20px 18px 22px; }
  .room-preview-inline .room-detail-media { aspect-ratio:16/10; }
  .room-preview-inline .room-detail-close { display:none; }
}
@media (max-width:480px) {
  .room-detail-content { padding:18px 16px 20px; }
  .room-detail-facts { grid-template-columns:1fr; }
  .room-detail-amenity-group ul { grid-template-columns:1fr; }
  .room-detail-thumb { width:38px; height:38px; }
  .room-detail-image-navigation { bottom:57px; }
}

/* Centre the desktop inspector in the free right-hand area and let its content set the height. */
@media (min-width:901px) {
  .room-preview-floating { top:calc(50% + 40px); right:auto; bottom:auto; left:68.5vw; display:flex; width:min(590px,calc(50vw - 44px)); height:auto; min-height:0; max-height:calc(100dvh - 112px); flex-direction:column; grid-template-rows:none; transform:translate(calc(-50% - 30px),calc(-50% + 8px)); }
  .room-preview-floating.is-open { transform:translate(-50%,-50%); }
  .room-preview-floating .room-detail-media { width:100%; height:auto; flex:0 0 auto; aspect-ratio:16/9; }
  .room-preview-floating .room-detail-content { min-height:0; flex:0 1 auto; overflow-y:auto; }
}

/* Full-screen gallery for every room, available from the expand icon or the main photo. */
.room-detail-main-image[role="button"] { cursor:zoom-in; }
.room-detail-fullscreen { position:absolute; z-index:4; top:14px; left:14px; display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(255,255,255,.68); border-radius:50%; padding:0; color:#fff; background:rgba(35,33,31,.56); box-shadow:0 5px 14px rgba(35,33,31,.2); backdrop-filter:blur(8px); transition:background .2s ease,transform .2s ease; }
.room-detail-fullscreen:hover { background:var(--ink); transform:scale(1.07); }
.room-detail-fullscreen svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.room-detail-media-actions { position:absolute; z-index:4; top:14px; right:59px; display:flex; align-items:center; gap:8px; }
.room-detail-media-actions .room-detail-photo-count { position:static; padding:6px 10px; }
.room-detail-quick-info { display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(255,255,255,.68); border-radius:.68rem; padding:0; color:#fff; background:rgba(35,33,31,.56); box-shadow:0 5px 14px rgba(35,33,31,.2); backdrop-filter:blur(8px); transition:background .2s ease,transform .2s ease; }
.room-detail-quick-info:hover { background:var(--ink); transform:scale(1.07); }
.room-detail-quick-info svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.55; }
body.room-gallery-open { overflow:hidden; }
body.room-detail-modal-open { overflow:hidden; }
.room-gallery-lightbox { position:fixed; z-index:1200; inset:0; display:grid; place-items:center; padding:clamp(14px,3vw,42px); background:rgba(25,23,20,.82); opacity:0; touch-action:manipulation; backdrop-filter:blur(8px); transition:opacity .2s ease; }
.room-gallery-lightbox.is-open { opacity:1; }
.room-gallery-frame { width:min(1180px,100%); height:min(850px,calc(100dvh - 56px)); display:grid; grid-template-rows:minmax(0,1fr) auto; overflow:hidden; border:1px solid rgba(255,255,255,.22); border-radius:1.5rem; background:#171513; box-shadow:0 30px 90px rgba(0,0,0,.44); }
.room-gallery-stage { position:relative; min-height:0; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at center,#3a3530,#171513 68%); }
.room-gallery-image { width:100%; height:100%; object-fit:contain; user-select:none; }
.room-gallery-toolbar { position:absolute; z-index:3; top:16px; right:16px; left:16px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.room-gallery-photo-count,.room-gallery-close { border:1px solid rgba(255,255,255,.38); color:#fff; background:rgba(25,23,20,.62); box-shadow:0 5px 16px rgba(0,0,0,.18); backdrop-filter:blur(9px); }
.room-gallery-photo-count { border-radius:999px; padding:7px 11px; font-size:.73rem; font-weight:700; }
.room-gallery-toolbar-actions { display:flex; align-items:center; gap:8px; pointer-events:auto; }
.room-gallery-info { display:grid; width:39px; height:39px; place-items:center; border:1px solid rgba(255,255,255,.38); border-radius:.72rem; padding:0; color:#fff; background:rgba(25,23,20,.62); box-shadow:0 5px 16px rgba(0,0,0,.18); backdrop-filter:blur(9px); transition:background .2s ease,transform .2s ease; }
.room-gallery-info:hover { background:rgba(255,255,255,.2); transform:scale(1.06); }
.room-gallery-info svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.55; }
.room-gallery-close { width:39px; height:39px; border-radius:50%; padding:0; font-size:1.55rem; line-height:1; pointer-events:auto; transition:background .2s ease,transform .2s ease; }
.room-gallery-close:hover { background:rgba(255,255,255,.2); transform:rotate(90deg); }
.room-gallery-navigation { position:absolute; z-index:3; right:18px; bottom:18px; left:18px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.room-gallery-control { display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(255,255,255,.48); border-radius:50%; padding:0; color:var(--ink); background:rgba(255,255,255,.93); box-shadow:0 7px 18px rgba(0,0,0,.22); font-size:2rem; line-height:1; pointer-events:auto; transition:transform .2s ease,background .2s ease; }
.room-gallery-control:hover { background:#fff; transform:scale(1.08); }
.room-gallery-thumbnails { display:flex; gap:8px; overflow:auto hidden; padding:12px 16px; background:rgba(255,255,255,.96); scrollbar-width:thin; scrollbar-color:rgba(143,114,90,.55) transparent; }
.room-gallery-thumb { flex:0 0 auto; width:58px; height:48px; overflow:hidden; border:2px solid transparent; border-radius:.6rem; padding:0; background:#ddd3c7; opacity:.66; transition:opacity .2s ease,transform .2s ease,border-color .2s ease; }
.room-gallery-thumb:hover,.room-gallery-thumb.is-active { border-color:var(--earth); opacity:1; transform:translateY(-2px); }
.room-gallery-thumb img { width:100%; height:100%; object-fit:cover; }
@media (max-width:700px) {
  .room-gallery-lightbox { padding:0; }
  .room-gallery-frame { width:100%; height:100dvh; border:0; border-radius:0; }
  .room-gallery-toolbar { top:12px; right:12px; left:12px; }
  .room-gallery-close { width:42px; height:42px; }
  .room-gallery-navigation { right:12px; bottom:12px; left:12px; }
  .room-gallery-control { width:42px; height:42px; }
  .room-gallery-thumbnails { gap:7px; min-height:72px; padding:11px 12px; }
  .room-gallery-thumb { width:54px; height:46px; }
}
@media (max-width:900px) {
  .room-detail-media-actions { right:14px; }
}

/* Enlarged room details, opened from the gallery without leaving the current photo. */
.room-detail-modal { position:fixed; z-index:1250; inset:0; display:grid; place-items:center; padding:clamp(16px,3vw,44px); background:rgba(14,13,11,.78); opacity:0; backdrop-filter:blur(8px); transition:opacity .2s ease; }
.room-detail-modal.is-open { opacity:1; }
.room-detail-modal-frame { position:relative; width:min(1240px,calc(100vw - 64px)); height:min(820px,calc(100dvh - 84px)); display:grid; grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr); overflow:hidden; border:1px solid rgba(255,255,255,.5); border-radius:1.45rem; background:#fffdf9; box-shadow:0 34px 110px rgba(0,0,0,.5); }
.room-detail-modal-media { position:relative; min-width:0; min-height:0; display:grid; grid-template-rows:minmax(0,1fr) auto; overflow:hidden; background:#231f1b; }
.room-detail-modal-image { width:100%; height:100%; object-fit:cover; }
.room-detail-modal-photo-count { position:absolute; z-index:2; top:18px; left:18px; border:1px solid rgba(255,255,255,.48); border-radius:999px; padding:7px 11px; color:#fff; background:rgba(25,23,20,.6); box-shadow:0 5px 16px rgba(0,0,0,.18); font-size:.74rem; font-weight:700; backdrop-filter:blur(9px); }
.room-detail-modal-navigation { position:absolute; z-index:2; right:18px; bottom:78px; left:18px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.room-detail-modal-control { display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(255,255,255,.52); border-radius:50%; padding:0; color:var(--ink); background:rgba(255,255,255,.95); box-shadow:0 7px 18px rgba(0,0,0,.18); font-size:2rem; line-height:1; pointer-events:auto; transition:transform .2s ease,background .2s ease; }
.room-detail-modal-control:hover { background:#fff; transform:scale(1.08); }
.room-detail-modal-thumbnails { display:flex; gap:8px; overflow:auto hidden; padding:12px 16px; background:rgba(255,255,255,.97); scrollbar-width:thin; scrollbar-color:rgba(143,114,90,.55) transparent; }
.room-detail-modal-thumb { flex:0 0 auto; width:58px; height:48px; overflow:hidden; border:2px solid transparent; border-radius:.58rem; padding:0; background:#ddd3c7; opacity:.68; transition:opacity .2s ease,transform .2s ease,border-color .2s ease; }
.room-detail-modal-thumb:hover,.room-detail-modal-thumb.is-active { border-color:var(--earth); opacity:1; transform:translateY(-2px); }
.room-detail-modal-thumb img { width:100%; height:100%; object-fit:cover; }
.room-detail-modal-close { position:absolute; z-index:4; top:14px; right:14px; display:grid; width:40px; height:40px; place-items:center; border:1px solid rgba(35,33,31,.2); border-radius:.72rem; padding:0; color:var(--ink); background:rgba(255,255,255,.92); box-shadow:0 6px 18px rgba(35,33,31,.12); font-size:1.55rem; line-height:1; transition:background .2s ease,transform .2s ease; }
.room-detail-modal-close:hover { background:#fff; transform:rotate(90deg); }
.room-detail-modal-fullscreen { position:absolute; z-index:3; top:18px; right:18px; display:grid; width:40px; height:40px; place-items:center; border:1px solid rgba(255,255,255,.58); border-radius:.72rem; padding:0; color:#fff; background:rgba(25,23,20,.6); box-shadow:0 6px 18px rgba(0,0,0,.2); backdrop-filter:blur(9px); transition:background .2s ease,transform .2s ease; }
.room-detail-modal-fullscreen:hover { background:rgba(25,23,20,.84); transform:scale(1.07); }
.room-detail-modal-fullscreen svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.room-detail-modal-content { min-width:0; overflow-y:auto; align-content:start; gap:17px; padding:36px 36px 40px; background:linear-gradient(150deg,#fffdf9,rgba(248,243,235,.98)); scrollbar-color:rgba(143,114,90,.48) transparent; }
.room-detail-modal .room-detail-title { max-width:590px; margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2rem,3vw,2.75rem); font-weight:600; line-height:1; }
.room-detail-modal .room-detail-highlights { gap:7px; }
.room-detail-modal .room-detail-highlights > .room-detail-highlight { padding:6px 8px; font-size:.73rem; }
.room-detail-modal .room-detail-facts { gap:10px; }
.room-detail-modal .room-detail-facts div { padding:10px 11px; }
.room-detail-modal .room-detail-facts dd { font-size:.82rem; }
.room-detail-modal .room-detail-summary { max-width:none; font-size:.86rem; line-height:1.68; }
.room-detail-modal .room-detail-amenities { gap:10px; }
.room-detail-modal .room-detail-amenity-group summary { padding:13px 15px; font-size:.81rem; }
.room-detail-modal .room-detail-amenity-group ul { padding:12px 15px 15px; }
.room-detail-modal .room-detail-amenity-group li { font-size:.76rem; line-height:1.48; }
@media (max-width:780px) {
  .room-detail-modal { padding:8px; }
  .room-detail-modal-frame { width:100%; height:calc(100dvh - 16px); grid-template-columns:1fr; grid-template-rows:minmax(245px,42dvh) minmax(0,1fr); border-radius:1.15rem; }
  .room-detail-modal-photo-count { top:13px; left:13px; }
  .room-detail-modal-navigation { right:12px; bottom:70px; left:12px; }
  .room-detail-modal-control { width:42px; height:42px; }
  .room-detail-modal-thumbnails { gap:7px; padding:10px 12px; }
  .room-detail-modal-thumb { width:52px; height:43px; }
  .room-detail-modal-close { top:12px; right:12px; width:38px; height:38px; }
  .room-detail-modal-fullscreen { top:13px; right:60px; width:38px; height:38px; }
  .room-detail-modal-content { padding:25px 20px 28px; }
  .room-detail-modal .room-detail-title { font-size:2rem; }
}

/* Room choices under each card on the Strutture page. */
.property-room-list { display:grid; gap:6px; margin-top:2px; border-top:1px solid rgba(35,33,31,.1); padding-top:13px; }
.property-room-list>p { color:var(--earth); font-size:8px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.property-room-link { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(35,33,31,.13); border-radius:.85rem; padding:8px 10px; color:var(--ink); background:rgba(248,243,235,.62); text-align:left; transition:border-color .22s ease,background .22s ease,transform .22s ease,box-shadow .22s ease; }
.property-room-link>span { display:grid; gap:1px; min-width:0; }
.property-room-link strong { overflow:hidden; font-size:.75rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.property-room-link small { overflow:hidden; color:rgba(35,33,31,.6); font-size:.65rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.property-room-link i { display:grid; width:21px; height:21px; flex:0 0 auto; place-items:center; border-radius:50%; color:var(--earth); background:rgba(255,255,255,.78); font-size:.8rem; font-style:normal; transition:transform .22s ease,background .22s ease; }
.property-room-link:hover,.property-room-link:focus-visible { border-color:rgba(104,114,90,.48); outline:0; background:#fffdf9; box-shadow:0 9px 18px rgba(35,33,31,.08); transform:translateY(-2px); }
.property-room-link:hover i,.property-room-link:focus-visible i { color:#fff; background:var(--olive); transform:translateX(2px); }
@media (min-width:901px) {
  .room-preview-structure { position:fixed; z-index:450; top:var(--structure-preview-top,50%); left:var(--structure-preview-left,50%); display:flex; width:min(520px,calc(100vw - 36px)); max-height:calc(100dvh - 112px); flex-direction:column; overflow:hidden; border:1px solid rgba(104,114,90,.3); border-radius:1.8rem; color:var(--ink); background:#fffdf9; box-shadow:0 28px 70px rgba(35,33,31,.24); opacity:0; pointer-events:none; transition:opacity .2s ease,transform .38s cubic-bezier(.22,1,.36,1); }
  .room-preview-structure-right { transform:translate(-18px,-50%) scale(.985); }
  .room-preview-structure-left { transform:translate(18px,-50%) scale(.985); }
  .room-preview-structure.is-open { opacity:1; pointer-events:auto; transform:translate(0,-50%) scale(1); }
  .room-preview-structure .room-detail-media { width:100%; flex:0 0 auto; aspect-ratio:16/9; }
  .room-preview-structure .room-detail-content { min-height:0; overflow-y:auto; padding:23px 25px 28px; }
  .room-preview-structure .room-detail-media-actions { right:14px; }
}
@media (max-width:900px) {
  .property-room-list { margin-top:1px; }
  .room-preview-structure { display:none; }
}

/* The full availability card is a desktop shortcut to the complete room view. */
@media (min-width:901px) {
  .availability-card.has-room-preview { cursor:pointer; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
  .availability-card.has-room-preview:hover { border-color:rgba(104,114,90,.34); box-shadow:0 14px 28px rgba(35,33,31,.07); transform:translateY(-1px); }
  .availability-card.has-room-preview :is(button,a) { cursor:pointer; }
}
.card-title-link { color:inherit; text-decoration:none; }
.card-title-link:hover,.card-title-link:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.form-prefill-note { display:block; margin-top:6px; color:var(--olive); font-size:.74rem; font-weight:400; line-height:1.45; letter-spacing:normal; text-transform:none; }
.contact-form select:invalid { color:rgba(35,33,31,.55); }
.form-prefill-note[hidden] { display:none; }
