/* Accueil immersif et navigation : les contenus restent visibles sans script. */
:root { --rose: #f0cbb6; }
.hero-description > .hero-note-mobile { display: none; }
.ui-icon { display: inline-block; width: 22px; height: 22px; flex: 0 0 22px; vertical-align: middle; }
.header-client { display: inline-flex; align-items: center; gap: 9px; }
.header-client .ui-icon,.site-footer .ui-icon { width: 17px; height: 17px; flex-basis: 17px; }
.hero-button .ui-icon { width: 26px; height: 26px; flex-basis: 26px; }
.service-copy a { gap: 16px; }
.text-link .ui-icon { flex-shrink: 0; }
.phone-link,.email-link { display: flex; align-items: center; justify-content: center; gap: 12px; }
.email-link { width: fit-content; margin-inline: auto; }
.phone-link .ui-icon { width: 26px; height: 26px; flex-basis: 26px; }
.site-footer nav a { display: inline-flex; align-items: center; gap: 7px; }
.site-footer nav .footer-professional { font-size: 11px; color: var(--muted); }
.site-footer nav .footer-professional:hover { color: var(--coral); text-decoration: underline; text-underline-offset: 4px; }
.address-note > .ui-icon { width: 27px; height: 27px; flex-basis: 27px; }
.hero-index.ui-icon { width: 28px; height: 28px; flex-basis: 28px; }
.ribbon .ui-icon { width: 16px; height: 16px; flex-basis: 16px; }
.flower.ui-icon { width: 58px; height: 58px; }
.question-list .faq-icon { width: 20px; height: 20px; flex-basis: 20px; transition: transform .2s ease; }
.question-list details[open] .faq-icon { transform: rotate(45deg); }
.menu-close { display: grid; place-items: center; }
.menu-close .ui-icon { width: 20px; height: 20px; }
.scroll-arrow { animation: scroll-cue 2.2s ease-in-out infinite; }
@keyframes scroll-cue { 0%,100% { transform: translateY(-3px); } 50% { transform: translateY(3px); } }
.site-header { position: absolute; inset: 0 0 auto; z-index: 35; background: transparent; }
.header-inner { height: 144px; gap: 42px; transition: height .35s ease; }
.brand { flex: 0 0 205px; text-align: center; }
.brand img { width: 205px; mix-blend-mode: normal; }
.brand-caption { display: block; font-size: 8px; letter-spacing: .13em; text-transform: uppercase; margin-top: -5px; white-space: nowrap; }
.desktop-nav { gap: 38px; }
.desktop-nav a { font-family: var(--serif); font-size: 23px; line-height: 1.2; padding: 11px 0 8px; border-bottom: 1px solid transparent; }
.desktop-nav a:hover, .desktop-nav a.is-current { color: var(--coral); border-bottom-color: var(--coral); }
.header-client { font-size: 10px; white-space: nowrap; border: 1px solid #9a746953; border-radius: 30px; padding: 10px 17px; }
.header-client span { padding-left: 8px; }
.hero { height: 100svh; min-height: 820px; max-height: 1200px; background: #634a35; }
.hero-image { object-position: 60% center; transform: translate3d(0,var(--hero-shift,0px),0) scale(1.035); }
.hero-shade { background: linear-gradient(90deg,#281b0ea3, #3d281634 52%,#42281003 80%),linear-gradient(0deg,#35221766,transparent 45%); }
.hero-content { padding-top: clamp(285px,30svh,400px); }
.hero .eyebrow { font-size: 11px; font-weight: 400; letter-spacing: .24em; }
.hero h1 { font-size: clamp(88px,8.6vw,128px); max-width: 790px; line-height: .98; margin-top: 31px; }
.hero h1 em { color: var(--rose); }
.hero-description { max-width: 480px; font-family: var(--serif); font-size: 27px; line-height: 1.23; margin-top: 26px; }
.hero-description > span { color: #fff0e5; font-family: var(--serif); font-size: 25px; line-height: 1.24; margin-top: 5px; }
.hero-button { margin-top: 36px; padding: 17px 34px; min-width: 342px; min-height: 66px; font-size: 11px; font-weight: 400; text-transform: uppercase; letter-spacing: .17em; background: linear-gradient(115deg,#b96c58da,#9a483ce8); border-color: #ffe5d5; box-shadow: 0 0 0 1px #fff8e23b,0 0 17px #ffce985a,inset 0 0 12px #e69b7c25; }
.hero-button:hover { background: #a95543; box-shadow: 0 0 22px #ffd9ae75; }
.contact-booking { max-width: 100%; margin-top: 24px; font-size: 13px; }
.contact-booking .ui-icon { width: 22px; height: 22px; flex: 0 0 22px; }
.hero-button .long-arrow { font-size: 35px; }
.hero-bottom { bottom: 34px; }
.hero-bottom em { font-size: 27px; }
.hero-index { font-size: 28px; }
.scroll-link > span { width: 56px; height: 56px; font-size: 35px; }
.scroll-link small { display: block; font-size: 9px; }
.ambience-note { font-size: 8px; }
.reading-progress { position: fixed; top: 0; left: 0; width: 100%; height: 2px; background: #bc7861; z-index: 80; transform: scaleX(var(--page-progress,0)); transform-origin: left; pointer-events: none; }
.section-rail { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 2px; padding: 12px 3px; z-index: 30; border-radius: 40px; background: #3c29181a; backdrop-filter: blur(6px); }
.section-rail a { position: relative; width: 42px; height: 32px; display: grid; place-items: center; }
.section-rail a::after { content: ''; display: block; width: 14px; height: 2px; background: #fff3e2; opacity: .65; transition: width .25s,background .25s; }
.section-rail a.is-current::after { width: 25px; height: 3px; background: #e8a58b; opacity: 1; }
.section-rail a span { position: absolute; right: 44px; padding: 3px 10px; white-space: nowrap; background: #f5efe5; color: var(--ink); border-radius: 10px; font-size: 10px; opacity: 0; transform: translateX(5px); transition: opacity .2s,transform .2s; pointer-events: none; }
.section-rail a:hover span,.section-rail a:focus-visible span { opacity: 1; transform: none; }
.past-hero .section-rail { background: #dfd3bf50; }
.past-hero .section-rail a::after { background: #67654d; }
.past-hero .section-rail a.is-current::after { background: var(--coral); }
.menu-trigger,.mobile-fallback { display: none; }
.menu-trigger { position: fixed; right: 27px; bottom: calc(26px + env(safe-area-inset-bottom)); width: 80px; height: 80px; border-radius: 50%; border: 1px solid #ffe6d6; background: linear-gradient(135deg,#ba7764eb,#985043f0); color: #fff4e7; z-index: 55; place-items: center; cursor: pointer; box-shadow: 0 0 0 9px #efc7a326,0 0 0 10px #ffe0bd55,0 0 24px #e7a16d6b,inset 0 0 17px #ffd0b354; backdrop-filter: blur(12px); }
.menu-trigger svg { width: 46px; height: 46px; margin-top: -7px; }
.menu-trigger > span { position: absolute; bottom: 12px; font-family: var(--sans); font-size: 7px; text-transform: uppercase; letter-spacing: .16em; }
.menu-trigger:hover { background: #b06854; }
.menu-trigger[aria-expanded=true] { background: #7f4739; }
.menu-is-open { overflow: hidden; }
.menu-dialog { position: fixed; inset: auto 20px calc(123px + env(safe-area-inset-bottom)) auto; margin: 0; width: min(450px,calc(100% - 40px)); max-height: calc(100svh - 155px - env(safe-area-inset-bottom)); overflow: auto; background: linear-gradient(145deg,#fff9efd9,#f4e5d4f5); backdrop-filter: blur(25px); border: 1px solid #fff2dfc7; border-radius: 30px 30px 12px 30px; padding: 30px 31px 24px; color: var(--ink); box-shadow: 0 20px 100px #24170959; }
.menu-dialog[open] { animation: menu-arrive .45s cubic-bezier(.2,.7,.1,1) both; transform-origin: bottom right; }
.menu-dialog::backdrop { background: #1c180f75; backdrop-filter: blur(9px); animation: veil-arrive .35s ease both; }
.menu-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.menu-heading .section-label { margin: 0; font-size: 8px; color: #77563c; letter-spacing: .13em; }
.menu-close { flex: 0 0 44px; height: 44px; border: 1px solid #beaa96; color: #71452f; border-radius: 50%; background: transparent; cursor: pointer; }
.menu-close span { font-family: var(--serif); font-weight: 300; font-size: 33px; line-height: 1; }
button:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.menu-dialog h2 { font-size: 36px; letter-spacing: -.035em; margin-top: 9px; }
.menu-subtitle { font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: #846d57; margin-top: 10px; }
.popup-nav { margin-top: 23px; }
.popup-nav a { display: flex; align-items: center; gap: 17px; min-height: 55px; border-top: 1px solid #d3bfaa; font-family: var(--serif); font-size: 31px; line-height: 1.1; transition: padding-left .25s,color .25s; }
.popup-nav a:hover { color: var(--coral); padding-left: 5px; }
.popup-nav a > span { font-family: var(--sans); font-size: 8px; color: #826b56; letter-spacing: .1em; }
.menu-icon { display: block; width: 22px; height: 22px; flex: 0 0 22px; color: #93614c; }
.popup-nav .menu-icon { margin-left: auto; }
.menu-contact .menu-icon,.mobile-fallback .menu-icon { width: 18px; height: 18px; flex-basis: 18px; }
.mobile-fallback .menu-icon { margin-left: auto; }
.menu-contact { display: flex; flex-direction: column; gap: 3px; border-top: 1px solid #d3bfaa; padding-top: 12px; margin-top: 4px; }
.menu-contact a { display: flex; align-items: center; justify-content: space-between; min-height: 37px; font-size: 11px; }
.menu-note { color: #846d57; font-size: 8px; margin-top: 9px; text-transform: uppercase; letter-spacing: .1em; }
.motion-ready [data-reveal] { opacity: 0; transform: translateY(27px); transition: opacity .85s ease,transform .85s cubic-bezier(.2,.7,.1,1); transition-delay: var(--reveal-delay,0ms); }
.motion-ready [data-reveal].is-visible,.motion-ready [data-reveal]:focus-within { opacity: 1; transform: none; }
@keyframes menu-arrive { from { opacity: 0; transform: translateY(28px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes veil-arrive { from { opacity: 0; } to { opacity: 1; } }
@media(min-width:901px) {
  /* Un bandeau droit et lumineux laisse la photographie respirer. */
  .site-header { position: fixed; background: #faf5edef; border-bottom: 1px solid #e2d4c4; backdrop-filter: blur(16px); box-shadow: 0 3px 20px #35271908; transition: background .35s,box-shadow .35s; }
  .header-inner { height: 118px; gap: 34px; }
  .brand { flex-basis: 148px; }
  .brand img { width: 148px; }
  .brand-caption { font-size: 7px; letter-spacing: .09em; margin-top: -6px; }
  .desktop-nav { gap: 32px; }
  .desktop-nav a { font-size: 21px; padding-block: 11px; }
  .header-client { font-size: 11px; min-height: 44px; padding: 10px 18px; background: #fffaf25c; transition: border-color .2s,background .2s; }
  .header-client:hover { border-color: var(--coral); background: #fffaf2; }
  .is-scrolled .site-header { background: #faf7f1f5; box-shadow: 0 3px 20px #3527190d; }
  .is-scrolled .header-inner { height: 83px; }
  .is-scrolled .brand { flex-basis: 105px; }
  .is-scrolled .brand img { width: 105px; }
  .is-scrolled .brand-caption { display: none; }
  .is-scrolled .desktop-nav a { font-size: 20px; }
  html { scroll-padding-top: 103px; }
}
@media(max-width:1180px) and (min-width:901px) {
  .header-inner { height: 110px; gap: 24px; }
  .brand { flex-basis: 136px; }
  .brand img { width: 136px; }
  .desktop-nav { gap: 20px; }
  .desktop-nav a,.is-scrolled .desktop-nav a { font-size: 19px; }
  .header-client { padding-inline: 12px; }
  .section-rail { right: 7px; }
  .hero h1 { font-size: 100px; }
}
/* Un en-tête et des contrôles dessinés pour les écrans tactiles. */
@media(max-width:900px) {
  .header-inner { width: calc(100% - 40px); height: auto; min-height: 0; justify-content: flex-start; align-items: flex-start; padding: calc(14px + env(safe-area-inset-top,0px)) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px); }
  .brand { position: relative; left: -8px; isolation: isolate; flex: 0 0 184px; text-align: left; }
  .brand img { width: 184px; filter: drop-shadow(0 1px 1px #fff2d4b3) drop-shadow(0 3px 16px #fff1d99c); }
  .brand-caption { display: none; }
  .brand::before { content: ""; position: absolute; inset: -12px -22px -10px -12px; z-index: -1; background: radial-gradient(ellipse at 42% 46%,#fff3d7c7 0%,#f5e1b65c 42%,transparent 74%); filter: blur(10px); pointer-events: none; }
  .desktop-nav,.header-client { display: none; }
  .hero { display: flex; flex-direction: column; height: auto; min-height: 100svh; max-height: none; padding-bottom: calc(40px + env(safe-area-inset-bottom,0px)); background: #322519; }
  .hero-content { position: relative; inset: auto; width: calc(100% - 80px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); margin-left: calc(32px + env(safe-area-inset-left,0px)); margin-right: calc(48px + env(safe-area-inset-right,0px)); padding-top: max(320px,44svh); }
  .hero h1 { font-size: 72px; line-height: 1.04; }
  .hero-description,.hero-description > span { font-size: 22px; }
  .hero-description { max-width: 430px; }
  .hero-button { font-size: 12px; letter-spacing: .06em; min-height: 56px; background: linear-gradient(120deg,#b77862e8,#985441f2); border-color: #f9dfc6ad; box-shadow: 0 8px 24px #140d0830,inset 0 1px #ffffff20; }
  .hero-bottom { position: relative; left: auto; right: auto; bottom: auto; width: calc(100% - 80px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); margin-left: calc(32px + env(safe-area-inset-left,0px)); margin-right: calc(48px + env(safe-area-inset-right,0px)); margin-top: 64px; padding-right: 0; gap: 20px; align-items: center; }
  .hero-bottom > p { display: none; }
  .ambience-note { position: absolute; left: 0; right: auto; top: calc(100% + 6px); bottom: auto; margin-left: 0; font-size: 10px; line-height: 1.5; color: #f0dfc5b8; text-align: left; max-width: none; }
  .scroll-link { flex-direction: row; margin-left: 0; gap: 10px; min-height: 44px; color: #f6e9d6cf; }
  .scroll-link > span { width: 30px; height: 40px; border: 0; border-radius: 0; }
  .scroll-link small { display: block; font-size: 11px; letter-spacing: .14em; }
  .reading-progress { height: 2px; opacity: .65; }
  .hero-shade { background: linear-gradient(0deg,#211710ed 0%,#2c211baa 29%,#332b2240 52%,transparent 67%); }
  .hero-description > .hero-note-desktop { display: none; }
  .hero-description > .hero-note-mobile { display: block; }
  @keyframes rail-arrive { from { transform: scaleX(.45); opacity: .3; } to { transform: scaleX(1); opacity: 1; } }
  .section-rail { display: flex; flex-direction: column; left: auto; right: calc(4px + env(safe-area-inset-right,0px)); top: 50%; bottom: auto; width: 44px; transform: translate(5px,-50%); gap: 0; padding: 6px 0; border: 0; border-radius: 22px; background: transparent; box-shadow: none; backdrop-filter: none; z-index: 45; opacity: 0; pointer-events: none; visibility: visible; touch-action: auto; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: opacity .24s ease,transform .24s ease,background .24s ease; }
  .rail-is-ready .section-rail { pointer-events: auto; touch-action: none; }
  .rail-is-visible .section-rail,.section-rail:has(a:focus-visible) { opacity: 1; pointer-events: auto; transform: translate(0,-50%); }
  body.menu-is-open .section-rail { opacity: 0; pointer-events: none; }
  .section-rail a { width: 44px; height: 38px; justify-items: end; padding-right: 5px; touch-action: inherit; }
  .section-rail a::after { width: 11px; height: 2px; border-radius: 2px; background: #fff0dc; opacity: .65; box-shadow: 0 1px 7px #20170d80; transform-origin: right center; transition: width .2s ease,background .2s ease,opacity .2s ease; }
  .section-rail a.is-current::after { width: 25px; height: 3px; background: #edb497; opacity: 1; animation: rail-arrive .35s ease both; }
  .section-rail a span { left: auto; right: 47px; top: 50%; bottom: auto; padding: 6px 12px; font-size: 12px; line-height: 1.4; transform: translate(5px,-50%); box-shadow: 0 3px 12px #24160b18; }
  .section-rail a:hover span,.section-rail a:focus-visible span { transform: translate(0,-50%); }
  .past-hero .section-rail { background: transparent; }
  .past-hero .section-rail a::after { background: #776554; opacity: .7; box-shadow: none; }
  .past-hero .section-rail a.is-current::after { background: #995c46; opacity: 1; }
  .rail-is-dragging .section-rail { opacity: 1; transform: translate(0,-50%); background: #251b124d; }
  .past-hero.rail-is-dragging .section-rail { background: #f8efe3db; }
  .rail-is-dragging .section-rail a[data-rail-target]::after { width: 29px; height: 3px; opacity: 1; background: #ffd6b4; animation: none; }
  .past-hero.rail-is-dragging .section-rail a[data-rail-target]::after { background: #995c46; }
  .rail-is-dragging .section-rail a[data-rail-target] span { opacity: 1; transform: translate(0,-50%); }
  .interface-ready .menu-trigger { display: grid; }
  .menu-trigger { width: 54px; height: 54px; right: calc(14px + env(safe-area-inset-right,0px)); bottom: calc(12px + env(safe-area-inset-bottom)); border-color: #f3dcc5b3; background: linear-gradient(140deg,#b67c63eb,#955241ed); box-shadow: 0 5px 20px #1c100a40; }
  .menu-trigger svg { width: 29px; height: 29px; margin-top: -10px; }
  .menu-trigger > span { bottom: 8px; font-size: 9px; letter-spacing: .07em; }
  .menu-dialog { inset: auto calc(16px + env(safe-area-inset-right,0px)) calc(88px + env(safe-area-inset-bottom)) auto; width: min(450px,calc(100% - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))); max-height: calc(100svh - 112px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom)); padding: 24px 25px 22px; border-radius: 26px 26px 10px 26px; }
  .menu-heading .section-label,.menu-subtitle,.menu-note { font-size: 11px; letter-spacing: .07em; }
  .menu-subtitle { line-height: 1.5; }
  .popup-nav a > span { font-size: 10px; }
  .menu-contact a { min-height: 44px; font-size: 13px; }
  .mobile-fallback { display: block; position: fixed; bottom: calc(12px + env(safe-area-inset-bottom)); right: calc(16px + env(safe-area-inset-right,0px)); z-index: 55; }
  .mobile-fallback summary { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 12px 16px; font-size: 13px; border: 1px solid #ffe7cd; border-radius: 50px; background: var(--coral); color: #fff5e8; list-style: none; cursor: pointer; }
  .mobile-fallback summary .ui-icon { width: 18px; height: 18px; flex-basis: 18px; }
  .mobile-fallback summary::-webkit-details-marker { display: none; }
  .mobile-fallback nav { position: absolute; bottom: 64px; right: 0; width: 260px; padding: 17px 24px; background: var(--cream); border-radius: 24px; box-shadow: 0 15px 45px #37200c42; }
  .mobile-fallback nav a { min-height: 45px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
  .interface-ready .mobile-fallback { display: none; }
  .site-footer { padding-bottom: 115px; }
  .section-label,.eyebrow { font-size: 12px; letter-spacing: .12em; }
  .introduction-main p,.section-heading > p,.service-copy p,.session-steps p,.about-copy > p:not(.section-label):not(.practitioner),.place-copy > p:not(.section-label),.question-list details > p,.contact-intro { font-size: 15px; line-height: 1.75; }
  html { scroll-padding-bottom: 100px; }
  .motion-ready [data-reveal] { transform: translateY(18px); transition-duration: .65s; }
  .motion-ready [data-reveal].is-visible,.motion-ready [data-reveal]:focus-within { transform: none; }
}
@media(max-width:600px) {
  .hero { height: auto; min-height: 100svh; max-height: none; }
  .hero-image { object-position: 60% 40%; }
  .hero-shade { background: linear-gradient(0deg,#211710ed 0%,#2c211bb5 26%,#332b2238 52%,transparent 64%); }
  .header-inner { height: auto; padding-top: calc(14px + env(safe-area-inset-top,0px)); }
  .brand { flex-basis: 184px; }
  .brand img { width: 184px; }
  .hero-content { position: relative; inset: auto; width: calc(100% - 64px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); margin-left: calc(24px + env(safe-area-inset-left,0px)); margin-right: calc(40px + env(safe-area-inset-right,0px)); padding-top: max(320px,44svh); }
  .hero .eyebrow { font-size: 11px; line-height: 1.4; letter-spacing: .16em; font-weight: 500; color: #f8ecd7dc; }
  .hero h1 { font-size: clamp(44px,13vw,60px); line-height: 1.03; margin-top: 17px; letter-spacing: -.035em; text-shadow: 0 2px 18px #1c13081a; }
  .hero-description { font-size: 20px; line-height: 1.4; margin-top: 19px; max-width: 350px; }
  .hero-description > span { font-size: 16px; line-height: 1.5; margin-top: 10px; max-width: 350px; }
  .hero-button { min-width: 0; width: 100%; min-height: 56px; padding: 13px 20px; margin-top: 25px; font-size: 12px; letter-spacing: .045em; gap: 14px; }
  .hero-bottom { bottom: auto; width: calc(100% - 64px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); margin-left: calc(24px + env(safe-area-inset-left,0px)); margin-right: calc(40px + env(safe-area-inset-right,0px)); margin-top: 64px; align-items: center; }
  .scroll-link { position: static; margin-left: 0; }
  .scroll-link > span { width: 26px; height: 40px; }
  .scroll-link .ui-icon { width: 21px; height: 21px; }
  .menu-dialog h2 { font-size: 34px; }
  .popup-nav { margin-top: 19px; }
  .popup-nav a { min-height: 53px; font-size: 30px; gap: 14px; }
  .contact-wave { opacity: .35; }
  .about-brand { background: linear-gradient(150deg,#f4ead7,#e9d9c2); }
  .ribbon { gap: 16px; font-size: 11px; }
  .service-copy a,.text-link { font-size: 13px; line-height: 1.45; min-height: 44px; gap: 14px; }
  .service-top { font-size: 11px; line-height: 1.45; gap: 12px; }
  .session-steps > div > span,.practitioner span,.place-visual figcaption,.address-note small { font-size: 12px; }
  .question-list summary { font-size: 15px; line-height: 1.5; }
  .phone-link { font-size: clamp(30px,8.4vw,39px); gap: 10px; }
  .phone-link .ui-icon { width: 22px; height: 22px; flex-basis: 22px; }
  .email-link { font-size: 14px; gap: 10px; }
  .email-link .ui-icon { width: 20px; height: 20px; flex-basis: 20px; }
  .contact-details { font-size: 13px; }
  .contact-details strong { font-size: 12px; letter-spacing: .06em; }
  .site-footer div > p,.site-footer nav,.copyright { font-size: 12px; line-height: 1.7; }
}
@media(max-width:360px) {
  .brand,.brand img { width: 168px; }
  .brand { flex-basis: 168px; }
  .hero h1 { font-size: 43px; }
  .hero-description { font-size: 18px; }
  .hero-description > span { font-size: 15px; }
  .hero-content { padding-top: 306px; }
  .hero-button .booking-detail { display: none; }
  .menu-trigger { width: 52px; height: 52px; }
  .menu-dialog { padding: 20px 21px 18px; }
  .menu-dialog h2 { font-size: 30px; }
  .popup-nav a { font-size: 26px; min-height: 49px; gap: 12px; }
}
@media(max-width:600px) and (max-height:740px) {
  .hero-button { width: calc(100% - 64px); padding-inline: 14px; letter-spacing: 0; gap: 12px; }
}
@media(max-width:360px) and (max-height:640px) {
  .hero-content { padding-top: 272px; }
  .hero h1 { margin-top: 5px; }
  .hero .eyebrow { text-shadow: 0 1px 4px #27190d,0 0 10px #27190dcc; }
}
@media(min-width:901px) {
  .hero-image { object-position: 100% center; }
}
@media(min-width:601px) and (max-width:900px) and (orientation:portrait) {
  .hero-image { object-position: 60% 25%; }
  .hero-shade { background: linear-gradient(90deg,#21171050,transparent 70%),linear-gradient(0deg,#211710ed 0%,#2c211bc5 29%,#332b228c 55%,transparent 80%); }
}
@media(min-width:601px) and (max-width:900px) and (max-height:600px) {
  .hero-image { object-position: 100% center; }
  .hero-shade { background: linear-gradient(90deg,#23190dd9,#23190d99 42%,transparent 72%),linear-gradient(0deg,#211710ed,transparent 80%); }
  .brand,.brand img { width: 168px; }
  .brand { flex-basis: 168px; }
  .hero-content { padding-top: 170px; }
  .hero h1 { font-size: 52px; max-width: 430px; }
  .hero-description { font-size: 20px; max-width: 400px; }
  .hero-description > span { font-size: 17px; }
  .hero-bottom { margin-top: 48px; }
}
@media(max-width:900px) and (max-height:500px) {
  .section-rail a { height: 28px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-image { transform: none; }
  .motion-ready [data-reveal] { opacity: 1; transform: none; }
  .menu-dialog[open],.menu-dialog::backdrop,.scroll-arrow,.section-rail a.is-current::after { animation: none; }
  .header-inner,.site-header,.section-rail,.section-rail a::after,.popup-nav a,.question-list .faq-icon { transition: none; }
}
/* Laisser respirer le bas de l’accueil sur les écrans de portable. */
@media(min-width:901px) and (max-height:920px) {
  .hero-content { padding-top: 245px; }
  .hero h1 { font-size: clamp(82px,7.5vw,108px); }
  .hero-description,.hero-description > span { font-size: 24px; }
  .hero-description { max-width: 510px; }
  .hero-button { margin-top: 27px; }
}
@media(min-width:901px) and (max-height:820px) {
  .hero { min-height: 880px; }
  .hero-content { padding-top: 242px; }
  .hero h1 { font-size: clamp(80px,7.5vw,104px); }
  .hero-description,.hero-description > span { font-size: 23px; }
}
.menu-dialog:not([open]) { display: none; }
/* Keep the portrait's face and working hands above the reading area. */
@media(max-width:1100px) and (orientation:portrait){
  .hero .hero-image{object-position:50% 0;transform:none}
  .hero .hero-shade{background:linear-gradient(0deg,#211710ed 0%,#2c211bcf 32%,#332b22a6 52%,#332b2238 66%,transparent 74%)}
}
@media(min-width:601px) and (max-width:1100px) and (orientation:portrait){
  #accueil .hero-content{padding-top:max(440px,60svh)}
}
@media(max-width:600px) and (max-height:620px) and (orientation:portrait){
  #accueil .hero-content{padding-top:54svh}
  #accueil .hero-image{object-position:50% -12px}
  #accueil .eyebrow{font-size:10px}
  #accueil h1{font-size:clamp(38px,11.5vw,44px);margin-top:8px}
  #accueil .hero-description{font-size:17px;line-height:1.35;margin-top:16px}
  #accueil .hero-note-mobile{display:none}
}
@media(max-width:600px) and (max-height:540px) and (orientation:portrait){
  #accueil .hero-content{padding-top:50svh}
}
@media(min-width:601px) and (max-width:1100px) and (orientation:landscape){
  #accueil .hero-image{object-position:30% 0;transform:none}
  #accueil .hero-button{max-width:300px}
}
@media(min-width:901px) and (max-width:1100px){
  #accueil .hero-bottom>p{display:none}
  #accueil .hero-bottom{bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media(min-width:901px) and (max-width:1100px) and (orientation:landscape){
  #accueil .hero-description{max-width:360px}
}

/* Local line icons keep one weight across links and step controls. */
.elin-arrow{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

.ui-icon,.menu-icon{stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:600px) and (orientation:portrait){
  #accueil .hero-image{width:calc(100% + 56px);max-width:none;object-position:0 0}
}
