/* Op’til · site public, style « Lever de soleil »
   Charte : beige #e7d8c5, marron #6b4f3f, cuivre #c8824b
   Polices auto-hébergées : Petrona et Kumbh Sans (SIL Open Font License) */

/* ------------------------------------------------------------------ polices */
@font-face{font-family:'Petrona';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/petrona-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Petrona';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/petrona-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Petrona';font-style:italic;font-weight:100 900;font-display:swap;src:url(../fonts/petrona-latin-wght-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Petrona';font-style:italic;font-weight:100 900;font-display:swap;src:url(../fonts/petrona-latin-ext-wght-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Kumbh Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/kumbh-sans-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Kumbh Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/kumbh-sans-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ------------------------------------------------------------------ couleurs */
:root{
  --white:#ffffff;
  --cream:#fbf7f1;
  --sand:#f5ede2;
  --beige:#e7d8c5;
  --copper:#c8824b;
  --copper-text:#9a5a30;
  --copper-deep:#a45f33;
  --copper-deeper:#8f5029;
  --copper-large:#b06a3b;
  --copper-on-beige:#8a4f28;
  --brown:#6b4f3f;
  --brown-soft:#7d6656;
  --line:#eadfd2;
  /* valeurs qui changent selon le fond de la section */
  --muted:var(--brown-soft);
  --accent:var(--copper-text);
  --accent-large:var(--copper-large);
  --rule:var(--copper);
  --panel:var(--white);
  --serif:'Petrona','Iowan Old Style',Georgia,serif;
  --sans:'Kumbh Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --wrap:1280px;
  --gutter:clamp(18px,4.4vw,64px);
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --ease-rise:cubic-bezier(.16,.84,.3,1);
}

/* ------------------------------------------------------------------ bases */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--white);color:var(--brown);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word}
[hidden]{display:none!important}
svg{display:block}
img,video{max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--copper-deep);outline-offset:3px;border-radius:6px}
p,figure,blockquote{margin:0}
sup{font-size:.55em;line-height:0;vertical-align:super}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:300;letter-spacing:-.015em;color:var(--brown);text-wrap:balance}
h1{font-size:clamp(42px,5vw,70px);line-height:1.04;letter-spacing:-.02em}
h2{font-size:clamp(36px,3.8vw,56px);line-height:1.08}
h3{font-size:24px;font-weight:400;line-height:1.22}
em{font-style:italic;color:var(--accent-large)}
address{font-style:normal}
button{font:inherit}
[id]{scroll-margin-top:88px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.center{text-align:center}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.line,.line-in{display:block}
.skip{position:absolute;left:16px;top:-80px;z-index:200;padding:10px 18px;background:var(--white);border:1px solid var(--line);border-radius:999px;font-size:14px;text-decoration:none}
.skip:focus{top:12px}
.no-trans,.no-trans *{transition:none!important}

/* sur-titre */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.center .eyebrow,.center-head .eyebrow{justify-content:center}
.rule{display:inline-block;flex:none;width:28px;height:1px;background:var(--rule);transform-origin:left center}
.lead{font-size:18px;line-height:1.7;color:var(--muted)}

/* ------------------------------------------------------------- boutons, liens */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 30px;border:1px solid transparent;border-radius:999px;background:var(--copper-deep);color:#fff;font:500 16px/1.2 var(--sans);text-align:center;text-decoration:none;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .35s,color .35s}
.btn:hover{color:#fff;background:var(--copper-deeper);transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(143,80,41,.6)}
.btn svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--ghost{background:transparent;color:var(--brown);border-color:var(--copper)}
.btn--ghost:hover{background:var(--white);color:var(--brown);box-shadow:0 14px 28px -16px rgba(107,79,63,.4)}
.btn--sm{min-height:44px;padding:0 20px;font-size:15px}
.link{display:inline-flex;align-items:center;gap:8px;padding-bottom:4px;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
.link:hover{background-size:0 1px;background-position:100% 100%}
.link-button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}
.link-button:hover{color:var(--accent)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:34px}

/* ------------------------------------------------------------ bandeau d’annonce */
.announce{background:var(--beige);color:var(--brown);font-size:14px;line-height:1.5;text-align:center}
.announce p{padding-top:10px;padding-bottom:10px}

/* ------------------------------------------------------------------ en-tête */
.site-header{position:sticky;top:0;z-index:60;transition:background-color .4s,box-shadow .4s}
.site-header.is-scrolled,.site-header.is-open{background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px);box-shadow:0 1px 0 var(--line)}
.bar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding:22px 0;transition:padding .45s var(--ease)}
.is-scrolled .bar{padding:12px 0}
.nav{display:flex;align-items:center;gap:28px;min-width:0;font-size:15px}
.nav a{flex:none;white-space:nowrap;text-decoration:none}
.nav a:not(.btn){position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:right center;transition:transform .45s var(--ease)}
.nav a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left center}
.nav--right{justify-content:flex-end}
.lang-switch{font-size:13px;font-weight:600;letter-spacing:.08em}
.brand{display:block;line-height:0;text-decoration:none}
.brand svg{height:46px;width:auto;transition:height .45s var(--ease)}
.is-scrolled .brand svg{height:38px}
.menu-btn{display:none;flex:none;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--brown);font:500 15px var(--sans);cursor:pointer}
.menu-btn .bars{position:relative;display:block;width:16px;height:10px}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .3s var(--ease)}
.menu-btn .bars::before{top:1px}
.menu-btn .bars::after{bottom:1px}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(3.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-3.5px) rotate(-45deg)}
.mobile-menu{max-height:calc(100vh - 70px);overflow-y:auto;padding:4px var(--gutter) 24px;border-bottom:1px solid var(--line)}
.mobile-menu a:not(.btn){display:block;padding:13px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:22px;text-decoration:none}
.mobile-menu .btn{width:100%;margin-top:18px}
/* En-tête compact : petits écrans, ou menu trop long pour tenir sur une ligne */
@media (max-width:1023px){
  .bar{grid-template-columns:auto 1fr;padding:14px 0}
  .is-scrolled .bar{padding:10px 0}
  .nav--left{display:none}
  .nav--right>a{display:none}
  .brand{order:-1}
  .brand svg,.is-scrolled .brand svg{height:36px}
  .menu-btn{display:inline-flex}
}
.is-compact .bar{grid-template-columns:auto 1fr;padding:14px 0}
.is-compact.is-scrolled .bar{padding:10px 0}
.is-compact .nav--left{display:none}
.is-compact .nav--right>a{display:none}
.is-compact .brand{order:-1}
.is-compact .brand svg{height:36px}
.is-compact .menu-btn{display:inline-flex}
@media (min-width:1024px){.site-header:not(.is-compact) .mobile-menu{display:none!important}}

/* ------------------------------------------------------- fonds des sections */
main>section{position:relative}
.tone-white{background:var(--white);--panel:var(--cream)}
.tone-cream{background:var(--cream)}
.tone-sand{background:var(--sand)}
.tone-beige{background:var(--beige);--panel:var(--cream);--muted:var(--brown);--accent:var(--copper-on-beige);--accent-large:var(--copper-on-beige);--rule:var(--copper-on-beige);--line:#d8c4ab}
.tone-beige a:hover,.tone-beige .link-button:hover{color:var(--copper-on-beige)}

/* en-têtes de section */
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:56px}
.section-head h2{margin-top:16px}
.section-head .side{max-width:400px;color:var(--muted)}
.section-head .side .link{margin-top:16px;color:var(--brown)}
.center-head{flex-direction:column;align-items:center;text-align:center}
.center-head .side{max-width:560px}

/* ------------------------------------------------------------------ photos */
.arch{position:relative;display:block;overflow:hidden;border-radius:999px 999px 0 0;background:var(--sand);isolation:isolate}
.tone-sand .arch{background:var(--beige)}
.arch>picture{position:absolute;inset:0;display:block}
.arch img.media,.arch>video.media{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
[data-scroll-speed]{translate:0 var(--py,0px)}

/* ------------------------------------------------------------------ accueil */
.hero{padding:24px 0 0;overflow:clip}
.hero .wrap{max-width:980px}
.hero h1{margin-top:14px}
.hero .lead{max-width:46em;margin:18px auto 0;font-size:17px}
.hero .actions{justify-content:center;margin-top:24px}
.horizon{position:relative;height:470px;max-width:1180px;margin:32px auto 0;overflow:hidden}
.sun-wrap{position:absolute;left:50%;top:-30px;width:600px;height:600px;margin-left:-300px}
.sun-par{position:absolute;inset:0}
.rays{position:absolute;inset:0;width:100%;height:100%;stroke:var(--copper);stroke-width:1.3;stroke-linecap:round;opacity:.6;animation:spin 140s linear infinite}
.sun-wrap .sun{position:absolute;left:50%;top:50%;width:400px;height:400px;margin:-200px 0 0 -200px;border-radius:50%;background:var(--beige)}
.arches{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:flex-end;gap:28px;padding:0 var(--gutter)}
.arches .arch{flex:0 1 230px;height:290px}
.arches .arch--tall{flex-basis:280px;height:350px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ------------------------------------------------------------ pourquoi venir */
.why{padding:110px 0}
.why-list{display:flex;flex-wrap:wrap;justify-content:center;gap:48px 56px;margin:60px 0 0;padding:0;list-style:none;text-align:center}
.why-list>li{flex:0 1 calc((100% - 112px) / 3)}
.why-list.count-1>li{flex-basis:min(100%,440px)}
.why-list.count-2>li{flex-basis:min(calc((100% - 56px) / 2),440px)}
.why-list.count-4>li{flex-basis:calc((100% - 168px) / 4)}
.why-list p{max-width:300px;margin:0 auto;font-size:16px;color:var(--muted)}
.why h3{margin:24px 0 8px}
.arch-icon{position:relative;display:block;width:72px;height:90px;margin:0 auto}
.arch-icon .arch-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.arch-icon .arch-line path{fill:none;stroke:var(--copper);stroke-width:1.3}
.arch-icon .glyph{position:absolute;left:50%;top:57%;width:28px;height:28px;transform:translate(-50%,-50%);fill:none;stroke:var(--copper-deep);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why>.wrap>.ed-add{display:flex;margin:40px auto 0}

/* ------------------------------------------------------------------ services */
.services{padding:120px 0}
.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 44px;margin:0;padding:0;list-style:none}
.service{padding:30px 0 36px;border-top:1px solid var(--line)}
.service-icon{position:relative;display:grid;place-items:center;width:48px;height:58px;padding-top:6px;border:1px solid var(--copper);border-bottom:0;border-radius:999px 999px 0 0}
.service-icon .icon{width:24px;height:24px;fill:none;stroke:var(--copper-deep);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.service h3{margin:20px 0 8px;font-size:23px}
.service p{font-size:16px;color:var(--muted)}
.practical{display:flex;flex-wrap:wrap;align-items:center;gap:16px 44px;margin-top:56px;padding:28px 36px;border-radius:28px;background:var(--panel)}
.practical-title{font-family:var(--serif);font-size:24px;font-style:italic;font-weight:300;color:var(--brown)}
.practical ul{display:flex;flex-wrap:wrap;gap:12px 36px;margin:0;padding:0;list-style:none}
.practical li{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.5}
.practical strong{font-weight:600}
.practical li>span>span{color:var(--muted)}
.check{flex:none;width:20px;height:20px;margin-top:0;fill:none;stroke:var(--copper-deep);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ------------------------------------------------------------------ boutique */
.shop{padding:120px 0 110px}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px;align-items:end}
.g-item{margin:0}
.gallery .arch{height:440px}
.gallery .g1 .arch{height:500px}
.gallery .g2 .arch{height:400px}
.gallery .g3 .arch{height:470px}
.gallery figcaption{margin-top:16px;font-family:var(--serif);font-size:21px;font-style:italic;font-weight:300;line-height:1.3;color:var(--brown)}
.g-link{display:block;text-decoration:none;border-radius:999px 999px 0 0}
.g-link .media{transition:scale 1.2s var(--ease)}
.g-link:hover .media{scale:1.05}

/* ------------------------------------------------------------------ Magali */
.magali{padding:120px 0}
.magali-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,110px);align-items:center}
.magali.no-media .magali-grid{grid-template-columns:minmax(0,1fr);max-width:860px}
.magali-photo{height:600px}
.magali h2{margin-top:16px}
.magali .role{margin-top:8px;color:var(--muted)}
.magali blockquote{margin:32px 0 0;font-family:var(--serif);font-size:clamp(22px,2.2vw,29px);font-style:italic;font-weight:300;line-height:1.42;color:var(--brown)}
.timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;margin:40px 0 0;padding:0;list-style:none}
.timeline li{padding-top:14px;border-top:1px solid var(--line)}
.timeline .year{display:block;font-family:var(--serif);font-size:24px;line-height:1.2;color:var(--accent)}
.timeline .what{display:block;margin-top:4px;font-size:15px;color:var(--muted)}

/* ------------------------------------------------------------------ examen */
.exam{padding:120px 0}
.chips-wrap{max-width:540px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.chips li{padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--white);font-size:14px;line-height:1.4}
.exam-lead{max-width:760px;margin:-16px 0 56px;font-size:18px;line-height:1.7;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px 48px;margin:0;padding:0;list-style:none}
.steps li{padding-top:26px;border-top:1px solid var(--line)}
.steps .num{display:block;font-family:var(--serif);font-size:64px;font-style:italic;font-weight:300;line-height:1;color:var(--accent-large)}
.steps h3{margin:18px 0 10px}
.steps p{font-size:16px;color:var(--muted)}
.exam-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 40px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}
.exam-notes{display:grid;gap:14px;max-width:700px}
.bring,.note{display:flex;align-items:flex-start;gap:12px;font-size:15px}
.bring{color:var(--brown)}
.note{font-size:14px;color:var(--muted)}
.bring svg,.note svg{flex:none;width:20px;height:20px;margin-top:2px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ------------------------------------------------------------------ vidéo */
.video-section{padding:110px 0}
.video-section .section-head{margin-bottom:48px}
.video-frame{position:relative;width:min(100%,1040px,calc((100vh - 150px) * var(--ratio,1.7778)));aspect-ratio:var(--ratio,1.7778);margin:0 auto;overflow:hidden;border-radius:28px;background:var(--brown);isolation:isolate}
.video-frame.is-portrait{width:min(100%,430px,calc((100vh - 150px) * var(--ratio,.5625)));border-radius:999px 999px 28px 28px}
.video-frame>video.media{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.video-play{position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:92px;height:92px;margin:-46px 0 0 -46px;padding:0 0 0 5px;border:0;border-radius:50%;background:rgba(164,95,51,.94);color:#fff;cursor:pointer;box-shadow:0 0 0 0 rgba(231,216,197,.6);transition:transform .45s var(--ease),background-color .3s,opacity .4s}
.video-play svg{width:34px;height:34px;fill:currentColor}
.video-play:hover{transform:scale(1.07);background:var(--copper-deeper)}
.video-frame.is-playing .video-play{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:no-preference){.video-play{animation:halo 2.8s var(--ease) infinite}}
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(231,216,197,.75)}70%,100%{box-shadow:0 0 0 22px rgba(231,216,197,0)}}

/* ------------------------------------------------------------------ offre */
.offer{padding:90px 0 0;overflow:clip}
.offer-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,96px);align-items:end}
.offer.no-media .offer-grid{grid-template-columns:minmax(0,1fr);max-width:900px}
.offer-art{position:relative;height:460px}
.offer-art .sun{position:absolute;top:0;right:4%;width:190px;aspect-ratio:1;border-radius:50%;background:var(--sand)}
.tone-sand .offer-art .sun{background:var(--beige)}
.offer-art .arch{position:absolute;left:0;bottom:0;width:74%;height:430px}
.tone-beige .arch{background:var(--sand)}
.offer-text{padding-bottom:96px}
.offer-big{margin-top:18px;font-size:clamp(44px,5vw,76px);line-height:1.02;letter-spacing:-.02em}
.offer .sub{max-width:28em;margin-top:20px;font-size:19px}
.offer .small{margin-top:14px;font-size:14px;color:var(--muted)}

/* ------------------------------------------------------------------ questions */
.faq{padding:120px 0}
.faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:40px clamp(40px,7vw,110px);align-items:start}
.faq-head{position:sticky;top:110px}
.faq-head h2{margin-top:16px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font-family:var(--serif);font-size:22px;line-height:1.3;color:var(--brown);cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--accent)}
.plus{position:relative;flex:none;width:32px;height:32px;border:1px solid var(--copper);border-radius:50%;transition:background-color .3s}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:var(--copper-deep);transition:transform .45s var(--ease)}
.plus::after{transform:rotate(90deg)}
.faq-item[open] .plus{background:var(--beige)}
.faq-item[open] .plus::after{transform:rotate(0)}
.faq-answer{padding:0 56px 26px 0;color:var(--muted)}

/* ---------------------------------------------------------- texte et photo */
.texte{padding:120px 0}
.texte-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,110px);align-items:center}
.texte.is-reverse .texte-media{order:2}
.texte.no-media .texte-grid{grid-template-columns:minmax(0,1fr);max-width:860px}
.texte-media{height:560px}
.texte-body h2{margin-top:16px}
.texte-text{margin-top:24px;font-size:18px;line-height:1.7;color:var(--muted)}
.texte-text p+p{margin-top:1em}

/* ------------------------------------------------------------ infos pratiques */
.visit{padding:110px 0}
.visit .section-head{margin-bottom:52px}
.status-pill{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:var(--white);font-size:14px;line-height:1.4}
.status-pill .dot{position:relative;flex:none;width:9px;height:9px;border-radius:50%;background:var(--copper-deep)}
.status-pill.is-closed .dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--brown-soft)}
@media (prefers-reduced-motion:no-preference){
  .status-pill.is-open .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--copper);animation:pulse 2.4s var(--ease) infinite}
}
@keyframes pulse{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(2.8);opacity:0}}
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 56px}
.info-block h3{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);font-size:24px}
.access{margin:14px 0 0;padding:0;list-style:none;font-size:15px;line-height:1.5;color:var(--muted)}
.access li{display:flex;gap:10px}
.access li+li{margin-top:6px}
.access li::before{content:"";flex:none;width:5px;height:5px;margin-top:.62em;border-radius:50%;background:var(--copper)}
.info-block>.link{margin-top:18px}
.info-block .actions{margin-top:24px}
.info-block a[href^="tel"],.info-block a[href^="mailto"]{text-decoration:none}
.contact-lines{font-size:18px;line-height:1.75}
.info-block .muted{margin-top:12px;font-size:15px}
.hours{width:100%;border-collapse:collapse;font-size:16px}
.hours th,.hours td{padding:5px 0;vertical-align:top}
.hours th{position:relative;padding-right:16px;font-weight:400;text-align:left;color:var(--muted);white-space:nowrap}
.hours td{text-align:right}
.hours tr.is-today th,.hours tr.is-today td{color:var(--brown);font-weight:600}
.hours tr.is-today th::before{content:"";position:absolute;left:-14px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--copper)}
.closures{margin-top:20px;padding:14px 18px;border-radius:16px;background:var(--panel);font-size:15px}
.closures-title{font-weight:600}
.closures ul{margin:6px 0 0;padding:0;list-style:none;color:var(--muted)}
.socials{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px;font-size:15px}
.socials a{font-weight:500}

/* ------------------------------------------------------------------ pied de page */
.site-footer{padding:64px 0 36px;background:var(--sand)}
.site-footer.is-joined{box-shadow:inset 0 1px 0 #e3d5c3}
.foot{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr);gap:32px 48px;align-items:start}
.foot-brand .brand{display:inline-block}
.foot-brand .brand svg{height:40px}
.foot-brand p{max-width:300px;margin-top:16px;font-size:15px;color:var(--muted)}
.foot-contact{font-size:15px;line-height:1.7}
.foot-contact p+p{margin-top:12px}
.foot-contact a{text-decoration:none}
.foot-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 24px;font-size:15px}
.foot-links a{text-decoration:none}
.copy{margin-top:40px;padding-top:20px;border-top:1px solid #e3d5c3;font-size:13px;color:var(--muted)}

/* ------------------------------------------------------------ bandeau cookies */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;max-width:430px;padding:22px 22px 20px;background:var(--white);border-radius:22px;box-shadow:0 0 0 1px var(--line),0 24px 50px -24px rgba(107,79,63,.5);font-size:15px;line-height:1.55}
.consent-title{margin-bottom:6px;font-weight:600}
.consent-text a{color:var(--copper-text)}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
@media (min-width:700px){.consent{left:24px;bottom:24px;right:auto}}

/* ------------------------------------------------------------ visionneuse */
.lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(43,31,24,.95);color:var(--cream);overflow:hidden}
.lightbox::backdrop{background:rgba(43,31,24,.6)}
.lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center}
.lb-stage{display:grid;place-items:center;width:100%;min-height:0;padding:70px clamp(16px,7vw,96px) 12px}
.lb-stage img,.lb-stage video{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);object-fit:contain;border-radius:6px}
.lb-caption{max-width:40rem;padding:0 20px 26px;font-size:15px;text-align:center}
.lb-count{color:rgba(231,216,197,.8);white-space:nowrap}
.lb-btn{position:absolute;display:grid;place-items:center;width:50px;height:50px;padding:0;border:1px solid rgba(231,216,197,.5);border-radius:50%;background:rgba(43,31,24,.55);color:var(--cream);cursor:pointer;transition:background-color .3s}
.lb-btn:hover{background:rgba(231,216,197,.16)}
.lb-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.lb-prev,.lb-next{top:50%;margin-top:-25px}
.lb-prev{left:clamp(8px,2vw,24px)}
.lb-next{right:clamp(8px,2vw,24px)}
.lb-close{top:14px;right:14px}
.lightbox :focus-visible{outline-color:var(--beige)}
.lightbox.is-single .lb-prev,.lightbox.is-single .lb-next,.lightbox.is-single .lb-count{display:none}

/* ------------------------------------------------------- mentions légales, 404 */
.legal{padding:64px 0 120px}
.legal-inner{max-width:820px}
.legal h1{margin-top:18px;font-size:clamp(40px,4.6vw,62px)}
.legal h1+.muted{margin-top:14px}
.legal section{margin-top:44px}
.legal h2{margin-bottom:12px;font-size:clamp(25px,2.4vw,30px);font-weight:400}
.legal p+p{margin-top:12px}
.legal-inner>.muted{margin-top:44px;font-size:15px}
.legal-inner>p:last-child{margin-top:28px}
.legal a[href^="mailto"],.legal a[href^="tel"]{color:var(--copper-text)}
.notfound{padding:110px 0 150px}
.notfound h1+p{margin-top:18px;font-size:18px;color:var(--muted)}
.notfound .btn{margin-top:30px}

/* ------------------------------------------------------- apparitions */
.no-anim .rays,.no-anim .video-play,.no-anim .status-pill .dot::after{animation:none}
@media (prefers-reduced-motion:reduce){.rays{animation:none}}
@media (prefers-reduced-motion:no-preference){
  .anim.js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.2s var(--ease);transition-delay:var(--d,0ms)}
  .anim.js [data-reveal].is-in{opacity:1;transform:none}
  .anim.js [data-reveal="lines"]{opacity:1;transform:none}
  .anim.js [data-reveal="lines"] .line{overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
  .anim.js [data-reveal="lines"] .line-in{transform:translateY(110%);transition:transform 1.2s var(--ease);transition-delay:calc(var(--d,0ms) + var(--i,0) * 140ms)}
  .anim.js [data-reveal="lines"].is-in .line-in{transform:none}
  .anim.js [data-reveal="sunrise"]{opacity:0;transform:translateY(320px) scale(.9);transition:opacity 1.2s var(--ease),transform 2.6s var(--ease-rise);transition-delay:var(--d,0ms)}
  .anim.js [data-reveal="sunrise"].is-in{opacity:1;transform:none}
  .anim.js [data-reveal="sunrise"] .rays{opacity:0;transition:opacity 1.8s var(--ease) 1.9s}
  .anim.js [data-reveal="sunrise"].is-in .rays{opacity:.6}
  .anim.js [data-reveal="rise"]{opacity:0;transform:translateY(140px);transition:opacity 1.2s var(--ease),transform 1.7s var(--ease-rise);transition-delay:var(--d,0ms)}
  .anim.js [data-reveal="rise"].is-in{opacity:1;transform:none}
  .anim.js [data-reveal="photo"]{opacity:0;transform:translateY(80px);transition:opacity 1.1s var(--ease),transform 1.5s var(--ease-rise);transition-delay:var(--d,0ms)}
  .anim.js [data-reveal="photo"].is-in{opacity:1;transform:none}
  .anim.js [data-reveal="sun"]{opacity:0;transform:translateY(120px);transition:opacity 1.2s var(--ease),transform 2.2s var(--ease-rise);transition-delay:var(--d,0ms)}
  .anim.js [data-reveal="sun"].is-in{opacity:1;transform:none}
  .anim.js .why [data-reveal] .arch-line path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease-io);transition-delay:calc(var(--d,0ms) + 250ms)}
  .anim.js .why [data-reveal].is-in .arch-line path{stroke-dashoffset:0}
  .anim.js .why [data-reveal] .glyph{opacity:0;transition:opacity .9s var(--ease);transition-delay:calc(var(--d,0ms) + 1300ms)}
  .anim.js .why [data-reveal].is-in .glyph{opacity:1}
  .anim.js .service[data-reveal] .service-icon{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease-io);transition-delay:calc(var(--d,0ms) + 200ms)}
  .anim.js .service[data-reveal].is-in .service-icon{clip-path:inset(-4px)}
}

/* ------------------------------------------------------------ adaptations */
@media (max-width:960px){
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 18px}
  .gallery .arch,.gallery .g2 .arch{height:340px}
  .gallery .g1 .arch,.gallery .g3 .arch{height:380px}
  .magali-grid,.texte-grid{grid-template-columns:minmax(0,1fr)}
  .magali-photo,.texte-media{width:100%;max-width:460px;height:500px}
  .texte.is-reverse .texte-media{order:0}
  .offer-grid{grid-template-columns:minmax(0,1fr)}
  .offer-text{order:-1;padding-bottom:0}
  .offer-art{width:100%;max-width:460px;height:390px}
  .offer-art .arch{height:360px}
  .faq-grid{grid-template-columns:minmax(0,1fr)}
  .faq-head{position:static}
  .info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .foot-links{grid-column:1 / -1;justify-content:flex-start}
}
@media (max-width:860px){
  .horizon{height:400px}
  .sun-wrap{width:480px;height:480px;margin-left:-240px;top:-10px}
  .sun-wrap .sun{width:320px;height:320px;margin:-160px 0 0 -160px}
  .arches{gap:12px}
  .arches .arch{flex-basis:26vw;height:220px}
  .arches .arch--tall{flex-basis:32vw;height:270px}
  .why-list>li,.why-list[class*="count-"]>li{flex-basis:100%}
  .timeline{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .info-grid{grid-template-columns:minmax(0,1fr)}
  .foot{grid-template-columns:minmax(0,1fr)}
  .practical{padding:24px 24px}
  .faq-answer{padding-right:0}
  .hours tr.is-today th::before{left:-12px}
}
@media (max-width:540px){
  body{font-size:16px}
  .why,.services,.shop,.magali,.exam,.video-section,.faq,.texte,.visit{padding-top:80px;padding-bottom:80px}
  .offer{padding-top:72px}
  .offer-text{padding-bottom:0}
  .section-head{margin-bottom:40px}
  .hero .eyebrow .rule{display:none}
  .hero .eyebrow{text-align:center}
  .horizon{height:330px;margin-top:28px}
  .sun-wrap{width:400px;height:400px;margin-left:-200px;top:-10px}
  .sun-wrap .sun{width:260px;height:260px;margin:-130px 0 0 -130px}
  .arches .arch{height:170px}
  .arches .arch--tall{height:210px}
  .gallery{gap:26px 14px}
  .gallery .arch,.gallery .g2 .arch{height:240px}
  .gallery .g1 .arch,.gallery .g3 .arch{height:270px}
  .gallery figcaption{margin-top:12px;font-size:18px}
  .magali-photo,.texte-media{height:420px}
  .offer-art{height:330px}
  .offer-art .arch{height:300px}
  .offer-art .sun{width:140px}
  .faq-item summary{font-size:20px;padding:20px 0}
  .video-play{width:76px;height:76px;margin:-38px 0 0 -38px}
  .steps .num{font-size:54px}
  .lb-prev,.lb-next{top:auto;bottom:14px;margin-top:0}
  .lb-caption{padding-bottom:78px}
}

/* ------------------------------------------------------------ impression */
@media print{
  .site-header,.announce,.consent,.lightbox,.horizon,.video-section,.skip{display:none!important}
  body{font-size:12pt}
  main>section{padding:24pt 0!important;background:none!important}
  .anim.js [data-reveal],.anim.js [data-reveal] .line-in{opacity:1!important;transform:none!important}
}
