/* Polices hébergées sur le site (plus aucun appel à Google Fonts : l'adresse
   IP des visiteurs n'est plus transmise à Google). Fraunces et Inter,
   licence SIL Open Font License 1.1, sous-ensemble "latin" (français inclus). */
@font-face{
  font-family:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(assets/fonts/fraunces-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(assets/fonts/inter-latin.woff2) format('woff2');
}
:root{
  --ink:#0F1B2D;
  --panel:#163654;
  --coral:#FF5D73;
  --gold:#F4B942;
  --sand:#F5EFE6;
  --slate:#7C8FA6;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--sand);
  color:var(--ink);
  line-height:1.55;
}
h1,h2,h3{font-family:'Fraunces',serif;line-height:1.1;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}

/* header */
header{
  position:sticky;top:0;z-index:20;
  background:rgba(15,27,45,0.92);
  backdrop-filter:blur(6px);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;max-width:1080px;margin:0 auto;
}
.brand{display:flex;align-items:center;gap:10px;color:var(--sand);font-weight:700;font-size:18px;text-decoration:none;}
.brand svg{height:34px;width:auto;}
nav.links{display:flex;gap:28px;font-size:14px;color:var(--slate);}
nav.links a:hover{color:var(--sand);}
.cta{
  background:var(--coral);color:var(--ink);
  padding:10px 20px;border-radius:999px;font-weight:600;font-size:14px;
  text-decoration:none;white-space:nowrap;
}
@media(max-width:780px){ nav.links{display:none;} }

/* hero */
.hero{
  background:radial-gradient(circle at 70% 30%, #1c3a58 0%, var(--ink) 60%);
  color:var(--sand);
  padding:100px 28px 120px;
  position:relative;
  overflow:hidden;
}
.hero-inner{
  max-width:1080px;margin:0 auto;
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;
}
@media(max-width:860px){ .hero-inner{grid-template-columns:1fr;} .ring-wrap{order:-1;} }
.hero-inner > *{min-width:0;}
.hero h1{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;}
.hero p.lead{margin-top:22px;font-size:1.15rem;color:#c7d3e0;max-width:46ch;}
.hero .ctas{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;}
.btn-ghost{
  border:1px solid rgba(245,239,230,0.35);color:var(--sand);
  padding:12px 22px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:600;
}
.btn-solid{
  background:var(--coral);color:var(--ink);
  padding:12px 24px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:700;
}
.ring-wrap{display:flex;justify-content:center;align-items:center;}
.ring{
  width:min(260px,100%);aspect-ratio:1/1;border-radius:50%;
  background:conic-gradient(from 0deg, var(--coral), var(--gold), transparent 65%);
  animation:spin 6s linear infinite;
  display:flex;align-items:center;justify-content:center;
  padding:14px;
}
@media (prefers-reduced-motion: reduce){ .ring{animation:none;} }
.ring-core{
  width:100%;height:100%;border-radius:50%;
  background:var(--ink);
  display:flex;align-items:center;justify-content:center;
  color:var(--sand);font-family:'Fraunces',serif;font-size:1.6rem;font-weight:700;
  text-align:center;
}
@keyframes spin{ to{ transform:rotate(360deg);} }

/* simple page hero (legal pages) */
.hero-lite{
  background:radial-gradient(circle at 70% 30%, #1c3a58 0%, var(--ink) 60%);
  color:var(--sand);
  padding:64px 28px;
}
.hero-lite .wrap h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;}
.hero-lite .wrap p{margin-top:12px;color:var(--slate);font-size:0.95rem;}
.hero-lite .wrap a{color:var(--gold);text-decoration:underline;font-size:0.9rem;}

section{padding:88px 28px;}
.section-head{max-width:620px;margin-bottom:52px;}
.section-head .eyebrow{color:var(--coral);font-weight:600;font-size:14px;}
.section-head h2{font-size:2rem;margin-top:8px;}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
@media(max-width:780px){ .steps{grid-template-columns:1fr;} }
.step .num{
  font-family:'Fraunces',serif;font-size:2.4rem;color:var(--coral);font-weight:600;
}
.step h3{margin-top:6px;font-size:1.2rem;}
.step p{margin-top:8px;color:#4a5568;font-size:0.98rem;}

/* pricing */
.pricing{background:var(--panel);color:var(--sand);}
.pricing .section-head h2{color:var(--sand);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:860px){ .cards{grid-template-columns:1fr;} }
.card{
  background:rgba(245,239,230,0.06);
  border:1px solid rgba(245,239,230,0.15);
  border-radius:18px;padding:32px 26px;
}
.card.featured{border-color:var(--gold);background:rgba(244,185,66,0.08);}
.card h3{font-size:1.15rem;color:var(--gold);}
.card .price{font-family:'Fraunces',serif;font-size:2.2rem;margin:14px 0 4px;}
.card .price span{font-size:1rem;color:var(--slate);font-family:'Inter',sans-serif;}
.card ul{margin-top:18px;padding-left:18px;font-size:0.94rem;color:#dfe7ef;}
.card ul li{margin-bottom:8px;}
.note-price{margin-top:24px;font-size:0.85rem;color:var(--slate);max-width:60ch;}
.legal-notice{
  margin-top:20px;max-width:60ch;
  border:1px solid var(--gold);background:rgba(244,185,66,0.08);
  border-radius:12px;padding:16px 20px;
}
.legal-notice strong{color:var(--gold);font-size:0.92rem;}
.legal-notice p{margin-top:8px;font-size:0.85rem;color:#dfe7ef;line-height:1.5;}

/* zone */
.zone-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.zone-list span{
  background:#fff;border:1px solid #e3d9c9;border-radius:999px;
  padding:8px 16px;font-size:0.9rem;
}

/* galerie : une photo prend toute la largeur, deux se mettent côte à côte */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:18px;max-width:1080px;}
.gallery-grid figure{margin:0;min-width:0;}
.gallery-grid img{display:block;width:100%;height:auto;aspect-ratio:1408/768;object-fit:cover;border-radius:14px;box-shadow:0 10px 30px rgba(15,27,45,.15);}
.gallery-grid figcaption{margin-top:6px;font-size:0.8rem;color:var(--slate);text-align:center;}
/* vidéo verticale : à gauche des photos sur grand écran, au-dessus sur téléphone */
.gallery-video{display:flex;flex-direction:column;}
.video-box{position:relative;aspect-ratio:9/16;max-height:80vh;margin:0 auto;width:100%;max-width:calc(80vh * 9 / 16);border-radius:14px;overflow:hidden;background:#0F1B2D;box-shadow:0 10px 30px rgba(15,27,45,.15);}
.video-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
@media(min-width:700px){
  .gallery-grid.has-video{grid-template-columns:minmax(0,0.63fr) minmax(0,1fr);}
  .gallery-grid.has-video .gallery-video{grid-row:span 2;}
  .gallery-grid.has-video .video-box{flex:1;aspect-ratio:auto;max-height:none;max-width:none;}
}

/* contact */
.contact{background:var(--ink);color:var(--sand);}
.contact .section-head h2{color:var(--sand);}
form{max-width:520px;display:grid;gap:16px;}
.form-pair{display:grid;grid-template-columns:8rem 1fr;gap:12px;}
.form-pair > div{min-width:0;}
form input, form textarea, form select{
  width:100%;padding:13px 16px;border-radius:10px;border:1px solid rgba(245,239,230,0.25);
  background:rgba(245,239,230,0.05);color:var(--sand);font-family:'Inter',sans-serif;font-size:0.95rem;
}
form select option{background:var(--ink);color:var(--sand);}
form label{font-size:0.85rem;color:var(--slate);margin-bottom:6px;display:block;}
form button{
  justify-self:start;background:var(--coral);color:var(--ink);border:none;
  padding:14px 28px;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;
}
form button:disabled{opacity:0.6;cursor:not-allowed;}

/* signature + paiement embarqués */
.embed-step{display:none;max-width:640px;margin-top:20px;}
.embed-hint{color:var(--sand);font-size:0.92rem;margin-bottom:14px;}
.embed-frame{
  width:100%;height:680px;border:none;border-radius:14px;
  background:#fff;
}
#stripe-checkout-container{
  background:#fff;border-radius:14px;overflow:hidden;min-height:200px;
}
@media(max-width:600px){ .embed-frame{height:560px;} }

/* acceptation en ligne du contrat (D-196) */
.accept-form{max-width:560px;}
.accept-docs{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:8px;}
.accept-docs a, .accept-box a{color:var(--gold);text-decoration:underline;}
.accept-check{display:flex;gap:10px;align-items:flex-start;color:var(--sand);font-size:0.92rem;line-height:1.45;}
.accept-check input{width:auto;margin-top:3px;}
.accept-check a{color:var(--gold);text-decoration:underline;}
.accept-code{display:grid;gap:12px;}
.accept-resend{color:var(--slate);font-size:0.85rem;text-decoration:underline;}
.accept-error{color:var(--coral);font-size:0.9rem;margin:0;min-height:1em;}
.accept-ok{color:#9ee6a8;font-weight:700;}
.accept-box{color:var(--sand);display:grid;gap:10px;}

/* legal documents (mentions légales, CGV, confidentialité) */
.legal-doc{max-width:760px;padding:64px 28px;margin:0 auto;}
.legal-doc h2{font-size:1.3rem;margin-top:40px;margin-bottom:12px;color:var(--panel);}
.legal-doc h2:first-of-type{margin-top:0;}
.legal-doc p{margin-bottom:14px;color:#334155;font-size:0.98rem;}
.legal-doc p strong{color:var(--ink);}
.legal-doc .updated{color:var(--slate);font-size:0.85rem;margin-bottom:32px;}
.legal-doc ul{margin:0 0 14px 20px;color:#334155;font-size:0.98rem;}
.legal-doc li{margin-bottom:6px;}

footer{
  padding:36px 28px;text-align:center;font-size:0.82rem;color:var(--slate);
  background:var(--ink);border-top:1px solid rgba(245,239,230,0.08);
}
footer a{text-decoration:underline;}
.form-privacy{font-size:0.8rem;color:var(--slate);margin:10px 0 0;max-width:60ch;line-height:1.4;}
.form-privacy a{text-decoration:underline;color:inherit;}

/* formulaires de contact (question, demande de devis) */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:28px;}
@media(max-width:760px){ .contact-grid{grid-template-columns:1fr;} }
.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.form-status{font-size:0.9rem;color:#dfe7ef;margin:0;min-height:1.2em;}

/* Bandeau « site en cours de construction » (D-180) : à retirer à l'ouverture. */
.construction-bar{background:var(--gold);color:var(--ink);text-align:center;font-size:0.9rem;padding:9px 16px;line-height:1.4;}
.construction-bar a{text-decoration:underline;font-weight:600;}
.construction-note{max-width:640px;margin:0 0 22px;padding:12px 16px;border-left:4px solid var(--gold);background:rgba(244,185,66,0.15);font-size:0.95rem;}
.construction-note a{text-decoration:underline;}

/* Impression (19/10/2026) : sans l'en-tête et le pied de page que le
   navigateur ajoute tout seul (date, titre, adresse, n° de page). Marges de
   la feuille à 0 (plus de place pour ces infos), marges recréées par le
   tableau .print-sheet qui entoure chaque page : retrait à gauche et à
   droite, en-tête et pied vides répétés sur chaque feuille. À l'écran, ce
   tableau est neutre. */
.print-sheet,.print-sheet>tbody,.print-sheet>tbody>tr,.print-sheet>tbody>tr>td{display:block;width:100%;border:0;padding:0;}
.print-sheet{border-collapse:collapse;}
.print-sheet>thead,.print-sheet>tfoot{display:none;}
@page{size:A4;margin:0;}
@media print{
  .print-sheet{display:table;}
  .print-sheet>thead{display:table-header-group;}
  .print-sheet>tfoot{display:table-footer-group;}
  .print-sheet>tbody{display:table-row-group;}
  .print-sheet>tbody>tr{display:table-row;}
  .print-sheet>tbody>tr>td{display:table-cell;padding:0 12mm;}
  .print-sheet>thead td,.print-sheet>tfoot td{height:12mm;padding:0;}
  header{position:static;}
}

/* questions fréquentes (D-228) : chaque réponse s'ouvre d'un clic */
.faq{max-width:760px;display:grid;gap:10px;}
.faq details{background:#fff;border-radius:12px;box-shadow:0 4px 14px rgba(15,27,45,.06);}
.faq summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font-weight:600;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--coral);}
.faq details[open] summary::after{content:"–";}
.faq details p{padding:0 18px 16px;color:#4a5568;}
.faq a{text-decoration:underline;}
