/* SCALA VISTA — RESPONSIVE OVERRIDES | caricare per ultimo */
html,body{max-width:100%} body{overflow-x:clip} img,svg,video{max-width:100%} input,select,textarea,button{max-width:100%}

@media(max-width:1180px){
 :root{--shell:min(92vw,1040px)}
 .apartments-page .floor-panel{grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr)}
 .apartments-page .floor-info-units{padding:3rem 2.5rem}
 .contacts-page .contacts-main-grid{gap:clamp(4rem,6vw,6rem)}
}

@media(max-width:1024px){
 :root{--shell:min(91vw,900px)}
 .main-nav{overflow-y:auto;overscroll-behavior:contain;padding-left:5vw;padding-right:5vw;padding-bottom:max(3rem,env(safe-area-inset-bottom))}
 .main-nav .nav-link{width:100%;font-size:clamp(2.15rem,6vw,3.9rem)}
 .main-nav .nav-cta{width:fit-content;max-width:100%}
 .page-hero-content h1,.contacts-page .contacts-hero h1{font-size:clamp(3.45rem,8vw,6rem)}
 .apartments-page .floor-panel{grid-template-columns:1fr}
 .apartments-page .floor-plan{min-height:0;border-right:0;border-bottom:1px solid var(--line)}
 .apartments-page .floor-plan img{max-height:none}
 .apartments-page .floor-info-units{min-height:0}
 .cookie-settings{max-height:88dvh}
}

@media(max-width:760px){
 :root{--shell:calc(100vw - 32px);--header-h:78px}
 html{scroll-padding-top:78px}
 .site-header{height:78px;padding:7px 16px}
 .site-header.is-scrolled,.site-header.menu-visible{height:70px;padding:6px 16px}
 .brand,.site-header.is-scrolled .brand,.site-header.menu-visible .brand{height:58px}
 .brand img,.site-header.is-scrolled .brand img,.site-header.menu-visible .brand img{height:54px;max-width:104px}
 .menu-toggle{flex:0 0 44px}
 .main-nav{padding:88px 20px max(32px,env(safe-area-inset-bottom));gap:.4rem}
 .main-nav .nav-link{padding:.3rem 0;font-size:clamp(2rem,10.5vw,3rem);line-height:1}
 .main-nav .nav-cta{width:100%;margin-top:1.4rem;min-height:52px}
 .hero,.hero-content{min-height:88svh}
 .hero-content{padding-top:7rem;padding-bottom:5.3rem}
 .hero h1{max-width:100%;font-size:clamp(2.85rem,12.3vw,4.5rem);line-height:.9;letter-spacing:-.055em}
 .hero h1 span{margin-left:0}
 .hero-bottom{padding-right:2.5rem}
 .page-hero{min-height:76svh}
 .page-hero-content{min-height:76svh;padding-top:7rem;padding-bottom:3.2rem}
 .page-hero-content h1{max-width:100%;font-size:clamp(2.9rem,12vw,4.4rem);line-height:.9;letter-spacing:-.055em}
 .page-hero-content h1 span{margin-left:0}
 .page-intro,.apartments-intro,.floor-explorer,.availability-cta,.page-next,.project-quality,.construction-timeline,.context-page .context-intro,.context-page .context-coordinates,.context-page .context-map,.contacts-page .contacts-main,.contacts-page .contacts-visit,.gallery-page .gallery-message,.contact,.project-specifications{padding-top:4.5rem;padding-bottom:4.5rem}
 .page-intro h2,.apartments-intro h2,.apartment-types-head h2,.floor-explorer-head h2,.apartment-outdoor-copy h2,.availability-cta h2,.page-next h2,.project-quality h2,.construction-timeline-intro h2,.context-page .context-intro h2,.context-page .context-coordinates h2,.context-page .context-image-break h2,.context-page .context-map h2,.contacts-page .contacts-info h2,.contacts-page .contacts-visit-copy h2,.gallery-page .gallery-message h2,.contact-heading h2,.project-specifications h2,.apartments-specifications h2{max-width:100%;font-size:clamp(2.75rem,12vw,4.35rem);line-height:.92;letter-spacing:-.05em}
 .page-intro h2 span,.apartment-types-head h2 span,.apartment-outdoor-copy h2 span,.availability-cta h2 span,.page-next h2 span,.context-page h2 span,.contacts-page h2 span,.gallery-page .gallery-message h2 span,.project-specifications h2 span,.apartments-specifications h2 span{margin-left:0}
 .contact-grid{gap:3rem}.contact-form-wrap>p{margin-bottom:1.7rem}.form-field{padding:1rem 0 .7rem}.form-field input,.form-field select,textarea{font-size:16px}.privacy-check{font-size:.74rem;line-height:1.45}.form-submit,.button{max-width:100%}
 .apartments-facts{margin-top:4rem}.apartments-fact{min-height:150px;padding:1.5rem 1rem 1.5rem 0}.apartments-fact+.apartments-fact{padding-left:1rem}.apartments-fact strong{margin-bottom:2rem;font-size:clamp(2.15rem,11vw,3.5rem)}
 .apartment-type-card,.apartment-type-copy{min-height:min(68svh,650px)}.apartment-type-copy{padding:1.5rem}.apartment-type-copy h3{font-size:clamp(2.25rem,10vw,3.5rem)}
 .floor-tabs{width:calc(100vw - 16px);margin-right:calc((100vw - var(--shell)) / -2);padding-right:16px;grid-template-columns:repeat(5,minmax(136px,1fr));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}.floor-tabs::-webkit-scrollbar{display:none}.floor-tab{scroll-snap-align:start;min-height:92px;padding:1rem .85rem;font-size:.66rem}.floor-tab span{margin-bottom:.8rem}
 .apartments-page .floor-plan{padding:1rem;background:#fff}.apartments-page .floor-info-units{padding:2.25rem 1.25rem}.apartments-page .floor-info-units h3{max-width:none!important;font-size:clamp(2.45rem,11vw,3.25rem)!important;line-height:.94!important}.apartments-page .floor-summary{margin-bottom:2rem}.apartments-page .floor-unit,.apartments-page .floor-unit.is-sold{grid-template-columns:58px minmax(0,1fr) auto;min-height:48px;gap:.55rem;padding:.7rem 0;font-size:.84rem}.apartments-page .floor-unit-type{min-width:0}.apartments-page .floor-unit-size{font-size:.8rem}.apartments-page .floor-unit-arrow,.apartments-page .floor-unit-status{grid-column:2/-1;justify-self:start;margin-left:0}
 .apartment-outdoor-copy{gap:1.4rem;padding-top:4rem;padding-bottom:4rem}.apartment-outdoor-media{height:62svh}
 .construction-timeline-grid{gap:3.5rem}.construction-timeline-intro{position:static}.construction-status{margin-top:2.5rem}.construction-step{grid-template-columns:40px minmax(0,1fr);gap:1rem}.construction-step-marker{width:40px;height:40px}.construction-steps:before{left:19px}.construction-step h3{font-size:clamp(1.8rem,8.5vw,2.55rem)}.construction-step-meta{gap:.3rem}
 .context-page .context-coordinate{grid-template-columns:34px minmax(0,1fr);gap:1rem}.context-page .context-coordinate h3{font-size:clamp(2rem,9.5vw,3.2rem)}.context-page .context-image-break-media{height:58svh}.context-page .context-map-image,.context-page .context-map-image img{width:100%}
 .gallery-page .gallery-lead{padding:3.5rem 0}.gallery-page .gallery-wall{width:calc(100% - 24px);margin-bottom:4.5rem;gap:.75rem}.gallery-page .gallery-item-tall,.gallery-page .gallery-item-wide{aspect-ratio:4/5}.gallery-page .lightbox-close{top:.75rem;right:.85rem}
 .contacts-page .contacts-hero{padding:calc(var(--header-h) + 4rem) 0 4rem}.contacts-page .contacts-hero h1{font-size:clamp(2.8rem,11.5vw,4.25rem);line-height:.92}.contacts-page .contacts-hero h1 span{margin-left:0}.contacts-page .contacts-hero-copy,.contacts-page .contacts-visit-copy{margin-left:0}.contacts-page .contacts-direct{margin-top:3rem}.contacts-page .contacts-partners{grid-template-columns:1fr;gap:2.5rem}.contacts-page .contacts-partner-logo img{max-width:150px;max-height:46px}
 .project-specifications-grid,.apartments-specifications-inner{grid-template-columns:1fr;gap:2.5rem}.project-specifications-copy,.apartments-specifications-action{max-width:none}
 .site-footer{padding-top:3.5rem}.footer-grid{gap:2rem}.footer-logo{width:122px}.footer-bottom{margin-top:3rem}
 .legal-hero{min-height:44svh;padding-top:8rem;padding-bottom:3rem}.legal-hero-inner h1{font-size:clamp(2.8rem,12vw,4.5rem);line-height:.92}.legal-hero-inner h1 span{margin-left:0}.legal-content{padding:4rem 0}.legal-lead{margin-bottom:3rem;font-size:1.2rem}.legal-section{padding:2.5rem 0}.legal-section h2{font-size:clamp(1.65rem,8vw,2.3rem)}.cookie-category-card{grid-template-columns:1fr;gap:.8rem}.legal-table-wrap{margin-right:calc((100vw - var(--shell)) / -2);padding-right:16px}
 .cookie-consent{padding:.5rem}.cookie-consent-panel{max-height:calc(100dvh - 1rem);overflow-y:auto;padding:1.25rem}.cookie-consent-grid{gap:1.2rem}.cookie-consent h2{font-size:1.8rem}.cookie-actions{gap:.5rem}.cookie-button{min-height:48px}.cookie-settings-backdrop{padding:.5rem}.cookie-settings{max-height:calc(100dvh - 1rem)}
}

@media(max-width:430px){
 :root{--shell:calc(100vw - 28px)}
 .hero h1,.page-hero-content h1,.contacts-page .contacts-hero h1{font-size:clamp(2.55rem,12.5vw,3.55rem)}
 .eyebrow{font-size:.65rem;letter-spacing:.13em}
 .apartments-facts{grid-template-columns:1fr 1fr}.apartments-fact{min-height:138px}.apartments-fact span{font-size:.62rem;letter-spacing:.08em}
 .apartments-page .floor-unit,.apartments-page .floor-unit.is-sold{grid-template-columns:52px minmax(0,1fr) auto;font-size:.8rem}.apartments-page .floor-unit-size{font-size:.76rem}
 .contacts-page .contacts-direct a,.contacts-page .contacts-partner-details a{overflow-wrap:anywhere}.contacts-page .contacts-direct a{font-size:1.02rem}
 .button,.nav-cta{white-space:normal;text-align:center}
}

@media(max-width:360px){
 :root{--shell:calc(100vw - 24px)}
 .hero h1,.page-hero-content h1,.contacts-page .contacts-hero h1{font-size:2.5rem}
 .apartments-facts{grid-template-columns:1fr}.apartments-fact,.apartments-fact+.apartments-fact{min-height:120px;padding:1.4rem 0;border-left:0}
 .apartments-page .floor-unit,.apartments-page .floor-unit.is-sold{grid-template-columns:48px minmax(0,1fr) auto;gap:.35rem}.apartments-page .floor-unit-status{grid-column:1/-1}
}

@media(max-height:620px) and (orientation:landscape){
 .main-nav{justify-content:flex-start;padding-top:80px}.main-nav .nav-link{font-size:1.9rem}
 .hero,.hero-content,.page-hero,.page-hero-content{min-height:100svh}.hero-content,.page-hero-content{padding-top:6rem;padding-bottom:2.5rem}.hero h1,.page-hero-content h1{font-size:clamp(2.35rem,7vw,3.7rem)}.scroll-cue,.page-hero-index{display:none}
}

/* ============================================================
   SCALA VISTA — RESPONSIVE V2
   Correzioni mirate da test reale iPhone
   ============================================================ */

/* ------------------------------------------------------------
   FRECCE — mai emoji su iOS
------------------------------------------------------------ */
.text-link span[aria-hidden="true"],
.button span[aria-hidden="true"],
.contacts-page a span[aria-hidden="true"],
.page-next a span[aria-hidden="true"],
.project-specifications a span[aria-hidden="true"],
.apartments-specifications a span[aria-hidden="true"] {
  font-family: Arial, Helvetica, sans-serif !important;
  font-variant-emoji: text;
  font-style: normal;
  line-height: 1;
}

/* Freccia delle schede appartamento disegnata in CSS, non testuale */
.apartments-page .floor-unit-arrow {
  position: relative;
  display: block;
  width: 14px;
  height: 14px;
  font-size: 0 !important;
  line-height: 0;
  opacity: .48;
  transform: none;
}

.apartments-page .floor-unit-arrow::before {
  content: "";
  position: absolute;
  right: 1px;
  top: 1px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
}

.apartments-page .floor-unit-arrow::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 3px;
  width: 11px;
  height: 1px;
  background: currentColor;
  transform: rotate(-45deg);
  transform-origin: center;
}

.apartments-page a.floor-unit:hover .floor-unit-arrow,
.apartments-page a.floor-unit:focus-visible .floor-unit-arrow {
  opacity: 1;
  transform: none;
}

/* ------------------------------------------------------------
   MENU MOBILE — overlay ordinato sotto l'header
------------------------------------------------------------ */
@media (max-width: 1024px) {
  .site-header.menu-visible {
    background: var(--bg);
    color: var(--ink);
    box-shadow: none;
    backdrop-filter: none;
  }

  .main-nav {
    inset: 0;
    height: 100dvh;
    min-height: 100svh;
    justify-content: flex-start !important;
    align-items: stretch;
    gap: 0;
    overflow-y: auto;
    padding:
      calc(var(--header-h) + 2.4rem)
      max(5vw, 24px)
      max(2rem, env(safe-area-inset-bottom));
    background: var(--bg);
  }

  .main-nav .nav-link {
    display: block;
    width: 100%;
    padding: .18em 0;
    font-size: clamp(2.25rem, 6.8vw, 4.2rem);
    line-height: .98;
    font-weight: 500;
    letter-spacing: -.045em;
    text-transform: none;
  }

  .main-nav .nav-cta {
    width: 100%;
    margin-top: 2rem;
    min-height: 54px;
    flex: 0 0 auto;
  }
}

@media (max-width: 760px) {
  .site-header,
  .site-header.is-scrolled,
  .site-header.menu-visible {
    height: 78px;
    padding: 7px 18px;
  }

  .brand,
  .site-header.is-scrolled .brand,
  .site-header.menu-visible .brand {
    height: 62px;
  }

  .brand img,
  .site-header.is-scrolled .brand img,
  .site-header.menu-visible .brand img {
    height: 58px;
    max-width: 112px;
  }

  .main-nav {
    padding-top: 112px;
    padding-left: 22px;
    padding-right: 22px;
  }

  .main-nav .nav-link {
    padding: .12em 0;
    font-size: clamp(2.25rem, 10.8vw, 2.85rem);
    line-height: 1.02;
  }

  .main-nav .nav-cta {
    margin-top: 1.8rem;
    min-height: 52px;
    font-size: .7rem;
  }

  /* Il toggle deve restare sempre sopra l'overlay */
  .menu-toggle,
  .brand {
    z-index: 1003;
  }
}

@media (max-width: 390px) {
  .main-nav .nav-link {
    font-size: clamp(2.1rem, 10.2vw, 2.55rem);
  }
}

@media (max-height: 620px) and (orientation: landscape) {
  .main-nav {
    padding-top: 76px !important;
  }

  .main-nav .nav-link {
    font-size: 1.7rem !important;
    line-height: 1;
  }

  .main-nav .nav-cta {
    margin-top: 1rem;
  }
}

/* ------------------------------------------------------------
   APPARTAMENTI — MOBILE COMPATTO
------------------------------------------------------------ */
@media (max-width: 760px) {
  /* I cinque piani stanno tutti nello schermo: niente carosello orizzontale */
  .floor-tabs {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    overflow: visible !important;
  }

  .floor-tab {
    min-width: 0;
    min-height: 58px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 0 !important;
  }

  .floor-tab span {
    margin: 0 !important;
    font-size: .72rem !important;
    letter-spacing: .12em;
  }

  /* Pianta un po' più vicina al contenuto */
  .apartments-page .floor-plan {
    padding: 1rem .75rem;
  }

  .apartments-page .floor-info-units {
    padding: 2.6rem 1.25rem 2rem;
  }

  .apartments-page .floor-info-units > .eyebrow {
    margin-bottom: 1.5rem;
  }

  /* "6 appartamenti" su una sola riga */
  .apartments-page .floor-info-units h3 {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    max-width: none !important;
    margin: 0 0 .8rem;
    font-size: clamp(2.25rem, 9.5vw, 3rem) !important;
    line-height: 1 !important;
    letter-spacing: -.045em;
  }

  .apartments-page .floor-info-units h3 br {
    display: none;
  }

  .apartments-page .floor-info-units h3 strong {
    flex: 0 0 auto;
  }

  .apartments-page .floor-summary {
    margin: 0 0 1.8rem;
    font-size: .86rem;
    line-height: 1.45;
  }

  .apartments-page .floor-units {
    border-top: 1px solid rgba(37,37,35,.12);
  }

  /* Una sola riga: codice | tipologia | mq | freccia/stato */
  .apartments-page .floor-unit,
  .apartments-page .floor-unit.is-sold {
    grid-template-columns: 54px minmax(0, 1fr) auto 48px !important;
    gap: .55rem !important;
    align-items: center;
    min-height: 58px;
    padding: .8rem 0 !important;
    border-bottom: 1px solid rgba(37,37,35,.12);
    font-size: .87rem;
  }

  .apartments-page .floor-unit-code,
  .apartments-page .floor-unit-type,
  .apartments-page .floor-unit-size {
    grid-row: 1;
  }

  .apartments-page .floor-unit-type {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .apartments-page .floor-unit-size {
    justify-self: end;
    font-size: .82rem;
  }

  .apartments-page .floor-unit-arrow {
    grid-column: 4 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    margin: 0 !important;
  }

  .apartments-page .floor-unit-status {
    grid-column: 4 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    margin: 0 !important;
    font-size: .52rem;
    line-height: 1;
    letter-spacing: .08em;
  }

  /* Niente movimento hover su touch */
  .apartments-page a.floor-unit:hover,
  .apartments-page a.floor-unit:focus-visible {
    padding-left: 0 !important;
  }

  .apartments-page .floor-note {
    margin-top: 1rem;
    font-size: .66rem;
    line-height: 1.45;
  }
}

@media (max-width: 420px) {
  .apartments-page .floor-unit,
  .apartments-page .floor-unit.is-sold {
    grid-template-columns: 48px minmax(0, 1fr) auto 42px !important;
    gap: .4rem !important;
    font-size: .82rem;
  }

  .apartments-page .floor-unit-size {
    font-size: .77rem;
  }

  .apartments-page .floor-unit-status {
    font-size: .48rem;
  }
}

@media (max-width: 350px) {
  .apartments-page .floor-unit,
  .apartments-page .floor-unit.is-sold {
    grid-template-columns: 45px minmax(0, 1fr) auto 36px !important;
    font-size: .78rem;
  }

  .apartments-page .floor-unit-size {
    font-size: .73rem;
  }
}


/* ============================================================
   FIX FRECCIA LINK APPARTAMENTI — v2.1
   Usa il glifo tipografico ↗︎, non una freccia costruita in CSS.
   ============================================================ */
.apartments-page .floor-unit-arrow {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  position: static !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.05rem !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-variant-emoji: text;
  line-height: 1 !important;
  opacity: .48;
  transform: none !important;
}

.apartments-page .floor-unit-arrow::before,
.apartments-page .floor-unit-arrow::after {
  content: none !important;
  display: none !important;
}

.apartments-page a.floor-unit:hover .floor-unit-arrow,
.apartments-page a.floor-unit:focus-visible .floor-unit-arrow {
  opacity: 1;
  transform: none !important;
}


/* ============================================================
   FIX MAPPA CONTESTO — v2.2
   ============================================================ */
.context-page .context-map-grid {
  min-width: 0;
}

.context-page .context-map-image {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
}

.context-page .context-map-image img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  object-fit: contain;
}

@media (max-width: 980px) {
  .context-page .context-map-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2.5rem;
  }

  .context-page .context-map-copy,
  .context-page .context-map-image {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

@media (max-width: 760px) {
  .context-page .context-map {
    overflow: hidden;
  }

  .context-page .context-map-image {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .context-page .context-map-image img {
    width: 100% !important;
    height: auto !important;
  }
}


/* ============================================================
   OPEN DAY — maggiore evidenza
   ============================================================ */
.event-date .open-day-label {
  margin: 0 0 1.15rem;
  font-size: clamp(1.15rem, 1.55vw, 1.5rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: .16em;
}

@media (max-width: 760px) {
  .event-date .open-day-label {
    margin-bottom: .9rem;
    font-size: 1.15rem;
    letter-spacing: .14em;
  }
}
