/* GF Visuel — thème « Luxe » : codes des maisons de luxe (joaillerie, couture).
   Serif droit à fort contraste, capitales espacées, noir + or plein, angles nets,
   beaucoup d'air. Pas d'italique, pas d'écriture manuscrite, pas de dégradé.
   Activer avec THEME = 'luxe'. */
:root{
  --fond:#FFFFFF; --fond-2:#FAF8F3; --ligne:#E8E2D6;
  --or:#B39256;            /* filets, accents, boutons (texte noir dessus) */
  --or-texte:#8A6A2C;      /* or lisible en petit */
  --encre:#141414; --gris:#6B6B6B;
  --titre:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --texte:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
body{background:var(--fond);color:var(--encre);font-family:var(--texte);font-size:16px;line-height:1.7}
a{color:var(--encre);text-underline-offset:3px} a:hover{color:var(--or-texte)}
:focus-visible{outline:1px solid var(--or);outline-offset:4px}
em{font-style:normal;color:inherit}

/* Bandeau noir */
.annonce{margin:0;background:var(--encre);text-align:center;padding:11px 16px;font-size:11px;letter-spacing:.28em;text-transform:uppercase}
.annonce a{color:#fff;text-decoration:none} .annonce a:hover{color:var(--or)}

/* Titres : serif droit, grand, calme */
.title,.hero__title,.dispo h2,.price h3,.price__num,.pro h3,.quote blockquote,.faq h3,.film__meta h3,.steps span,.phone__names,.page h1,.login__box h1,.gallery-head h1,.cookie__box h2{font-family:var(--titre);font-style:normal;font-weight:500}
.title{font-size:clamp(36px,4.4vw,58px);line-height:1.08;letter-spacing:-.005em;color:var(--encre)}
.title em,.hero__title em,.dispo h2 em{font-style:normal;color:inherit}
.title.center{margin-bottom:64px}
.title.center::after{content:"";display:block;width:48px;height:1px;background:var(--or);margin:28px auto 0}
.eyebrow,.eyebrow--dark,.eyebrow--light{color:var(--or-texte);font-family:var(--texte);font-size:11px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;margin-bottom:18px}
.intro,.note,.prose p{color:var(--gris)}
.intro--left{opacity:1}
.section{padding:140px 0}
.section__head{align-items:flex-end}

/* Boutons : rectangles nets, capitales espacées, retour immédiat à l'appui */
.btn{border-radius:0;font-family:var(--texte);font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;padding:18px 36px;border:1px solid transparent;transition:background-color .25s,color .25s,border-color .25s,transform .1s ease-out}
.btn:hover{transform:none}
.btn:active{transform:scale(.98)}
.btn--sm{padding:12px 22px;font-size:10.5px}
.btn--gold,.btn--ivory,.btn--dark,.btn--sage{background:var(--encre);color:#fff;border-color:var(--encre)}
.btn--gold:hover,.btn--ivory:hover,.btn--dark:hover,.btn--sage:hover{background:var(--or);border-color:var(--or);color:var(--encre)}
.btn--line,.btn--line-dark{background:transparent;color:var(--encre);border-color:var(--encre)}
.btn--line:hover,.btn--line-dark:hover{background:var(--encre);color:#fff}
.nav .btn--gold{background:var(--or);border-color:var(--or);color:var(--encre)}
.nav .btn--gold:hover{background:var(--encre);border-color:var(--encre);color:#fff}

/* Navigation : nom de maison centré, menu dessous */
.nav{background:#fff;border-bottom:1px solid var(--ligne)}
.logo__name{font-family:var(--titre);font-weight:500;font-size:30px;letter-spacing:.32em;text-transform:uppercase;color:var(--encre)}
.logo__name span{color:var(--encre)}
.logo__tag{color:var(--or-texte);letter-spacing:.42em;font-size:9.5px;margin-top:8px}
.nav__menu a:not(.btn){color:var(--encre);font-size:11px;font-weight:500;letter-spacing:.26em} .nav__menu a:not(.btn):hover{color:var(--or-texte)}
.nav__toggle span{background:var(--encre)}
@media (min-width:1021px){
  .nav{position:relative}
  .nav__in{flex-direction:column;gap:22px;padding-top:34px;padding-bottom:20px}
  .logo{align-items:center}
  .logo__name{font-size:34px}
  .nav__menu{gap:40px}
}
@media (max-width:1020px){
  .logo__name{font-size:22px;letter-spacing:.24em}
  .nav__menu{background:#fff;border-bottom-color:var(--ligne)}
  .nav__menu a:not(.btn){border-bottom-color:var(--ligne)}
}

/* Accueil : plein cadre, texte centré */
.hero{background:#2A2622;min-height:min(92vh,880px);align-items:center}
.hero__shade{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.5) 100%)}
.hero__content{text-align:center;display:flex;flex-direction:column;align-items:center;padding-bottom:0}
.hero .eyebrow{color:#fff;letter-spacing:.36em}
.hero .eyebrow::after{content:"";display:block;width:48px;height:1px;background:var(--or);margin:22px auto 0}
.hero .hero__title{font-family:var(--titre);color:#fff;font-size:clamp(46px,7vw,100px);font-weight:500;line-height:1.02;letter-spacing:-.005em;max-width:none}
.hero__lead{color:rgba(255,255,255,.88);margin:28px auto 0;max-width:540px}
.hero .actions{justify-content:center;margin-top:44px}
.hero .btn--ivory{background:#fff;border-color:#fff;color:var(--encre)} .hero .btn--ivory:hover{background:var(--or);border-color:var(--or);color:var(--encre)}
.hero .btn--line{border-color:rgba(255,255,255,.7);color:#fff} .hero .btn--line:hover{background:#fff;color:var(--encre)}

/* Bandeau date : carte nette */
.dispo{margin-top:-56px;background:#fff;border:1px solid var(--ligne);border-radius:0;box-shadow:0 30px 60px rgba(20,20,20,.08)}
.dispo h2{font-size:32px;color:var(--encre)}
.dispo p{color:var(--gris)}
.dispo p.is-free{color:var(--or-texte);font-weight:600} .dispo p.is-busy{color:#9E2B20}
.dispo__form label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.dispo__form input{background:#fff;border:0;border-bottom:1px solid var(--encre);border-radius:0;color:var(--encre);padding:14px 2px;color-scheme:light}
.dispo__form input:focus{outline:none;border-bottom-color:var(--or)}

/* Sections */
main > .section{background:var(--fond);color:var(--encre)}
main > .section:nth-of-type(even){background:var(--fond-2)}
.section--ivory a:not(.btn){color:var(--encre)}

/* Films */
.tabs{background:transparent;border:0;border-radius:0;padding:0;gap:32px}
.tabs button{border-radius:0;padding:8px 0;color:var(--gris);font-size:11px;font-weight:600;letter-spacing:.26em;text-transform:uppercase}
.tabs button[aria-selected="true"]{background:transparent;color:var(--encre);box-shadow:inset 0 -1px 0 var(--encre)}
.grid{gap:40px 28px}
.film__media{border:0;border-radius:0;background:#EEE9DF}
.film__media img{opacity:1}
.play{width:58px;height:58px;background:transparent;border:1px solid #fff;color:#fff}
.film__media:not(:has(img)) .play{border-color:var(--encre);color:var(--encre)}
.film__consent{background:rgba(255,255,255,.96);color:var(--encre)}
.film__meta{margin-top:18px}
.film__meta h3{font-size:22px;color:var(--encre)}
.film__meta span{color:var(--or-texte);font-size:10.5px;letter-spacing:.26em}

/* Formules */
.cards{gap:28px}
.price{background:#fff;border:1px solid var(--ligne);border-radius:0;padding:52px 40px;text-align:center;align-items:center;gap:18px}
.price h3{font-size:34px;letter-spacing:.02em;color:var(--encre)}
.price__sub{color:var(--gris);font-size:14px}
.price__num{font-size:48px;line-height:1;color:var(--encre)}
.price__num::after{content:"";display:block;width:32px;height:1px;background:var(--or);margin:26px auto 4px}
.price ul{align-items:center;gap:12px;font-size:14.5px;color:#3A3A3A}
.price li::before{content:none}
.price .btn{align-self:stretch}
.price--featured{background:#fff;color:var(--encre);border:1px solid var(--or);box-shadow:inset 0 3px 0 var(--or)}
.price--featured h3{color:var(--encre)} .price--featured .price__sub{color:var(--gris)}
.price--featured .btn--gold{background:var(--or);border-color:var(--or);color:var(--encre)}
.price--featured .btn--gold:hover{background:var(--encre);border-color:var(--encre);color:#fff}
.badge{border-radius:0;background:var(--encre);color:#fff;font-size:10px;letter-spacing:.24em;padding:7px 14px;left:50%;transform:translateX(-50%)}

/* WeddingPage */
.chips span{border-radius:0;border-color:var(--ligne);color:var(--encre);font-size:13px}
.chips .chip--gold{border-color:var(--or);color:var(--encre)}
.phone{background:#fff;border:10px solid var(--encre);border-radius:46px;box-shadow:0 40px 80px rgba(20,20,20,.18);color:var(--encre)}
.phone__eyebrow{color:var(--or-texte)}
.phone__names{font-size:38px;line-height:1.1}
.phone__names em{color:var(--or-texte)}
.phone__line{background:var(--or)}
.phone__date{color:var(--gris)}
.phone__count b{background:var(--fond-2);color:var(--encre);border-radius:0}
.phone__btn{background:var(--encre);color:#fff;border-radius:0;letter-spacing:.14em;text-transform:uppercase;font-size:11px}

/* Pros */
.pro{background:#fff;border:1px solid var(--ligne);border-radius:0;color:var(--gris);text-align:center;align-items:center;padding:44px 32px}
.pro svg{color:var(--or)}
.pro h3{font-size:28px;color:var(--encre)}
.pro span{color:var(--or-texte);font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase}

/* Étapes */
.steps{gap:0}
.steps li{border-top:0;border-left:1px solid var(--ligne);padding:4px 32px;text-align:center}
.steps li:first-child{border-left:0}
@media (max-width:1060px){.steps li{border-left:0;border-top:1px solid var(--ligne);padding:32px 8px}.steps li:first-child{border-top:0}}
.steps span{font-size:52px;line-height:1;color:var(--or)}
.steps h3{font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--encre);margin:18px 0 12px}
.steps p{color:var(--gris);font-size:15px}

/* Témoignages */
.quote{background:transparent;border:0;border-top:1px solid var(--or);border-radius:0;padding:36px 8px 0;text-align:center;align-items:center}
.quote::before{content:none}
.quote blockquote{font-size:24px;line-height:1.4;color:var(--encre)}
.quote figcaption{color:var(--or-texte);font-size:10.5px;letter-spacing:.26em}

/* FAQ */
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{padding:22px 0}
.faq h3{font-size:24px;color:var(--encre)}
.faq summary::after{content:"+";font-family:var(--texte);font-size:22px;font-weight:300;color:var(--encre)}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--gris)}

/* Contact */
.form{background:#fff;border:1px solid var(--ligne);border-radius:0;padding:52px}
.form label{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.form input,.form select,.form textarea{background:transparent;border:0;border-bottom:1px solid #C9C3B8;border-radius:0;padding:12px 2px;color:var(--encre);font-family:var(--texte);font-size:16px;letter-spacing:0;text-transform:none}
.form textarea{border:1px solid #C9C3B8;padding:12px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--or)}
.form .check{color:var(--gris);font-size:13px;font-weight:400;letter-spacing:0;text-transform:none}
.form__msg{color:var(--or-texte)}
.contact-list a{color:var(--encre)}

/* Pied de page */
.footer{background:var(--fond-2);color:var(--gris);border-top:1px solid var(--ligne);font-size:13px}
.footer .logo__name{font-size:22px;color:var(--encre)}
.footer__top p,.footer__bottom{color:var(--gris)}
.footer a,.footer .linklike{color:var(--encre);text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase} .footer a:hover,.footer .linklike:hover{color:var(--or-texte)}
.footer__bottom{border-top-color:var(--ligne)}

/* WhatsApp */
.whatsapp{background:#fff;color:var(--encre);border:1px solid var(--encre);border-radius:0;box-shadow:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.whatsapp svg{color:var(--encre)}
.whatsapp:hover{background:var(--encre);color:#fff} .whatsapp:hover svg{color:#fff}

/* Cookies */
.cookie__box{background:#fff;color:var(--encre);border:1px solid var(--ligne);border-radius:0;box-shadow:0 24px 60px rgba(20,20,20,.12)}
.cookie__box h2{font-size:26px}
.cookie__box em{color:inherit}
.cookie__box a{color:var(--encre)}
.cookie__box p,.cookie__row div{color:var(--gris)}
.cookie__row{border-top-color:var(--ligne)} .cookie__row strong{color:var(--encre)}
.switch[aria-checked="true"]{background:var(--encre)}

/* Pages légales + Espace Mariés */
.page h1{font-size:clamp(36px,5vw,52px);color:var(--encre)}
.page h2{font-family:var(--texte);font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--or-texte)}
.page p,.page li{color:var(--gris)}
.page a,.page .linklike{color:var(--encre)}
.login__box{background:#fff;border:1px solid var(--ligne);border-radius:0;box-shadow:none}
.login__box h1{font-size:40px;color:var(--encre)}
.login__box p{color:var(--gris)}
.login__box label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.login__box input{background:transparent;border:0;border-bottom:1px solid #C9C3B8;border-radius:0;color:var(--encre)}
.alert{background:#FBEDEA;border:0;color:#8C1D18;border-radius:0}
.expire,.vcard{background:#fff;border:1px solid var(--ligne);border-radius:0;color:var(--gris)}
.expire strong{color:var(--encre)}
.icon-btn{border-radius:0;border-color:var(--encre);color:var(--encre)}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .btn{transition:none} .btn:active{transform:none}
}
