
/* ---------- hero ---------- */
.d1-hero{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(400px,46vh,500px);display:flex;flex-direction:column;justify-content:center}
.d1-hero__bg{position:absolute;inset:0;z-index:-2}
/* the skyline sits along the foot of the plate, so hold the bottom edge */
.d1-hero__bg .mm-slot img{object-position:50% 100%}
.d1-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(178deg,rgba(34,48,31,.2) 0%,rgba(34,48,31,.46) 45%,rgba(34,48,31,.88) 100%)}
.d1-hero__inner{padding-block:clamp(1.35rem,2.4vw,2.15rem) clamp(1.75rem,4vw,3rem)}
.d1-hero__grid{display:grid;gap:clamp(1.5rem,3vw,3.25rem);align-items:start}
@media(min-width:1000px){.d1-hero__grid{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)}}
.d1-hero h1{
  color:var(--paper);margin:1.25rem 0 0;
  font-size:clamp(2.05rem,1.15rem + 2.9vw,3.55rem);line-height:1.02;letter-spacing:-.03em;
  max-width:none;text-wrap:balance;
}
/* the italic clause takes its own line, so the headline is always three lines */
.d1-hero h1 em{display:block;font-style:italic;color:var(--sage-soft)}
.d1-hero .mm-lede{color:rgba(243,255,239,.86)}
.d1-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.d1-hero__figs{display:flex;gap:clamp(1.5rem,3vw,2.75rem);margin-top:2rem;padding-top:1.35rem;border-top:1px solid var(--hair-light)}
.d1-hero__figs b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,1.1rem + 1vw,2.1rem);line-height:1;color:var(--paper)}
.d1-hero__figs span{display:block;margin-top:.55rem;font-size:.625rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-soft)}

/* ---------- portfolio rail ---------- */
.d1-rail{padding-block:clamp(3rem,7vw,5.5rem);background:var(--mist)}
.d1-rail__head{display:grid;gap:1.25rem 3rem;align-items:end;margin-bottom:clamp(1.75rem,3vw,2.5rem)}
@media(min-width:900px){.d1-rail__head{grid-template-columns:minmax(0,1fr) auto}}
.d1-rail__head h2{font-size:clamp(1.8rem,1.35rem + 1.9vw,2.9rem);line-height:1.06;margin:.9rem 0 0;max-width:20ch}
.d1-rail__head h2 em{font-style:italic;color:var(--sage-ink)}
.d1-rail__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media(min-width:700px){.d1-rail__grid{grid-template-columns:repeat(3,1fr);gap:.75rem}}
@media(min-width:1100px){.d1-rail__grid{grid-template-columns:repeat(6,1fr)}}

/* ---------- navigator ---------- */
.d1-nav{position:sticky;top:112px;z-index:30;background:rgba(243,255,239,.93);backdrop-filter:blur(14px);border-block:1px solid var(--hair)}
@media(max-width:767px){.d1-nav{top:96px}}
.d1-nav__scroll{display:flex;align-items:center;gap:.15rem;overflow-x:auto;scrollbar-width:none;padding:.6rem 0}
.d1-nav__scroll::-webkit-scrollbar{display:none}
.d1-nav__tag{flex:none;padding:0 .9rem 0 .35rem;font:500 .625rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sage-ink);white-space:nowrap}
.d1-nav__tag+.d1-nav__tag{border-left:1px solid var(--hair)}
.d1-nav a{flex:none;padding:.5rem .8rem;text-decoration:none;white-space:nowrap;border-radius:1px;
  font-size:.78rem;color:var(--muted);transition:color .25s,background .25s}
.d1-nav a:hover{color:var(--deep);background:var(--mint)}
.d1-nav a.is-active{color:var(--paper);background:var(--deep)}

/* ---------- chapter plate ---------- */
.d1-chapter{min-height:clamp(300px,38vw,520px)}

/* chapter note (Europe overview) */
.d1-note{padding-block:clamp(2.75rem,6vw,4.5rem);background:var(--veil);border-bottom:1px solid var(--hair)}
.d1-note__grid{display:grid;gap:clamp(1.25rem,3vw,3.5rem)}
@media(min-width:1000px){.d1-note__grid{grid-template-columns:minmax(0,.34fr) minmax(0,1fr)}}
.d1-note h2{font-size:clamp(1.6rem,1.3rem + 1.5vw,2.5rem);line-height:1.08;margin:.85rem 0 0;letter-spacing:-.025em}

/* ---------- sections ---------- */
.d1-sec{padding-block:clamp(3rem,6.5vw,5.5rem)}
.d1-sec+.d1-sec{border-top:1px solid var(--hair)}
.d1-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1.5rem;margin-bottom:1.4rem}
.d1-head h2{font-size:clamp(2rem,1.5rem + 2.2vw,3.4rem);line-height:1;letter-spacing:-.03em;margin:0}
.d1-head .mm-count{padding-bottom:.35rem}

/* feature: panoramic banner */
.d1-feature__banner{position:relative;overflow:hidden;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.d1-feature__banner .mm-slot{aspect-ratio:21/8;border-radius:1px}
@media(max-width:700px){.d1-feature__banner .mm-slot{aspect-ratio:4/3}}
.d1-feature__cap{position:absolute;z-index:4;left:0;right:0;bottom:0;padding:clamp(1.35rem,3.5vw,2.75rem)}
.d1-feature__cap h2{color:var(--paper);font-size:clamp(2rem,1.4rem + 3vw,4rem);line-height:.98;letter-spacing:-.03em;margin:.7rem 0 0}
.d1-feature__body{display:grid;gap:clamp(1.5rem,3vw,3.5rem)}
@media(min-width:1000px){.d1-feature__body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* spread: portrait beside copy */
.d1-spread{display:grid;gap:clamp(1.5rem,3.5vw,4rem);align-items:center}
@media(min-width:1000px){
  .d1-spread{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}
  .d1-spread.is-flip>.d1-spread__media{order:2}
}
.d1-spread__media .mm-slot{aspect-ratio:4/5}
@media(max-width:999px){.d1-spread__media .mm-slot{aspect-ratio:16/10}}

/* plain: title in the margin */
.d1-plain{display:grid;gap:clamp(1rem,2.5vw,3.5rem)}
@media(min-width:1000px){.d1-plain{grid-template-columns:minmax(0,.34fr) minmax(0,1fr)}}
.d1-plain__aside{align-self:start}
@media(min-width:1000px){.d1-plain__aside{position:sticky;top:190px}}
.d1-plain__aside h2{font-size:clamp(1.75rem,1.4rem + 1.6vw,2.6rem);line-height:1.02;letter-spacing:-.028em;margin:.8rem 0 .75rem}

.d1-idx{margin-top:clamp(1.75rem,3vw,2.5rem)}

/* ---------- concierge module ---------- */
.d1-concierge{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(3.5rem,8vw,6rem);background:var(--deep-2)}
.d1-concierge__grid{display:grid;gap:clamp(1.75rem,4vw,4rem);align-items:center}
@media(min-width:1000px){.d1-concierge__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.d1-concierge h2{color:var(--paper);font-size:clamp(1.9rem,1.45rem + 2.1vw,3.1rem);line-height:1.04;letter-spacing:-.03em;margin:1rem 0 1.15rem;max-width:16ch}
.d1-concierge h2 em{font-style:italic;color:var(--sage-soft)}
.d1-concierge .mm-body{color:rgba(243,255,239,.8);max-width:52ch}
.d1-concierge__pics{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.d1-concierge__pics>*:nth-child(2){transform:translateY(-1.75rem)}
@media(max-width:640px){.d1-concierge__pics>*:nth-child(2){transform:none}}
.d1-concierge__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* ---------- outro ---------- */
.d1-outro{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(4rem,9vw,7rem);text-align:center}
.d1-outro__bg{position:absolute;inset:0;z-index:-2}
.d1-outro::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(34,48,31,.86)}
.d1-outro h2{color:var(--paper);font-size:clamp(2rem,1.5rem + 2.4vw,3.5rem);line-height:1.02;letter-spacing:-.03em;margin:1.4rem auto 1.35rem;max-width:18ch}
.d1-outro .mm-body{color:rgba(243,255,239,.82);max-width:60ch;margin-inline:auto}
.d1-outro__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2.25rem}

/* ---------- mobile dock ---------- */
.d1-dock{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;background:var(--deep-2)}
.d1-dock a{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:1rem .5rem;
  color:var(--paper);text-decoration:none;font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase}
.d1-dock a+a{border-left:1px solid var(--hair-light)}
@media(min-width:1000px){.d1-dock{display:none}}
@media(max-width:999px){footer{padding-bottom:5rem!important}}
