
:root{--navy:#09286f;--royal:#0d4ea6;--ink:#10131a;--gold:#c99b55;--red:#c8242f;--ivory:#fbf8f1;--paper:#fffdf9;--muted:#686d76}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}.wrap{width:min(1160px,88vw);margin:auto}.nav{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(9,40,111,.12)}.brand{letter-spacing:.24em;font-size:13px;color:var(--navy)}.nav a{color:var(--navy);text-decoration:none;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.hero{min-height:780px;display:grid;grid-template-columns:1.03fr .97fr;align-items:center;gap:5vw;padding:72px 0 88px}.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:24px}.hero h1,.section-title{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--navy);margin:0}.hero h1{font-size:clamp(58px,8vw,112px);line-height:.86;letter-spacing:-.045em}.hero h1 em{font-style:italic;color:var(--royal)}.lead{font-size:clamp(20px,2.1vw,28px);max-width:650px;margin:34px 0 16px}.sub{color:var(--muted);font-size:16px;max-width:590px}.cta{display:inline-block;margin-top:32px;background:var(--navy);color:white;text-decoration:none;padding:19px 30px;letter-spacing:.17em;text-transform:uppercase;font-size:12px;box-shadow:0 15px 35px rgba(9,40,111,.18)}.meta{margin-top:18px;color:var(--muted);font-size:14px;letter-spacing:.05em}.enso-wrap{position:relative}.enso-wrap:before{content:"";position:absolute;inset:13% 8% 5% 13%;background:rgba(8,36,94,.09);filter:blur(36px);border-radius:50%;transform:translateY(18px)}.enso{position:relative;width:100%;display:block;mix-blend-mode:multiply}.enso-wrap:after{content:"";position:absolute;width:10px;height:10px;background:var(--red);border-radius:50%;right:3%;bottom:12%;box-shadow:-22px -15px 0 -4px var(--gold)}.blue{background:var(--navy);color:white;padding:92px 0}.blue .eyebrow{color:#e5c78e}.blue-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.blue h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(44px,6vw,78px);line-height:.98;margin:0}.blue p{font-size:21px;margin:0;max-width:650px}.script{font-family:'Brush Script MT','Segoe Script',cursive;font-size:42px;color:#e8c98f;transform:rotate(-2deg);margin-top:34px}.content{padding:110px 0}.section-title{font-size:clamp(45px,6vw,76px);line-height:1}.intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start}.bigq{font-family:Georgia,'Times New Roman',serif;font-size:clamp(30px,4vw,51px);line-height:1.18;color:var(--navy);margin:0}.copy{font-size:18px;color:#363a43}.gold-line{width:74px;height:2px;background:linear-gradient(90deg,var(--navy) 0 38%,var(--gold) 38% 82%,var(--red) 82% 100%);margin:28px 0}.content{position:relative}.content:before{content:"";position:absolute;left:0;top:58px;width:96px;height:16px;border-top:5px solid var(--navy);border-bottom:2px solid var(--gold);transform:rotate(-7deg);opacity:.9}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:72px}.card{background:var(--paper);padding:38px 34px;min-height:245px;box-shadow:0 18px 55px rgba(33,38,55,.08);border-top:2px solid var(--gold)}.num{font-family:Georgia,serif;font-size:46px;color:rgba(9,40,111,.16)}.card h3{font-family:Georgia,serif;font-weight:400;color:var(--navy);font-size:27px;margin:7px 0 13px}.offer{padding:100px 0;background:#f3eee4}.offer-box{background:var(--paper);box-shadow:0 24px 70px rgba(31,35,49,.11);display:grid;grid-template-columns:1fr .72fr}.offer-main{padding:64px}.offer-side{background:var(--navy);color:white;padding:64px;display:flex;flex-direction:column;justify-content:center}.offer h2{font-family:Georgia,serif;color:var(--navy);font-weight:400;font-size:60px;margin:0}.price{font-family:Georgia,serif;font-size:70px;line-height:1;margin-bottom:8px}.offer-side .cta{background:white;color:var(--navy);box-shadow:none;text-align:center}.quote{padding:110px 0;text-align:center}.quote p{font-family:Georgia,serif;font-style:italic;font-size:clamp(32px,5vw,58px);line-height:1.2;color:var(--navy);max-width:900px;margin:0 auto}.dot{width:12px;height:12px;background:var(--red);border-radius:50%;margin:35px auto 0}.footer{background:var(--navy);color:white;padding:52px 0}.footer .wrap{display:flex;justify-content:space-between;gap:30px;align-items:center}.footer small{opacity:.7}.footer strong{font-family:Georgia,serif;font-weight:400;font-size:24px}.brushmark{position:absolute;pointer-events:none;opacity:.18}.brushmark.one{width:150px;height:22px;border-top:8px solid var(--navy);border-bottom:3px solid var(--gold);right:5%;top:38px;transform:rotate(7deg)}.brushmark.two{width:85px;height:85px;border:10px solid var(--gold);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;left:3%;bottom:36px;transform:rotate(-25deg)}.redpoint{display:inline-block;width:9px;height:9px;background:var(--red);border-radius:50%;margin:0 10px 1px 0}.diamond-note{margin-top:34px;padding:24px 28px;border-left:2px solid var(--gold);background:rgba(255,255,255,.45);font-family:Georgia,serif;font-size:22px;color:var(--navy)}.impact{padding:105px 0;background:var(--paper);position:relative;overflow:hidden}.impact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;align-items:start}.impact h2{font-family:Georgia,serif;font-weight:400;color:var(--navy);font-size:clamp(44px,6vw,74px);line-height:1;margin:0}.impact-copy{font-size:20px;max-width:690px}.impact-copy strong{color:var(--navy)}.impact-line{font-family:Georgia,serif;font-style:italic;color:var(--navy);font-size:clamp(27px,3vw,40px);line-height:1.25;margin-top:34px}.impact:after{content:"";position:absolute;width:150px;height:150px;border:13px solid var(--gold);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;right:-55px;top:40px;opacity:.18;transform:rotate(18deg)}.tiny-red{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block;margin-right:10px}.guided{font-family:Georgia,serif;font-size:24px;color:var(--navy);margin:24px 0 0}.guided strong{font-weight:400;border-bottom:1px solid var(--gold)}@media(max-width:800px){.nav{height:72px}.hero{grid-template-columns:1fr;padding:55px 0 70px;gap:35px;min-height:0}.hero h1{font-size:64px}.enso-wrap{width:88%;margin:auto}.blue{padding:70px 0}.blue-grid,.intro,.offer-box{grid-template-columns:1fr;gap:35px}.blue h2{font-size:52px}.impact-grid{grid-template-columns:1fr;gap:35px}.steps{grid-template-columns:1fr}.content,.offer,.quote{padding:76px 0}.offer-main,.offer-side{padding:42px 32px}.offer h2{font-size:48px}.price{font-size:60px}.footer .wrap{display:block}.footer small{display:block;margin-top:10px}}

/* Portrait — section "Pourquoi est-ce important ?" */
.belief-with-photo .belief-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
.belief-with-photo .belief-copy{min-width:0;}
.belief-with-photo .belief-photo{
  width:100%;
  max-width:430px;
  justify-self:end;
  overflow:hidden;
  border-radius:48% 48% 4px 4px / 18% 18% 4px 4px;
  box-shadow:0 22px 55px rgba(18,45,70,.10);
  background:#f3f1ec;
}
.belief-with-photo .belief-photo img{
  display:block;
  width:100%;
  height:auto;
  filter:grayscale(100%);
}
@media (max-width:820px){
  .belief-with-photo .belief-layout{
    grid-template-columns:1fr;
    gap:2rem;
  }
  .belief-with-photo .belief-photo{
    grid-row:1;
    justify-self:center;
    max-width:520px;
  }
}


/* ===== V10 — Direction artistique : bleu roi électrique / ivoire / rouge ===== */
:root{
  --royal:#123DFF;
  --royal-deep:#082B9E;
  --royal-ink:#071D63;
  --red:#E10613;
  --red-deep:#BC0010;
  --ivory:#FCFAF5;
  --paper:#FFFDF8;
  --gold:#B89145;
}

/* Stronger brand presence */
body{
  background:
    radial-gradient(circle at 90% 4%, rgba(18,61,255,.08), transparent 25rem),
    var(--ivory) !important;
}
.brand{
  color:var(--royal-deep) !important;
  letter-spacing:.09em !important;
  font-weight:700 !important;
}
header.nav{
  border-bottom:1px solid rgba(18,61,255,.13);
}
header.nav > a{
  color:var(--royal-deep) !important;
  font-weight:700;
}

/* Typography and accents */
h1,h2,h3,.price,.quote{
  color:var(--royal-ink) !important;
}
h1 em,h2 em{
  color:var(--royal) !important;
}
.eyebrow{
  color:var(--royal-deep) !important;
  letter-spacing:.18em !important;
}
.eyebrow::after{
  content:"";
  display:inline-block;
  width:42px;
  height:2px;
  background:var(--red);
  vertical-align:middle;
  margin-left:14px;
  border-radius:2px;
}

/* Hero — more assertive but still elegant */
.hero{
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  border:34px solid rgba(18,61,255,.055);
  border-radius:50%;
  right:-250px;
  top:-180px;
  pointer-events:none;
}
.hero-copy{
  position:relative;
  z-index:2;
}

/* Enso / logo: stronger presence, royal-blue halo, red point echoed */
.enso-wrap{
  position:relative;
  isolation:isolate;
}
.enso-wrap::before{
  content:"";
  position:absolute;
  inset:8% 4%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(18,61,255,.13), rgba(18,61,255,.025) 52%, transparent 70%);
  filter:blur(7px);
  z-index:-1;
}
.enso-img{
  filter:saturate(1.32) contrast(1.08) !important;
  transform:scale(1.045);
}

/* Booking CTAs — vivid red, refined arrow detail */
a.btn{
  background:linear-gradient(135deg,var(--red),var(--red-deep)) !important;
  color:white !important;
  border:1px solid rgba(255,255,255,.38) !important;
  border-radius:999px !important;
  box-shadow:0 12px 30px rgba(225,6,19,.18) !important;
  padding-right:1.2rem !important;
  transition:transform .22s ease, box-shadow .22s ease !important;
}
a.btn::after{
  content:"→";
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  margin-left:12px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:50%;
  font-size:15px;
  line-height:1;
  transition:transform .22s ease;
}
a.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 36px rgba(225,6,19,.26) !important;
}
a.btn:hover::after{transform:translateX(3px);}

/* Cards / structured content */
.card,.step,.offer-card{
  border-color:rgba(18,61,255,.14) !important;
  box-shadow:0 16px 42px rgba(7,29,99,.055) !important;
}
.step{
  position:relative;
}
.step::before{
  color:var(--royal) !important;
}
.steps{
  position:relative;
}
.steps::after{
  content:"";
  position:absolute;
  right:4vw;
  bottom:2.2rem;
  width:70px;
  height:70px;
  border:1px solid rgba(184,145,69,.38);
  border-radius:50%;
  pointer-events:none;
}

/* Blue statement bands where existing section backgrounds permit */
section:nth-of-type(even){
  --section-accent:var(--royal);
}

/* Fine editorial rules */
section .wrap{
  position:relative;
}
section .wrap::before{
  content:"";
  position:absolute;
  left:0;
  top:-1px;
  width:36px;
  height:2px;
  background:linear-gradient(90deg,var(--royal),var(--red));
  opacity:.72;
}

/* Portrait section: more editorial and tied into the palette */
.belief-with-photo{
  position:relative;
  overflow:hidden;
}
.belief-with-photo::before{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  border:22px solid rgba(18,61,255,.07);
  border-radius:50%;
  left:-180px;
  bottom:-170px;
}
.belief-with-photo .belief-photo{
  border:1px solid rgba(18,61,255,.14);
  box-shadow:22px 22px 0 rgba(18,61,255,.055), 0 24px 60px rgba(7,29,99,.10) !important;
}

/* Price and small metadata */
.meta,.price{
  color:var(--royal-deep) !important;
}
.price{
  font-weight:700;
}

/* Footer */
.footer{
  border-top:1px solid rgba(18,61,255,.14) !important;
}
.footer strong{
  color:var(--royal-deep) !important;
}

/* Mobile refinements */
@media (max-width:820px){
  .hero::before{width:320px;height:320px;right:-190px;top:-100px;border-width:24px;}
  a.btn{width:auto;max-width:100%;justify-content:center;}
  .enso-img{transform:scale(1.015);}
  section .wrap::before{left:1rem;}
}


/* V11 — Mise en valeur de la signature finale */
.quote{
  position:relative;
  max-width:920px;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:clamp(2.8rem,6vw,5.4rem) clamp(1.4rem,5vw,4.5rem) !important;
  text-align:center;
  color:var(--royal-ink) !important;
  font-family:Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  letter-spacing:-.025em !important;
  line-height:1.08 !important;
}
.quote::before{
  content:"";
  display:block;
  width:62px;
  height:3px;
  margin:0 auto 1.7rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--royal),var(--red));
}
.quote::after{
  content:"•";
  display:block;
  margin-top:1.45rem;
  color:var(--red);
  font-family:Georgia, "Times New Roman", serif;
  font-size:2rem;
  line-height:.5;
}
.quote strong,
.quote b{
  display:block;
  color:var(--royal) !important;
  font-size:clamp(2.35rem,5vw,4.9rem) !important;
  font-weight:400 !important;
  font-style:italic;
  letter-spacing:-.04em;
  line-height:.98;
  margin-bottom:1rem;
}
@media (max-width:700px){
  .quote{
    padding:3rem 1.1rem !important;
    line-height:1.18 !important;
  }
  .quote strong,.quote b{
    font-size:clamp(2.15rem,11vw,3.5rem) !important;
  }
}


/* V12 — suppression des petits traits décoratifs */
.eyebrow::after,
section .wrap::before,
.quote::before{
  content:none !important;
  display:none !important;
}


/* V13 — Logo plus visible + CTA rouges plus structurés */

/* Bring the Enso into the first visual hierarchy */
.hero-grid{
  align-items:center !important;
}
.hero-art{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:center !important;
}
.enso-wrap{
  width:min(100%, 500px) !important;
  margin:0 auto !important;
  padding:clamp(.35rem,1vw,.8rem) !important;
}
.enso-img{
  width:100% !important;
  max-width:500px !important;
  opacity:1 !important;
  transform:scale(1.08) !important;
  filter:saturate(1.42) contrast(1.12) !important;
}

/* Keep decorative circle secondary; the actual logo is the focal point */
.hero::before{
  opacity:.42 !important;
}

/* Clear, premium booking buttons */
a.btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  min-height:58px !important;
  padding:0 14px 0 26px !important;
  background:#E10613 !important;
  background-image:linear-gradient(135deg,#EA0716 0%,#C90010 100%) !important;
  border:1px solid #B9000D !important;
  border-radius:10px !important;
  box-shadow:0 10px 24px rgba(188,0,16,.18) !important;
  color:#fff !important;
  font-weight:700 !important;
  letter-spacing:.01em !important;
  text-decoration:none !important;
  white-space:nowrap;
}
a.btn::after{
  content:"→" !important;
  flex:0 0 38px !important;
  width:38px !important;
  height:38px !important;
  display:grid !important;
  place-items:center !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.62) !important;
  border-radius:7px !important;
  background:rgba(255,255,255,.10) !important;
  font-size:18px !important;
  font-weight:400 !important;
  line-height:1 !important;
}
a.btn:hover{
  transform:translateY(-2px) !important;
  background-image:linear-gradient(135deg,#F00818 0%,#C0000E 100%) !important;
  box-shadow:0 14px 30px rgba(188,0,16,.25) !important;
}
a.btn:focus-visible{
  outline:3px solid rgba(18,61,255,.28) !important;
  outline-offset:4px !important;
}

/* Top nav booking link: visually connected to the main CTA language */
header.nav > a{
  color:#C90010 !important;
  border-bottom:2px solid #C90010 !important;
  padding-bottom:4px !important;
  text-decoration:none !important;
}

/* Mobile: logo appears directly after hero copy, not lost lower on page */
@media (max-width:820px){
  .hero-grid{
    display:flex !important;
    flex-direction:column !important;
  }
  .hero-copy{order:1 !important;}
  .hero-art{
    order:2 !important;
    width:100% !important;
    margin-top:1.8rem !important;
  }
  .enso-wrap{
    width:min(86vw,390px) !important;
  }
  .enso-img{
    max-width:390px !important;
    transform:scale(1.04) !important;
  }
  a.btn{
    width:100% !important;
    max-width:430px !important;
    min-height:60px !important;
    white-space:normal !important;
    text-align:left !important;
  }
}


/* V14 — Logo immédiatement visible + boutons rouges élégants */

/* Desktop: logo sits high in the hero, visible at first glance */
.hero-grid{
  position:relative !important;
  align-items:start !important;
}
.hero-art{
  align-self:start !important;
  justify-content:center !important;
  margin-top:-1.2rem !important;
}
.enso-wrap{
  width:min(100%,460px) !important;
  margin:0 auto !important;
  padding:0 !important;
}
.enso-img{
  width:100% !important;
  max-width:460px !important;
  transform:none !important;
  opacity:1 !important;
  filter:saturate(1.35) contrast(1.08) !important;
}

/* Elegant red CTA: lighter, editorial, coordinated with serif typography */
a.btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  min-height:52px !important;
  padding:0 24px !important;
  background:#C91522 !important;
  background-image:none !important;
  border:1px solid #C91522 !important;
  border-radius:999px !important;
  box-shadow:0 7px 18px rgba(150,18,29,.12) !important;
  color:#fff !important;
  font-family:inherit !important;
  font-size:.96rem !important;
  font-weight:600 !important;
  letter-spacing:.015em !important;
  white-space:normal !important;
  text-align:center !important;
}
a.btn::after{
  content:"→" !important;
  display:inline-block !important;
  width:auto !important;
  height:auto !important;
  margin:0 0 0 3px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  font-size:1.08em !important;
  font-weight:400 !important;
  line-height:1 !important;
  opacity:.9 !important;
}
a.btn:hover{
  transform:translateY(-1px) !important;
  background:#B8111D !important;
  box-shadow:0 9px 22px rgba(150,18,29,.16) !important;
}

/* Mobile: force logo to appear at the top of the hero, before the main copy */
@media (max-width:820px){
  .hero-grid{
    display:flex !important;
    flex-direction:column !important;
  }
  .hero-art{
    order:1 !important;
    width:100% !important;
    margin:-.5rem auto .9rem !important;
  }
  .hero-copy{
    order:2 !important;
  }
  .enso-wrap{
    width:min(64vw,260px) !important;
  }
  .enso-img{
    max-width:260px !important;
  }
  a.btn{
    width:auto !important;
    max-width:100% !important;
    min-height:52px !important;
    padding:0 22px !important;
  }
}


/* V18 — Header / hero entièrement repensé : éditorial, élégant, lisible */

/* Header becomes a composed identity band */
header.nav{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:24px !important;
  padding-top:22px !important;
  padding-bottom:18px !important;
  border-bottom:1px solid rgba(7,29,99,.12) !important;
}
.brand{
  max-width:720px !important;
  color:var(--royal-deep) !important;
  font-size:clamp(.82rem,1.4vw,.98rem) !important;
  line-height:1.35 !important;
  letter-spacing:.085em !important;
}
header.nav > a{
  color:#B8111D !important;
  border:0 !important;
  padding:0 !important;
  font-size:.82rem !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
  text-decoration:none !important;
  position:relative !important;
}
header.nav > a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-7px;
  height:1px;
  background:#B8111D;
}

/* Hero: logo becomes part of the composition, not a separate block */
.hero{
  padding-top:clamp(2.4rem,5vw,4.6rem) !important;
  overflow:hidden !important;
}
.hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.18fr) minmax(260px,.72fr) !important;
  gap:clamp(2.5rem,6vw,6.5rem) !important;
  align-items:center !important;
}
.hero-copy{
  position:relative !important;
  z-index:2 !important;
}
.hero-copy .eyebrow{
  max-width:560px !important;
  margin-bottom:1.15rem !important;
  font-size:clamp(.78rem,1.15vw,.94rem) !important;
  line-height:1.55 !important;
  letter-spacing:.15em !important;
}
.hero h1{
  max-width:720px !important;
  margin-top:0 !important;
  margin-bottom:1.35rem !important;
}

/* Logo in its own calm visual column */
.hero-art{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:center !important;
  margin:0 !important;
  min-height:0 !important;
}
.enso-wrap{
  width:min(100%,390px) !important;
  margin:0 auto !important;
  padding:0 !important;
  position:relative !important;
}
.enso-wrap::before{
  inset:10% !important;
  background:radial-gradient(circle,rgba(18,61,255,.09),transparent 68%) !important;
}
.enso-img{
  display:block !important;
  width:100% !important;
  max-width:390px !important;
  height:auto !important;
  transform:none !important;
  opacity:1 !important;
  filter:saturate(1.28) contrast(1.06) !important;
}

/* Reservation buttons: elegant editorial red */
a.btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:11px !important;
  min-height:50px !important;
  padding:0 24px !important;
  background:#B91824 !important;
  background-image:none !important;
  border:1px solid #B91824 !important;
  border-radius:3px !important;
  box-shadow:none !important;
  color:#fff !important;
  font-size:.9rem !important;
  font-weight:600 !important;
  letter-spacing:.035em !important;
}
a.btn::after{
  content:"↗" !important;
  width:auto !important;
  height:auto !important;
  display:inline-block !important;
  margin:0 0 0 4px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  font-size:1rem !important;
  opacity:.9 !important;
}
a.btn:hover{
  background:#A7131E !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 20px rgba(150,18,29,.10) !important;
}

/* Mobile: identity first, then compact logo + promise in one clean line of sight */
@media (max-width:820px){
  header.nav{
    grid-template-columns:1fr auto !important;
    gap:14px !important;
    padding-top:18px !important;
    padding-bottom:16px !important;
  }
  .brand{
    font-size:.76rem !important;
    line-height:1.42 !important;
    letter-spacing:.07em !important;
  }
  header.nav > a{
    font-size:.73rem !important;
    letter-spacing:.12em !important;
  }

  .hero{
    padding-top:1.45rem !important;
  }
  .hero-grid{
    display:grid !important;
    grid-template-columns:1fr 112px !important;
    grid-template-areas:
      "eyebrow logo"
      "headline headline"
      "rest rest" !important;
    column-gap:18px !important;
    row-gap:.45rem !important;
    align-items:center !important;
  }

  /* contents lets the first child elements participate in the hero grid */
  .hero-copy{
    display:contents !important;
  }
  .hero-copy .eyebrow{
    grid-area:eyebrow !important;
    max-width:none !important;
    margin:0 !important;
    align-self:center !important;
    font-size:.72rem !important;
    line-height:1.5 !important;
    letter-spacing:.12em !important;
  }
  .hero-art{
    grid-area:logo !important;
    width:112px !important;
    margin:0 !important;
    justify-self:end !important;
  }
  .enso-wrap{
    width:112px !important;
    margin:0 !important;
  }
  .enso-img{
    width:112px !important;
    max-width:112px !important;
  }

  .hero h1{
    grid-area:headline !important;
    width:100% !important;
    margin:.45rem 0 1rem !important;
  }

  /* All remaining hero-copy children after h1 occupy full width */
  .hero-copy h1 ~ *{
    grid-column:1 / -1 !important;
  }

  a.btn{
    min-height:48px !important;
    padding:0 20px !important;
    border-radius:3px !important;
  }
}

/* Very narrow phones: keep logo modest and preserve title width */
@media (max-width:430px){
  .hero-grid{
    grid-template-columns:1fr 92px !important;
    column-gap:12px !important;
  }
  .hero-art,.enso-wrap,.enso-img{
    width:92px !important;
    max-width:92px !important;
  }
  .hero-copy .eyebrow{
    font-size:.69rem !important;
    letter-spacing:.105em !important;
  }
}


/* V21 — rappels graphiques : cercles dorés fins et discrets */
.hero-copy,
.offer-card,
.steps .step,
.belief,
.quote{
  position:relative;
}

.hero-copy::after,
.steps .step:nth-child(3)::after,
.belief::after{
  content:"";
  position:absolute;
  pointer-events:none;
  border:1.5px solid rgba(190,156,84,.42);
  border-radius:50%;
  width:92px;
  height:92px;
  z-index:0;
}

.hero-copy::after{
  width:72px;
  height:72px;
  right:-24px;
  bottom:8%;
  opacity:.55;
}

.steps .step:nth-child(3)::after{
  right:-28px;
  bottom:38px;
  opacity:.72;
}

.belief::after{
  width:118px;
  height:118px;
  left:-52px;
  top:18%;
  opacity:.42;
}

.hero-copy > *,
.steps .step:nth-child(3) > *,
.belief > *{
  position:relative;
  z-index:1;
}

@media (max-width:820px){
  .hero-copy::after{
    width:58px;
    height:58px;
    right:-20px;
    bottom:4%;
  }
  .steps .step:nth-child(3)::after{
    width:76px;
    height:76px;
    right:-24px;
    bottom:34px;
  }
  .belief::after{
    width:88px;
    height:88px;
    left:-36px;
    top:10%;
  }
}


/* V23 — bouton rouge plus sobre et élégant */
a.btn{
  background:#B91824 !important;
  background-image:none !important;
  color:#fff !important;
  border:1px solid #B91824 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  padding:0 25px !important;
  min-height:48px !important;
  font-size:.88rem !important;
  font-weight:600 !important;
  letter-spacing:.025em !important;
}
a.btn::after{
  display:none !important;
  content:none !important;
}
a.btn:hover{
  background:#A7131E !important;
  border-color:#A7131E !important;
  transform:translateY(-1px) !important;
  box-shadow:0 7px 18px rgba(150,18,29,.10) !important;
}


/* V24 — nom de l’entreprise intégré à l’identité */
.company-name{
  display:block;
  margin-top:.22rem;
  font-family:Georgia,'Times New Roman',serif;
  font-size:.92em;
  font-style:italic;
  font-weight:400;
  letter-spacing:.035em;
  color:#B08A42;
  text-transform:none;
}
@media (max-width:820px){
  .company-name{
    margin-top:.16rem;
    font-size:.94em;
  }
}


/* V25 — hiérarchie de marque corrigée */
.brand-primary{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(1.22rem,2vw,1.55rem);
  font-style:italic;
  font-weight:400;
  line-height:1.05;
  letter-spacing:.015em;
  color:#071D63;
  text-transform:none;
}
.brand-byline{
  display:block;
  margin-top:.32rem;
  font-family:inherit;
  font-size:.72rem;
  line-height:1.35;
  font-style:normal;
  font-weight:500;
  letter-spacing:.055em;
  color:#5F6368;
  text-transform:none;
}
/* neutralize the previous company-name treatment if present elsewhere */
.company-name{display:none !important;}

@media (max-width:820px){
  .brand-primary{
    font-size:1.18rem;
  }
  .brand-byline{
    margin-top:.24rem;
    font-size:.65rem;
    letter-spacing:.035em;
  }
}



/* v41 — Enso sizing and hero balance */
.hero-art{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  overflow:visible;
}
.enso-wrap{
  width:min(100%, 430px) !important;
  max-width:430px !important;
  aspect-ratio:1/1;
  margin:0 auto !important;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible !important;
}
.enso-img{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:430px !important;
  max-height:430px !important;
  object-fit:contain !important;
  transform:none !important;
  margin:0 auto !important;
}
@media (min-width: 1100px){
  .hero-grid{
    grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr) !important;
    column-gap:clamp(44px,6vw,96px) !important;
    align-items:center !important;
  }
  .enso-wrap{
    width:min(31vw,430px) !important;
  }
}
@media (max-width: 900px){
  .hero-art{
    margin-top:32px !important;
  }
  .enso-wrap{
    width:min(72vw,340px) !important;
    max-width:340px !important;
  }
  .enso-img{
    max-width:340px !important;
    max-height:340px !important;
  }
}
@media (max-width: 520px){
  .enso-wrap{
    width:min(68vw,270px) !important;
    max-width:270px !important;
  }
  .enso-img{
    max-width:270px !important;
    max-height:270px !important;
  }
}


/* v42 — logo intégré sans fond ni point décoratif extérieur */
.hero-art .enso-wrap::before,
.hero-art .enso-wrap::after{
  content:none !important;
  display:none !important;
}
.hero-art .enso-img{
  mix-blend-mode:normal !important;
  background:transparent !important;
  box-shadow:none !important;
}

