/* ============ CARTONNÉ · SHARED ============ */
/* Polices hébergées localement (SIL Open Font License), aucune requête vers Google */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url('fonts/cormorant-garamond-latin-300-italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-600-italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-700-italic.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/inter-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');}

:root{
  --cream:#F5EFE6;
  --paper:#FBF6EE;
  --beige:#E8DAC8;
  --sand:#D9C4A9;
  --kraft:#B89878;
  --brown:#735C47; /* contraste ≥ 4.5:1 sur cream et beige */
  --brown-deep:#6E553F;
  --espresso:#3D2E23;
  --ink:#2A1F16;
  --rouge:#AB3A25; /* contraste ≥ 4.5:1 sur cream et beige */
  --line: rgba(62,46,35,.18);
  --line-soft: rgba(62,46,35,.10);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;font-weight:300;line-height:1.55;-webkit-font-smoothing:antialiased;}
body{overflow-x:hidden;}
.serif{font-family:'Cormorant Garamond',serif;font-weight:400;letter-spacing:.01em;}
.display{font-family:'Cormorant Garamond',serif;font-weight:500;letter-spacing:.04em;}
.mono{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;}
.eyebrow{font-family:'Cormorant Garamond',serif;font-weight:500;letter-spacing:.28em;text-transform:uppercase;font-size:12px;color:var(--brown);}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit;}

/* ===== NAV ===== */
nav.top{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:18px 44px;background:rgba(251,246,238,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-soft);
}
nav.top .left{display:flex;gap:28px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown-deep);}
nav.top .right{display:flex;gap:24px;justify-content:flex-end;align-items:center;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown-deep);}
nav.top .brand{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:22px;letter-spacing:.24em;color:var(--espresso);}
nav.top a{transition:color .2s;}
nav.top a:hover{color:var(--rouge);}
nav.top a.active{color:var(--rouge);position:relative;}
nav.top a.active::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--rouge);}
.cart-btn{display:inline-flex;gap:10px;align-items:center;padding:8px 14px;border:1px solid var(--line);border-radius:999px;}
.cart-count{background:var(--espresso);color:var(--cream);width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font-size:10px;font-family:'Inter',sans-serif;}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border-radius:999px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;transition:all .25s ease;}
.btn.primary{background:var(--espresso);color:var(--cream);}
.btn.primary:hover{background:var(--rouge);}
.btn.ghost{border:1px solid var(--line);color:var(--espresso);}
.btn.ghost:hover{border-color:var(--espresso);}
.btn .arrow{width:24px;height:1px;background:currentColor;position:relative;}
.btn .arrow::after{content:"";position:absolute;right:0;top:-3px;width:8px;height:8px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}

/* ===== SECTION HEAD ===== */
.section{padding:140px 60px;position:relative;}
.section-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px;margin-bottom:80px;padding-bottom:30px;border-bottom:1px solid var(--line);}
.section-head h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(56px,7vw,104px);line-height:.95;color:var(--espresso);letter-spacing:.01em;}
.section-head h2 em{font-style:italic;font-weight:300;color:var(--brown);}
.section-head .side{text-align:right;display:flex;flex-direction:column;gap:10px;max-width:320px;}

/* ===== PAGE HEADER (sub-pages) ===== */
.page-head{
  padding:180px 60px 80px;background:var(--paper);position:relative;
  border-bottom:1px solid var(--line);
}
.page-head::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(circle at 20% 50%, black 0%, transparent 60%);
  opacity:.4;
}
.page-head-inner{max-width:1400px;margin:0 auto;position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;}
.page-head h1{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(64px,9vw,128px);line-height:.9;color:var(--espresso);letter-spacing:.01em;}
.page-head h1 em{font-style:italic;font-weight:300;color:var(--brown);}
.page-head .crumbs{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown);margin-bottom:24px;}
.page-head .crumbs a:hover{color:var(--rouge);}
.page-head .side{text-align:right;max-width:360px;}
.page-head .side p{font-size:14px;color:var(--brown-deep);line-height:1.65;margin-top:10px;}

/* ===== MARQUEE ===== */
.marquee{
  border-block:1px solid var(--line);
  padding:22px 0;background:var(--cream);overflow:hidden;
  display:flex;
}
.marquee-track{display:flex;gap:60px;white-space:nowrap;animation:marquee 40s linear infinite;}
@keyframes marquee{to{transform:translateX(-50%);}}
.marquee span{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:28px;letter-spacing:.08em;color:var(--espresso);display:flex;align-items:center;gap:60px;}
.marquee span::after{content:"✦";color:var(--rouge);font-size:14px;}

/* ===== FOOTER ===== */
footer{background:var(--espresso);color:var(--cream);padding:100px 60px 40px;}
footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;padding-bottom:80px;border-bottom:1px solid rgba(245,239,230,.12);}
footer h5{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand);margin-bottom:24px;}
footer ul{list-style:none;display:grid;gap:12px;}
footer ul a{font-size:14px;opacity:.8;transition:opacity .2s, color .2s;}
footer ul a:hover{opacity:1;color:var(--rouge);}
footer .brand-big{font-family:'Cormorant Garamond',serif;font-size:110px;line-height:.9;letter-spacing:.04em;color:var(--cream);}
footer .brand-sub{margin-top:18px;font-size:14px;max-width:360px;opacity:.7;line-height:1.7;}
footer .legal{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;}

/* ===== CART DRAWER ===== */
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;background:var(--paper);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .5s cubic-bezier(.6,0,.2,1);z-index:100;display:flex;flex-direction:column;}
.cart-drawer.open{transform:none;}
.cart-back{position:fixed;inset:0;background:rgba(42,31,22,.4);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .4s;z-index:99;}
.cart-back.on{opacity:1;pointer-events:all;}
.cart-head{padding:30px;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line-soft);}
.cart-head h3{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--espresso);}
.cart-head button{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown);}
.cart-body{flex:1;overflow:auto;padding:24px 30px;}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-soft);}
.cart-item .ci-art{width:64px;height:64px;background:var(--cream);border:1px solid var(--line-soft);display:grid;place-items:center;}
.cart-item .ci-name{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--espresso);}
.cart-item .ci-sub{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brown);margin-top:4px;}
.cart-item .ci-qty{margin-top:8px;font-size:12px;color:var(--brown-deep);}
.cart-item .ci-price{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--espresso);}
.cart-empty{text-align:center;padding:80px 20px;color:var(--brown);font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;}
.cart-foot{padding:24px 30px 30px;border-top:1px solid var(--line-soft);}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px;}
.cart-total .k{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown);}
.cart-total .v{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--espresso);}
.checkout{width:100%;padding:18px;background:var(--espresso);color:var(--cream);border-radius:999px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;transition:background .2s;}
.checkout:hover{background:var(--rouge);}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120%);background:var(--espresso);color:var(--cream);padding:16px 28px;border-radius:999px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;z-index:200;transition:transform .4s cubic-bezier(.6,0,.2,1);}
.toast.show{transform:translateX(-50%);}

@media (max-width:1024px){
  .section{padding:80px 30px;}
  .page-head{padding:140px 30px 60px;}
  .page-head-inner{grid-template-columns:1fr;}
  .page-head .side{text-align:left;}
  nav.top{padding:14px 24px;}
  nav.top .left, nav.top .right{display:none;}
  footer{padding:60px 30px 30px;}
  footer .grid{grid-template-columns:1fr 1fr;gap:40px;}
  footer .brand-big{font-size:70px;}
  .section-head{grid-template-columns:1fr;gap:16px;}
  .section-head .side{text-align:left;max-width:100%;}
}

@media (max-width:640px){
  .page-head{padding:90px 20px 36px;}
  .page-head h1{font-size:clamp(38px,10vw,64px);}
  .page-head .side{display:none;}
  .section{padding:60px 20px;}
  footer{padding:40px 20px 24px;}
  footer .grid{grid-template-columns:1fr;gap:24px;padding-bottom:40px;}
  footer .brand-big{font-size:48px;}
  footer .legal{flex-direction:column;gap:8px;text-align:center;}
  .cart-drawer{width:100%;border-left:0;}
  .btn{padding:13px 20px;font-size:11px;}
  .marquee span{font-size:20px;}
}

/* ============ ACCESSIBILITÉ ============ */
:focus-visible{outline:2px solid var(--espresso)!important;outline-offset:3px;}
.values :focus-visible,.journal :focus-visible,.shop-cta :focus-visible,footer :focus-visible{outline-color:var(--cream)!important;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:16px;top:-100px;z-index:1000;background:var(--espresso);color:var(--cream);padding:12px 20px;font-size:13px;}
.skip-link:focus{top:16px;}
.cart-drawer:not(.open){visibility:hidden;transition:transform .5s cubic-bezier(.6,0,.2,1),visibility 0s .5s;}
.form-error{color:var(--rouge);font-size:13px;line-height:1.5;margin:12px 0;}
.form-error:empty{display:none;}
[aria-invalid="true"]{border-color:var(--rouge)!important;}
.required-note{font-size:12px;color:var(--brown);margin:0 0 12px;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
