/* ============================================================
   ORIGEM — Curated journeys rooted in Portugal
   Design system from charte graphique (DA: voir ORIGEM_CHARTEGRAPHIQUE_DEF.key)
   Palette : Noir #1F1F1F · Blanc #F9F9F9 · Concrete #D9D7CD
             Bleu Lin #6893AF · Chocolat #543E25 · Ébène #221700
   Typo : Commuters Sans (primaire) + Avara (titres/logo) — auto-hébergées
          dans assets/fonts/ (.otf). Fallback : Jost / Georgia.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,300;0,400;0,500;1,400&display=swap');

/* ---------- Self-hosted brand fonts (charte Origem) ---------- */
@font-face { font-family: 'Commuters Sans'; src: url('../assets/fonts/CommutersSans-Light.otf') format('opentype'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Commuters Sans'; src: url('../assets/fonts/CommutersSans-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Commuters Sans'; src: url('../assets/fonts/CommutersSans-SemiBold.otf') format('opentype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Commuters Sans'; src: url('../assets/fonts/CommutersSans-Bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Avara'; src: url('../assets/fonts/Avara-Bold.otf') format('opentype'); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Avara Black'; src: url('../assets/fonts/Avara-Black.otf') format('opentype'); font-weight: 900; font-style: normal; font-display: swap; }

:root {
  --noir: #1F1F1F;
  --blanc: #F9F9F9;
  --concrete: #D9D7CD;
  --bleu: #6893AF;
  --chocolat: #543E25;
  --ebene: #221700;
  --serif: 'Avara', Georgia, serif;
  --sans: 'Jost', 'Commuters Sans', -apple-system, 'Helvetica Neue', sans-serif;
  --maxw: 1200px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }

body {
  font-family: var(--sans);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.75;
  color: var(--noir);
  background: var(--concrete);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

::selection { background: var(--chocolat); color: var(--blanc); }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p a, .prose a { border-bottom: 1px solid var(--bleu); transition: color .2s; }
p a:hover, .prose a:hover { color: var(--bleu); }

/* ---------- type ---------- */
h1, h2, h3, .serif {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: .01em;
}
h1 { font-size: clamp(2.4rem, 5.5vw, 4.2rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }

.label {
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .32em;
  text-transform: uppercase;
}
.label--bleu { color: var(--bleu); }
.label--chocolat { color: var(--chocolat); }

.lead { font-size: 1.18rem; line-height: 1.8; }

/* ---------- structure ---------- */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 6vw; }
section { position: relative; }
.section { padding: clamp(4.5rem, 9vw, 8.5rem) 0; }
.section--blanc { background: var(--blanc); }
.section--ebene { background: var(--ebene); color: var(--blanc); }
.section--chocolat { background: var(--chocolat); color: var(--blanc); }

.rule { border: 0; border-top: 1px solid rgba(31,31,31,.18); margin: 0; }
.section--ebene .rule, .section--chocolat .rule { border-color: rgba(249,249,249,.22); }

/* ---------- header / nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(217,215,205,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(31,31,31,.12);
}
.nav__in {
  max-width: var(--maxw); margin: 0 auto; padding: 1.05rem 6vw;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.nav__logo img { height: 22px; width: auto; }
.nav__links { display: flex; gap: 2.2rem; align-items: center; list-style: none; }
.nav__links a {
  font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 400;
  padding-bottom: 2px; border-bottom: 1px solid transparent; transition: border-color .25s;
}
.nav__links a:hover, .nav__links a.active { border-color: var(--noir); }
.nav__cta {
  border: 1px solid var(--noir) !important; padding: .55rem 1.15rem !important;
  transition: all .25s !important;
}
.nav__cta:hover { background: var(--noir); color: var(--blanc); }
.nav__burger { display: none; background: none; border: 0; cursor: pointer; font-family: var(--sans); font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: var(--noir); }
.nav__lang {
  display: flex; gap: .45rem; align-items: center;
  font-size: .72rem; letter-spacing: .2em; text-transform: uppercase;
}
.nav__lang a { padding-bottom: 2px; border-bottom: 1px solid transparent; transition: border-color .25s; }
.nav__lang a:hover { border-color: var(--noir); }
.nav__lang .is-current { opacity: .4; }
.nav__lang .sep { opacity: .35; }

@media (max-width: 880px) {
  .nav__burger { display: block; }
  .nav__lang { justify-content: center; padding: .8rem 0; }
  .nav__links {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0; background: var(--concrete);
    border-bottom: 1px solid rgba(31,31,31,.12); padding: .5rem 0 1rem;
  }
  .nav__links.open { display: flex; }
  .nav__links li { width: 100%; text-align: center; }
  .nav__links a { display: inline-block; padding: .8rem 0; }
  .nav__cta { border: 0 !important; }
}

/* ---------- hero ---------- */
.hero {
  position: relative; min-height: 92vh;
  display: flex; align-items: flex-end;
  color: var(--blanc); overflow: hidden;
}
.hero__bg { position: absolute; inset: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(34,23,0,.25) 0%, rgba(34,23,0,.05) 40%, rgba(34,23,0,.72) 100%);
}
/* Home hero (full-height, sunset image) — stronger veil so white text stays legible */
.hero:not(.hero--page) .hero__bg::after {
  background: linear-gradient(180deg, rgba(24,16,0,.42) 0%, rgba(24,16,0,.30) 38%, rgba(24,16,0,.9) 100%);
}
/* Home hero intro — small uppercase, on the dark band */
.hero:not(.hero--page) .hero__content p {
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .17em;
  line-height: 1.95;
  color: rgba(249,249,249,.9);
}
/* Home hero — two-column bottom layout: tagline left, intro + CTAs right */
.hero__content--split {
  display: flex;
  justify-content: space-between;
  gap: 5rem;
  min-height: 60vh;
}
.hero__content--split .hero__lead { align-self: flex-start; }
.hero__content--split .hero__lead h1 { margin-bottom: 0; }
.hero__content--split .hero__aside { align-self: flex-end; flex: 0 1 42ch; max-width: 42ch; }
.hero__content--split .hero__aside p { margin-bottom: 1.8rem; max-width: none; }
@media (max-width: 860px) {
  .hero__content--split { flex-direction: column; align-items: flex-start; gap: 2.2rem; min-height: 0; }
  .hero__content--split .hero__lead { align-self: auto; }
  .hero__content--split .hero__aside { align-self: auto; flex-basis: auto; }
}
.hero__content { position: relative; z-index: 2; width: 100%; padding: 0 6vw 9vh; max-width: var(--maxw); margin: 0 auto; }
.hero__content .label { margin-bottom: 1.4rem; display: block; color: rgba(249,249,249,.85); }
.hero h1 { max-width: 14ch; margin-bottom: 1.6rem; }
.hero p { max-width: 58ch; font-size: 1.05rem; color: rgba(249,249,249,.92); margin-bottom: 2.4rem; }

.hero--page { min-height: 56vh; }

/* framed hero: full image centered (shows the whole subject), blurred fill on the sides */
.hero--framed .hero__bg img { transform: scale(1.15); filter: blur(34px) brightness(.55) saturate(.9); }
.hero--framed .hero__focal {
  position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto;
  z-index: 1; height: 100%; width: auto; max-width: 100%;
  object-fit: contain; display: block;
}
.hero--framed::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(34,23,0,.20) 0%, rgba(34,23,0,.04) 42%, rgba(34,23,0,.72) 100%);
}

/* ---------- buttons ---------- */
.btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.btn {
  display: inline-block; font-size: .74rem; letter-spacing: .26em; text-transform: uppercase;
  padding: .95rem 1.9rem; border: 1px solid currentColor; transition: all .3s; font-weight: 400;
}
.btn--solid { background: var(--blanc); color: var(--ebene); border-color: var(--blanc); }
.btn--solid:hover { background: transparent; color: var(--blanc); }
.btn--ghost:hover { background: var(--blanc); color: var(--ebene); }
.btn--noir { border-color: var(--noir); color: var(--noir); }
.btn--noir:hover { background: var(--noir); color: var(--blanc); }
.btn--noir-solid { background: var(--noir); color: var(--blanc); border-color: var(--noir); }
.btn--noir-solid:hover { background: transparent; color: var(--noir); }

/* ---------- watermark monogram ---------- */
.watermark {
  position: absolute; right: -6%; top: 50%; transform: translateY(-50%);
  width: clamp(280px, 38vw, 560px); opacity: .07; pointer-events: none; z-index: 0;
}
.watermark img { width: 100%; }

/* ---------- section headers ---------- */
.sec-head { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); position: relative; z-index: 1; }
.sec-head .label { display: block; margin-bottom: 1.1rem; color: var(--chocolat); }
.section--ebene .sec-head .label, .section--chocolat .sec-head .label { color: var(--bleu); }
.sec-head h2 { max-width: 22ch; }
.sec-head .lead { max-width: 62ch; margin-top: 1.4rem; }

/* ---------- value props ---------- */
.cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 4rem); position: relative; z-index: 1; }
@media (max-width: 880px) { .cols-3 { grid-template-columns: 1fr; } }
.vp { border-top: 1px solid rgba(31,31,31,.25); padding-top: 1.6rem; }
.section--ebene .vp { border-color: rgba(249,249,249,.25); }
.vp .num { font-family: var(--serif); font-size: .95rem; color: var(--bleu); display: block; margin-bottom: 1rem; }
.vp h3 { margin-bottom: .9rem; }
.vp p { font-size: .98rem; color: rgba(31,31,31,.82); }
.section--ebene .vp p { color: rgba(249,249,249,.78); }

/* ---------- cards ---------- */
.cards { display: grid; gap: 1.6rem; position: relative; z-index: 1; }
.cards--5 { grid-template-columns: repeat(5, 1fr); }
.cards--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1020px) { .cards--5 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 880px) { .cards--3 { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .cards--5 { grid-template-columns: 1fr; } }

.card { display: block; }
.card__img { aspect-ratio: 3/4; overflow: hidden; background: var(--chocolat); position: relative; }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.card:hover .card__img img { transform: scale(1.045); }
.card__img--wide { aspect-ratio: 4/3; }
.card .label { display: block; margin: 1.1rem 0 .35rem; color: var(--chocolat); }
.card .card__num { color: var(--bleu); font-family: var(--serif); letter-spacing: .12em; font-size: .95rem; }
.section--ebene .card .card__num { color: var(--bleu); }
.card h3 { font-size: 1.18rem; }
.card p.meta { font-size: .85rem; color: rgba(31,31,31,.65); margin-top: .3rem; }
.section--ebene .card .label { color: var(--bleu); }
.section--ebene .card p.meta { color: rgba(249,249,249,.6); }

/* placeholder block when photo missing */
.ph {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  background: var(--chocolat);
}
.ph img { width: 32%; opacity: .45; height: auto; }
.ph--concrete { background: var(--concrete); }
.ph--ebene { background: var(--ebene); }

/* ---------- split (text + image) ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; position: relative; z-index: 1; }
@media (max-width: 880px) { .split { grid-template-columns: 1fr; } }
.split__img { overflow: hidden; }
.split__img img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; }
.split__img--landscape img { aspect-ratio: 4/3; }
.split__txt .label { display: block; margin-bottom: 1rem; color: var(--chocolat); }
.split__txt h2, .split__txt h3 { margin-bottom: 1.3rem; }
.split__txt p { margin-bottom: 1.1rem; }
.split__txt p:last-of-type { margin-bottom: 0; }
.split--rev .split__img { order: 2; }
@media (max-width: 880px) { .split--rev .split__img { order: 0; } }

.kicker {
  font-family: var(--serif); font-size: 1.25rem; line-height: 1.5; color: var(--chocolat);
}
.section--ebene .kicker { color: var(--concrete); }

/* ---------- anchor subnav ---------- */
.subnav { border-bottom: 1px solid rgba(31,31,31,.15); background: var(--blanc); position: relative; z-index: 5;}
.subnav ul { display: flex; gap: 2rem; list-style: none; max-width: var(--maxw); margin: 0 auto; padding: 1rem 6vw; flex-wrap: wrap; }
.subnav a { font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; opacity: .65; transition: opacity .2s; }
.subnav a:hover { opacity: 1; }
@media (max-width: 760px) {
  .subnav ul { gap: .35rem 1.1rem; padding: .75rem 6vw; justify-content: center; }
  .subnav a { font-size: .58rem; letter-spacing: .16em; line-height: 1.3; }
}

/* ---------- journeys / case studies ---------- */
.cs { padding: clamp(4rem, 8vw, 7rem) 0; border-top: 1px solid rgba(31,31,31,.15); }
.cs__head { margin-bottom: 3rem; }
.cs__head .label { display: block; color: var(--chocolat); margin-bottom: 1rem; }
.cs__head h2 { margin-bottom: .6rem; }
.cs__head .sub { font-family: var(--serif); font-size: 1.15rem; color: rgba(31,31,31,.7); margin-bottom: 1rem; }
.cs__meta { display: flex; gap: 1.8rem; flex-wrap: wrap; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--bleu); }
@media (max-width: 760px) {
  .cs__meta { flex-wrap: nowrap; white-space: nowrap; gap: .8rem; font-size: .66rem; letter-spacing: .09em; }
}
.cs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); margin-bottom: 2.5rem; }
@media (max-width: 880px) { .cs__grid { grid-template-columns: 1fr; } }
.cs h4 { font-family: var(--sans); font-size: .74rem; letter-spacing: .3em; text-transform: uppercase; font-weight: 400; color: var(--chocolat); margin: 0 0 1rem; }
.cs__block p { margin-bottom: 1rem; font-size: .99rem; }

details.day { border-top: 1px solid rgba(31,31,31,.18); }
details.day:last-of-type { border-bottom: 1px solid rgba(31,31,31,.18); }
details.day summary {
  cursor: pointer; list-style: none; padding: 1.2rem 0;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--serif); font-size: 1.1rem;
}
details.day summary::-webkit-details-marker { display: none; }
details.day summary::after { content: '+'; font-family: var(--sans); font-size: 1.2rem; font-weight: 300; transition: transform .3s; }
details.day[open] summary::after { transform: rotate(45deg); }
details.day .day__body { padding: 0 0 1.6rem; }
.tl { list-style: none; }
.tl li { display: grid; grid-template-columns: 110px 1fr; gap: 1.2rem; padding: .45rem 0; font-size: .95rem; }
.tl .t { font-size: .78rem; letter-spacing: .15em; color: var(--chocolat); padding-top: .25rem; white-space: nowrap; }
@media (max-width: 560px) { .tl li { grid-template-columns: 1fr; gap: .15rem; } }

.quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; margin-top: 1rem; }
@media (max-width: 880px) { .quotes { grid-template-columns: 1fr; } }
.quote { background: var(--blanc); padding: 1.8rem; font-size: .96rem; }
.quote .q { font-family: var(--serif); font-size: 1.05rem; line-height: 1.5; color: var(--chocolat); display: block; margin-bottom: .7rem; }

.gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem; }
@media (max-width: 880px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
.gallery .g { aspect-ratio: 1; overflow: hidden; }
.gallery .g img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.gallery .g:hover img { transform: scale(1.05); }

/* ---------- process steps ---------- */
.steps { counter-reset: step; position: relative; z-index: 1; }
.step { display: grid; grid-template-columns: 90px 1fr; gap: 2rem; padding: 2.2rem 0; border-top: 1px solid rgba(31,31,31,.18); }
.step:last-child { border-bottom: 1px solid rgba(31,31,31,.18); }
@media (max-width: 620px) { .step { grid-template-columns: 1fr; gap: .6rem; } }
.step__num { font-family: var(--serif); font-size: 2rem; color: var(--bleu); line-height: 1; }
.step h3 { margin-bottom: .6rem; }
.step .dur { font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: var(--chocolat); display: block; margin-bottom: .8rem; }
.step p { font-size: .98rem; max-width: 65ch; }

/* ---------- contact ---------- */
.form { display: grid; gap: 1.4rem; }
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
@media (max-width: 620px) { .form .row { grid-template-columns: 1fr; } }
.form label { font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; display: block; margin-bottom: .5rem; color: rgba(31,31,31,.7); }
.form input, .form select, .form textarea {
  width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(31,31,31,.4);
  padding: .6rem 0; font-family: var(--sans); font-size: 1rem; font-weight: 300; color: var(--noir);
  border-radius: 0; transition: border-color .25s;
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--chocolat); }
.form textarea { min-height: 120px; resize: vertical; }

/* ---------- footer ---------- */
.footer { background: var(--ebene); color: var(--blanc); padding: clamp(3.5rem, 7vw, 6rem) 0 2.5rem; }
.footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; margin-bottom: 4rem; }
@media (max-width: 880px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 2.2rem 1.5rem; text-align: center; }
  .footer__lockup { grid-column: 1 / -1; display: flex; justify-content: center; }
  .footer__bottom { justify-content: center; text-align: center; }
}
.footer__lockup img { height: 84px; width: auto; }
.footer h5 { font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; font-weight: 400; color: var(--bleu); margin-bottom: 1.2rem; }
.footer ul { list-style: none; }
.footer ul a { font-size: .92rem; line-height: 2.2; opacity: .8; transition: opacity .2s; }
.footer ul a:hover { opacity: 1; }
.footer__bottom { border-top: 1px solid rgba(249,249,249,.18); padding-top: 1.8rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .76rem; letter-spacing: .14em; opacity: .55; text-transform: uppercase; }

/* ---------- cta band ---------- */
.cta-band { text-align: center; position: relative; overflow: hidden; }
.cta-band h2 { max-width: 24ch; margin: 0 auto 1.4rem; }
.cta-band p { max-width: 52ch; margin: 0 auto 2.4rem; opacity: .85; }

/* ---------- destination sections ---------- */
.dest { padding: clamp(4rem, 8vw, 7rem) 0; border-top: 1px solid rgba(31,31,31,.15); }
.dest__sign { font-family: var(--serif); font-size: 1.2rem; color: var(--chocolat); margin-top: 1.6rem; }
.section--ebene .dest__sign { color: var(--bleu); }
.dest__journey {
  display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.9rem;
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--chocolat);
  border-bottom: 1px solid var(--bleu); padding-bottom: .3rem; transition: opacity .3s;
}
.dest__journey:hover { opacity: .55; }
.dest__journey .arr { font-family: var(--serif); font-size: 1rem; letter-spacing: 0; color: var(--bleu); }

/* ============================================================
   DESTINATIONS V2 — immersive, image-led
   ============================================================ */
.dz { border-top: 1px solid rgba(31,31,31,.12); }
.dz:nth-child(even of .dz) { background: var(--blanc); }

/* full-bleed destination hero */
.dz__hero {
  position: relative; height: clamp(440px, 68vh, 720px);
  overflow: hidden; display: flex; align-items: flex-end;
}
.dz__hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dz__hero::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(34,23,0,.12) 0%, rgba(34,23,0,0) 38%, rgba(34,23,0,.78) 100%);
}
.dz__hero-in { position: relative; z-index: 2; width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 6vw 4vh; color: var(--blanc); }
.dz__hero-in .label { display: block; margin-bottom: .9rem; color: rgba(249,249,249,.85); }
.dz__hero-in h2 { color: var(--blanc); max-width: 20ch; }
.dz__hero-in .sub { font-family: var(--serif); font-size: clamp(1.05rem,2vw,1.3rem); color: rgba(249,249,249,.92); margin-top: .7rem; }

/* body: short evocative lead + how-we-use-it card */
.dz__body {
  max-width: var(--maxw); margin: 0 auto;
  padding: clamp(3rem,6vw,5rem) 6vw clamp(1.5rem,3vw,2.5rem);
  display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2.2rem,5vw,5rem); align-items: start;
}
@media (max-width: 880px) { .dz__body { grid-template-columns: 1fr; } }
.dz__lead p { font-size: 1.16rem; line-height: 1.7; margin-bottom: 1.1rem; }
.dz__lead p:last-of-type { margin-bottom: 0; }
.dz__lead strong { font-weight: 400; color: var(--chocolat); box-shadow: inset 0 -.5em 0 rgba(104,147,175,.16); }
.dz__lead .dest__sign { margin-top: 1.5rem; }

.howwe { background: var(--concrete); padding: clamp(1.7rem,3vw,2.3rem); border-top: 2px solid var(--bleu); }
.dz:nth-child(even of .dz) .howwe { background: #EFEEE8; }
.howwe .label { display: block; margin-bottom: 1rem; color: var(--bleu); }
.howwe p { font-size: .97rem; line-height: 1.7; color: rgba(31,31,31,.86); margin-bottom: .8rem; }
.howwe p:last-child { margin-bottom: 0; }
.howwe strong { font-weight: 400; color: var(--chocolat); }

/* moodboard mosaic */
.moodboard {
  max-width: var(--maxw); margin: 0 auto;
  padding: 0 6vw clamp(3.5rem,7vw,5.5rem);
  display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: clamp(150px, 19vw, 250px); gap: .9rem;
}
.mb { overflow: hidden; background: var(--chocolat); }
.mb img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.mb:hover img { transform: scale(1.045); }
.mb--tall { grid-row: span 2; }
.mb--wide { grid-column: span 2; }
.moodboard--inline { max-width: none; margin: 2.5rem 0 0; padding: 0; }
@media (max-width: 760px) {
  .moodboard { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 40vw; }
  .mb--wide { grid-column: span 2; }
  .mb--tall { grid-row: span 1; }
  .moodboard .mb:nth-child(n+5) { display: none; } /* garde un carré 2x2 propre */
}

/* ============================================================
   DESTINATIONS V3 — épuré : moodboard latéral + bloc usage
   ============================================================ */
.mb-side { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.mb-side .mb { aspect-ratio: 1; }
.mb-side .mb img { width: 100%; height: 100%; object-fit: cover; }

/* separated "How Origem uses it" paragraph */
.usage { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(31,31,31,.2); }
.usage .label { display: block; color: var(--bleu); margin-bottom: .7rem; }
.usage p { font-size: .96rem; line-height: 1.7; color: rgba(31,31,31,.78); margin-bottom: 0; }
.section--blanc .usage { border-color: rgba(31,31,31,.16); }

/* utility */
.mt-2 { margin-top: 2rem; } .mt-3 { margin-top: 3rem; }
.center { text-align: center; }
.note { font-size: .82rem; color: rgba(31,31,31,.55); }

/* Booking modal (Google appointment schedule popup) */
.booking-overlay{position:fixed;inset:0;background:rgba(34,23,0,.55);display:none;align-items:center;justify-content:center;z-index:1000;padding:2vh 2vw;}
.booking-overlay.is-open{display:flex;}
.booking-modal{position:relative;background:var(--blanc);width:min(940px,100%);height:min(88vh,880px);border-radius:6px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.booking-close{position:absolute;top:6px;right:12px;z-index:2;background:transparent;border:0;font-size:30px;line-height:1;color:var(--chocolat);cursor:pointer;}
.booking-frame{width:100%;height:100%;}
.booking-frame iframe{width:100%;height:100%;border:0;display:block;}
@media(max-width:560px){.booking-modal{height:94vh;width:100%;border-radius:0;}}
