/* Pages dynamiques (réservation, paiement, admin) habillées avec la charte du site public.
   Chargé après site.css et booking.css. Variables attendues par booking.css, remappées sur la palette du site. */
.app-page{--muted:var(--ink-3);--marsh-2:#3c7262;--radius:var(--r);--bg:var(--paper);--sand:var(--sun-2);--gold:var(--marsh);
  --danger:#7f1d1d;--danger-bg:#fdecea;--ok:#14532d;--ok-bg:#e8f6ee;--font:var(--sans);--container:var(--max);--gutter:var(--pad)}
.app-page .wrap{width:min(100% - 2*var(--pad),var(--max));margin-inline:auto}
.app-page .page{padding-top:clamp(1.5rem,1rem + 2vw,3rem);padding-bottom:clamp(3rem,2rem + 3vw,5rem)}
.app-page main h1{font-size:clamp(2.4rem,1.7rem + 3vw,4.4rem);line-height:1.02;margin:0 0 .75rem}
.app-page main h2{font-size:clamp(1.7rem,1.4rem + 1.2vw,2.5rem);line-height:1.05;margin:0 0 .75rem}
.app-page main h3{font-size:1.4rem}
.app-page main p{margin:0 0 .9rem}
.app-page .lede{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:var(--ink-2);max-width:40rem}
.app-page .btn-primary{--bg:var(--ink);--fg:#fff}
.app-page .btn-ghost{--bg:transparent;--fg:var(--ink);border-color:var(--line)}
.app-page .btn-sand{--bg:var(--sun);--fg:var(--ink)}
.app-page .btn-block{width:100%}
.app-page .btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.app-page .back{color:var(--marsh);font-weight:650;font-size:.95rem}
.app-page .room-title{margin-top:1.5rem}
.app-page .room-surface{color:var(--marsh);font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .6rem}
.app-page .booking-box{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow)}
.app-page .booking-form label.field,.app-page .stack label{text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:650;color:var(--ink)}
.app-page .booking-form .field input,.app-page .booking-form .field select,.app-page .booking-form .field textarea{margin-top:.3rem}
.app-page .gallery-stage,.app-page .house-grid picture,.app-page .other-row picture{border-radius:var(--r)}
.app-page .test-banner{position:relative;z-index:60}
.app-page img{max-width:100%;height:auto}
.app-page picture{display:block;max-width:100%}
.app-page main figure{margin:0}
.app-page .other-row{max-width:100%}
.app-page .house-grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:560px){.app-page .house-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.app-page table{min-width:0}
