/* Filigrane — une page d'archives sur parchemin : colonnes de registre, cotes dactylographiées,
   encre bleue tranchée pour les accents, un seul rouge, celui du cachet de cire. */
:root{
  --paper:#ECE4CF; --surface:#F5EFE0; --ink:#2A2017; --muted:#6A5A44; --accent:#1F4570; --seal:#8E2B23; --line:#D2C4A2;
  /* back office : interface neutre sur fond blanc, indépendante des couleurs du site */
  --a-bg:#FFFFFF; --a-soft:#F6F6F4; --a-ink:#1E1E1C; --a-muted:#6B6B66; --a-line:#DADAD5; --a-accent:#1F4570; --a-danger:#B3261E;
  --a-gen:#E7EEF7; --a-gen-line:#C3D2E5; --a-gen-on:#24476F; --a-sec:#F7EEDA; --a-sec-line:#E0CC9E; --a-sec-on:#7A5719;
  --f-display:"IM Fell English", "Iowan Old Style", Georgia, serif;
  --f-body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --f-mono:"Courier Prime", "Courier New", monospace;
  --f-script:"Pinyon Script", "Snell Roundhand", "Apple Chancery", cursive;
  --maxw:1120px;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background-color:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
/* Parchemin : grain + taches + bords brunis, fixés derrière le contenu */
.parchment{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.3 0 0 0 0 0.15 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 45% 35% at 18% 22%, rgba(160,120,60,.13), transparent 70%),
    radial-gradient(ellipse 40% 30% at 82% 70%, rgba(150,105,45,.12), transparent 70%),
    radial-gradient(ellipse 30% 25% at 60% 15%, rgba(255,250,230,.35), transparent 70%),
    radial-gradient(ellipse 120% 100% at 50% 50%, transparent 60%, rgba(120,85,35,.2) 100%),
    var(--paper);}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--paper)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.1;text-wrap:balance;margin:0}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem);letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.45rem}
h1 em,h2 em{font-style:italic;color:var(--accent)}
p{margin:0}
.lead{font-size:1.15rem;color:var(--muted);max-width:60ch}
.cote{font-family:var(--f-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.5em;font:600 .95rem var(--f-body);padding:.85em 1.4em;border-radius:2px;border:1px solid var(--ink);background:var(--ink);color:var(--surface);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--surface)}

/* en-tête */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.8rem;position:relative}
.brand{display:flex;align-items:center;gap:.75rem;flex:none;text-decoration:none;color:var(--ink);line-height:1}
.brand-txt{display:flex;flex-direction:column;max-width:190px}
.brand b{font-family:var(--f-display);font-weight:400;font-size:1.7rem}
.brand .brand-tag{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.brand-logo{display:block;width:auto;max-width:min(240px,50vw);object-fit:contain}
.brand-mode-logotag .brand-txt{max-width:128px}
@media (max-width:520px){.brand-logo{max-height:44px}.brand-mode-both .brand-tag{display:none}}
nav.main{display:flex;gap:1.1rem;align-items:center}
nav.main a{color:var(--ink);text-decoration:none;font-size:var(--nav-fs,.94rem);font-weight:var(--nav-w,600);font-style:var(--nav-st,normal);white-space:nowrap}
nav.main a:not(.cta){text-decoration-line:underline;text-decoration-thickness:3px;text-decoration-color:transparent;text-underline-offset:.5em;transition:text-decoration-color .15s,color .15s}
nav.main a:not(.cta):hover,nav.main a:not(.cta):focus-visible{color:var(--accent);text-decoration-color:var(--accent)}
nav.main a.cta{background:var(--accent);color:var(--surface);border:1px solid var(--accent);padding:.5em 1em;border-radius:2px;font-weight:600}
header.top nav.main.open{display:flex}
nav.main a.cta:hover{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);font:inherit;padding:.4em .7em;cursor:pointer}
/* menu repliable : activé par le script quand les liens ne tiennent plus sur une ligne */
.top.compact .burger{display:block}
.top.compact nav.main{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:flex-start;gap:0;background:var(--surface);border-bottom:1px solid var(--line);padding:.5rem max(16px,env(safe-area-inset-right,0px)) 1rem max(16px,env(safe-area-inset-left,0px))}
.top.compact nav.main.open{display:flex}
.top.compact nav.main a{padding:.6rem 0;width:100%;border-bottom:1px dashed var(--line)}
.top.compact nav.main a.cta{width:auto;border:1px solid var(--accent);margin-top:.8rem;padding:.6rem 1.1rem}
@media (max-width:700px){
  .burger{display:block}
  nav.main{display:none}
}

section{padding-block:clamp(3.5rem,8vw,6.5rem);scroll-margin-top:70px}
section + section{border-top:1px solid var(--line)}
.sec-head{display:grid;gap:1rem;margin-bottom:2.8rem;max-width:760px}
/* en-tête de section accompagné d'un visuel */
.sec-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;margin-bottom:2.8rem}
.sec-top .sec-head{margin-bottom:0}
.sec-visual{margin:0;min-width:0}
.sec-visual svg{display:block;width:100%;height:auto;max-height:360px;overflow:visible}
.sec-visual.photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);box-shadow:0 18px 36px -22px rgba(70,45,15,.55);transform:rotate(1.2deg);background:var(--surface)}
#methode .sec-top{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
#methode .sec-visual{order:-1}
@media (max-width:820px){.sec-top,#methode .sec-top{grid-template-columns:1fr}#methode .sec-visual{order:0}.sec-visual{max-width:460px}}
.sec-visual .i-paper{fill:var(--surface);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.sec-visual .i-line{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}
.sec-visual .i-ink{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;opacity:.8}
.sec-visual .i-rule{fill:none;stroke:var(--line);stroke-width:1.1}
.sec-visual .i-acc{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}
.sec-visual .dash{stroke-dasharray:3 4}
.sec-visual .i-accf{fill:var(--accent)}
.sec-visual .i-inkf{fill:var(--ink)}
.sec-visual .i-rim{fill:none;stroke:var(--ink);stroke-width:7}
.sec-visual .i-handle{stroke:var(--ink);stroke-width:15;stroke-linecap:round}
.sec-visual .i-seal{fill:none;stroke:var(--seal);stroke-width:1.8;opacity:.75}
.sec-visual .i-seal.thin{stroke-width:1.1}
.sec-visual text{font-family:var(--f-mono)}
.sec-visual .i-year{font-size:13px;fill:var(--muted);letter-spacing:.04em}
.sec-visual .i-year.on{fill:var(--accent);font-weight:700}
.sec-visual .i-note{font-size:11px;fill:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.sec-visual .i-label{font-size:12px;fill:var(--ink);letter-spacing:.08em}
.sec-visual .i-label.sm{font-size:10px}
.sec-visual .i-sign{font-size:10px;fill:var(--surface);letter-spacing:.22em}
.sec-visual .i-paper.aged{fill:color-mix(in srgb,var(--surface) 70%,var(--line))}
.sec-visual .i-hand{color:var(--ink);opacity:.7}
.sec-visual .i-hand.big{opacity:.85}
.sec-visual .i-folio{font-family:var(--f-display);font-style:italic;font-size:12px;fill:var(--muted)}
.sec-visual .i-glare{fill:none;stroke:var(--surface);stroke-width:4;stroke-linecap:round;opacity:.9}
.sec-visual .i-sealline{stroke:var(--seal);stroke-width:1.2;opacity:.7}
.sec-visual .i-cardhead{font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;fill:var(--muted)}
.sec-visual .i-notes{font-family:var(--f-mono);font-size:10.5px;fill:var(--accent)}
.sec-visual .i-notes.q{fill:var(--seal)}
.sec-visual .i-sealpen{fill:none;stroke:var(--seal);stroke-width:1.4;stroke-linecap:round}
.sec-visual .i-clip{fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sec-visual .i-pencil{fill:var(--surface);stroke:var(--ink);stroke-width:1.4}
.sec-visual .i-acc-f{fill:var(--accent);stroke:var(--ink);stroke-width:1.4}
.sec-visual .i-photo{fill:#FBF8F1;stroke:var(--line);stroke-width:1}
.sec-visual .i-sepia{fill:color-mix(in srgb,var(--muted) 55%,var(--line))}
.sec-visual .i-sepia-l{fill:color-mix(in srgb,var(--surface) 55%,var(--line));opacity:.85}
.sec-visual .i-sil{fill:color-mix(in srgb,var(--ink) 78%,var(--muted))}
.sec-visual .i-corner{fill:var(--ink)}
.sec-visual .i-hand-s{fill:none;stroke:var(--ink);stroke-width:.9;stroke-linecap:round;opacity:.75}
.sec-visual .i-tree{font-family:var(--f-mono);font-size:9px;fill:var(--ink)}
.sec-visual .i-tree.sm{font-size:8px}
.sec-visual .i-tree.muted{fill:var(--muted)}
.sec-visual .i-cote-s{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;fill:var(--muted)}
.sec-visual .i-stamp-r{fill:none;stroke:var(--seal);stroke-width:2.2;opacity:.8}
.sec-visual .i-stamp{font-family:var(--f-mono);font-size:17px;font-weight:700;letter-spacing:.3em;fill:var(--seal);opacity:.8}
.sec-visual .i-sea{fill:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.sec-visual .i-river{fill:none;stroke:var(--accent);stroke-width:1.3;opacity:.6}
.sec-visual .i-route{fill:none;stroke:var(--seal);stroke-width:1.8;stroke-dasharray:5 4;stroke-linecap:round}
.sec-visual .i-town{fill:var(--seal);stroke:var(--surface);stroke-width:1.5}
.sec-visual .i-place{font-family:var(--f-display);font-style:italic;font-size:14px;fill:var(--ink)}
.sec-visual .i-line.thin{stroke-width:1}
.sec-visual .i-board{fill:color-mix(in srgb,var(--line) 70%,var(--muted));stroke:var(--ink);stroke-width:2}
.sec-visual .i-pin{fill:var(--seal)}
.sec-visual .i-pin-h{fill:#FFFFFF;opacity:.6}
.sec-visual .i-string{stroke:var(--seal);stroke-width:1.4;opacity:.85}
.sec-visual .i-bp-bg{fill:color-mix(in srgb,var(--accent) 7%,var(--surface));stroke:var(--accent);stroke-width:1.5}
.sec-visual .i-bp-grid line{stroke:var(--accent);stroke-width:.5;opacity:.18}
.sec-visual .i-bp{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}
.sec-visual .i-bp.thin{stroke-width:.8}
.sec-visual .i-bp-dim line{stroke:var(--accent);stroke-width:1;opacity:.8}
.sec-visual .i-bp-t{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;fill:var(--accent)}
.sec-visual .i-bp-t.sm{font-size:8.5px}
.sec-visual .i-bk1{fill:var(--accent);stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-bk2{fill:color-mix(in srgb,var(--seal) 85%,var(--ink));stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-bk3{fill:color-mix(in srgb,var(--ink) 85%,var(--accent));stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-bk4{fill:color-mix(in srgb,var(--line) 85%,var(--muted));stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-band{stroke:color-mix(in srgb,#E9D9A6 85%,transparent);stroke-width:1.3}
.sec-visual .i-band.dark{stroke:var(--muted)}
.sec-visual .i-spine{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;fill:#F3E6C2}
.sec-visual .i-spine.dark{fill:var(--ink)}
.sec-visual .i-shelf{fill:color-mix(in srgb,var(--muted) 70%,var(--ink));stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-ribbon{fill:none;stroke:var(--seal);stroke-width:2.2;stroke-linecap:round}
.sec-visual .i-kraft{fill:color-mix(in srgb,#C9A877 75%,var(--surface));stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}
.sec-visual .i-kraft-d{fill:color-mix(in srgb,#B8935F 80%,var(--surface));stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}
.sec-visual .i-kraft-line{fill:none;stroke:color-mix(in srgb,var(--ink) 45%,transparent);stroke-width:1.1}
.sec-visual .i-kraft-tag{fill:color-mix(in srgb,#D8BF92 80%,var(--surface));stroke:var(--ink);stroke-width:1.2}
.sec-visual .i-string2{fill:none;stroke:var(--muted);stroke-width:1.3}
.sec-visual .i-script{font-family:var(--f-script);font-size:30px;fill:#2B1C0C}
.sec-visual .i-script.sm{font-size:16px}
.sec-visual .i-wax{fill:var(--seal);stroke:color-mix(in srgb,var(--seal) 70%,#000);stroke-width:1.5}
.sec-visual .i-wax-ring{fill:none;stroke:color-mix(in srgb,var(--seal) 60%,#000);stroke-width:1.6;opacity:.8}
.sec-visual .i-wax-t{font-family:var(--f-script);font-size:26px;fill:color-mix(in srgb,var(--seal) 55%,#000)}
.sec-visual.photo.real img{aspect-ratio:1200/850;height:auto;border:none;border-radius:3px;box-shadow:0 22px 40px -24px rgba(50,30,10,.7),0 2px 6px rgba(50,30,10,.25);transform:rotate(-.8deg)}
#offrir .sec-visual.real{margin:0}
.gift-env{margin:0}
.gift-env svg{max-height:420px}
.sec-visual .i-caption{font-family:var(--f-display);font-style:italic;font-size:17px;fill:var(--muted)}

/* accueil */
.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(3rem,7vw,5.5rem)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero-text{display:grid;gap:1.5rem;min-width:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}
.dossier{position:relative;background:var(--surface);border:1px solid var(--line);padding:1.6rem 1.6rem 1.8rem;transform:rotate(-1.2deg);box-shadow:0 18px 40px -24px rgba(70,45,15,.55);display:grid;gap:.9rem;min-width:0}
.dossier::before{content:"";position:absolute;inset:0;background:var(--surface);border:1px solid var(--line);transform:rotate(3deg) translate(10px,8px);z-index:-1}
.dossier .dt{font-family:var(--f-display);font-size:1.35rem}
.dossier .extract{font-family:var(--f-mono);font-size:.9rem;line-height:1.65;border-left:2px solid var(--line);padding-left:.9rem}
.dossier .annot{font-family:var(--f-display);font-style:italic;color:var(--accent);font-size:1.08rem;line-height:1.35}
.stamp{position:absolute;right:-14px;bottom:-22px;width:92px;height:92px;border-radius:50%;border:2px solid var(--seal);color:var(--seal);display:grid;place-items:center;text-align:center;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-14deg);opacity:.85;line-height:1.3;padding:.5rem}
.stamp::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px dashed var(--seal)}
@media (max-width:820px){.hero .wrap{grid-template-columns:1fr}.dossier{transform:rotate(-.6deg);margin-right:12px}}

/* au-delà de l'arbre */
.compare{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.compare > div{padding:1.8rem;display:grid;gap:1rem;align-content:start;min-width:0}
.compare > div + div{border-left:1px solid var(--line)}
.compare .tree p{font-family:var(--f-mono);font-size:.95rem;line-height:1.9}
.compare .story p{font-family:var(--f-display);font-size:1.3rem;line-height:1.45}
.points{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:3rem}
.points div{display:grid;gap:.5rem;align-content:start;border-top:2px solid var(--ink);padding-top:1rem}
.points h3{font-size:1.25rem}
.points p{color:var(--muted);font-size:.97rem}
@media (max-width:820px){.compare{grid-template-columns:1fr}.compare > div + div{border-left:none;border-top:1px solid var(--line)}.points{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.points{grid-template-columns:1fr}}

/* méthode */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:s;border-top:1px solid var(--ink)}
.steps li{counter-increment:s;padding:1.4rem 1.4rem 0 0;display:grid;gap:.5rem;align-content:start}
.steps li::before{content:"Étape " counter(s);font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.steps p{color:var(--muted);font-size:.97rem}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr;row-gap:1.5rem}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* offres */
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}
.offer{display:grid;gap:.6rem;align-content:start}
.offer .cote{color:var(--accent)}
.offer p{color:var(--muted)}
.offer .ex{font-family:var(--f-display);font-style:italic;color:var(--ink);font-size:1.05rem;border-left:2px solid var(--accent);padding-left:.8rem;margin-top:.3rem}
.deliv{margin-top:2rem;color:var(--muted)}

/* offrir */
.gift-sec{background:color-mix(in srgb,var(--surface) 55%,transparent)}
.gift{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.gift-text{display:grid;gap:1.2rem;min-width:0}
.gift-text ul{margin:0;padding:0;list-style:none;display:grid;gap:.4rem}
.gift-text li{padding-left:1.4rem;position:relative}
.gift-text li::before{content:"✦";position:absolute;left:0;color:var(--seal);font-size:.8em;top:.2em}
@media (max-width:820px){.gift{grid-template-columns:1fr}}

/* Bon cadeau parcheminé */
.voucher-wrap{position:relative;transform:rotate(-4deg);margin:1.5rem 1.2rem 2.5rem;filter:drop-shadow(0 14px 18px rgba(70,40,10,.35)) drop-shadow(0 2px 2px rgba(70,40,10,.25));min-width:0}
.voucher{position:relative;padding:clamp(1.4rem,3vw,2.2rem);color:#3A2814;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.035 .9' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.3 0 0 0 0 0.12 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 30% 22% at 78% 28%, rgba(150,95,35,.18), transparent 70%),
    radial-gradient(ellipse 25% 18% at 22% 78%, rgba(150,95,35,.15), transparent 70%),
    radial-gradient(ellipse at 50% 45%, #F6EBCF 0%, #EEDCB3 55%, #DEC08A 85%, #C89F62 100%);}
.voucher::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 38px 10px rgba(130,80,25,.38)}
.v-frame{position:relative;border:3px double rgba(90,55,20,.75);outline:1px solid rgba(90,55,20,.4);outline-offset:5px;padding:clamp(1.4rem,3.5vw,2.2rem) clamp(1rem,3vw,1.8rem) clamp(1.6rem,3.5vw,2.4rem);text-align:center;display:grid;gap:.85rem}
.v-corner{position:absolute;font-family:var(--f-display);font-size:1.4rem;line-height:1;color:rgba(90,55,20,.8)}
.v-corner.tl{top:4px;left:7px}.v-corner.tr{top:4px;right:7px;transform:scaleX(-1)}
.v-corner.bl{bottom:4px;left:7px;transform:scaleY(-1)}.v-corner.br{bottom:4px;right:7px;transform:scale(-1,-1)}
.v-kicker{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(70,45,15,.8)}
.v-title{font-family:var(--f-script);font-size:clamp(2.1rem,4.6vw,3.1rem);line-height:1.05;color:#2B1C0C}
.v-orn{font-family:var(--f-display);color:rgba(110,65,20,.85);letter-spacing:.6em;font-size:1rem}
.v-line{display:flex;gap:.6rem;align-items:baseline;font-family:var(--f-display);font-style:italic;font-size:1.08rem;text-align:left;color:#3A2814}
.v-line i{flex:1;border-bottom:1px solid rgba(90,55,20,.55);height:1em}
.v-foot{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(70,45,15,.75);margin-top:.4rem}
.wax{position:absolute;right:-18px;bottom:-30px;width:96px;height:96px;transform:rotate(9deg)}
.wax .ribbon{position:absolute;width:24px;height:70px;background:linear-gradient(90deg,#6f1913,#a23026 50%,#6f1913);top:52px;clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}
.wax .ribbon.r1{left:22px;transform:rotate(18deg)}.wax .ribbon.r2{left:48px;transform:rotate(-14deg)}
.wax .disc{position:absolute;inset:0;border-radius:47% 53% 50% 48% / 52% 46% 54% 48%;background:radial-gradient(circle at 34% 30%,#c4483b 0%,#9b2a20 38%,#6c1610 78%,#55100b 100%);box-shadow:0 3px 6px rgba(50,10,5,.45),inset -3px -4px 8px rgba(40,5,0,.45),inset 3px 3px 6px rgba(255,170,150,.25);display:grid;place-items:center}
.wax .disc::before{content:"";position:absolute;inset:14px;border-radius:50%;border:2px solid rgba(60,10,5,.45);box-shadow:inset 1px 1px 2px rgba(255,170,150,.3),1px 1px 1px rgba(255,170,150,.18)}
.wax .disc span{font-family:var(--f-script);font-size:2.6rem;line-height:1;color:#5a110c;text-shadow:1px 1px 0 rgba(255,160,140,.35),-1px -1px 0 rgba(40,0,0,.5);position:relative;top:4px}
@media (max-width:520px){.voucher-wrap{transform:rotate(-2.5deg);margin-inline:.4rem 1.2rem}.wax{width:78px;height:78px;right:-10px}.wax .disc span{font-size:2.1rem}}

/* encart calculateur de devis */
.calc-cta{margin-top:2rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem 1.4rem;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface));padding:1.2rem 1.4rem}
.calc-cta p{color:var(--ink);max-width:60ch}
.calc-ico{width:34px;height:42px;fill:var(--surface);stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.calc-ico line{stroke-width:2;stroke-linecap:round;opacity:.7}
.calc-ico line.tot{stroke-width:3;opacity:1}
.calc-cta.compact{grid-template-columns:auto minmax(0,1fr);margin-top:.4rem}
.calc-cta.compact .btn{grid-column:1 / -1;justify-self:start}
@media (max-width:640px){.calc-cta{grid-template-columns:auto minmax(0,1fr)}.calc-cta .btn{grid-column:1 / -1;justify-self:start}}

/* exemples des tarifs */
.ex-link{justify-self:start;background:none;border:none;padding:0;color:var(--accent);font:600 .92rem var(--f-body);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;cursor:pointer}
.ex-link:hover{text-decoration-thickness:2px}
.ex-link.sm{font-size:.78rem;font-weight:500;margin-left:.15rem;white-space:nowrap}
.ex-inc{list-style:none;padding:0 !important;font-family:var(--f-body) !important;font-size:.97rem !important;gap:.45rem !important}
.ex-inc li{position:relative;padding-left:1.5rem}
.ex-inc li::before{content:"";position:absolute;left:.15rem;top:.35em;width:.45rem;height:.8rem;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(40deg)}
.ex-note{font-family:var(--f-display);font-style:italic;color:var(--muted);border-top:1px dashed var(--line);padding-top:.8rem}

/* CGV */
.foot-links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.fiche-cgv{gap:1.4rem}
.cgv-intro{color:var(--muted);max-width:65ch}
.cgv-toc{border-block:1px solid var(--line);padding-block:1rem}
.cgv-toc ol{list-style:none;margin:0;padding:0;columns:2 16rem;column-gap:2rem}
.cgv-toc li{break-inside:avoid;padding-block:.18rem}
.cgv-toc a{color:var(--ink);text-decoration:none;font-size:.92rem;display:flex;gap:.5rem}
.cgv-toc a span{font-family:var(--f-mono);font-size:.72rem;color:var(--muted);min-width:4.6rem;padding-top:.15rem;white-space:nowrap}
.cgv-toc a:hover{color:var(--accent)}
.cgv-art{display:grid;gap:.7rem;scroll-margin-top:1rem;max-width:68ch;padding-top:1.2rem;border-top:1px dashed var(--line)}
.cgv-toc + .cgv-art{border-top:none;padding-top:0}
.cgv-art h3{font-size:1.3rem;display:grid;gap:.2rem}
.cgv-art p,.cgv-art li{font-size:.96rem;line-height:1.6}
.cgv-art ul{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}
mark.ph,.admin mark.ph{background:#FBE7A1;color:#3A2A00;padding:0 .15em;border-radius:2px}

/* témoignages */
.testis-sec .testis{margin-top:0}
.testis{margin-top:3.5rem;padding:2.2rem clamp(1rem,3vw,2.4rem) 2.8rem;background:color-mix(in srgb,var(--surface) 55%,transparent);border:1px solid var(--line);display:grid;gap:2rem;scroll-margin-top:90px}
.testis-head{display:grid;gap:.4rem}
.testis-head h3{font-size:clamp(1.6rem,2.8vw,2.2rem)}
.testi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:2rem 1.8rem;align-items:start}
.testi{position:relative;margin:0;background:var(--surface);border:1px solid var(--line);padding:2.4rem 1.4rem 1.3rem;box-shadow:0 14px 26px -18px rgba(70,45,15,.6);display:grid;gap:1rem;min-width:0}
.testi.t0{transform:rotate(-1.4deg)}
.testi.t1{transform:rotate(1deg);margin-top:.9rem}
.testi.t2{transform:rotate(-.5deg);margin-top:.3rem}
.testi::before{content:"\201C";position:absolute;top:.1rem;left:1rem;font-family:var(--f-display);font-size:4.4rem;line-height:1;color:var(--accent)}
.testi blockquote{margin:0;font-family:var(--f-display);font-style:italic;font-size:1.13rem;line-height:1.5;color:var(--ink)}
.testi figcaption{display:grid;gap:.2rem;border-top:1px dashed var(--line);padding-top:.75rem}
.testi .sig{font-family:var(--f-script);font-size:1.75rem;line-height:1.05;color:var(--ink)}
.testi .tape{position:absolute;top:-12px;left:50%;width:86px;height:24px;transform:translateX(-50%) rotate(-3deg);background:color-mix(in srgb,var(--line) 60%,transparent);border-inline:1px dashed color-mix(in srgb,var(--muted) 40%,transparent)}
.testi.t1 .tape{transform:translateX(-40%) rotate(4deg)}
.ex-badge{position:absolute;top:.7rem;right:.7rem;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--seal);border:1px solid var(--seal);padding:.1rem .35rem;transform:rotate(3deg);background:var(--surface)}
.member-link{justify-self:start;margin-top:.2rem;font-weight:600;font-size:.92rem;color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.member-link:hover{text-decoration-thickness:2px}

/* ======== calculateur de devis (devis.html) ======== */
.q-top .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:.8rem}
.q-back{color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem;white-space:nowrap}
.q-back:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.5em}
.q-hero{padding-block:clamp(2.2rem,5vw,4rem) 1.5rem}
.q-hero .wrap{display:grid;gap:1rem}
.q-main{padding-block:1rem clamp(4rem,8vw,6rem);border-top:none}
.q-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.q-form{display:grid;gap:1.1rem;min-width:0}
.q-block{margin:0;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 75%,transparent);padding:1.3rem 1.4rem 1.4rem;display:grid;gap:.85rem;min-width:0}
.q-block legend{font-family:var(--f-display);font-size:1.35rem;padding:0 .5rem;margin-left:-.5rem;display:flex;align-items:center;gap:.6rem}
.q-n{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;border:1px solid var(--accent);color:var(--accent);font-family:var(--f-mono);font-size:.8rem}
.q-help{color:var(--muted);font-size:.93rem;max-width:62ch}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pill{position:relative;cursor:pointer}
.pill input{position:absolute;opacity:0;width:1px;height:1px}
.pill span{display:grid;gap:.1rem;justify-items:center;text-align:center;min-width:3rem;padding:.55rem .95rem;border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:.95rem;line-height:1.2;border-radius:2px;transition:background .12s,border-color .12s}
.pill small{font-weight:400;font-family:var(--f-mono);font-size:.68rem;color:var(--muted);letter-spacing:.02em}
.pill:hover span{border-color:var(--ink)}
.pill input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.pill input:checked + span small{color:color-mix(in srgb,var(--surface) 75%,transparent)}
.pill input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.pills.gen .pill span{min-width:3.3rem;font-family:var(--f-display);font-size:1.35rem;font-weight:400;padding:.4rem .6rem}
.pills.sm .pill span{font-size:.88rem;padding:.4rem .75rem;min-width:2.6rem}
.pills.gen.sm .pill span{font-size:1.1rem;min-width:2.6rem}
.q-sub{display:grid;gap:.45rem;padding-left:1rem;border-left:2px solid var(--line)}
.q-sublabel{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);width:max-content}
.stepper button{width:2.4rem;height:2.4rem;border:none;background:none;color:var(--ink);font-size:1.2rem;cursor:pointer}
.stepper button:hover{background:color-mix(in srgb,var(--line) 50%,transparent)}
.stepper output{min-width:2.2rem;text-align:center;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.q-included{display:flex;gap:.6rem;align-items:flex-start;font-size:.93rem;padding:.75rem .9rem;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-left:3px solid var(--accent)}
.q-included svg{flex:none;width:1.2rem;height:1.2rem;margin-top:.1rem;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tip{position:relative;font-weight:600;color:var(--accent);border-bottom:1px dotted var(--accent);cursor:help;outline:none}
.tip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tip-bubble{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(calc(-50% + var(--dx,0px)));width:min(290px,calc(100vw - 32px));padding:.7rem .85rem;background:var(--ink);color:var(--surface);font-weight:400;font-size:.84rem;line-height:1.45;border-radius:4px;box-shadow:0 10px 24px -10px rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity .15s;z-index:5;pointer-events:none}
.tip-bubble::after{content:"";position:absolute;top:100%;left:calc(50% - var(--dx,0px));margin-left:-6px;border:6px solid transparent;border-top-color:var(--ink)}
.tip:hover .tip-bubble,.tip:focus .tip-bubble{opacity:1;visibility:visible}
.checks{display:grid;gap:.6rem}
.check{display:flex;gap:.8rem;align-items:flex-start;padding:.75rem .9rem;border:1px solid var(--line);background:var(--surface);cursor:pointer}
.check input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--accent);flex:none}
.check span{display:grid;gap:.1rem;min-width:0}
.check small{color:var(--muted);font-size:.85rem}
.check.off{opacity:.5;cursor:not-allowed}
.check:has(input:checked){border-color:var(--ink)}
.q-left{display:grid;gap:1.6rem;min-width:0}
.q-side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 100px);min-width:0;max-height:calc(100vh - 120px);overflow-y:auto;padding:10px 4px 24px;margin:-10px -4px 0}
.ticket{position:relative;background:var(--surface);padding:1.6rem 1.4rem 1.4rem;display:grid;gap:1rem;box-shadow:0 18px 34px -22px rgba(70,45,15,.6);border:1px solid var(--line);border-top:none}
.ticket::before{content:"";position:absolute;left:-1px;right:-1px;top:-8px;height:8px;background:radial-gradient(circle at 6px 0,transparent 5px,var(--surface) 5.5px) 0 0/12px 8px repeat-x}
.ticket h2{font-size:1.7rem}
.t-lines{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.t-lines li{display:flex;align-items:baseline;gap:.5rem}
.t-lines .tl{display:grid;gap:.1rem;min-width:0;flex:0 1 auto}
.t-lines .tl b{font-weight:600;font-size:.95rem}
.t-lines .tl small{color:var(--muted);font-size:.8rem}
.t-lines .dots{flex:1 1 1rem;min-width:1rem;border-bottom:1px dotted var(--muted);transform:translateY(-.3em);align-self:flex-start;margin-top:1em}
.t-lines .tp{flex:none;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:.92rem;white-space:nowrap}
.t-total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:2px solid var(--ink);padding-top:.8rem}
.t-total span{font-family:var(--f-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.t-total strong{font-family:var(--f-display);font-weight:400;font-size:2.4rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent)}
.t-tax{margin-top:-.5rem;text-align:right;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.02em;color:var(--muted)}
.t-note{font-size:.85rem;color:var(--seal);border:1px dashed color-mix(in srgb,var(--seal) 60%,transparent);padding:.6rem .7rem}
.t-detail summary{cursor:pointer;font-size:.88rem;color:var(--accent);font-weight:600}
.t-scroll{overflow-x:auto;margin-top:.6rem}
.t-scroll table{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}
.t-scroll th,.t-scroll td{text-align:right;padding:.3rem .4rem;border-bottom:1px solid var(--line);white-space:nowrap}
.t-scroll th:first-child,.t-scroll td:first-child{text-align:left}
.t-scroll th{font-family:var(--f-mono);font-weight:400;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.t-scroll tfoot td{font-weight:600;border-bottom:none}
.q-request{display:grid;gap:.8rem;border:1px solid var(--line);padding:1.3rem 1.4rem;background:color-mix(in srgb,var(--surface) 60%,transparent)}
.q-request h3{font-size:1.4rem}
.q-bar{display:none}
@media (max-width:900px){
  .q-grid{grid-template-columns:1fr}
  .q-side{position:static;max-height:none;overflow:visible;order:-1}
  .q-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;align-items:center;gap:1rem;background:var(--ink);color:var(--surface);padding:.7rem max(16px,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
  .q-bar span{font-family:var(--f-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
  .q-bar strong{font-family:var(--f-display);font-weight:400;font-size:1.6rem;margin-right:auto}
  .q-bar a{color:var(--surface);font-weight:600;font-size:.9rem}
  body.q-page footer{padding-bottom:5rem}
}
.admin .fld.num input{max-width:140px}

/* tarifs */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;align-items:start}
.plan{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 85%,transparent);padding:1.8rem;display:grid;gap:1rem;position:relative}
.plan.featured{border-color:var(--ink);box-shadow:6px 6px 0 var(--ink)}
.plan .flag{position:absolute;top:-.8rem;left:1.4rem;background:var(--ink);color:var(--surface);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .6rem}
.plan .price{font-family:var(--f-display);font-size:2.5rem;line-height:1;font-variant-numeric:tabular-nums}
.plan .price small{font-family:var(--f-body);font-size:.85rem;color:var(--muted)}
.plan ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem;font-size:.95rem}
.plan li{padding-left:1.2rem;position:relative}
.plan li::before{content:"—";position:absolute;left:0;color:var(--accent)}
.plan .desc{color:var(--muted);font-size:.95rem}
.pro-line{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:1.3rem 1.6rem}
.pro-line strong{font-family:var(--f-display);font-weight:400;font-size:1.35rem}
.pro-line .cote{color:var(--ink)}
.note{margin-top:1rem;color:var(--muted);font-size:.88rem}
@media (max-width:900px){.plans{grid-template-columns:1fr;max-width:520px}}

/* réalisations */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.case{position:relative;border-top:1px solid var(--ink);padding-top:1.2rem;display:grid;gap:.6rem;align-content:start;grid-template-rows:auto auto auto 1fr auto}
.case:hover h3{color:var(--accent)}
.case-link{justify-self:start;margin-top:.3rem;background:none;border:none;border-bottom:1px solid var(--accent);color:var(--accent);font:600 .92rem var(--f-body);padding:0 0 .1rem;cursor:pointer}
.case-link::after{content:"";position:absolute;inset:0}
.case-link:focus-visible{outline:none}
.case:has(.case-link:focus-visible){outline:2px solid var(--accent);outline-offset:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.case .meta{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.case .tag{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:var(--surface);padding:.15rem .5rem}
.case p{color:var(--muted);font-size:.97rem}
@media (max-width:900px){.cases{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cases{grid-template-columns:1fr}}

/* équipe */
.team{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.member{display:grid;grid-template-columns:96px 1fr;gap:1.4rem;align-items:start}
.portrait{width:96px;height:120px;border:1px solid var(--ink);background:var(--surface);display:grid;place-items:center;font-family:var(--f-display);font-size:2.2rem;color:var(--accent);position:relative}
.portrait.has-photo{overflow:hidden;padding:0}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.portrait::after{content:"";position:absolute;inset:5px;border:1px solid var(--line)}
.member > div{display:grid;gap:.4rem;min-width:0}
.member p{color:var(--muted);font-size:.97rem}
@media (max-width:760px){.team{grid-template-columns:1fr}}

/* contact */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem)}
.contact-info{display:grid;gap:1.2rem;align-content:start;min-width:0}
.contact-info .sec-head{margin:0}
.contact-info dl{margin:0;display:grid;gap:.8rem}
.contact-info dt{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.contact-info dd{margin:0;user-select:all;overflow-wrap:anywhere}
form.cform{display:grid;gap:1rem;min-width:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label.f{display:grid;gap:.35rem;font-size:.85rem;color:var(--muted)}
.f input,.f select,.f textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:.7em .8em;width:100%}
.f textarea{min-height:130px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{font-size:.92rem;color:var(--accent)}
@media (max-width:760px){.contact{grid-template-columns:1fr}.row2{grid-template-columns:1fr}}

/* grille tarifaire détaillée */
.rates{margin-top:2rem;border:1px solid var(--ink);background:color-mix(in srgb,var(--surface) 85%,transparent)}
.rates summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.4rem;font-family:var(--f-display);font-size:1.3rem}
.rates summary::-webkit-details-marker{display:none}
.rates summary:hover{color:var(--accent)}
.rates .chev{width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-3px,-3px);transition:transform .2s;flex:none}
.rates[open] .chev{transform:rotate(-135deg) translate(-3px,-3px)}
.rates-body{border-top:1px solid var(--line);padding:1.4rem;display:grid;gap:1.6rem}
.rate-hourly{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:baseline}
.rate-hourly strong{font-family:var(--f-display);font-weight:400;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.rate-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1.6rem 2.6rem}
.rate-group{display:grid;gap:.7rem;align-content:start;min-width:0}
.rate-group h3{font-size:1.2rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
.rate-group .note{margin:0}
.rate-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.rate-list li{display:flex;align-items:baseline;gap:.5rem;font-size:.97rem}
.rate-list .rl{min-width:0;flex:0 1 auto}
.rate-list .dots{flex:1 1 1.5rem;min-width:1.5rem;border-bottom:1px dotted var(--muted);transform:translateY(-.3em)}
.rate-list .rp{flex:none;max-width:45%;text-align:right;font-family:var(--f-mono);font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--ink)}
.rate-fees{font-family:var(--f-display);font-style:italic;font-size:1.05rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:1rem}

/* fiche réalisation */
html.noscroll{overflow:hidden}
.modal-veil{position:fixed;inset:0;z-index:55;background:rgba(35,24,12,.55);overflow-y:auto;padding:calc(24px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:grid;justify-items:center;align-items:start}
.fiche{position:relative;width:min(760px,100%);margin-block:auto;background:var(--surface);border:1px solid var(--ink);box-shadow:0 30px 60px -25px rgba(30,15,0,.7);padding:clamp(1.4rem,4vw,2.6rem);display:grid;gap:1.2rem;animation:ficheIn .25s ease-out}
.fiche::before{content:"";position:absolute;top:-1px;left:clamp(1.4rem,4vw,2.6rem);width:120px;height:10px;background:var(--accent);transform:translateY(-100%)}
@keyframes ficheIn{from{transform:translateY(10px)}to{transform:none}}
.fiche h2{font-size:clamp(1.8rem,4vw,2.6rem);padding-right:2.5rem}
.fiche-x{position:absolute;top:12px;right:12px;width:38px;height:38px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.fiche-x:hover{border-color:var(--ink)}
.fiche-meta{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem 1.4rem;border-block:1px solid var(--line);padding-block:1rem}
.fiche-meta dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fiche-meta dd{margin:.15rem 0 0}
.fiche-img{margin:0;display:grid;gap:.45rem}
.fiche-img img{display:block;width:100%;max-height:420px;object-fit:cover;border:1px solid var(--line);background:var(--paper)}
.fiche-img figcaption{font-family:var(--f-display);font-style:italic;color:var(--muted);font-size:1rem}
.fiche-text{display:grid;gap:.9rem;max-width:65ch}
.fiche-text p:first-child{font-family:var(--f-display);font-size:1.25rem;line-height:1.45}
.fiche-block{display:grid;gap:.4rem}
.fiche-block ul{margin:0;padding-left:1.1rem;display:grid;gap:.25rem;font-family:var(--f-mono);font-size:.88rem}
.fiche-foot{padding-top:.4rem}

/* mentions légales */
.legal-dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1.4rem;margin:0;border-block:1px solid var(--line);padding-block:1rem}
.legal-dl dt{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:.15rem}
.legal-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.fiche-legal .fiche-block p{max-width:65ch;color:var(--muted)}
@media (max-width:560px){.legal-dl{grid-template-columns:1fr;gap:.15rem}.legal-dl dd{margin-bottom:.6rem}}

footer{border-top:1px solid var(--line);padding-block:2rem 3.5rem;font-size:.88rem;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}
footer a{color:var(--muted)}

/* ======== Accès administration ======== */
.gear{position:fixed;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;width:30px;height:30px;padding:5px;border:none;background:none;color:var(--muted);opacity:.35;cursor:pointer;transition:opacity .2s,transform .4s}
.gear:hover,.gear:focus-visible{opacity:1;transform:rotate(60deg)}
.gear svg{width:100%;height:100%;display:block}
.login-veil{position:fixed;inset:0;z-index:60;background:rgba(30,20,10,.45);display:grid;place-items:center;padding:16px}
.login{background:var(--a-bg);border:1px solid var(--a-line);border-radius:6px;width:min(360px,100%);padding:1.4rem;display:grid;gap:.9rem;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;color:var(--a-ink);box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.login b{font-size:16px}
.login input{font:inherit;font-size:15px;padding:9px 10px;border:1px solid var(--a-line);background:var(--a-bg);color:var(--a-ink);border-radius:4px;width:100%}
.login .btn{background:var(--a-ink);border-color:var(--a-ink);color:var(--a-bg);border-radius:4px;font-family:inherit}
.login .btn.ghost{background:var(--a-bg);color:var(--a-ink);border-color:var(--a-line)}
.login .row{display:flex;gap:8px;justify-content:flex-end}
.login .err{color:var(--a-danger);min-height:1.2em;font-size:13px}

/* ======== Back office ======== */
.admin{position:fixed;top:0;right:0;bottom:0;width:min(500px,100%);z-index:50;background:var(--a-bg);border-left:1px solid var(--a-line);display:flex;flex-direction:column;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;color:var(--a-ink);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px);box-shadow:-20px 0 40px -20px rgba(0,0,0,.4)}
.admin header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--a-line)}
.admin header b{font-size:15px}
.admin header small{display:block;color:var(--a-muted);font-weight:400;margin-top:2px}
.admin .x{background:var(--a-bg);border:1px solid var(--a-line);border-radius:4px;color:var(--a-ink);font-size:18px;width:34px;height:34px;cursor:pointer;flex:none}
.tabs{display:grid;gap:10px;padding:10px 16px 12px;border-bottom:1px solid var(--a-line);background:var(--a-soft)}
.tab-group{display:grid;gap:5px}
.tab-group > div{display:flex;gap:4px;flex-wrap:wrap}
.tg-label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--a-muted)}
.tab-group.gen button{background:var(--a-gen);border-color:var(--a-gen-line)}
.tab-group.sec button{background:var(--a-sec);border-color:var(--a-sec-line)}
.tab-group.gen button[aria-selected="true"]{background:var(--a-gen-on);border-color:var(--a-gen-on);color:#FFFFFF}
.tab-group.sec button[aria-selected="true"]{background:var(--a-sec-on);border-color:var(--a-sec-on);color:#FFFFFF}
.tabs button{font:inherit;font-size:13px;background:var(--a-bg);border:1px solid var(--a-line);color:var(--a-ink);padding:5px 9px;cursor:pointer;border-radius:4px}
.tabs button[aria-selected="true"]{background:var(--a-ink);color:var(--a-bg);border-color:var(--a-ink)}
.admin .body{flex:1;overflow:auto;padding:16px;display:grid;gap:14px;align-content:start}
.admin .fld{display:grid;gap:4px}
.admin .fld > span{font-size:12px;font-weight:600;color:var(--a-muted)}
.admin input[type=text],.admin input[type=password],.admin input[type=number],.admin textarea,.admin select{font:inherit;color:var(--a-ink);background:var(--a-bg);border:1px solid var(--a-line);border-radius:4px;padding:7px 8px;width:100%}
.admin textarea{min-height:76px;resize:vertical;line-height:1.45}
.admin details{border:1px solid var(--a-line);border-radius:4px;background:var(--a-soft)}
.admin summary{cursor:pointer;padding:9px 10px;font-weight:600;display:flex;justify-content:space-between;gap:8px}
.admin details > .inner{padding:4px 10px 12px;display:grid;gap:10px}
.admin fieldset{border:1px solid var(--a-line);border-radius:4px;background:var(--a-bg);padding:10px;display:grid;gap:10px;margin:0;min-width:0}
.admin legend{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:0 4px}
.admin .sm{font:inherit;font-size:12px;background:var(--a-bg);border:1px solid var(--a-line);color:var(--a-ink);padding:4px 8px;cursor:pointer;border-radius:4px}
.admin .sm:hover{border-color:var(--a-ink)}
.admin .sm.danger{color:var(--a-danger);border-color:var(--a-danger)}
.admin .colors{display:grid;grid-template-columns:1fr 60px;gap:8px 10px;align-items:center}
.admin input[type=color]{width:60px;height:32px;border:1px solid var(--a-line);border-radius:4px;padding:2px;background:var(--a-bg);cursor:pointer}
.admin .chk{display:flex;gap:8px;align-items:center}
.admin .hint{color:var(--a-muted);font-size:12.5px;line-height:1.5}
.admin .foot{border-top:1px solid var(--a-line);background:var(--a-soft);padding:12px 16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin .status{margin-left:auto;font-size:12px;color:var(--a-muted)}
.admin .presets{display:flex;flex-wrap:wrap;gap:6px}
.admin .presets button{display:flex;gap:6px;align-items:center}
.admin .presets i{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid var(--a-line)}
.admin .mode{font-size:11px;padding:2px 6px;border:1px solid var(--a-line);border-radius:4px;color:var(--a-muted);white-space:nowrap}
.admin .smtp-grid{display:grid;gap:10px}
.admin .smtp-grid.off{opacity:.45}
.admin .row2a{display:grid;grid-template-columns:90px 1fr;gap:10px}
.admin .btn-row{display:flex;gap:8px;flex-wrap:wrap}
.admin .sm.primary{background:var(--a-gen-on);border-color:var(--a-gen-on);color:#FFFFFF}
.admin .img-row{display:flex;gap:12px;align-items:flex-start}
.admin .thumb{flex:none;width:110px;height:82px;border:1px solid var(--a-line);border-radius:4px;background:var(--a-soft);display:grid;place-items:center;overflow:hidden;color:var(--a-muted);font-size:12px}
.admin .thumb.tall{width:72px;height:90px}
.admin .thumb img{width:100%;height:100%;object-fit:cover}
.admin .img-actions{display:grid;gap:6px;justify-items:start;min-width:0}
.admin .file-btn{position:relative;overflow:hidden;display:inline-block}
.admin .file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.admin .file-btn:focus-within{outline:2px solid var(--a-accent);outline-offset:1px}
.admin fieldset.alert{border-color:#D9A441;background:#FFF8E6}
.admin .bk-list{display:grid;gap:6px}
.admin .bk{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--a-line);border-radius:4px;padding:7px 9px;background:var(--a-soft)}
.admin .bk > div:first-child{display:grid;gap:2px;min-width:0}
.admin .bk.on{border-color:var(--a-gen-on);background:var(--a-gen)}
.admin .bk-btns{display:flex;gap:6px;flex:none}
.admin .bk-msg{margin:0;padding:8px 10px;border-radius:4px;font-size:13px;line-height:1.45;border:1px solid var(--a-line);background:var(--a-soft)}
.admin .bk-msg.err{color:#8A1C14;background:#FDECEA;border-color:#F0B4AE;font-weight:600}
.admin .bk-msg.ok{color:#235A2B;background:#EAF5EC;border-color:#B9DBBE}
.admin .bk-msg.info{color:var(--a-gen-on);background:var(--a-gen);border-color:var(--a-gen-line)}
.admin .bk-conf summary{font-weight:600}
.admin .api-alert{margin:10px 16px 0;padding:10px 12px;border-radius:4px;background:#FDECEA;border:1px solid #F0B4AE;color:#8A1C14;font-size:13px;line-height:1.5}
.admin .api-alert code{background:#fff;padding:0 4px;border-radius:3px}
.admin .drag{flex:none;display:inline-grid;place-items:center;width:24px;height:26px;margin:-2px 2px -2px -4px;border-radius:4px;color:var(--a-muted);font-size:16px;line-height:1;cursor:grab;touch-action:none;user-select:none}
.admin .drag:hover{background:var(--a-line);color:var(--a-ink)}
.admin .drag:focus-visible{outline:2px solid var(--a-accent)}
html.is-dragging, html.is-dragging *{cursor:grabbing !important;user-select:none}
.admin .dragging{opacity:.85;box-shadow:0 8px 20px -8px rgba(0,0,0,.35);border-color:var(--a-gen-on) !important;background:var(--a-gen) !important;position:relative;z-index:2}
.admin summary .sum-t{flex:1;min-width:0}
.admin summary{align-items:center}
.admin .sec-list{display:grid;gap:6px}
.admin .sec-row{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--a-sec-line);background:var(--a-sec);border-radius:4px}
.admin .sec-row.off{background:var(--a-soft);border-color:var(--a-line);color:var(--a-muted)}
.admin .sec-row.off .sec-name{text-decoration:line-through}
.admin .sec-name{flex:1;font-weight:600;min-width:0}
.admin .tabs button.is-off{opacity:.55;text-decoration:line-through}
.admin .bk-now{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin .bk-now .sm{flex:none}
.admin .bk-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--a-gen-on);border:1px solid var(--a-gen-line);background:var(--a-gen);border-radius:3px;padding:0 5px;vertical-align:2px}
.admin .bk .hint{line-height:1.35}
.bk-bar{position:fixed;left:0;right:0;top:0;z-index:45;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;background:#7A5719;color:#FFFFFF;font:14px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;padding:calc(10px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px))}
.bk-bar-btns{display:flex;gap:8px;flex-wrap:wrap}
.bk-bar button{font:inherit;font-size:13px;font-weight:600;border:1px solid #FFFFFF;background:#FFFFFF;color:#7A5719;padding:6px 12px;border-radius:4px;cursor:pointer}
.bk-bar button + button{background:transparent;color:#FFFFFF}
@media (min-width:960px){html.admin-open .bk-bar{right:500px}}
.admin .inbox-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.admin .inbox{display:grid;gap:8px}
.admin .msg summary{font-weight:400;flex-wrap:wrap}
.admin .msg-date{color:var(--a-muted);font-size:12px}
.admin .msg-mail{user-select:all;font-weight:600;margin:0}
.admin .msg-body{white-space:pre-wrap;margin:0;line-height:1.5}
.admin .msg-state{font-size:12px;margin:0}
.admin .msg-state.ok{color:#2E6B35}
.admin .msg-state.ko{color:var(--a-danger)}
/* back office côte à côte : le site se décale au lieu d'être recouvert */
@media (min-width:960px){
  html.admin-open body{margin-right:500px}
  html.admin-open .admin{box-shadow:none}
}
.admin :focus-visible{outline:2px solid var(--a-accent);outline-offset:1px}
