/* 3 Amici Suites — editorial design layer.
   Loaded after site.css: flat surfaces, hairlines instead of shadowed cards, large photography,
   short serif headlines and quiet motion. Classes prefixed with x- belong to the new design. */

:root {
  --dark:#1f1d1b;
  --paper-2:#efe6da;
  --gold:#c9a27a;
  --hair:rgba(35,33,31,.14);
  --hair-light:rgba(246,240,232,.18);
  --gutter:clamp(20px,4vw,56px);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

/* ---------- Base: calm, flat background ---------- */
body { background:var(--paper); }
body::before,.site-aura,.site-progress { display:none; }
.shell { width:min(100% - 2 * var(--gutter),1280px); }
h1,h2,h3 { font-weight:500; letter-spacing:-.01em; }
::selection { background:rgba(138,109,87,.25); }

/* Smooth cross-page navigation where supported (Chrome, Edge, Safari 18+); ignored elsewhere. */
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:.32s; }

/* Reveal on scroll: a short rise, no blur. */
[data-reveal] { opacity:0; filter:none; transform:translate3d(0,18px,0); transition:opacity .9s var(--ease-out),transform .9s var(--ease-out); }
[data-reveal].is-visible { opacity:1; transform:none; }

/* ---------- Shared editorial pieces ---------- */
.x-eyebrow { display:flex; align-items:center; gap:14px; color:var(--earth); font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; }
.x-eyebrow::before { width:28px; height:1px; content:""; background:currentColor; opacity:.7; }
.x-eyebrow-light { color:var(--gold); }
.x-heading { max-width:760px; margin-bottom:clamp(36px,5vw,64px); }
.x-heading-center { margin-inline:auto; text-align:center; }
.x-heading-center .x-eyebrow { justify-content:center; }
.x-heading h2,.x-intro h2,.x-score h2,.x-verona h2,.x-gallery h2 { margin-top:18px; font-size:clamp(2.3rem,4.4vw,3.9rem); font-weight:400; line-height:1.02; }
.x-lead { margin-top:18px; color:rgba(35,33,31,.7); font-size:1.02rem; line-height:1.75; }
.x-section { padding:clamp(84px,11vw,150px) 0; }
.x-sand { background:var(--paper-2); }
.x-dark { color:var(--paper); background:var(--dark); }
.x-center { margin-top:clamp(36px,5vw,56px); text-align:center; }

.x-button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; border-radius:999px; padding:0 28px; color:var(--paper); background:var(--ink); font-size:12px; font-weight:600; letter-spacing:.16em; text-decoration:none; text-transform:uppercase; transition:background .3s ease,color .3s ease,transform .2s var(--ease-out); }
.x-button:hover { background:#3a3632; }
.x-button:active { transform:scale(.97); }
.x-button-light { color:var(--ink); background:var(--paper); }
.x-button-light:hover { background:#fff; }
.x-button-gold { color:var(--dark); background:var(--gold); }
.x-button-gold:hover { background:#d8b590; }
.x-link { display:inline-flex; align-items:center; gap:10px; border-bottom:1px solid currentColor; padding-bottom:5px; color:var(--ink); font-size:12px; font-weight:600; letter-spacing:.16em; text-decoration:none; text-transform:uppercase; transition:gap .3s var(--ease-out),opacity .3s; }
.x-link:hover { gap:16px; opacity:.75; }
.x-link-light { color:#fff; }
.x-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 30px; margin-top:34px; }

/* ---------- Header ---------- */
.site-header { border-bottom:1px solid var(--hair); background:rgba(246,240,232,.9); transition:background .45s ease,border-color .45s ease,color .45s ease; }
.main-nav>a { font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; }
.main-nav>a:hover,.main-nav>a.active { transform:none; }
.main-nav>a.active { box-shadow:inset 0 -1px 0 currentColor; }
.nav-cta { min-height:42px; padding:0 22px; box-shadow:none; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.phone-link { font-size:.78rem; letter-spacing:.04em; }
/* Home: transparent over the hero photograph, solid once the page scrolls. */
.site-header.is-overlay { position:fixed; right:0; left:0; }
.site-header.is-overlay:not(.is-scrolled) { border-color:transparent; background:transparent; backdrop-filter:none; }
@media (min-width:901px) {
  .site-header.is-overlay:not(.is-scrolled) :is(.main-nav>a,.phone-link,.brand strong) { color:#fff; }
  .site-header.is-overlay:not(.is-scrolled) .brand small { color:rgba(255,255,255,.75); }
  .site-header.is-overlay:not(.is-scrolled) .nav-cta { color:var(--ink); background:var(--paper); }
  .site-header.is-overlay:not(.is-scrolled) .language-menu-trigger { border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.12); }
  .site-header.is-overlay:not(.is-scrolled) .language-menu:not(.is-open) :is(.language-menu-current,.language-menu-chevron) { color:#fff; }
}
@media (max-width:900px) {
  .site-header.is-overlay:not(.is-scrolled) .brand strong { color:#fff; }
  .site-header.is-overlay:not(.is-scrolled) .brand small { color:rgba(255,255,255,.75); }
  .site-header.is-overlay:not(.is-scrolled) .menu-toggle { border-color:rgba(255,255,255,.5); color:#fff; background:rgba(255,255,255,.1); }
}

/* ---------- Home: hero ---------- */
.x-hero { position:relative; display:grid; min-height:min(100svh,940px); align-content:end; overflow:hidden; color:#fff; background:var(--dark); isolation:isolate; }
.x-hero-media { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; animation:x-hero-settle 2.6s var(--ease-out) both; }
.x-hero::after { position:absolute; z-index:-1; inset:0; content:""; background:linear-gradient(90deg,rgba(20,18,16,.62) 0%,rgba(20,18,16,.28) 48%,rgba(20,18,16,0) 75%),linear-gradient(180deg,rgba(20,18,16,.5) 0%,rgba(20,18,16,0) 26%,rgba(20,18,16,.12) 55%,rgba(20,18,16,.8) 100%); }
@keyframes x-hero-settle { from { opacity:.3; transform:scale(1.08); } to { opacity:1; transform:scale(1); } }
.x-hero-content { padding-top:150px; padding-bottom:44px; }
.x-hero h1 { max-width:15ch; margin-top:22px; font-size:clamp(2.9rem,6.6vw,6.2rem); font-weight:400; line-height:.98; }
.x-hero-lead { max-width:46ch; margin-top:24px; color:rgba(255,255,255,.84); font-size:1.05rem; line-height:1.7; }
.x-hero-content>* { animation:x-rise 1.1s var(--ease-out) both; }
.x-hero-content>:nth-child(2) { animation-delay:.12s; }
.x-hero-content>:nth-child(3) { animation-delay:.24s; }
.x-hero-content>:nth-child(4) { animation-delay:.36s; }
@keyframes x-rise { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
.x-hero-stats { display:flex; flex-wrap:wrap; gap:18px clamp(32px,6vw,90px); margin:0 auto; border-top:1px solid rgba(255,255,255,.22); padding:24px 0 34px; }
.x-hero-stats div { display:flex; flex-direction:column-reverse; gap:6px; }
.x-hero-stats dd { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.8rem,2.6vw,2.4rem); line-height:1; }
.x-hero-stats dt { color:rgba(255,255,255,.7); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }

/* ---------- Home: intro ---------- */
.x-intro-grid { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(48px,8vw,120px); }
.x-intro-copy .x-link { margin-top:30px; }
.x-intro-media { margin:0; overflow:hidden; }
.x-intro-media img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.x-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,4vw,56px); margin:clamp(56px,7vw,96px) 0 0; padding:0; list-style:none; }
.x-pillars li { border-top:1px solid var(--hair); padding-top:26px; }
.x-pillars span { color:var(--earth); font-family:"Cormorant Garamond",Georgia,serif; font-size:1.1rem; font-style:italic; }
.x-pillars h3 { margin-top:14px; font-size:1.7rem; line-height:1.1; }
.x-pillars p { margin-top:10px; color:rgba(35,33,31,.68); font-size:.94rem; line-height:1.7; }
.x-numbered,.x-guides { margin:34px 0 34px; padding:0; list-style:none; }
.x-numbered li,.x-guides li { display:grid; grid-template-columns:52px 1fr; gap:10px; border-top:1px solid var(--hair); padding:22px 0; }
.x-numbered li:last-child,.x-guides li:last-child { border-bottom:1px solid var(--hair); }
.x-numbered span,.x-guides span { color:var(--earth); font-family:"Cormorant Garamond",Georgia,serif; font-size:1.05rem; font-style:italic; }
.x-numbered h3,.x-guides h3 { font-size:1.55rem; line-height:1.1; }
.x-numbered p,.x-guides p { margin-top:7px; color:rgba(35,33,31,.68); font-size:.92rem; line-height:1.65; }
.x-guides .x-link { margin-top:14px; }

/* ---------- Home: properties ---------- */
.x-property-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,2.2vw,32px); }
.x-property { display:flex; flex-direction:column; color:var(--ink); text-decoration:none; }
.x-property-media { display:block; overflow:hidden; aspect-ratio:3/4; background:var(--sand); }
.x-property-media img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease-out); }
.x-property:hover .x-property-media img { transform:scale(1.05); }
.x-property-meta { margin-top:20px; color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.x-property-name { margin-top:8px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.6rem,2.1vw,2rem); font-weight:500; line-height:1.05; }
.x-property-rating { margin-top:8px; color:rgba(35,33,31,.6); font-size:.82rem; }
.x-property-cta { display:inline-flex; width:max-content; align-items:center; gap:8px; margin-top:16px; border-bottom:1px solid currentColor; padding-bottom:4px; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.x-property-cta i { font-style:normal; transition:transform .3s var(--ease-out); }
.x-property:hover .x-property-cta i { transform:translateX(5px); }
.x-property:focus-visible { outline:2px solid var(--earth); outline-offset:6px; }

/* ---------- Home: gallery strip ---------- */
.x-gallery-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:clamp(32px,4vw,52px); }
.x-gallery h2 { color:var(--ink); }
.x-strip-controls { display:flex; gap:10px; }
.x-strip-controls button { display:grid; width:50px; height:50px; place-items:center; border:1px solid var(--hair-light); border-radius:50%; color:var(--paper); background:transparent; font-size:1.05rem; cursor:pointer; transition:background .3s,color .3s,transform .2s var(--ease-out); }
.x-strip-controls button:hover { color:var(--dark); background:var(--paper); }
.x-strip-controls button:active { transform:scale(.94); }
.x-strip { display:flex; gap:18px; overflow-x:auto; padding:0; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.x-strip::-webkit-scrollbar { display:none; }
.x-strip:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.x-strip-item { position:relative; display:block; flex:0 0 clamp(260px,36vw,560px); overflow:hidden; color:var(--paper); text-decoration:none; scroll-snap-align:start; }
.x-strip-item img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.x-strip-item::after { position:absolute; inset:auto 0 0; height:45%; content:""; background:linear-gradient(0deg,rgba(20,18,16,.7),transparent); pointer-events:none; }
.x-strip-item span { position:absolute; z-index:1; bottom:18px; left:20px; display:flex; align-items:center; gap:10px; font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.x-strip-item i { font-style:normal; transition:transform .3s var(--ease-out); }
.x-strip-item:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; }

/* ---------- Home: services ---------- */
/* Lines are cell borders (not a gap over a dark background) so cells can fade in cleanly. */
.x-service-grid { display:grid; grid-template-columns:repeat(3,1fr); margin:0; border-top:1px solid var(--hair); border-left:1px solid var(--hair); padding:0; list-style:none; }
.x-service-grid li { display:flex; flex-direction:column; gap:22px; border-right:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:clamp(26px,3vw,40px); }
.x-service-grid svg { width:30px; height:30px; color:var(--earth); }
.x-service-grid span { font-family:"Cormorant Garamond",Georgia,serif; font-size:1.45rem; line-height:1.15; }

/* ---------- Home: reviews ---------- */
.x-reviews-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(48px,7vw,110px); align-items:start; }
.x-score strong { display:block; margin-top:30px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(5rem,9vw,7.5rem); font-weight:400; line-height:.9; }
.x-score small { margin-left:6px; color:rgba(35,33,31,.45); font-size:.3em; }
.x-score>p:last-child { max-width:30ch; margin-top:14px; color:rgba(35,33,31,.65); font-size:.9rem; line-height:1.6; }
.x-quotes figure { margin:0; border-top:1px solid var(--hair); padding:30px 0; }
.x-quotes figure:last-child { border-bottom:1px solid var(--hair); }
.x-quotes blockquote { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.35rem,2vw,1.75rem); font-style:italic; line-height:1.35; }
.x-quotes blockquote::before { content:"“"; }
.x-quotes blockquote::after { content:"”"; }
.x-quotes figcaption { margin-top:14px; color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }

/* ---------- Home: Verona ---------- */
.x-verona-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(48px,7vw,110px); align-items:center; }
.x-verona-media { margin:0; }
.x-verona-media img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; }

/* ---------- Footer ---------- */
.x-footer { position:relative; overflow:hidden; color:var(--paper); background:var(--dark); }
.x-footer-cta { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:30px; border-bottom:1px solid var(--hair-light); padding:clamp(70px,9vw,120px) 0 clamp(44px,5vw,64px); }
.x-footer-cta h2 { max-width:16ch; margin-top:18px; color:var(--paper); font-size:clamp(2.2rem,4vw,3.6rem); font-weight:400; line-height:1.04; }
.x-footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; padding:52px 0 40px; }
.x-footer .footer-label { color:rgba(246,240,232,.5); font-size:10.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; }
.x-footer a,.x-footer span,.x-footer li { display:block; margin-top:12px; color:rgba(246,240,232,.86); font-size:.86rem; text-decoration:none; }
.x-footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.x-footer ul { margin:0; padding:0; list-style:none; }
.x-footer .x-footer-address small { display:block; color:rgba(246,240,232,.55); font-size:.78rem; }
.x-footer-mark { margin-bottom:-.18em; color:rgba(246,240,232,.045); font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(5rem,19vw,17rem); font-style:italic; line-height:.8; text-align:center; white-space:nowrap; pointer-events:none; user-select:none; }
.x-footer-legal { position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 28px; border-top:1px solid var(--hair-light); padding:22px 0 30px; color:rgba(246,240,232,.55); font-size:.74rem; }
.x-footer-legal p { margin:0; }
.x-footer-legal nav { display:flex; flex-wrap:wrap; gap:8px 22px; }
.x-footer-legal a,.x-footer-legal button { display:inline; margin:0; border:0; padding:0; color:rgba(246,240,232,.7); background:none; font:inherit; font-size:.74rem; cursor:pointer; }
.x-footer-legal button:hover { color:#fff; text-decoration:underline; }
.x-footer .cin { max-width:none; margin-top:16px; color:rgba(246,240,232,.4)!important; font-size:9.5px!important; letter-spacing:.08em; line-height:1.7; }

/* ---------- Responsive ---------- */
@media (max-width:1100px) {
  .x-property-grid { grid-template-columns:repeat(2,1fr); row-gap:52px; }
  .x-footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px) {
  .x-intro-grid,.x-reviews-grid,.x-verona-grid { grid-template-columns:1fr; }
  .x-pillars { grid-template-columns:1fr; }
  .x-verona-media { max-width:520px; }
  .x-service-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:620px) {
  .x-hero { min-height:100svh; }
  .x-hero-content { padding-top:120px; }
  .x-hero-stats { gap:18px 26px; }
  /* Properties become a swipeable row on phones instead of a long column. */
  .x-property-grid { display:flex; overflow-x:auto; gap:16px; margin:0 calc(var(--gutter) * -1); padding:0 var(--gutter); scroll-padding-inline:var(--gutter); scroll-snap-type:x mandatory; scrollbar-width:none; }
  .x-property-grid::-webkit-scrollbar { display:none; }
  .x-property { flex:0 0 78%; scroll-snap-align:start; }
  .x-gallery-head { align-items:start; flex-direction:column; }
  .x-strip-item { flex-basis:82vw; }
  .x-service-grid li { gap:16px; padding:22px 18px; }
  .x-service-grid span { font-size:1.2rem; }
  .x-footer-grid { grid-template-columns:1fr; gap:28px; }
  .x-footer-legal { flex-direction:column; align-items:flex-start; }
}

@media (prefers-reduced-motion:reduce) {
  [data-reveal] { opacity:1; transform:none; }
  .x-hero-media,.x-hero-content>* { animation:none; }
  @view-transition { navigation:none; }
}
.x-footer .x-button { display:inline-flex; margin:0; color:var(--dark); text-decoration:none; }
.x-footer .x-button span { display:inline; margin:0; color:inherit; font-size:inherit; }
.x-hero .x-eyebrow { color:#f0d6b6; text-shadow:0 1px 12px rgba(0,0,0,.45); }

/* ==========================================================================
   Motion. Page-level reveals are slower (marketing tier, seen once per visit);
   anything the hand touches (hover, press) stays short.
   ========================================================================== */

/* Groups: the container itself stays put, its children rise one after another (70ms apart). */
[data-reveal].x-stagger { opacity:1; transform:none; }
.x-stagger>* { opacity:0; transform:translate3d(0,18px,0); transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); transition-delay:calc(var(--i,0) * 70ms); }
.is-visible.x-stagger>*,.is-visible .x-stagger>* { opacity:1; transform:none; }

/* Photographs unveil upwards with a slight settle, instead of simply fading. */
.x-mask { clip-path:inset(14% 0 0 0); transform:scale(1.06); transition:clip-path 1.2s var(--ease-out),transform 1.4s var(--ease-out); }
.is-visible .x-mask,.x-mask.is-visible { clip-path:inset(0 0 0 0); transform:none; }

/* Eyebrow rule draws itself when its section arrives. */
.x-eyebrow::before { transform-origin:left center; transition:transform .9s var(--ease-out) .15s; }
[data-reveal]:not(.is-visible) .x-eyebrow::before { transform:scaleX(0); }
.x-hero .x-eyebrow::before { animation:x-draw 1s var(--ease-out) .35s both; }
@keyframes x-draw { from { transform:scaleX(0); } to { transform:scaleX(1); } }

/* Hero stats follow the headline in. */
.x-hero-stats>div { animation:x-rise 1s var(--ease-out) both; }
.x-hero-stats>div:nth-child(1) { animation-delay:.5s; }
.x-hero-stats>div:nth-child(2) { animation-delay:.57s; }
.x-hero-stats>div:nth-child(3) { animation-delay:.64s; }

/* Hero parallax uses the independent `translate` property so it never fights the settle animation. */
.x-hero-media { will-change:translate; }

/* Header steps out of the way while reading down, returns on the way up. */
.site-header { transition:transform .35s var(--ease-out),background .45s ease,border-color .45s ease; }
.site-header.is-hidden { transform:translateY(-100%); }

/* Navigation underline grows from the left on hover, stays on the current page. */
@media (min-width:901px) {
  .main-nav>a { position:relative; }
  .main-nav>a.active { box-shadow:none; }
  .main-nav>a::after { position:absolute; right:0; bottom:-5px; left:0; height:1px; content:""; background:currentColor; transform:scaleX(0); transform-origin:right center; transition:transform .3s var(--ease-out); }
  .main-nav>a.active::after { transform:scaleX(1); }
}
@media (min-width:901px) and (hover:hover) and (pointer:fine) {
  .main-nav>a:hover::after { transform:scaleX(1); transform-origin:left center; }
}

/* Press feedback and hover details, mouse only. */
.x-button { transition:background .3s ease,color .3s ease,transform .16s var(--ease-out); }
.x-strip img { transition:transform .7s var(--ease-out); }
@media (hover:hover) and (pointer:fine) {
  .x-strip-item:hover img { transform:scale(1.04); }
  .x-strip-item:hover i { transform:translateX(5px); }
  .x-service-grid li { transition:background .35s ease; }
  .x-service-grid li:hover { background:#fbf7f1; }
  .x-service-grid svg { transition:transform .35s var(--ease-out); }
  .x-service-grid li:hover svg { transform:translateY(-3px); }
}
.x-strip.is-dragging img { pointer-events:none; }

/* Gallery position: a thin bar that tracks the horizontal scroll directly (no easing: it follows the hand). */
@media (hover:none) { .x-property:hover .x-property-media img { transform:none; } }

/* Footer watermark drifts up slowly. */
.x-footer-mark[data-reveal] { transform:translate3d(0,40px,0); transition:opacity 1.6s var(--ease-out),transform 1.6s var(--ease-out); }
.x-footer-mark.is-visible { transform:none; }

/* Reduced motion: keep the fades that explain what appeared, drop all movement. */
@media (prefers-reduced-motion:reduce) {
  .x-stagger>*,.x-footer-mark[data-reveal] { transform:none; transition:opacity .4s ease; transition-delay:0s; }
  .x-mask { clip-path:none; transform:none; transition:none; }
  .x-eyebrow::before,[data-reveal]:not(.is-visible) .x-eyebrow::before { transform:none; transition:none; animation:none; }
  .x-hero-stats>div { animation:none; }
  .site-header.is-hidden { transform:none; }
  .x-strip img,.x-service-grid svg { transition:none; }
}

/* ==========================================================================
   Property page
   ========================================================================== */
.x-stay-top { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:clamp(40px,6vw,96px); padding-top:clamp(36px,5vw,64px); padding-bottom:clamp(64px,8vw,110px); }
.x-crumbs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; color:rgba(35,33,31,.55); font-size:.78rem; }
.x-crumbs a { color:inherit; text-decoration:none; }
.x-crumbs a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.x-stay-copy h1 { margin-top:18px; font-size:clamp(2.8rem,5.4vw,5rem); font-weight:400; line-height:.98; }
.x-stay-lead { max-width:52ch; margin-top:22px; color:rgba(35,33,31,.78); font-size:1.08rem; line-height:1.75; }
.x-stay-note { max-width:52ch; margin-top:12px; color:var(--earth); font-family:"Cormorant Garamond",Georgia,serif; font-size:1.3rem; font-style:italic; line-height:1.4; }
.x-facts { margin:34px 0 0; }
.x-facts div { display:grid; grid-template-columns:130px 1fr; gap:16px; border-top:1px solid var(--hair); padding:15px 0; }
.x-facts div:last-child { border-bottom:1px solid var(--hair); }
.x-facts dt { color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; line-height:1.9; text-transform:uppercase; }
.x-facts dd { margin:0; color:rgba(35,33,31,.82); font-size:.93rem; line-height:1.6; }
.x-facts a { color:var(--ink); text-underline-offset:3px; }
.x-stay-cover { position:sticky; top:110px; display:block; overflow:hidden; border:0; padding:0; background:var(--sand); cursor:zoom-in; }
.x-stay-cover img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform 1.2s var(--ease-out); }
.x-stay-copy>* { animation:x-rise 1s var(--ease-out) both; }
.x-stay-copy>:nth-child(2) { animation-delay:.06s; }
.x-stay-copy>:nth-child(3) { animation-delay:.12s; }
.x-stay-copy>:nth-child(4) { animation-delay:.18s; }
.x-stay-copy>:nth-child(n+5) { animation-delay:.24s; }
.x-stay-cover { animation:x-unveil 1.3s var(--ease-out) .1s both; }
@keyframes x-unveil { from { clip-path:inset(12% 0 0 0); opacity:.4; } to { clip-path:inset(0 0 0 0); opacity:1; } }

.x-stay-gallery { padding-top:0; }
.x-stay-gallery .x-gallery-head h2 { margin-top:18px; font-size:clamp(2.2rem,4vw,3.5rem); font-weight:400; line-height:1.02; }
.x-stay-gallery button.x-link { border-top:0; border-right:0; border-left:0; background:none; cursor:pointer; }
.x-mosaic { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); gap:12px; aspect-ratio:2.1/1; }
.x-mosaic-item { position:relative; overflow:hidden; border:0; padding:0; background:var(--sand); cursor:zoom-in; }
.x-mosaic-item:first-child { grid-row:1 / span 2; }
.x-mosaic-item img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease-out); }
.x-mosaic-more { position:absolute; inset:0; display:grid; place-items:center; color:#fff; background:rgba(20,18,16,.45); font-family:"Cormorant Garamond",Georgia,serif; font-size:2.4rem; }
.x-mosaic .x-mobile-only { display:none; }
.x-mosaic-item:focus-visible,.x-stay-cover:focus-visible { outline:2px solid var(--earth); outline-offset:3px; }

.x-stay-details-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,7vw,110px); align-items:start; }
.x-stay-details h2,.x-stay-book h2 { margin-top:18px; font-size:clamp(2.1rem,3.8vw,3.3rem); font-weight:400; line-height:1.04; }
.x-amenities { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; margin:0; padding:0; list-style:none; }
.x-amenities li { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--hair); padding:16px 0; font-size:.95rem; }
.x-amenities svg { flex:0 0 20px; width:20px; height:20px; color:var(--olive); }
.x-rooms-label { margin-top:44px; color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.x-rooms { margin:14px 0 0; padding:0; list-style:none; }
.x-rooms .x-room { display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px; border:0; border-top:1px solid var(--hair); border-radius:0; padding:18px 0; color:var(--ink); background:none; box-shadow:none; text-align:left; cursor:pointer; }
.x-rooms li:last-child .x-room { border-bottom:1px solid var(--hair); }
.x-rooms .x-room span { display:grid; gap:3px; }
.x-rooms .x-room strong { font-family:"Cormorant Garamond",Georgia,serif; font-size:1.45rem; font-weight:500; }
.x-rooms .x-room small { color:rgba(35,33,31,.6); font-size:.85rem; }
.x-rooms .x-room i { font-style:normal; transition:transform .3s var(--ease-out); }

.x-stay-book-grid { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:36px; }
.x-stay-book p:not(.x-eyebrow) { max-width:56ch; margin-top:16px; color:rgba(35,33,31,.7); line-height:1.7; }

@media (hover:hover) and (pointer:fine) {
  .x-stay-cover:hover img,.x-mosaic-item:hover img { transform:scale(1.03); }
  .x-rooms .x-room:hover i { transform:translate(3px,-3px); }
}
@media (max-width:900px) {
  .x-stay-top,.x-stay-details-grid { grid-template-columns:1fr; }
  .x-stay-cover { position:relative; top:0; order:-1; }
  .x-stay-cover img { aspect-ratio:4/3; }
  .x-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:none; aspect-ratio:auto; }
  .x-mosaic-item:first-child { grid-column:1 / span 2; grid-row:auto; }
  .x-mosaic-item img { aspect-ratio:4/3; height:auto; }
  .x-mosaic-item:nth-child(n+4) { display:none; }
  .x-mosaic .x-desktop-only { display:none; }
  .x-mosaic .x-mobile-only { display:grid; }
}
@media (max-width:620px) {
  .x-facts div { grid-template-columns:1fr; gap:4px; }
  .x-amenities { grid-template-columns:1fr; }
}

/* ---------- Lightbox ---------- */
.x-lightbox { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; padding:0; color:#fff; background:#121110; }
.x-lightbox::backdrop { background:rgba(16,15,14,.6); }
.x-lightbox[open] { display:grid; grid-template-rows:1fr auto; animation:x-fade .25s var(--ease-out); }
@keyframes x-fade { from { opacity:0; } to { opacity:1; } }
.x-lightbox-stage { display:grid; min-height:0; margin:0; padding:64px clamp(16px,7vw,110px) 0; place-items:center; touch-action:pan-y; }
.x-lightbox-stage img { max-width:100%; max-height:calc(100dvh - 150px); object-fit:contain; transition:opacity .2s ease,transform .3s var(--ease-out); user-select:none; -webkit-user-drag:none; }
.x-lightbox-stage img.is-loading { opacity:0; transform:scale(.985); }
.x-lightbox-count { margin:0; padding:18px 0 26px; color:rgba(255,255,255,.7); font-size:11px; font-weight:600; letter-spacing:.22em; text-align:center; text-transform:uppercase; }
.x-lightbox button { border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#fff; background:rgba(255,255,255,.06); cursor:pointer; transition:background .25s ease,transform .16s var(--ease-out); }
.x-lightbox button:hover { background:rgba(255,255,255,.18); }
.x-lightbox button:active { transform:scale(.94); }
.x-lightbox-close { position:absolute; top:18px; right:18px; width:46px; height:46px; font-size:1rem; }
.x-lightbox-nav { position:absolute; top:50%; width:54px; height:54px; margin-top:-27px; font-size:1.1rem; }
.x-lightbox-prev { left:clamp(10px,2vw,32px); }
.x-lightbox-next { right:clamp(10px,2vw,32px); }
@media (max-width:620px) {
  .x-lightbox-stage { padding:60px 0 0; }
  .x-lightbox-stage img { max-height:calc(100dvh - 200px); }
  .x-lightbox-count { padding-bottom:84px; }
  .x-lightbox-nav { top:auto; bottom:14px; margin-top:0; }
}
@media (prefers-reduced-motion:reduce) {
  .x-stay-copy>*,.x-stay-cover { animation:none; }
  .x-lightbox[open] { animation:none; }
  .x-lightbox-stage img { transition:opacity .15s ease; }
  .x-lightbox-stage img.is-loading { transform:none; }
}

/* Sticky booking bar on phones, in the editorial style. */
.mobile-book-bar { right:0; bottom:0; left:0; gap:0; border:0; border-top:1px solid var(--hair); border-radius:0; padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background:rgba(246,240,232,.96); box-shadow:0 -10px 30px rgba(35,33,31,.08); }
.mobile-book-bar a { display:grid; min-height:46px; place-items:center; border-radius:999px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.mobile-book-bar a:last-child { margin-left:10px; border:1px solid var(--hair); background:transparent; }

/* ==========================================================================
   Inner pages
   ========================================================================== */
.x-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.x-page-head { padding:clamp(64px,9vw,130px) 0 clamp(36px,5vw,60px); }
.x-page-head h1 { max-width:18ch; margin-top:20px; font-size:clamp(2.8rem,6vw,5.4rem); font-weight:400; line-height:.98; }
.x-page-head .x-lead { max-width:60ch; }
.x-page-head>.shell>* { animation:x-rise 1s var(--ease-out) both; }
.x-page-head>.shell>:nth-child(2) { animation-delay:.08s; }
.x-page-head>.shell>:nth-child(n+3) { animation-delay:.16s; }
.x-page-head .x-eyebrow::before { animation:x-draw 1s var(--ease-out) .25s both; }
.x-updated { margin-top:18px; color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.x-not-found { min-height:60vh; }

/* Strutture: alternating editorial rows */
.x-stays { padding-top:clamp(20px,3vw,40px); }
.x-stay-row { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(36px,6vw,100px); padding:clamp(40px,5vw,72px) 0; border-top:1px solid var(--hair); }
.x-stay-row:first-child { border-top:0; padding-top:0; }
.x-stay-row:nth-child(even) .x-stay-row-media { order:2; }
.x-stay-row-media { display:block; overflow:hidden; background:var(--sand); }
.x-stay-row-media img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.x-stay-row-copy h2 { margin-top:16px; font-size:clamp(2.2rem,4vw,3.4rem); font-weight:400; line-height:1.02; }
.x-stay-row-copy h2 a { color:inherit; text-decoration:none; }
.x-stay-row-copy h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.x-stay-row-meta { margin-top:18px; color:rgba(35,33,31,.7); font-size:.9rem; }
.x-stay-row-meta a { color:var(--ink); text-underline-offset:3px; }
.x-stay-row-badges { margin-top:8px; color:var(--earth); font-size:.86rem; }
.x-stay-row .x-rooms-label { margin-top:30px; }
.x-stay-row .x-rooms .x-room { padding:14px 0; }
.x-stay-row .x-rooms .x-room strong { font-size:1.25rem; }
@media (hover:hover) and (pointer:fine) {
  .x-stay-row-media img { transition:transform 1.2s var(--ease-out),clip-path 1.2s var(--ease-out); }
  .x-stay-row-media:hover img { transform:scale(1.03); }
}

/* Verona page */
.x-verona-page { padding-top:clamp(20px,3vw,40px); }
.x-verona-page .x-guides { margin-top:0; }
.x-verona-page .x-guides h2 { font-size:1.7rem; line-height:1.1; }
.x-verona-page .x-verona-grid { align-items:start; }
.x-verona-page .x-verona-media { position:sticky; top:110px; }

/* Chi siamo */
.x-about { padding-top:clamp(20px,3vw,40px); }
.x-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,110px); align-items:center; }
.x-about-portrait { margin:0; overflow:hidden; }
.x-about-portrait img { display:block; width:100%; aspect-ratio:5/4; object-fit:cover; }
.x-about-portrait figcaption { margin-top:14px; color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.x-about-story>p:not(.x-eyebrow) { max-width:56ch; margin-top:22px; color:rgba(35,33,31,.75); font-size:1.02rem; line-height:1.85; }
.x-about-story>p.x-about-first { margin-top:26px; color:var(--ink); font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.55rem,2.3vw,2rem); line-height:1.4; }
.x-about-quote { text-align:center; }
.x-about-quote blockquote { max-width:30ch; margin:0 auto; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.8rem,3.6vw,3rem); font-style:italic; line-height:1.25; }
.x-about-quote blockquote::before { display:block; margin-bottom:10px; color:var(--earth); content:"“"; font-size:2.2em; line-height:.6; }

.x-about-cinema-grid { display:grid; grid-template-columns:1.45fr .55fr; gap:clamp(36px,5vw,72px); align-items:start; }
.x-about-cinema { color:var(--ink); background:#e9ddcc; }
.x-about-cinema .video-frame { margin-top:24px; border-radius:0; box-shadow:none; }
.x-about-cinema .consent-embed-poster { filter:brightness(.55); }
.x-about-places ul { margin:24px 0 0; padding:0; list-style:none; }
.x-about-places li a { display:grid; grid-template-columns:72px 1fr auto; align-items:center; gap:16px; border-top:1px solid rgba(35,33,31,.18); padding:14px 0; color:var(--ink); text-decoration:none; }
.x-about-places li:last-child a { border-bottom:1px solid rgba(35,33,31,.18); }
.x-about-places img { width:72px; height:56px; object-fit:cover; }
.x-about-places small { display:block; color:rgba(35,33,31,.58); font-size:9.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.x-about-places strong { display:block; margin-top:4px; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.3rem; font-weight:500; line-height:1.1; }
.x-about-places i { color:var(--earth); font-style:normal; transition:transform .3s var(--ease-out); }
.x-about-places a:focus-visible { outline:2px solid var(--earth); outline-offset:2px; }
@media (hover:hover) and (pointer:fine) {
  .x-about-places a:hover i { transform:translateX(5px); }
  .x-about-places a:hover strong { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
}

.x-logo-story { text-align:center; }
.x-logo-story .x-eyebrow { justify-content:center; }
.x-logo-story blockquote { max-width:32ch; margin:24px auto 0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.6rem,3vw,2.4rem); font-style:italic; line-height:1.3; }
@media (max-width:900px) {
  .x-about-grid,.x-about-cinema-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .x-arches path { stroke-dashoffset:0; transition:none; }
  .x-logo-word { opacity:1; transform:none; transition:none; }
}

/* Privacy */
.x-privacy { padding-top:clamp(10px,2vw,24px); }
.x-privacy .privacy-sections { display:block; max-width:860px; margin:0; }
.x-privacy .privacy-sections article { display:grid; grid-template-columns:240px 1fr; gap:24px 48px; border:0; border-top:1px solid var(--hair); border-radius:0; padding:30px 0; background:none; box-shadow:none; }
.x-privacy .privacy-sections article:last-child { border-bottom:1px solid var(--hair); }
.x-privacy .privacy-sections h2 { font-size:1.55rem; font-weight:500; line-height:1.15; }
.x-privacy .privacy-sections article>div { margin-top:0; color:rgba(35,33,31,.75); font-size:.95rem; line-height:1.8; }

/* Contatti: the existing panels, restyled flat */
.page-contatti .page-intro { padding-top:clamp(64px,9vw,130px); }
.contact-layout .section-heading>p { display:flex; align-items:center; gap:14px; color:var(--earth); font-size:11px; font-weight:600; letter-spacing:.28em; }
.contact-layout .section-heading>p::before { width:28px; height:1px; content:""; background:currentColor; opacity:.7; }
.contact-layout .section-heading h1 { margin-top:20px; font-size:clamp(2.8rem,5.4vw,5rem); font-weight:400; line-height:.98; }
.contact-panel,.availability-panel,.map-panel { border:1px solid var(--hair); border-radius:4px; background:#fbf8f3; box-shadow:none; backdrop-filter:none; }
.availability-head { padding:28px 28px 22px; background:none; }
.contact-panel h2,.availability-head h2 { font-size:clamp(2rem,3vw,2.5rem); font-weight:400; }
.panel-eyebrow,.availability-head>p,.map-panel-head>p { color:var(--earth); font-size:10.5px; font-weight:600; letter-spacing:.22em; }
.contact-note { border:0; border-left:2px solid var(--gold); border-radius:0; padding:6px 0 6px 22px; background:none; box-shadow:none; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.35rem; font-style:italic; line-height:1.45; }
.booking-note { border-radius:4px; padding:28px; box-shadow:none; background:var(--dark); }
.contact-form input,.contact-form select,.contact-form textarea,.availability-form select { border-radius:4px; background:#fff; }
.form-success,.form-error,.availability-message { border-radius:4px; }
.availability-card { border-radius:4px; box-shadow:none; }
.availability-property-group { border-radius:4px; box-shadow:none; }
.map-panel .map-stage { border-radius:0; }

/* Legacy buttons still used by forms, availability results and admin: same language as .x-button */
.button { min-height:48px; border-radius:999px; padding:0 24px; font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; box-shadow:none; transition:background .3s ease,color .3s ease,transform .16s var(--ease-out); }
.button:active { transform:scale(.97); }
.button-dark { background:var(--ink); }
.button-dark:hover { background:#3a3632; }
.button-light { border-color:var(--hair); background:transparent; }
.button-light:hover { background:#fff; }
.result-actions .button,.card-actions .button { min-height:40px; padding:0 16px; font-size:10.5px; }

@media (max-width:900px) {
  .x-stay-row,.x-about-grid { grid-template-columns:1fr; }
  .x-stay-row:nth-child(even) .x-stay-row-media { order:0; }
  .x-verona-page .x-verona-media { position:static; }
  .x-privacy .privacy-sections article { grid-template-columns:1fr; gap:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .x-page-head>.shell>*,.x-page-head .x-eyebrow::before { animation:none; }
}
.calendar-month { border-radius:4px; box-shadow:none; }
.calendar-summary { border-radius:4px; }

/* ==========================================================================
   Home, second pass: services split, review marquee, warm gallery
   ========================================================================== */

/* Services: heading on the left, the six squares on the right (desktop). */
.x-services-grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:clamp(40px,6vw,96px); }
.x-services-grid .x-heading { margin-bottom:0; }
.x-services .x-service-grid { border-color:rgba(35,33,31,.16); }
.x-services .x-service-grid li { aspect-ratio:1; justify-content:space-between; border-color:rgba(35,33,31,.16); background:rgba(255,255,255,.35); }
.x-services .x-service-grid svg { width:34px; height:34px; }
@media (max-width:900px) {
  .x-services-grid { grid-template-columns:1fr; }
  .x-services .x-service-grid li { aspect-ratio:auto; }
}

/* Reviews: header row, then two rows of cards drifting in opposite directions. */
.x-reviews-head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:24px 48px; margin-bottom:clamp(40px,5vw,64px); }
.x-reviews-head .x-score { display:flex; align-items:end; gap:20px; }
.x-reviews-head .x-score strong { margin-top:0; font-size:clamp(4rem,7vw,6rem); }
.x-reviews-head .x-score p { max-width:24ch; margin:0 0 10px; }
.x-marquee { display:grid; gap:18px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
.x-marquee-row { overflow:hidden; }
.x-marquee-track { --marquee-gap:18px; display:flex; width:max-content; gap:var(--marquee-gap); animation:x-marquee 80s linear infinite; }
.x-marquee-row.is-reverse .x-marquee-track { animation-direction:reverse; animation-duration:95s; }
@keyframes x-marquee { from { transform:translate3d(0,0,0); } to { transform:translate3d(calc(-50% - var(--marquee-gap) / 2),0,0); } }
.x-review { display:flex; flex:0 0 clamp(240px,23vw,310px); flex-direction:column; gap:14px; min-height:190px; margin:0; border:1px solid var(--hair); padding:20px 20px 16px; background:#fff; }
.x-review-body { display:flex; flex:1; align-items:center; }
.x-review blockquote { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.12rem; font-style:italic; line-height:1.4; }
.x-review blockquote::before { content:"“"; }
.x-review blockquote::after { content:"”"; }
.x-review figcaption { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--hair); padding-top:12px; }
.x-review-who { display:grid; gap:2px; }
.x-review figcaption strong { font-size:.76rem; font-weight:600; }
.x-review-who span { color:var(--earth); font-size:9.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.x-review-score { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border-radius:7px 7px 7px 0; color:#fff; background:#003b95; font-size:.76rem; font-weight:700; }
@media (hover:hover) and (pointer:fine) {
  .x-marquee:hover .x-marquee-track { animation-play-state:paused; }
}
@media (prefers-reduced-motion:reduce) {
  .x-marquee { -webkit-mask-image:none; mask-image:none; }
  .x-marquee-row { overflow-x:auto; padding:0 var(--gutter); }
  .x-marquee-track { animation:none; }
  .x-marquee-row.is-reverse { display:none; }
  .x-review[aria-hidden="true"] { display:none; }
}

/* Gallery: warm beige instead of the dark band. */
.x-gallery { background:#e9ddcc; }
.x-gallery .x-strip-controls button { border-color:rgba(35,33,31,.22); color:var(--ink); }
.x-gallery .x-strip-controls button:hover { color:var(--paper); background:var(--ink); }
.x-gallery .x-strip:focus-visible { outline-color:var(--earth); }
.x-review blockquote { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; }
/* Long reviews: the card opens the full text. */
.x-review.is-expandable { cursor:pointer; transition:border-color .25s ease,box-shadow .25s ease; }
.x-review.is-expandable .x-review-who strong::after { margin-left:8px; color:var(--earth); content:attr(data-more); font-weight:600; }
.x-review.is-expandable:focus-visible { outline:2px solid var(--earth); outline-offset:2px; }
@media (hover:hover) and (pointer:fine) {
  .x-review.is-expandable:hover { border-color:rgba(35,33,31,.3); box-shadow:0 10px 26px rgba(35,33,31,.08); }
}
.x-review-dialog { width:min(560px,calc(100vw - 32px)); margin:auto; border:0; padding:40px 36px 32px; color:var(--ink); background:var(--paper); box-shadow:0 30px 80px rgba(20,18,16,.3); }
.x-review-dialog::backdrop { background:rgba(20,18,16,.55); }
.x-review-dialog[open] { animation:x-dialog-in .22s var(--ease-out); }
@keyframes x-dialog-in { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:none; } }
.x-review-dialog blockquote { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.45rem; font-style:italic; line-height:1.45; }
.x-review-dialog blockquote::before { content:"“"; }
.x-review-dialog blockquote::after { content:"”"; }
.x-review-dialog figcaption { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:24px; border-top:1px solid var(--hair); padding-top:16px; }
.x-review-dialog .x-review-who strong::after { content:none; }
.x-review-dialog-close { position:absolute; top:12px; right:12px; width:38px; height:38px; border:1px solid var(--hair); border-radius:50%; color:var(--ink); background:transparent; cursor:pointer; }
@media (prefers-reduced-motion:reduce) { .x-review-dialog[open] { animation:none; } }

/* Gallery ribbon: endless and draggable (site.js). The photos fade into the beige outside the page margins,
   so the moving row still lines up with the edges of every other section. */
.x-strip.is-looping { display:block; overflow:hidden; padding:0; cursor:grab; touch-action:pan-y; user-select:none; scroll-snap-type:none;
  --edge:max(var(--gutter),calc((100vw - 1280px) / 2));
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--edge),#000 calc(100% - var(--edge)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--edge),#000 calc(100% - var(--edge)),transparent 100%); }
.x-strip.is-looping.is-dragging { cursor:grabbing; }
.x-strip-track { display:flex; width:max-content; gap:18px; will-change:transform; }
.x-strip-track .x-strip-item { -webkit-user-drag:none; }
.x-gallery { padding-bottom:clamp(84px,11vw,150px); }

/* Strutture: comparison as four aligned cards. Rows line up across cards through subgrid. */
.x-compare-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.x-compare-card { display:grid; grid-row:span 7; grid-template-rows:subgrid; row-gap:0; border:1px solid var(--hair); background:#fbf8f3; transition:background .3s ease,box-shadow .3s ease,transform .35s var(--ease-out),border-color .3s ease; }
.x-compare-media { display:block; overflow:hidden; aspect-ratio:4/3; background:var(--sand); }
.x-compare-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-out); }
.x-compare-title { padding:20px 20px 16px; border-bottom:1px solid var(--hair); }
.x-compare-title h3 { font-size:1.65rem; font-weight:500; line-height:1.1; }
.x-compare-title h3 a { color:var(--ink); text-decoration:none; }
.x-compare-title p { display:flex; align-items:center; gap:12px; margin-top:12px; color:rgba(35,33,31,.7); font-size:.8rem; line-height:1.35; }
.x-compare-title small { color:var(--earth); font-size:9.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.x-compare-row { display:grid; grid-template-columns:22px 1fr; align-items:start; gap:12px; border-bottom:1px solid var(--hair); padding:14px 20px; }
.x-compare-icon { width:20px; height:20px; margin-top:1px; color:var(--earth); }
.x-compare-row small { display:block; color:var(--earth); font-size:9.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.x-compare-row p { margin-top:4px; color:rgba(35,33,31,.82); font-size:.88rem; line-height:1.5; }
.x-compare-row ul { display:grid; gap:4px; margin:6px 0 0; padding:0; list-style:none; }
.x-compare-row li { position:relative; padding-left:14px; color:rgba(35,33,31,.82); font-size:.86rem; line-height:1.45; }
.x-compare-row li::before { position:absolute; top:.6em; left:0; width:5px; height:5px; border-radius:50%; content:""; background:var(--olive); }
.x-compare-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; padding:20px; }
.x-compare-actions .x-button { min-height:42px; padding:0 20px; font-size:11px; }
@media (hover:hover) and (pointer:fine) {
  .x-compare-card:hover { border-color:rgba(35,33,31,.22); background:#fff; box-shadow:0 22px 50px rgba(35,33,31,.1); transform:translateY(-4px); }
  .x-compare-card:hover .x-compare-media img { transform:scale(1.04); }
  .x-compare-title h3 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
}
@media (max-width:1000px) {
  /* Phones and tablets: cards side by side, swiped horizontally; rows no longer need to line up. */
  .x-compare-cards { display:flex; overflow-x:auto; gap:14px; margin:0 calc(var(--gutter) * -1); padding:0 var(--gutter) 6px; scroll-padding-inline:var(--gutter); scroll-snap-type:x mandatory; scrollbar-width:none; }
  .x-compare-cards::-webkit-scrollbar { display:none; }
  .x-compare-card { display:flex; flex:0 0 min(78vw,320px); flex-direction:column; scroll-snap-align:start; }
  .x-compare-actions { margin-top:auto; }
}
@media (prefers-reduced-motion:reduce) { .x-compare-card,.x-compare-card:hover { transform:none; } }

/* Chi siamo, third pass */
.page-chi-siamo .x-page-head .shell { text-align:center; }
.page-chi-siamo .x-page-head .x-eyebrow { justify-content:center; }
.page-chi-siamo .x-page-head h1 { margin-inline:auto; }

/* Logo mark: the three arches draw one after another, then the wordmark settles in. */
.x-logo-mark { display:block; width:min(240px,70%); margin:0 auto 34px; color:var(--ink); overflow:visible; }
.x-arches path { stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset .55s cubic-bezier(.45,0,.55,1); }
.x-arches path:nth-child(2) { transition-delay:.55s; }
.x-arches path:nth-child(3) { transition-delay:1.1s; }
.x-logo-word { font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:21px; fill:currentColor; opacity:0; transform:translateY(6px); transform-box:fill-box; transition:opacity .8s ease 1.65s,transform .8s var(--ease-out) 1.65s; }
.x-logo-story.is-visible .x-arches path { stroke-dashoffset:0; }
.x-logo-story.is-visible .x-logo-word { opacity:1; transform:none; }
.x-logo-text { max-width:44ch; margin:20px auto 0; color:rgba(35,33,31,.75); font-size:1rem; line-height:1.8; }

/* Desktop: video right under the founders, then one band with the logo story (left) and the quote (right).
   Phones keep the document order: quote, video, logo. */
@media (min-width:901px) {
  .x-about-flow { display:grid; grid-template-columns:1fr 1fr; grid-template-areas:"cinema cinema" "logo quote"; background:var(--paper-2); }
  .x-about-flow>.x-about-cinema { grid-area:cinema; }
  .x-about-flow>.x-logo-story { grid-area:logo; }
  .x-about-flow>.x-about-quote { grid-area:quote; }
  .x-about-flow>.x-logo-story,.x-about-flow>.x-about-quote { display:flex; align-items:center; background:transparent; }
  .x-about-flow>.x-logo-story>.shell { width:auto; margin:0; padding-left:max(var(--gutter),calc((100vw - 1280px) / 2)); padding-right:clamp(32px,5vw,72px); }
  .x-about-flow>.x-about-quote>.shell { width:auto; margin:0; border-left:1px solid rgba(35,33,31,.16); padding-left:clamp(32px,5vw,72px); padding-right:max(var(--gutter),calc((100vw - 1280px) / 2)); }
  .x-about-flow>.x-about-quote { text-align:left; }
  .x-about-flow>.x-about-quote blockquote { max-width:none; margin:0; font-size:clamp(1.7rem,2.6vw,2.4rem); }
}
/* Map placeholder: just the button over the preview (like the video), no explanatory box. */
.map-placeholder { place-items:end center; padding-bottom:28px; }
.map-placeholder-body { border:0; padding:0; background:none; box-shadow:none; backdrop-filter:none; }
.map-placeholder-body .map-placeholder-error { border-radius:4px; padding:8px 12px; background:rgba(255,255,255,.92); }

/* Cookie banner: larger and in the editorial style. Desktop: text on the left, choices on the right. */
.cookie-banner { right:24px; bottom:24px; left:24px; width:min(1120px,calc(100% - 48px)); border:1px solid var(--hair); border-radius:4px; padding:32px 36px; background:rgba(250,247,240,.985); box-shadow:0 30px 80px rgba(20,18,16,.22); }
.cookie-banner:not([hidden]) { display:grid; grid-template-columns:1fr auto; column-gap:44px; align-items:center; animation:x-rise .6s var(--ease-out) both; }
.cookie-banner>.cookie-title { grid-column:1; font-size:2rem; font-weight:500; line-height:1.1; }
.cookie-banner>p:not(.cookie-title) { grid-column:1; max-width:62ch; margin-top:12px; color:rgba(35,33,31,.75); font-size:.98rem; line-height:1.7; }
.cookie-details { grid-column:1 / -1; margin-top:20px; border-radius:4px; padding:18px 20px; font-size:.9rem; line-height:1.65; }
.cookie-actions { grid-column:2; grid-row:1 / span 2; display:grid; gap:10px; min-width:260px; margin-top:0; }
.cookie-actions .button { min-height:50px; padding:0 26px; font-size:11.5px; }
.cookie-actions .text-button { min-height:38px; border:0; padding:0; color:var(--ink); background:none; font-size:.86rem; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
@media (max-width:900px) {
  .cookie-banner { right:12px; bottom:12px; left:12px; width:auto; padding:24px 22px; }
  .cookie-banner:not([hidden]) { display:block; }
  .cookie-banner>.cookie-title { font-size:1.65rem; }
  .cookie-banner>p:not(.cookie-title) { font-size:.94rem; }
  .cookie-actions { display:grid; grid-template-columns:1fr 1fr; min-width:0; margin-top:20px; }
  .cookie-actions .button { min-height:48px; padding:0 14px; }
}
@media (prefers-reduced-motion:reduce) { .cookie-banner:not([hidden]) { animation:none; } }
@media (min-width:901px) {
  .cookie-banner>.cookie-title { align-self:end; }
  .cookie-banner>p:not(.cookie-title) { align-self:start; }
}
.cookie-banner { border-radius:24px; }
.cookie-details { border-radius:14px; }
@media (max-width:900px) { .cookie-banner { border-radius:20px; } }

/* ==========================================================================
   Direct-booking promotion: a voucher-style popup over a dark backdrop (see assets/promo.js).
   Deliberately bolder than the rest of the site: the 10% is the hero.
   ========================================================================== */
.x-promo { --promo-red:#8c2f1f; --promo-red-deep:#5a1a10; --promo-cream:#fbf3e6; --promo-gold:#e9b872;
  width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; padding:clamp(12px,3vw,40px); overflow:auto; background:transparent; }
.x-promo[open] { display:grid; place-items:center; }
.x-promo::backdrop { background:rgba(14,12,10,.72); backdrop-filter:blur(4px); }
.x-promo[open]::backdrop { animation:x-promo-fade .35s ease both; }
.x-promo-card { position:relative; display:grid; grid-template-columns:1fr 1.08fr; width:min(1000px,100%); min-height:min(600px,calc(100dvh - 80px)); overflow:hidden; border-radius:28px; background:var(--promo-red-deep); box-shadow:0 40px 120px rgba(0,0,0,.45); }
.x-promo[open] .x-promo-card { animation:x-promo-pop .55s var(--ease-out) both; }

.x-promo-media { position:relative; min-height:0; margin:0; overflow:hidden; background:#2a1d17; }
.x-promo-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.x-promo[open] .x-promo-media img { animation:x-promo-settle 1.6s var(--ease-out) both; }
.x-promo-media::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(20,12,8,0) 55%,rgba(20,12,8,.55)); }
.x-promo-media figcaption { position:absolute; z-index:1; bottom:22px; left:24px; color:rgba(255,255,255,.9); font-size:10.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }

/* Ticket: warm red panel with a perforated edge and two notches, like a voucher to tear off. */
.x-promo-ticket { position:relative; display:flex; min-height:0; flex-direction:column; justify-content:center; padding:clamp(40px,5vw,60px) clamp(30px,4.5vw,58px); color:var(--promo-cream); background:radial-gradient(120% 90% at 100% 0%,#a83a26 0%,var(--promo-red) 45%,var(--promo-red-deep) 100%);
  -webkit-mask:radial-gradient(circle 16px at 0 0,transparent 15.5px,#000 16px) top left/100% 51% no-repeat,radial-gradient(circle 16px at 0 100%,transparent 15.5px,#000 16px) bottom left/100% 51% no-repeat;
  mask:radial-gradient(circle 16px at 0 0,transparent 15.5px,#000 16px) top left/100% 51% no-repeat,radial-gradient(circle 16px at 0 100%,transparent 15.5px,#000 16px) bottom left/100% 51% no-repeat; }
.x-promo-ticket::before { position:absolute; top:26px; bottom:26px; left:0; width:0; border-left:2px dashed rgba(251,243,230,.38); content:""; }
.x-promo-eyebrow { color:var(--promo-gold); font-size:11px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; }
.x-promo-badge { display:flex; align-items:flex-end; flex-wrap:wrap; gap:6px 18px; margin-top:14px; }
.x-promo-badge span { font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:clamp(5.2rem,11vw,8.4rem); font-weight:800; line-height:.82; letter-spacing:-.05em; font-variant-numeric:lining-nums; text-shadow:0 10px 40px rgba(0,0,0,.25); }
.x-promo-badge small { max-width:15ch; padding-bottom:10px; color:rgba(251,243,230,.82); font-size:.82rem; font-weight:500; line-height:1.35; }
.x-promo h2 { margin-top:clamp(18px,3vh,26px); color:#fff; font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:500; line-height:1.08; font-variant-numeric:lining-nums; }
.x-promo-text { margin-top:12px; color:rgba(251,243,230,.84); font-size:.95rem; line-height:1.65; }
.x-promo-perks { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.x-promo-perks li { display:flex; align-items:center; gap:8px; border:1px solid rgba(251,243,230,.28); border-radius:999px; padding:7px 13px 7px 10px; background:rgba(255,255,255,.06); font-size:.8rem; font-weight:500; }
.x-promo-perks svg { width:18px; height:18px; color:var(--promo-gold); }
.x-promo-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:clamp(24px,4vh,34px); }
.x-promo-cta { display:inline-flex; min-height:56px; align-items:center; gap:12px; border-radius:999px; padding:0 30px; color:var(--promo-red-deep); background:var(--promo-cream); box-shadow:0 14px 34px rgba(0,0,0,.25); font-size:12.5px; font-weight:700; letter-spacing:.14em; text-decoration:none; text-transform:uppercase; transition:background .25s ease,transform .18s var(--ease-out),box-shadow .25s ease; }
.x-promo-cta span { transition:transform .3s var(--ease-out); }
.x-promo-cta:hover { background:#fff; box-shadow:0 18px 40px rgba(0,0,0,.32); }
.x-promo-cta:hover span { transform:translateX(4px); }
.x-promo-cta:active { transform:scale(.97); }
.x-promo-later { border:0; padding:6px 0; color:rgba(251,243,230,.85); background:none; font:inherit; font-size:.88rem; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.x-promo-later:hover { color:#fff; }
.x-promo-close { position:absolute; z-index:3; top:16px; right:16px; display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(251,243,230,.35); border-radius:50%; padding:0; color:var(--promo-cream); background:rgba(20,10,6,.25); cursor:pointer; transition:background .25s ease,transform .16s var(--ease-out); }
.x-promo-close svg { width:18px; height:18px; }
.x-promo-close:hover { background:rgba(20,10,6,.5); }
.x-promo-close:active { transform:scale(.94); }
.x-promo :is(.x-promo-close,.x-promo-cta,.x-promo-later):focus-visible { outline:2px solid var(--promo-gold); outline-offset:3px; }

.x-promo[open] .x-promo-item { animation:x-rise .7s var(--ease-out) both; }
.x-promo[open] .x-promo-item:nth-child(1) { animation-delay:.12s; }
.x-promo[open] .x-promo-item:nth-child(2) { animation-delay:.18s; }
.x-promo[open] .x-promo-item:nth-child(3) { animation-delay:.26s; }
.x-promo[open] .x-promo-item:nth-child(4) { animation-delay:.32s; }
.x-promo[open] .x-promo-item:nth-child(5) { animation-delay:.38s; }
.x-promo[open] .x-promo-item:nth-child(6) { animation-delay:.44s; }
.x-promo.is-closing .x-promo-card { animation:x-promo-out .3s var(--ease-out) both; }
.x-promo.is-closing::backdrop { animation:x-promo-fade .3s ease reverse both; }
@keyframes x-promo-fade { from { opacity:0; } to { opacity:1; } }
@keyframes x-promo-pop { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes x-promo-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateY(10px) scale(.97); } }
@keyframes x-promo-settle { from { transform:scale(1.08); } to { transform:none; } }

/* Phones: photo on top, the ticket below, perforation turns horizontal. */
@media (max-width:760px) {
  .x-promo { padding:12px; padding-top:calc(12px + env(safe-area-inset-top)); padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
  .x-promo[open] { place-items:start center; }
  .x-promo-card { grid-template-columns:1fr; grid-template-rows:auto auto; min-height:0; margin:auto 0; border-radius:22px; }
  .x-promo-media { height:clamp(130px,26svh,210px); }
  .x-promo-ticket { padding:30px 22px 24px;
    -webkit-mask:radial-gradient(circle 14px at 0 0,transparent 13.5px,#000 14px) top left/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,transparent 13.5px,#000 14px) top right/51% 100% no-repeat;
    mask:radial-gradient(circle 14px at 0 0,transparent 13.5px,#000 14px) top left/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,transparent 13.5px,#000 14px) top right/51% 100% no-repeat; }
  .x-promo-ticket::before { top:0; right:22px; bottom:auto; left:22px; width:auto; height:0; border-top:2px dashed rgba(251,243,230,.38); border-left:0; }
  .x-promo-badge span { font-size:clamp(4.4rem,22vw,6rem); }
  .x-promo-badge small { padding-bottom:6px; }
  .x-promo h2 { font-size:clamp(1.45rem,6.4vw,1.9rem); }
  .x-promo-text { font-size:.9rem; }
  .x-promo-perks { gap:8px; margin-top:16px; }
  .x-promo-perks li { padding:6px 11px 6px 8px; font-size:.74rem; }
  .x-promo-actions { flex-direction:column; align-items:stretch; gap:6px; margin-top:20px; }
  .x-promo-cta { justify-content:center; min-height:52px; }
  .x-promo-later { align-self:center; }
  .x-promo-close { top:12px; right:12px; background:rgba(20,10,6,.45); }
}
@media (max-width:760px) and (max-height:640px) {
  .x-promo-media { height:110px; }
  .x-promo-text { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .x-promo[open]::backdrop,.x-promo[open] .x-promo-card,.x-promo[open] .x-promo-media img,.x-promo[open] .x-promo-item,.x-promo.is-closing .x-promo-card,.x-promo.is-closing::backdrop { animation:none; }
}
/* Promo refinements */
.x-promo-media img { object-position:72% 50%; }
.x-promo-badge { flex-direction:column; align-items:flex-start; gap:12px; }
.x-promo-badge small { max-width:none; padding-bottom:0; font-size:.86rem; }
.x-promo-close:focus-visible { outline-width:1.5px; outline-offset:2px; }
@media (max-width:760px) { .x-promo-media img { object-position:60% 50%; } }
@media (max-width:380px) {
  .x-promo-cta { padding:0 18px; font-size:11px; letter-spacing:.08em; }
}
@media (max-width:760px) and (max-height:640px) {
  .x-promo-ticket { padding-top:24px; }
  .x-promo-badge span { font-size:4rem; }
  .x-promo-perks { display:none; }
  .x-promo h2 { margin-top:14px; }
}
/* Phones: no edge fade on the gallery ribbon, photos sized on the screen width (never on the ribbon itself). */
@media (max-width:620px) {
  .x-strip.is-looping { -webkit-mask-image:none; mask-image:none; }
  .x-strip-track { gap:12px; }
  .x-strip-track .x-strip-item { flex:0 0 82vw; }
}
/* Phones: no edge fade on the review ribbon (a masked, very wide animated layer is not painted reliably). */
@media (max-width:620px) {
  .x-marquee { -webkit-mask-image:none; mask-image:none; }
  .x-marquee-track { --marquee-gap:12px; }
  .x-review { flex-basis:240px; }
}

/* Review ribbon, per-card engine (site.js initMarquee). Without JS (or with reduced motion) each row is a
   plain horizontal list that can be swiped. */
.x-marquee-track,.x-marquee-row.is-reverse .x-marquee-track { animation:none; }
.x-marquee-row { overflow-x:auto; scrollbar-width:none; }
.x-marquee-row::-webkit-scrollbar { display:none; }
.x-marquee-track.is-js { position:relative; display:block; width:auto; }
.x-marquee-row:has(.is-js) { overflow:hidden; }
.x-marquee-track.is-js .x-review { position:absolute; top:0; left:0; width:clamp(240px,23vw,310px); will-change:transform; }
@media (max-width:620px) { .x-marquee-track.is-js .x-review { width:240px; } }

/* WhatsApp: floating chat button, above the property page booking bar on mobile, below cookie banner and dialogs. */
.x-whatsapp { position:fixed; z-index:140; right:max(18px,env(safe-area-inset-right)); bottom:calc(18px + env(safe-area-inset-bottom)); display:inline-flex; align-items:center; gap:10px; border-radius:999px; padding:12px 18px 12px 13px; color:#fff; background:#1f7a4d; box-shadow:0 14px 34px rgba(20,18,16,.24); font-size:.82rem; font-weight:600; letter-spacing:.02em; text-decoration:none; transition:transform .25s var(--ease-out),background .25s; }
.x-whatsapp svg { width:24px; height:24px; flex:0 0 24px; }
.x-whatsapp:active { transform:scale(.96); }
.x-whatsapp:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media (hover:hover) and (pointer:fine) { .x-whatsapp:hover { background:#18663f; transform:translateY(-2px); } }
@media (max-width:900px) {
  .x-whatsapp { padding:13px; }
  .x-whatsapp span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  body:has(.mobile-book-bar) .x-whatsapp { bottom:calc(84px + env(safe-area-inset-bottom)); }
}
@media print { .x-whatsapp { display:none; } }
