/* Nomadéa site · v2 "quiet luxury" layer. Loaded after site.css on the public pages.
   Rule of the layer: one film (home hero), no parallax, no word-by-word effects, no wobbling shapes.
   Motion is limited to a single soft fade on arrival and hover states. Everything reads tokens from site.css. */

/* ---------- Calm: remove the scroll choreography ---------- */
.hero__video { transform: none; }
.hero__content, .phero__content { transform: none !important; opacity: 1 !important; }
.phero__frame > img { transform: none !important; }
.phero__cue { display: none; }
.hero h1 .line, .phero h1 .line { overflow: visible; padding: 0; margin: 0; }
.hero h1 .k, .phero h1 .k { animation: fade 1.2s var(--ease) .1s both; }
.hero h1 em { transform: none; transition: none; }
.hero h1 { font-size: clamp(44px, 7vw, 100px); line-height: 1; }
.phero h1 { font-size: clamp(42px, 6.2vw, 88px); line-height: 1.02; }
.status-pill i { animation: none; }
[data-words] .w, .concept__statement .w { opacity: 1 !important; }
.curve { display: none !important; }
.collage__float { display: none !important; }
.door img, .collage__main img { transform: none !important; }
.eyebrow { letter-spacing: .2em; }
.eyebrow::before { display: none; }
.eyebrow svg { width: 14px; height: 14px; }
.motion .rv.pre { transform: translateY(14px); }
.rv { transition: transform .9s var(--ease), opacity .9s var(--ease); }
h1, h2, h3 { letter-spacing: -.012em; }

/* Bands become inset panels, like the hero frame */
.band, .ladder, .disc, .voies, .join { margin-inline: 10px; border-radius: var(--r-lg); }
/* Inset panels never touch: the gap between two of them equals their side margin */
main > :is(.band, .ladder, .disc, .ways, .hf, .voies) + :is(.band, .ladder, .disc, .ways, .hf, .voies) { margin-top: 10px; }
.ladder { padding-block: clamp(64px, 8vw, 110px); }
.disc { padding-block: clamp(64px, 8vw, 110px); }

/* Section rhythm */
.shead h2 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.04; }

/* ---------- Footer: no newsletter, no second language switch ---------- */
.footer__top { display: block; }
.footer__top .news { display: none; }
.footer__prefs { display: none; }
.footer__base { justify-content: flex-start; }

/* ---------- Navigation: data room button ---------- */
.nav__login svg, .sheet__tools .btn svg.lock { width: 15px; height: 15px; }
.nav__login { gap: 8px; }

/* ---------- Join the data room (end of every public page) ---------- */
.join { position: relative; background: var(--band); color: var(--on-band); padding: clamp(48px, 6vw, 88px) 0; margin-block: clamp(56px, 7vw, 100px) 10px; overflow: hidden; }
.join__in { display: grid; gap: 28px; align-items: center; }
@media (min-width: 960px) { .join__in { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 72px; } }
.join .eyebrow { color: #EEE8E1; }
.join h2 { color: #EEE8E1; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.04; margin-top: 16px; max-width: 16ch; }
.join__text p { margin-top: 14px; max-width: 46ch; color: var(--on-band-soft); font-size: 17px; }
.join__form { display: flex; gap: 6px; padding: 6px; border-radius: var(--pill); background: rgba(251, 249, 246, .97); border: 1px solid transparent; transition: border-color .3s; }
.join__form:focus-within { border-color: var(--accent); }
.join__form input { flex: 1; min-width: 0; min-height: 50px; border: 0; background: none; padding: 0 18px; font-size: 16px; color: #00292C; }
.join__form input::placeholder { color: #5A6E70; }
.join__form input:focus { outline: none; }
.join__form .btn { background: #083E4B; color: #EEE8E1; min-height: 50px; padding: 0 22px; }
.join__form .btn:hover { background: #2F6875; }
.join__form[aria-invalid="true"] { border-color: #F0A98A; }
.join__side { display: grid; gap: 12px; }
.join__alt { font-size: 14px; color: var(--on-band-soft); }
.join__alt a { color: #EEE8E1; text-underline-offset: 3px; }
.join__err { min-height: 1.3em; font-size: 14px; color: #F0A98A; }
@media (max-width: 520px) { .join__form { flex-direction: column; border-radius: var(--r-md); } .join__form input { min-height: 48px; } .join__form .btn { width: 100%; } }

/* A single, quiet prompt: appears once per visit, after the reader has seen most of a page */
.dr-card { position: fixed; z-index: 45; right: max(20px, env(safe-area-inset-right, 0px)); bottom: max(20px, env(safe-area-inset-bottom, 0px)); width: min(360px, calc(100vw - 40px)); display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; align-items: center; padding: 16px 16px 16px 18px; border-radius: var(--r-md); background: var(--band); color: var(--on-band); border: 1px solid rgba(238, 232, 225, .16); box-shadow: var(--shadow); opacity: 0; transform: translateY(16px); pointer-events: none; visibility: hidden; transition: opacity .6s var(--ease), transform .6s var(--ease), visibility 0s .6s; }
.dr-card.is-on { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
.dr-card > svg { width: 22px; height: 22px; color: var(--accent); }
.dr-card b { font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.15; color: #EEE8E1; padding-right: 36px; }
.dr-card .btn { grid-column: 1 / -1; min-height: 44px; margin-top: 6px; background: #EEE8E1; color: #083E4B; }
.dr-card__x { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; border: 0; border-radius: 6px; background: none; color: var(--on-band-soft); display: grid; place-items: center; cursor: pointer; }
.dr-card__x:hover { background: rgba(238, 232, 225, .1); }
.dr-card__x svg { width: 18px; height: 18px; }
@media (max-width: 759px) { .dr-card { display: none; } }

/* ---------- Home: concept ---------- */
.hc { padding-block: clamp(88px, 10vw, 148px) clamp(72px, 8vw, 120px); }
.hc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; align-items: center; }
@media (min-width: 960px) { .hc__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 96px; } }
.hc h2 { font-size: clamp(40px, 5.2vw, 76px); line-height: 1.02; max-width: 13ch; margin-top: 20px; }
.pillars { list-style: none; margin: 40px 0 0; padding: 0; border-top: 1px solid var(--line-strong); }
.pillar { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 2px 16px; padding: 22px 0; border-bottom: 1px solid var(--line-strong); }
.pillar svg { grid-row: span 2; width: 26px; height: 26px; margin-top: 3px; color: var(--muted); }
.pillar b { font-family: var(--serif); font-weight: 500; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.12; color: var(--heading); }
.pillar span { color: var(--text-soft); font-size: 16px; max-width: 46ch; }
.hc__cta { margin-top: 36px; }
.hc__img { margin: 0; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 5; background: var(--bg-alt); }
.hc__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 959px) { .hc__img { aspect-ratio: 4 / 3; } }

/* ---------- Home: the destination ---------- */
.hf { margin: 0 10px; border-radius: var(--r-lg); background: var(--bg-alt); padding: clamp(14px, 2vw, 22px); }
.hf__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
@media (min-width: 960px) { .hf__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.hf__grid > *, .hc__grid > *, .rs > *, .rs__slide > * { min-width: 0; }
.hf__img { margin: 0; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3; background: #083E4B; }
.hf__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 960px) { .hf__img { aspect-ratio: auto; min-height: 560px; } }
.hf__body { display: grid; gap: 18px; align-content: center; justify-items: start; padding: clamp(28px, 4vw, 56px); }
.hf__body h2 { font-size: clamp(34px, 3.8vw, 54px); line-height: 1.04; }
.hf__body > p { color: var(--text-soft); font-size: 17px; max-width: 44ch; }
.hf__facts { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: 100%; border-top: 1px solid var(--line-strong); padding-top: 20px; }
.hf__facts b { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(26px, 2.6vw, 36px); line-height: 1; color: var(--heading); font-variant-numeric: tabular-nums; }
.hf__facts span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.35; color: var(--text-soft); }
.hf__cta { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin-top: 6px; }
.hf__note { font-size: 14px; color: var(--muted); }
.hf__soon { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; font-size: 14px; color: var(--muted); }
.hf__soon .tag svg { width: 13px; height: 13px; }

/* ---------- Stays: the room stage (a carousel, one room at a time) ---------- */
.rooms { padding-block: clamp(80px, 9vw, 130px) clamp(40px, 5vw, 72px); }
.rooms__lead { max-width: 54ch; color: var(--text-soft); font-size: 18px; margin-top: 4px; }
.rooms__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.rooms__query { margin-top: 28px; }
.rs { margin-top: 28px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.rs__bar { display: flex; align-items: center; gap: 12px; }
.rs__tabs { flex: 1; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; margin: -2px; }
.rs__tabs::-webkit-scrollbar { display: none; }
.rs__tab { flex: none; display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 6px 18px 6px 6px; border-radius: var(--pill); border: 1px solid var(--line-strong); background: var(--surface); color: var(--heading); cursor: pointer; text-align: left; transition: border-color .3s, background-color .3s; }
.rs__tab img { width: 44px; height: 44px; border-radius: 6px; object-fit: cover; flex: none; }
.rs__tab b { display: block; font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1; }
.rs__tab small { display: block; margin-top: 3px; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.rs__tab:hover { border-color: var(--heading); }
.rs__tab[aria-selected="true"] { background: var(--btn); border-color: var(--btn); color: var(--btn-text); }
.rs__tab[aria-selected="true"] small { color: inherit; opacity: .8; }
.rs__ctl { display: none; align-items: center; gap: 6px; flex: none; }
@media (min-width: 900px) { .rs__ctl { display: flex; } }
.rs__ctl button { width: 52px; height: 52px; border-radius: 6px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--heading); display: grid; place-items: center; cursor: pointer; transition: background-color .3s, border-color .3s; }
.rs__ctl button:hover { border-color: var(--heading); background: var(--bg-alt); }
.rs__ctl svg { width: 20px; height: 20px; }
.rs__stage { border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); overflow: hidden; transition: opacity .25s var(--ease); }
.rs__stage.is-swap { opacity: 0; }
.rs__slide { display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 960px) { .rs__slide { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.rs__slide .gal { aspect-ratio: 4 / 3; border-radius: 0; background: #083E4B; }
@media (min-width: 960px) { .rs__slide .gal { aspect-ratio: auto; min-height: 560px; } }
.rs__slide .gal__nav { inset: auto 16px 16px auto; }
.rs__slide .gal__nav button { width: 44px; height: 44px; }
.rs__slide .gal__dots { left: 20px; bottom: 30px; }
.rs__info { display: grid; gap: 16px; align-content: center; padding: clamp(24px, 3.4vw, 48px); }
.rs__info h3 { font-size: clamp(44px, 4.6vw, 68px); line-height: .98; }
.rs__info .room__latin { font-size: 17px; }
.rs__info .room__story { display: block; -webkit-line-clamp: unset; overflow: visible; font-size: 17px; line-height: 1.55; max-width: 44ch; }
.rs__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.rs__buy { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 14px; padding-top: 20px; border-top: 1px solid var(--line); }
.rs__buy .price b { font-size: 36px; }
.rs__count { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- Stays: next destinations (quiet strip) ---------- */
.dests { padding-block: clamp(72px, 8vw, 110px) 0; }
.dests__row { margin-top: 28px; }
@media (min-width: 900px) { .dests__row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dcard { min-height: 320px; }

/* ---------- Experiences: one destination at a time ---------- */
.xtabs { position: sticky; z-index: 30; top: calc(env(safe-area-inset-top, 0px) + 84px); display: flex; justify-content: center; padding: 0 var(--gr) 0 var(--gl); margin-top: -32px; pointer-events: none; }
.xtabs__bar { pointer-events: auto; display: flex; gap: 2px; padding: 4px; border-radius: var(--pill); background: var(--nav-bg); border: 1px solid var(--nav-line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.xtabs__bar::-webkit-scrollbar { display: none; }
.xtabs button { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--pill); background: none; color: var(--text); font: 400 15px/1 var(--sans); cursor: pointer; transition: background-color .3s, color .3s; }
.xtabs button svg { width: 13px; height: 13px; color: var(--muted); }
.xtabs button:hover { background: var(--bg-alt); }
.xtabs button[aria-selected="true"] { background: var(--btn); color: var(--btn-text); font-weight: 500; }
.xtabs button[aria-selected="true"] svg { color: inherit; opacity: .8; }
.xintro { padding-block: clamp(80px, 9vw, 130px) clamp(36px, 5vw, 64px); }
.xintro .shead h2 { max-width: 20ch; }
#chapters .ch { display: none; margin: 0 10px 0; border-radius: var(--r-lg); padding-block: clamp(48px, 6vw, 88px); }
#chapters .ch.is-open { display: block; animation: fade .7s var(--ease) both; }
.ch__sun, .ch__contours, .aurora, .stars, .snow { display: none !important; }
.ch__name { font-size: clamp(48px, 7vw, 104px); line-height: .95; }
.xp:hover > img { transform: scale(1.03); }
.xp__art .draw { transition: none; stroke-dashoffset: 0; }
.xend { padding-block: clamp(72px, 8vw, 110px) 0; }

/* ---------- Invest page: calmer trust band ---------- */
.trust__card img { transform: none !important; }

/* ---------- Reduced motion keeps everything still ---------- */
.calm .dr-card { transition: none; }

/* ---------- Concept: still composition ---------- */
.venn { --v: 1 !important; }
.ways { margin-inline: 10px; border-radius: var(--r-lg); padding-block: clamp(56px, 7vw, 96px); }
.ways__frame { animation: none !important; border-radius: var(--r-lg) !important; }
.motion .way { opacity: 1 !important; }
.motion .way.is-on h3 { transform: none !important; }
.way h3 { font-size: clamp(28px, 3vw, 42px); }
.pace__visual { animation: none; }

/* ---------- Invest page ---------- */
.trust { margin-inline: 10px; border-radius: var(--r-lg); padding-block: clamp(56px, 7vw, 96px); }
.trust__body { padding: 28px 26px 30px; }
.voies__call { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; color: var(--text-soft); }

/* ---------- Menu sheet: same symbols and arrangement as the investor area ---------- */
.btn--sand { background: #CFB99C; border-color: #CFB99C; color: #00292C; }
.btn--sand:hover { background: #E2D3BE; border-color: #E2D3BE; color: #00292C; }
.sheet__tools .btn--sand { width: 100%; }

/* Hero: full-bleed. The picture or film runs from the very top of the page to both edges, no frame, no corner */
.hero { padding: 0; }
.hero__frame { border-radius: 0; height: calc(clamp(560px, 86svh, 860px) + env(safe-area-inset-top, 0px) + 10px); }
/* The browser's default 8px page margin would leave a strip around the hero */
body:has(.hero__frame) { margin: 0; }
