/* Polices hébergées sur le site (licence SIL Open Font License, voir polices/LICENCES.txt) */
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:400;font-display:swap;src:url(polices/courier-prime-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:700;font-display:swap;src:url(polices/courier-prime-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(polices/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(polices/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url(polices/young-serif-latin-400-normal.woff2) format("woff2")}

/* Base */
:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
/* Layout : atelier de couture. Ruban à mesurer en haut de page, coupon de retouche penché dans l'en-tête,
   panneaux cousus (pointillés) pour les prix, étiquettes à trou pour les délais, boutons à quatre trous
   pour les étapes. Un seul look, papier et indigo. */
:root{
  --bg:#ece5d6; --paper:#fbf8f0; --ink:#1f2a44; --muted:#5a6175; --line:#c7bea8; --craie:#f1c04c; --rouge:#b5412d;
  --serif:"Young Serif",Georgia,serif; --text:"Source Serif 4",Georgia,serif; --mono:"Courier Prime","Courier New",monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--text);font-size:17px;line-height:1.55}
a{color:inherit}
:focus-visible{outline:3px solid var(--rouge);outline-offset:3px}
.demo{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:13px;text-align:center;padding:7px 16px}
.tape{position:relative;height:40px;overflow:hidden;background:
  repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px 12px) 0 0/100% 9px no-repeat,
  repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 60px) 0 0/100% 20px no-repeat,
  var(--craie);border-bottom:2px solid var(--ink)}
.tape span{position:absolute;top:17px;font-family:var(--mono);font-weight:700;font-size:14px;line-height:1}
.wrap{max-width:1020px;margin:0 auto;padding-inline:20px}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-block:20px}
.logo{font-family:var(--serif);font-size:24px;line-height:1}
.top span{font-family:var(--mono);font-size:14px;text-transform:uppercase;letter-spacing:.08em}
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,56px);align-items:center;padding-block:clamp(16px,4vw,40px) clamp(36px,7vw,72px)}
@media (max-width:780px){.hero{grid-template-columns:minmax(0,1fr)}}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,6.4vw,66px);line-height:1.04;margin:0 0 18px;text-wrap:balance}
h1 u{text-decoration:none;background:linear-gradient(transparent 62%,var(--craie) 62% 92%,transparent 92%)}
.hero p{max-width:44ch;margin:0 0 24px;color:var(--muted)}
.call{display:inline-block;font-family:var(--mono);font-weight:700;font-size:19px;text-decoration:none;background:var(--ink);color:var(--paper);padding:14px 20px;outline:2px dashed var(--craie);outline-offset:-7px}
.coupon{position:relative;width:min(100%,340px);background:var(--paper);padding:26px 22px 22px;font-family:var(--mono);font-size:15px;transform:rotate(-2.5deg);box-shadow:6px 8px 0 rgba(31,42,68,.16);margin-inline:auto}
.coupon::before{content:"";position:absolute;left:0;right:0;top:-7px;height:14px;background:radial-gradient(circle at 8px 7px,var(--bg) 6px,transparent 6.5px) 0 0/16px 14px repeat-x}
.coupon h2{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;display:flex;justify-content:space-between;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:8px}
.coupon dl{margin:0}
.coupon dl div{display:flex;gap:8px;align-items:baseline;padding:5px 0}
.coupon dt{flex:none;color:var(--muted)}
.coupon dd{margin:0;flex:1;min-width:0;text-align:right;border-bottom:1px dotted var(--line);font-weight:700}
.stamp{display:inline-block;margin-top:16px;border:3px solid var(--rouge);color:var(--rouge);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;padding:6px 10px;transform:rotate(4deg)}
section{padding-block:clamp(34px,6vw,64px);border-top:2px dashed var(--line)}
h2.t{font-family:var(--serif);font-weight:400;font-size:clamp(28px,5vw,42px);line-height:1.08;margin:0 0 6px}
.sub{color:var(--muted);margin:0 0 26px;max-width:58ch}
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:780px){.duo{grid-template-columns:minmax(0,1fr)}}
.patron{background:var(--paper);padding:26px 24px;outline:2px dashed var(--ink);outline-offset:-10px;min-width:0}
.patron.cuir{background:var(--ink);color:var(--paper);outline-color:var(--craie)}
.patron h3{font-family:var(--serif);font-weight:400;font-size:26px;margin:0}
.patron small{display:block;font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:14px}
.patron.cuir small{color:var(--craie)}
.patron ul{list-style:none;margin:0;padding:0}
.patron li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.patron.cuir li{border-top-color:#3c4868}
.patron li b{font-family:var(--mono);white-space:nowrap}
.tags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:780px){.tags{grid-template-columns:minmax(0,1fr)}}
.tag{position:relative;background:var(--craie);padding:22px 20px 20px 48px;clip-path:polygon(22px 0,100% 0,100% 100%,22px 100%,0 50%);min-width:0}
.tag::before{content:"";position:absolute;left:22px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--ink)}
.tag b{display:block;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1}
.tag span{font-size:15px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;border-top:3px dashed var(--ink);padding-top:0}
@media (max-width:780px){.steps{grid-template-columns:minmax(0,1fr);border-top:0;border-left:3px dashed var(--ink);padding-left:22px}}
.steps li{position:relative;padding-top:38px;min-width:0}
.steps li::before{content:"";position:absolute;top:-17px;left:0;width:30px;height:30px;border-radius:50%;background:
  radial-gradient(circle at 10px 10px,var(--bg) 2.4px,transparent 2.8px),radial-gradient(circle at 20px 10px,var(--bg) 2.4px,transparent 2.8px),
  radial-gradient(circle at 10px 20px,var(--bg) 2.4px,transparent 2.8px),radial-gradient(circle at 20px 20px,var(--bg) 2.4px,transparent 2.8px),var(--rouge)}
@media (max-width:780px){.steps li{padding-top:0;padding-bottom:6px}.steps li::before{top:0;left:-39px}}
.steps b{display:block;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.15;margin-bottom:4px}
.steps span{color:var(--muted);font-size:15px}
.info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
@media (max-width:780px){.info{grid-template-columns:minmax(0,1fr)}}
.hours{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:15px}
.hours td{padding:9px 0;border-bottom:1px dotted var(--ink)}
.hours td:last-child{text-align:right;font-weight:700;white-space:nowrap}
.big{font-family:var(--serif);font-size:clamp(30px,6vw,40px);line-height:1;margin:0 0 10px}
.frame{border:2px dashed var(--line);padding:18px;color:var(--muted);font-size:15px;margin-top:14px}
footer{padding-block:24px 40px;color:var(--muted);font-size:14px;border-top:2px dashed var(--line)}

/* Le jour d'aujourd'hui (classe ajoutée par ouverture.js) */
tr.aujourdhui td{font-weight:700}
tr[data-jours] td:last-child{white-space:nowrap}
tr.aujourdhui td:first-child::after,[data-jours].aujourdhui:not(tr)::after{content:" · aujourd'hui";font-weight:400;opacity:.75}
[data-jours].aujourdhui:not(tr){font-weight:700}
