/* ============================================================
   PHONE  (v0.3.1, kept in v0.3.2). The desktop blocks are 1920x1080 scaled to the window;
   on a phone that makes everything microscopic, so here the page is a normal
   vertical flow at real sizes. site.js sets --fit to 1 under the same query.
   Two sides stack top and bottom, never left and right.
   ============================================================ */
@media (max-width: 820px), (max-height: 500px) and (pointer: coarse) {
  html { scroll-snap-type: none; scroll-padding-top: 64px; }

  /* Header: logo, language, Prenota, menu button; links open as a full panel */
  .bar { position: fixed; top: 0; left: 0; right: 0; zoom: 1; height: 64px; padding: 0 16px; display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; background: rgba(10, 10, 10, 0.94); z-index: 100; }
  .bar__logo { order: 1; margin: 0; }
  .bar__logo img { width: 104px; height: auto; display: block; }
  .bar > .bar__lang { order: 2; margin: 0; font-size: 13px; }
  .bar__k { display: none; }
  .bar__center, .bar__global { display: none; }
  .bar__end { order: 3; display: flex; margin-left: auto; position: static; }
  .bar__end .btn { padding: 10px 14px; font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
  .bar__menu-btn { order: 4; display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; background: none; border: 0; color: var(--white); padding: 0; font: 600 13px/1 var(--font-manrope); }
  .bar--open .bar__center, .bar--open .bar__global { display: flex; flex-direction: column; position: fixed; left: 0; right: 0; background: #0a0a0a; padding: 8px 24px; margin: 0; gap: 0; transform: none; width: auto; z-index: 99; }
  .bar--open .bar__center { top: 64px; }
  .bar--open .bar__global { top: 264px; bottom: 0; }
  .bar--open .bar__side { display: flex; flex-direction: column; gap: 0; margin: 0; }
  .bar--open .bar__center a:not(.bar__k), .bar--open .bar__global a { display: block; padding: 14px 0; font: 500 20px/1.2 var(--font-manrope); color: var(--white); text-transform: none; letter-spacing: 0; }

  /* Hero: Muovi il corpo on top, Calma la mente below */
  .hero { height: 100svh; min-height: 560px; padding-top: 64px; }
  .hero__gl { display: none; }
  .hero .hero__fallback { display: flex; flex-direction: column; top: 64px; }
  .hero__fallback-train, .hero__fallback-yoga { flex: 1 1 50%; min-height: 0; }
  .hero__fallback-train img { object-position: 50% 50%; }
  .hero__fallback-yoga img { object-position: 50% 50%; }
  .hero__claim { zoom: 1; position: absolute; inset: 64px 0 0 0; display: block; pointer-events: none; }
  .hero__claim .claim--body, .hero__claim .claim--mind { position: absolute; display: block; max-width: none; }
  .hero__claim .claim--body { left: 16px; bottom: calc(50% + 14px); font-size: 46px; line-height: .92; color: var(--white); text-shadow: 0 1px 12px rgba(0, 0, 0, .45); }
  .hero__claim .claim--mind { right: 16px; top: calc(50% + 14px); bottom: auto; margin-top: 0; font-size: 46px; line-height: .95; color: var(--ink); text-align: right; }
  .hero__address, .hero__scroll-cue { display: none; }

  /* Film, then the rooms as a plain list: photo then text */
  .studio-stage { height: auto; }
  .studio-stage__sticky { position: static; height: auto; overflow: visible; }
  .studio-stage__film { display: none; }   /* no film on the phone: the rooms follow right after the first screen */
  .studio-stage__poster { display: none; }
  .studio-stage__rooms { position: static; inset: auto; width: auto; height: auto; transform: none; padding: 0; gap: 0; opacity: 1; pointer-events: auto; display: flex; flex-direction: column; align-items: stretch; }
  .studio-stage__img-col, .studio-stage__text-col { display: contents; }
  .studio-room-img { position: relative; inset: auto; opacity: 1 !important; aspect-ratio: 16 / 9; overflow: hidden; }
  .studio-room-img__photo { width: 100%; height: 100%; object-fit: cover; }
  .studio-room-text { position: static; inset: auto; opacity: 1 !important; pointer-events: auto; padding: 20px 16px 40px; background: var(--black); }
  .studio-room-text[data-room="r7"], .studio-room-text[data-room="r6"] { background: var(--ivory); color: var(--ink); }
  .studio-room-text[data-room="r7"] .studio-room-text__body, .studio-room-text[data-room="r6"] .studio-room-text__body, .studio-room-text[data-room="r7"] .studio-room-text__tag, .studio-room-text[data-room="r6"] .studio-room-text__tag { color: var(--ink); }
  .studio-room-img:nth-child(1) { order: 1; } .studio-room-text:nth-child(1) { order: 2; }
  .studio-room-img:nth-child(2) { order: 3; } .studio-room-text:nth-child(2) { order: 4; }
  .studio-room-img:nth-child(3) { order: 5; } .studio-room-text:nth-child(3) { order: 6; }
  .studio-room-img:nth-child(4) { order: 7; } .studio-room-text:nth-child(4) { order: 8; }
  .studio-room-img:nth-child(5) { order: 9; } .studio-room-text:nth-child(5) { order: 10; }
  .studio-room-img:nth-child(6) { order: 11; } .studio-room-text:nth-child(6) { order: 12; }
  .studio-room-img:nth-child(7) { order: 13; } .studio-room-text:nth-child(7) { order: 14; }
  .studio-room-img:nth-child(8) { order: 15; } .studio-room-text:nth-child(8) { order: 16; }
  .studio-room-text__title, .studio-room-text__title--yoga, .studio-room-text__title--train { font-size: 36px; margin-bottom: 12px; }
  .studio-room-text__body { font-size: 16px; line-height: 1.5; }
  .studio-bar, .snap-point { display: none; }

  /* Chooser: Training on top, Yoga below; tapping one opens it */
  .chooser { height: auto; flex-direction: column; overflow: visible; }
  .chooser__heading { zoom: 1; position: static; padding: 32px 16px 20px; display: block; background: var(--black); min-height: auto; }
  .chooser__head-train, .chooser__head-yoga { display: inline; font-size: 32px; padding: 0; text-align: left; color: var(--white); }
  #capitolo:has(.chooser__half--open) .chooser__heading { display: none; }
  .chooser__half { flex: none; height: 56svh; min-height: 340px; }
  .chooser__half--open { height: auto; min-height: 100svh; padding-top: 72px; }
  .chooser__half--closed { display: none; }
  .chooser__labels { zoom: 1; left: 16px; top: auto; bottom: 20px; transform: none; }
  .chooser__labels, .chooser__labels li { list-style: none; padding: 0; margin: 0; }
  .chooser__labels li::marker { content: ''; }
  .chooser__label { font-size: 40px; }
  .chooser__label::before { display: none; }
  .chooser__strip-claim { display: none; }
  .chooser__details { zoom: 1; }
  .chooser__half--open .chooser__bottom, .chooser__half--open .chooser__details { position: relative; inset: auto; padding: 0 16px 32px; width: auto; height: auto; display: block; }
  .chooser__row-grid, .chooser__panel-right { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .chooser__panel-right { margin-top: 20px; }
  .chooser__room-photo { width: 100%; height: auto; }
  .chooser__row { padding: 12px 0; }
  .chooser__row-name { font-size: 20px; }
  .chooser__row-need, .chooser__panel-text { font-size: 16px; line-height: 1.5; }
  .chooser__close { zoom: 1; position: absolute; top: 12px; right: 16px; z-index: 5; min-height: 44px; }

  /* Screen blocks become normal sections */
  .fit { height: auto; display: block; overflow: visible; }
  .fit__inner { width: auto; height: auto; transform: none; --m: 16px; }

  /* Prices */
  .prices-section .fit__inner { padding: 48px 16px; display: block; }
  .prices__header { padding: 0; margin: 0 0 32px; }
  .prices__intro { font-size: 40px; }
  .prices__seed { font-size: 16px; line-height: 1.5; }
  .prices__group { margin: 0 0 32px; }
  .prices__group-label { font-size: 13px; }
  .prices__card-grid, .prices__header + .prices__group .prices__card-grid { grid-template-columns: 1fr; gap: 12px; }
  .price-card, .price-card--full, .price-card--double { padding: 20px; gap: 8px; }
  .price-card__name { font-size: 18px; margin-bottom: 8px; }
  .price-card__num { font-size: 44px; }
  .price-card__detail { font-size: 15px; min-height: 0; }
  .price-card__unit { font-size: 13px; }
  .prices__help { font-size: 16px; line-height: 1.5; margin: 0 0 16px; }
  .prices__cta { margin: 0; }

  /* Timetable: one day after the other */
  .timetable-section .fit__inner { padding: 48px 16px; }
  .timetable__head { display: block; margin-bottom: 24px; }
  .timetable__title { font-size: 40px; margin-bottom: 16px; }
  .timetable__filter { flex-wrap: wrap; gap: 8px; }
  .timetable__filter-btn { min-height: 44px; font-size: 14px; }
  #schedule-container { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
  .schedule-day { width: 100%; }
  .schedule-day__name { font-size: 18px; }
  .schedule-entry { padding: 14px; }
  .schedule-entry__time { font-size: 15px; }
  .schedule-entry__course { font-size: 17px; }
  .schedule-entry__trainer, .schedule-entry__room { font-size: 13px; }

  /* Reviews */
  .reviews .fit__inner { padding: 48px 16px; display: block; }
  .reviews__title { font-size: 40px; }
  .reviews__grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
  .review-slot { min-height: 120px; padding: 20px; }
  .review-slot__label { font-size: 14px; }

  /* Team: heading, group photo, one trainer after the other */
  .team-photo-block { background: var(--black); }
  .team-photo-block .fit__inner { overflow: visible; }
  .team__band { position: static; padding: 48px 16px 20px; }
  .team__title { font-size: 40px; }
  .team__pretitle { font-size: 13px; }
  .team__group-photo { position: static; }
  .team__group-photo img { height: auto; }
  .team-cards-block { background: none; }
  .team__grid { display: grid; grid-template-columns: 1fr; height: auto; }
  .trainer { padding: 32px 16px 40px; }
  .trainer__name { font-size: 34px; }
  .trainer__role { font-size: 13px; }
  .trainer__chip { font-size: 13px; }
  .trainer__bio { font-size: 16px; line-height: 1.5; }
  .trainer__photo { width: 100%; height: auto; }

  /* Contacts + footer */
  .contacts-block .fit__inner { display: block; }
  .contacts { padding: 48px 16px 32px; }
  .contacts__heading { margin-bottom: 24px; padding-bottom: 20px; }
  .contacts__address { font-size: 44px; line-height: 1; }
  .contacts__sub { font-size: 15px; }
  .contacts__grid { grid-template-columns: 1fr; gap: 16px; }
  .contacts__label { font-size: 13px; color: rgba(245, 243, 239, 0.72); }
  .contacts__value, .contacts__wa-btn, .contacts__map { font-size: 17px; min-height: 44px; display: inline-flex; align-items: center; }
  .footer { display: block; padding: 24px 16px 40px; }
  .footer__logo { width: 140px; margin: 0 0 20px; }
  .footer__nav { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-bottom: 20px; }
  .footer__nav a { font-size: 15px; min-height: 44px; display: inline-flex; align-items: center; }
  .footer__meta { display: block; }

  /* Menu panel: one solid list, navs in normal flow */
  .bar--open .bar__side { position: static; transform: none; width: 100%; left: auto; right: auto; }
  .bar--open .bar__center { height: 216px; }
  .bar--open .bar__global { top: 280px; }

  /* Claim */
  .hero__claim .claim--body, .hero__claim .claim--mind { min-height: auto; line-height: 1; }

  /* Yoga panel, open: ink on ivory, readable, left aligned */
  .chooser__half--yoga.chooser__half--open { background: var(--ivory); color: var(--ink); }
  .chooser__half--open .chooser__overlay { display: none; }
  .chooser__half--yoga.chooser__half--open .chooser__panel-text, .chooser__half--yoga.chooser__half--open .chooser__trait-row, .chooser__half--yoga.chooser__half--open .chooser__row-name, .chooser__half--yoga.chooser__half--open .chooser__row-need { color: var(--ink); text-align: left; }
  .chooser__half--open .chooser__panel-cta { justify-content: flex-start; text-align: left; }
  .chooser__half--open .chooser__labels, .chooser__half--open .chooser__strip-claim { display: none; }

  /* Prices: nothing clipped */
  .price-card__detail { overflow: visible; display: block; -webkit-line-clamp: unset; height: auto; max-height: none; }

  /* Team: title, photo, then the line at their feet */
  .team-photo-block .fit__inner { display: flex; flex-direction: column; }
  .team__band { display: contents; }
  .team__title { order: 1; padding: 48px 16px 20px; text-align: left; }
  .team__group-photo { order: 2; }
  .team__pretitle { order: 3; padding: 14px 16px 8px; text-align: center; color: var(--white); text-transform: uppercase; letter-spacing: .12em; font-size: 14px; }

  .timetable__bg { display: none; }
  .contacts__mapbox { height: 260px; margin-top: 20px; }
  .chooser__label::after { content: ' \2192'; font-family: var(--font-manrope); font-size: .6em; }
  .chooser__half--yoga:not(.chooser__half--open) .chooser__label { color: var(--ink); }

  .faq .fit__inner { padding: 48px 16px; }
  .faq__title { font-size: 40px; margin-bottom: 20px; }
  .faq__list { display: block; }
  .faq__q { font-size: 18px; min-height: 44px; }
  .faq__a { font-size: 16px; padding-right: 0; }
}
