@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');:root{--ink:#24483e;--paper:#faf8f3;--gold:#b09163;--muted:#6c756b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}header{position:fixed;z-index:20;top:0;width:100%;height:104px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 4.5%;color:white;transition:background .3s,color .3s; border-bottom:1px solid #ffffff30}header.solid{background:#fff;color:var(--ink);box-shadow:0 1px 12px #00000008}header button{border:0;background:none;color:inherit;font-size:23px;text-align:left}header button span{font-size:12px;margin-left:12px}.wordmark{text-align:center;font-family:'Playfair Display',serif;font-size:36px;line-height:1}.wordmark span{font-style:italic}.wordmark small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:3px;margin-top:12px}.header-right{display:flex;justify-content:end;align-items:center;gap:22px;font-size:12px}select{background:transparent;color:inherit;border:0}select option{color:var(--ink)}.login{border:1px solid currentColor;border-radius:30px;padding:9px 20px}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.15}h1{font-size:clamp(45px,5.7vw,82px);margin:20px 0 28px}h2{font-size:clamp(32px,3.5vw,48px)}h3{font-size:27px}p{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2.6px;text-transform:uppercase;color:var(--gold);font-weight:600}.hero{height:100svh;min-height:650px;position:relative;background:#243d31;color:white;overflow:hidden}.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s}.slide.active{opacity:1}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b2414aa,#0b241430)}.hero-content{position:relative;z-index:2;max-width:810px;padding:23vh 0 0 8%;}.hero-content p{color:#ffffffe0;max-width:450px}.hero-content .eyebrow{color:#f1d9b4}.button{display:inline-block;border:0;border-radius:30px;padding:14px 27px;background:var(--ink);color:white;font-size:13px}.button.light{background:var(--paper);color:var(--ink)}.text-link{display:inline-block;margin:0 20px;font-size:13px;border-bottom:1px solid currentColor}.dots{position:absolute;bottom:50px;left:8%;z-index:3;display:flex;gap:15px}.dots button{width:32px;height:4px;border:0;background:#ffffff60;padding:0}.dots button.active{background:white}.pause{position:absolute;right:5%;bottom:40px;z-index:3;background:none;border:1px solid #ffffff80;border-radius:50%;color:white;width:38px;height:38px}.intro-strip{display:flex;justify-content:center;gap:8%;padding:28px;border-bottom:1px solid #ddd8cb;font-size:12px}.section{padding:90px 8%}.center{text-align:center}.center p{max-width:610px;margin:20px auto}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.card img{width:100%;height:310px;object-fit:cover;border-radius:5px}.card h3{margin-bottom:10px}.card p{font-size:14px}.number{color:var(--gold);font-size:12px;letter-spacing:2px}.split{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.split img{width:100%;height:530px;object-fit:cover;border-radius:140px 140px 5px 5px}.sage{background:#edf0e8}.dark{background:var(--ink);color:var(--paper)}.dark p{color:#d6dfd6}.dark .eyebrow{color:#dfc7a3}.feature-list{padding:0;list-style:none}.feature-list li{border-top:1px solid #c4cdbf;padding:18px 0}.feature-list li:before{content:'✓';margin-right:15px;color:var(--gold)}.wide-photo{height:420px;background-size:cover;background-position:center}.cta{text-align:center;padding:85px 8%}.page{padding:150px 8% 80px;min-height:75vh}.page-banner{display:grid;grid-template-columns:1.05fr 1fr;gap:7%;align-items:center;margin-bottom:70px}.page-banner img{width:100%;height:410px;object-fit:cover;border-radius:6px}.page-banner h1{font-size:58px}.plan{border:1px solid #d6d7ce;border-radius:12px;padding:36px;position:relative;background:white}.plan.featured{background:var(--ink);color:white}.plan.featured p,.plan.featured li{color:#dce5dc}.plan.featured .button{background:var(--paper);color:var(--ink)}.price{font:48px 'Playfair Display';margin:25px 0}.price small{font:13px 'DM Sans'}.billing{text-align:center;margin:20px 0 40px}.billing button{border:1px solid #ccc;padding:9px 22px;background:none}.billing button.selected{background:var(--ink);color:white}.notice{background:#ece8dd;padding:18px 24px;border-radius:8px;font-size:13px}.faq{max-width:840px;margin:auto}details{padding:22px 0;border-bottom:1px solid #d9dccf}summary{cursor:pointer;font-size:19px}footer{background:#efede5;padding:65px 8%;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;font-size:12px}footer .wordmark{display:block;text-align:left;margin-bottom:20px}footer a{display:inline-block;margin:5px 0}#footerLinks{display:flex;flex-direction:column}dialog{border:0;background:var(--paper);color:var(--ink);padding:45px;max-width:550px;border-radius:10px}dialog::backdrop{background:#081b1580}#drawer{position:fixed;left:0;top:0;margin:0;height:100%;width:450px;max-width:90vw;max-height:100%;border-radius:0;padding-top:85px}#drawer nav{display:flex;flex-direction:column;gap:10px;margin:30px 0}#drawer nav a{font:27px 'Playfair Display';padding:7px 0}#closeMenu,.closeHelp{position:absolute;top:20px;right:25px;border:0;background:none;font-size:24px}#help{position:fixed;z-index:15;right:24px;bottom:24px;border:1px solid #d2d9d2;border-radius:35px;padding:10px 18px;background:white;color:var(--ink);box-shadow:0 4px 20px #0001;font-size:13px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:10px;z-index:100;background:white;padding:12px}.form{max-width:520px;margin:0 auto}label{display:block;font-size:13px;margin:18px 0 7px}input,textarea{display:block;width:100%;padding:13px;border:1px solid #cdd4c9;border-radius:5px;background:white;color:var(--ink)}textarea{min-height:130px}.form button{margin-top:20px}.error{color:#9f382b}.app-layout{display:grid;grid-template-columns:220px 1fr;gap:45px}.app-nav a{display:block;padding:12px 0}.stat{padding:25px;background:#edf0e8;border-radius:10px}.row{display:flex;justify-content:space-between;align-items:center;padding:17px;border-bottom:1px solid #ddd;gap:15px}.row small{display:block;color:var(--muted)}.tag{font-size:11px;border-radius:20px;padding:5px 12px;background:#e6ede1}.empty{padding:40px;background:#edf0e8;border-radius:10px}.app-form{max-width:600px}.app-form select{display:block;border:1px solid #ccc;padding:12px;width:100%;background:white}.subtle{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:800px){header{height:82px;padding:0 5%;grid-template-columns:1fr 1fr 1fr}.wordmark{font-size:29px}.header-right{gap:8px}.header-right>a:first-of-type,header button span{display:none}.login{padding:7px 10px;font-size:10px}header select{font-size:11px}.hero-content{padding:24vh 7% 0}.hero{min-height:660px}.hero h1{font-size:49px}.hero-content .text-link{margin:20px 0}.intro-strip{gap:18px;font-size:10px}.section{padding:60px 7%}.grid,.split,.page-banner,footer,.app-layout{grid-template-columns:1fr}.grid{gap:35px}.split{gap:35px}.split img{height:380px}.page{padding:115px 7% 60px}.page-banner h1{font-size:45px}.page-banner img{height:280px}.card img{height:280px}.app-nav{display:flex;gap:20px;overflow:auto}.app-nav a{white-space:nowrap}#help span{display:none}#help{padding:10px 16px}.wide-photo{height:290px}footer{padding:50px 7%;gap:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.check{display:flex;gap:10px;align-items:flex-start}.check input{display:inline;width:auto;margin-top:4px}.check a,.legal a,.notice a{text-decoration:underline}.success{color:#2f6b4f}.legal h2{font-size:28px;margin-top:40px}.legal-list{padding-left:20px}.legal-list li{margin:8px 0;color:var(--muted)}.legal .subtle{margin-top:40px}.suggestions{margin:25px 0;padding:20px;border:1px solid #d6d7ce;border-radius:10px;background:#fff}.suggestions:empty{display:none}.suggestions h3{font-size:22px;margin:0 0 10px}.row button,.app-nav button,.danger,.inline-form button{border:1px solid #cdd4c9;background:#fff;border-radius:20px;padding:6px 14px;font-size:12px;color:var(--ink)}.danger{border-color:#9f382b;color:#9f382b;margin-top:15px}.row select{border:1px solid #cdd4c9;border-radius:20px;padding:5px 10px;background:#fff}.row.sub{padding:10px 17px 10px 35px;font-size:14px}.row a{text-decoration:underline}.wishlist,.admin-card{border:1px solid #e0e1d8;border-radius:10px;margin:15px 0;background:#fff}.admin-card{padding:5px 15px}.admin-card.warn{background:#fbf3e4;border-color:#e6cf9f;padding:15px 20px}.admin-card.warn li{margin:6px 0}.inline-form{display:flex;flex-wrap:wrap;gap:8px;padding:12px 17px}.inline-form input{flex:1 1 140px;width:auto;padding:9px}.inline-form .error{flex-basis:100%;margin:0}code.secret{display:block;word-break:break-all;background:#fff;border:1px solid #e6cf9f;padding:10px;border-radius:6px;margin-top:8px;user-select:all}.stats{margin:30px 0}.app-nav a[aria-current]{font-weight:600}.app-form label.check{margin:18px 0}h2{margin-top:45px}
@media(max-width:800px){.row{flex-wrap:wrap}.inline-form input{flex-basis:100%}}
/* Application installable : bouton « Télécharger l'app » et guide d'installation */
.pwa-install{display:inline-flex;align-items:center;gap:6px;border:1px solid currentColor;border-radius:30px;padding:9px 16px;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}.pwa-install:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pwa-ico{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.pwa-install-footer{margin-top:16px}.pwa-install-nav{margin-top:8px}.pwa-installed [data-pwa-install]{display:none!important}
.pwa-dialog{border:0;padding:0;background:transparent;max-width:440px;width:calc(100% - 24px);margin:auto auto 12px}.pwa-dialog::backdrop{background:rgba(10,12,16,.55)}.pwa-sheet{background:#fff;color:#14161a;border-radius:20px;padding:20px;font-size:15px;line-height:1.45}.pwa-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.pwa-head h2{margin:0;font-size:20px}.pwa-close{border:0;background:#f1f2f4;width:36px;height:36px;border-radius:50%;font-size:16px;cursor:pointer}.pwa-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}.pwa-steps li{display:flex;gap:12px;align-items:flex-start}.pwa-steps small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6}.pwa-badge{flex:0 0 40px;height:40px;border-radius:12px;background:#24483e;color:#fff;display:inline-flex;align-items:center;justify-content:center}.pwa-badge .pwa-ico{width:22px;height:22px}.pwa-alert{background:#fff6e5;color:#5a3b00;border-radius:12px;padding:12px;margin:14px 0}.pwa-note{font-size:13px;opacity:.7;margin:14px 0 0}
.dossier-table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}.dossier-table th,.dossier-table td{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid rgba(0,0,0,.08)}.dossier-text{white-space:pre-wrap;font-size:13px}.dossier-pre{white-space:pre-wrap;font-size:13px;background:rgba(0,0,0,.04);padding:12px;border-radius:10px}
@media(max-width:700px){.pwa-install-header span{display:none}.pwa-install-header{padding:6px}}

/* ------------------------------------------------------------------ */
/* Mode application (mobile et app installée) — html[data-app-mode]    */
/* posé avant le premier rendu par /app-mode.js.                        */
/* ------------------------------------------------------------------ */
header {
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: max(4.5%, env(safe-area-inset-left, 0px));
  padding-right: max(4.5%, env(safe-area-inset-right, 0px));
  height: calc(104px + env(safe-area-inset-top, 0px));
}
@media (max-width: 800px) {
  header {
    height: calc(82px + env(safe-area-inset-top, 0px));
    padding-left: max(5%, env(safe-area-inset-left, 0px));
    padding-right: max(5%, env(safe-area-inset-right, 0px));
  }
  /* Cibles tactiles de 44px dans l'en-tête. */
  header button#menu,
  header .login {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}
/* Menu latéral : sous la barre de statut, défile seul jusqu'au dernier lien. */
#drawer {
  padding-top: calc(85px + env(safe-area-inset-top, 0px));
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
#drawer #closeMenu {
  top: calc(20px + env(safe-area-inset-top, 0px));
}
html:has(dialog[open]) {
  overflow: hidden;
}
html[data-app-mode='mobile'],
html[data-app-mode='standalone'] {
  -webkit-tap-highlight-color: transparent;
}
html[data-app-mode='mobile'] body,
html[data-app-mode='standalone'] body {
  overscroll-behavior-y: none;
}
html[data-app-mode='mobile'] input:not([type='checkbox']):not([type='radio']),
html[data-app-mode='mobile'] select,
html[data-app-mode='mobile'] textarea,
html[data-app-mode='standalone'] input:not([type='checkbox']):not([type='radio']),
html[data-app-mode='standalone'] select,
html[data-app-mode='standalone'] textarea {
  font-size: 16px;
}
/* App installée : pas de pied de page marketing. */
html[data-app-mode='standalone'] body > footer {
  display: none;
}
.app-tabbar {
  display: none;
}
@media (max-width: 1023px) {
  .app-tabbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 18;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    padding: 4px max(6px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(6px, env(safe-area-inset-left, 0px));
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid #d2d9d2;
    box-shadow: 0 -8px 24px #00000010;
  }
  .app-tabbar__item {
    display: flex;
    min-height: 56px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border-radius: 12px;
    color: #5b6b63;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
  }
  .app-tabbar__item svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .app-tabbar__item.is-active {
    color: #24483e;
  }
  .app-tabbar__item:active {
    background: #24483e10;
  }
  body {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }
  #help {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 800px) {
  /* Photos entières sur mobile (format 3:2 d'origine, aucun recadrage). */
  .card img,
  .split img {
    height: auto;
    aspect-ratio: 3 / 2;
  }
  /* Bandeaux de page : proportions d'origine (certaines photos sont verticales). */
  .page-banner img {
    height: auto;
    max-height: 70vh;
    object-fit: contain;
    background: #efe9df;
  }
  .split img {
    border-radius: 90px 90px 5px 5px;
  }
}

#drawer nav a.drawer-login {
  font: 600 15px 'DM Sans', sans-serif;
  border: 1px solid currentColor;
  border-radius: 30px;
  padding: 12px 20px;
  text-align: center;
  margin-bottom: 8px;
}
