/* Emmanuel Py — nouveau design. Bleu nuit, ivoire, or chaud ; titres Cormorant, texte DM Sans. */
:root{--night:#0f1c22;--night2:#15262d;--ivory:#faf6ef;--sand:#f1e7d6;--white:#fff;--gold:#c99a4a;--gold-l:#e2bd78;--ink:#1d2529;--muted:#5d666a;--line:rgba(29,37,41,.12);--r:6px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;font-size:17px;line-height:1.7}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
h1,h2,h3,.serif{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;letter-spacing:-.005em;margin:0;text-wrap:balance}
.wrap{width:min(1180px,100%);margin-inline:auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.kicker{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
.notice{background:var(--gold);color:var(--night);text-align:center;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;font-weight:700}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* header */
header.top{position:absolute;left:0;right:0;z-index:5}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:22px}
header.top .bar{border-bottom:1px solid rgba(255,255,255,.2)}
.logo{color:#fff;line-height:1.15}.logo b{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:1.7rem;display:block}
.logo small{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-l)}
nav.main{display:flex;gap:30px;align-items:center}nav.main a{color:rgba(255,255,255,.9);font-size:.92rem;font-weight:500}
nav.main a[aria-current]{color:var(--gold-l)}
nav.main .cta{background:var(--gold);color:var(--night);padding:10px 22px;border-radius:var(--r);font-weight:700;white-space:nowrap}

/* buttons */
.btns{display:flex;gap:26px;align-items:center;margin-top:34px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--gold);color:var(--night);padding:15px 30px;border-radius:var(--r);font-weight:700;font-size:.98rem;box-shadow:0 14px 34px rgba(201,154,74,.3);border:0;cursor:pointer;font-family:inherit}
.link{font-weight:700;border-bottom:2px solid currentColor;padding-bottom:3px;display:inline-block}

/* home hero */
.hero{position:relative;display:flex;align-items:flex-end;color:#fff;background:var(--night);min-height:min(100vh,940px)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,28,34,.78) 0%,rgba(15,28,34,.45) 45%,rgba(15,28,34,.05) 75%),linear-gradient(180deg,rgba(15,28,34,.5) 0%,rgba(15,28,34,0) 30%,rgba(15,28,34,.75) 100%)}
.hero h1,.hero p,.hello{text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero .wrap{position:relative;z-index:2;padding-block:180px 90px}
.hero h1{font-size:clamp(3rem,7.5vw,6.6rem);line-height:.98;margin:20px 0 26px}
.hero h1 em,.phero h1 em{color:var(--gold-l);font-style:italic;font-weight:500}
.hero p{max-width:560px;color:rgba(255,255,255,.9);font-size:1.12rem;margin:0}
.hello{display:flex;align-items:center;gap:14px;margin-top:40px;font-size:.95rem;color:rgba(255,255,255,.88)}
.hello img{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:50% 30%;border:2px solid var(--gold-l)}

/* page hero */
.phero{position:relative;color:#fff;background:var(--night);min-height:clamp(420px,62vh,600px);display:flex;align-items:flex-end}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,28,34,.6) 0%,rgba(15,28,34,.1) 40%,rgba(15,28,34,.85) 100%)}
.phero .wrap{position:relative;z-index:2;padding-block:150px 64px}
.crumbs{font-size:.85rem;color:rgba(255,255,255,.75);display:flex;gap:8px;flex-wrap:wrap}
.crumbs a{border-bottom:1px solid rgba(255,255,255,.35)}
.phero h1{font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;margin:18px 0 18px;max-width:900px}
.phero p{max-width:620px;color:rgba(255,255,255,.88);font-size:1.1rem;margin:0}

/* sections */
.sec{padding-block:120px}
.sec.tight{padding-block:90px}
.sec.sand{background:var(--sand)}.sec.white{background:var(--white)}.sec.dark{background:var(--night);color:#fff}
.sec.dark p,.sec.dark li{color:rgba(255,255,255,.75)}
.center{text-align:center}
.intro h2{font-size:clamp(2.3rem,4.2vw,3.8rem);line-height:1.12;max-width:860px;margin:22px auto 26px}
.intro h2 em,.head h2 em{color:var(--gold);font-style:italic}
.intro p{max-width:640px;margin:0 auto;color:var(--muted)}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:50px;flex-wrap:wrap}
.head h2{font-size:clamp(2.3rem,4.2vw,3.6rem);line-height:1.06;margin-top:16px;max-width:660px}
.head p{max-width:420px;color:var(--muted);margin:0}
.sec.dark .head p{color:rgba(255,255,255,.72)}
h2.big{font-size:clamp(2.3rem,3.8vw,3.4rem);line-height:1.08;margin:16px 0 22px}
p.muted{color:var(--muted)}

.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:70px;text-align:left}
.panel{background:var(--white);border-radius:var(--r);padding:34px 30px;box-shadow:0 18px 50px rgba(29,37,41,.06)}
.panel .serif{font-size:1.6rem;display:block;margin-bottom:8px}.panel p,.panel span:not(.serif){color:var(--muted);font-size:.97rem;margin:0}
.panel i.rule{display:block;width:34px;height:2px;background:var(--gold);margin-bottom:20px}

ul.fine{list-style:none;padding:0;margin:16px 0 30px}ul.fine li{padding:12px 0 12px 26px;border-bottom:1px solid var(--line);position:relative}
ul.fine li::before{content:"";position:absolute;left:0;top:1.35em;width:12px;height:2px;background:var(--gold)}
.sec.dark ul.fine li{border-color:rgba(255,255,255,.12)}

/* two columns */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.cols.narrow-img{grid-template-columns:1.25fr 1fr}
.cols>*{min-width:0}
.photo{border-radius:var(--r);box-shadow:0 30px 60px rgba(29,37,41,.16);width:100%;height:auto}
.photo-portrait{max-width:440px;justify-self:center}

/* transfer band */
.band-img{width:100%;aspect-ratio:1800/790;object-fit:cover;border-radius:var(--r);margin-bottom:60px}
.tablet{width:100%;max-width:520px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}

/* cards */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{position:relative;aspect-ratio:3/4;overflow:hidden;color:#fff;border-radius:var(--r);background:var(--night)}
.card.wide{grid-column:span 2;aspect-ratio:auto;min-height:100%}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.card:hover img{transform:scale(1.04)}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(15,28,34,.82))}
.card h3{position:absolute;left:22px;right:22px;bottom:18px;z-index:2;font-size:1.8rem;line-height:1.1}

.feature{display:grid;grid-template-columns:1fr 2fr;margin-top:18px;background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:0 18px 50px rgba(29,37,41,.06)}
.feature img{width:100%;height:100%;min-height:320px;object-fit:cover;object-position:50% 20%}
.feature>div{padding:44px 48px;display:flex;flex-direction:column;justify-content:center}
.feature h3{font-size:2.1rem;line-height:1.1;margin:12px 0 14px}.feature p{color:var(--muted);margin:0 0 10px}

/* experience cards */
.xgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.xcard{background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:0 18px 50px rgba(29,37,41,.06);display:flex;flex-direction:column}
.xcard>img,.xcard .xph{width:100%;aspect-ratio:4/3;object-fit:cover}
.xcard .xph{background:var(--night);display:grid;place-items:center}
.xcard .xph span{font-family:"Cormorant Garamond",Georgia,serif;font-size:2.6rem;font-style:italic;color:var(--gold-l)}
.xcard>div:last-child{padding:26px 28px 30px}
.xcard h3{font-size:1.65rem;margin:0 0 8px;line-height:1.15}.xcard p{color:var(--muted);margin:0 0 12px;font-size:.97rem}
/* stops (subpages) */
.stops{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.stops.two{grid-template-columns:repeat(2,1fr)}
.stops h3{font-size:1.65rem;margin:0 0 10px;line-height:1.15}
.layout{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:start}
.layout>*{min-width:0}
.aside{background:var(--night);color:#fff;border-radius:var(--r);padding:36px 34px;position:sticky;top:24px}
.aside h3{font-size:1.8rem;margin:10px 0 6px}.aside ul.fine li{border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.85)}
.prose h2{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.1;margin:0 0 16px}
.prose p{color:var(--muted)}
.prose>*+h2{margin-top:50px}
.note{background:var(--sand);border-radius:var(--r);padding:22px 26px;color:var(--ink);font-size:.95rem}

/* people */
.people{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
.people>*{min-width:0}
.photos{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.photos img{width:100%;border-radius:var(--r);display:block}
.photos .p1{grid-column:1;grid-row:1;aspect-ratio:4/3;height:auto;object-fit:cover}
.photos .p2{grid-column:1;grid-row:2;aspect-ratio:4/3;height:auto;object-fit:cover}
.photos .p3{grid-column:2;grid-row:1/3;height:100%;object-fit:cover}
.review{background:var(--white);border-radius:var(--r);padding:26px 30px;margin-bottom:16px}
.review p{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:1.4rem;line-height:1.4;margin:6px 0 12px;color:var(--ink)}
.stars{color:var(--gold);letter-spacing:.15em;font-size:.9rem}
.review cite{font-style:normal;font-size:.84rem;color:var(--muted);font-weight:500}
.links{display:flex;gap:26px;margin-top:20px;font-size:.92rem;font-weight:700;flex-wrap:wrap}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.steps .panel span.n{font-size:3.2rem;color:var(--gold);font-family:"Cormorant Garamond",Georgia,serif;font-size:3.2rem;color:var(--gold);line-height:1;font-weight:600;display:block}
.steps h3{font-size:1.6rem;margin:14px 0 8px}

/* gallery */
.gallery{columns:3 300px;column-gap:16px}
.gallery img{width:100%;height:auto;border-radius:var(--r);margin-bottom:16px;break-inside:avoid}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:start}
.contact-grid>*{min-width:0}
.direct{margin-top:30px;display:grid;gap:8px}.direct a{color:var(--gold-l);font-weight:500}
form.lead{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;background:var(--night2);padding:36px;border-radius:var(--r)}
form.lead label{display:flex;flex-direction:column;gap:7px;font-size:.86rem;font-weight:500;color:rgba(255,255,255,.78)}
form.lead .full{grid-column:1/-1}
form.lead input,form.lead textarea{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);color:#fff;font:inherit;padding:12px 14px;outline:none;width:100%}
form.lead input:focus,form.lead textarea:focus{border-color:var(--gold-l)}
form.lead textarea{min-height:120px;resize:vertical}
form.lead button{grid-column:1/-1;justify-self:start}
form.lead button:disabled{opacity:.6;cursor:wait}
.form-status{margin:0;color:var(--gold-l);font-weight:700}
.form-error{background:rgba(255,255,255,.06);border-left:4px solid var(--gold);padding:20px;border-radius:var(--r)}
.form-error p{margin:0 0 14px;color:#fff}
.form-alternatives{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.form-alternatives a{font-weight:700;border-bottom:2px solid var(--gold-l);color:#fff}
.form-help{font-size:.85rem;color:rgba(255,255,255,.6)!important;margin-top:12px!important}

/* footer */
footer.foot{background:#0a1418;color:rgba(255,255,255,.6);padding-block:64px 36px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.fgrid b{display:block;color:#fff;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.5rem;font-weight:600;margin-bottom:8px}
.fgrid span.l{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-l);margin-bottom:12px;font-weight:700}
.fgrid a{display:block;margin-bottom:6px}
.fbottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:44px;padding-top:24px;font-size:.84rem}
.wa{position:fixed;right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 12px 30px rgba(0,0,0,.25);z-index:9}

@media(max-width:960px){
  header.top .wrap{flex-wrap:wrap;row-gap:12px}
  nav.main{order:3;width:100%;gap:20px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  nav.main a{font-size:.88rem;white-space:nowrap}
  nav.main .cta{display:none}
  .pillars,.steps,.stops,.stops.two,.fgrid,.xgrid{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr}.card.wide{grid-column:span 2;aspect-ratio:16/10}
  .card h3{font-size:1.4rem;left:16px;bottom:14px}
  .cols,.cols.narrow-img,.people,.contact-grid,.layout{grid-template-columns:1fr;gap:44px}
  .feature{grid-template-columns:1fr}.feature img{min-height:0;aspect-ratio:4/3}.feature>div{padding:30px 24px}
  .aside{position:static}
  form.lead{grid-template-columns:1fr;padding:24px}
  .sec{padding-block:84px}.sec.tight{padding-block:64px}
  .hero .wrap{padding-block:150px 64px}
  .band-img{margin-bottom:40px}
}
@media(max-width:520px){
  .notice{font-size:.6rem;letter-spacing:.04em}
  .logo b{font-size:1.45rem}.logo small{letter-spacing:.1em;font-size:.62rem}
  nav.main .cta{padding:9px 14px;font-size:.85rem}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
