/* EmmaCréa — feuille de style du site (reprise de la maquette Claude Design) */
:root{
  --paper:#FBF6EC;--cream:#F3E9D6;--cream2:#EEDFC6;--ink:#2B1A12;--soft:#6B5446;--body:#4A372C;
  --rouge:#C8342C;--rouge-d:#A3271F;--jaune:#E3AE2B;--jaune-l:#F0C24F;--turq:#2E9C98;--fraise:#E07386;--kaki:#77744A;
  --field:#FFFDF8;--line:rgba(43,26,18,.22);--line2:rgba(43,26,18,.28);--foot:#EADFCF;
  --fd:'Big Shoulders Display','Big Shoulders',Impact,sans-serif;--fs:'Instrument Serif',Georgia,serif;--fb:'Bricolage Grotesque',system-ui,-apple-system,sans-serif;
  --gut:clamp(18px,4vw,56px);--sec:clamp(64px,9vw,130px);
}
html,body{margin:0;padding:0;background:var(--paper)}
*,*::before,*::after{box-sizing:border-box}
body{color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:var(--rouge)}a:hover{color:var(--rouge-d)}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--rouge);color:var(--paper)}
img{max-width:100%}
:focus-visible{outline:2px solid var(--rouge);outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:10px}
.skip:focus{top:12px;color:var(--paper)}
.fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:opacity .5s ease}
.img-wait{opacity:0}

@keyframes ecFloat{from{transform:translateY(0) rotate(var(--r,0deg))}to{transform:translateY(-16px) rotate(calc(var(--r,0deg) + 10deg))}}
@keyframes ecSpin{to{transform:rotate(360deg)}}
@keyframes ecMarquee{to{transform:translateX(-50%)}}
@keyframes ecSlide{from{transform:translateX(100%)}to{transform:none}}
@keyframes ecFade{from{opacity:0}to{opacity:1}}
@keyframes ecPop{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes ecToast{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* Visibilité selon la largeur */
@media (max-width:719px){.desk-only{display:none!important}}
@media (max-width:1079px){.full-only{display:none!important}}
@media (min-width:1080px){.compact-only{display:none!important}}
@media (max-width:959px){.wide-only{display:none!important}}
@media (min-width:960px){.stack-only{display:none!important}}

/* Typo & utilitaires */
.wrap{max-width:1400px;margin-left:auto;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut)}
.wrap-0{max-width:1400px;margin:0 auto}
.sec{padding-top:var(--sec)}
.sec-sm{padding-top:clamp(64px,9vw,120px)}
.sec-xs{padding-top:clamp(28px,4vw,56px)}
.page-head{padding-top:clamp(24px,4vw,52px)}
.accent,.serif{font-family:var(--fs);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0}
.accent{color:var(--rouge)}
.h2{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(46px,7.4vw,112px);line-height:.86}
.h2-lg{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(48px,7vw,104px);line-height:.86}
.h2-md{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(42px,6vw,88px);line-height:.86}
.h2-sm{margin:clamp(40px,6vw,72px) 0 clamp(20px,3vw,32px);font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(36px,5vw,64px);line-height:.88}
.h1-page{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(60px,11vw,170px);line-height:.82}
.h1-md{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(48px,7vw,100px);line-height:.86}
.h1-legal{margin:14px 0 0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(44px,7vw,96px);line-height:.88}
.mb-h2{margin-bottom:clamp(24px,3vw,40px)}
.mb-h2-lg{margin-bottom:clamp(32px,5vw,64px)}
.mb-h2-sm{margin-bottom:clamp(18px,2.5vw,28px)}
.lead{margin:0;font-size:18px;line-height:1.55;color:var(--body);text-wrap:pretty}
.lead-lg{margin:0;font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--body);max-width:46ch;text-wrap:pretty}
.lead-sm{margin:0;font-size:17.5px;line-height:1.55;color:var(--body);max-width:48ch}
.soft{color:var(--soft)}.soft-sm{margin:0;font-size:15.5px;color:var(--soft);max-width:46ch}.soft-xs{font-size:13px;color:var(--soft)}
.small-soft{margin:0;font-size:14px;color:var(--soft)}
.small-soft a{color:var(--ink)}
.center{text-align:center}
.serif-xl{margin:0;font-family:var(--fs);font-style:italic;font-size:clamp(26px,3vw,36px);line-height:1.15}
.serif-lg{margin:0;font-family:var(--fs);font-style:italic;font-size:28px}
.kicker{font-family:var(--fs);font-style:italic;font-size:clamp(22px,2.4vw,30px);color:var(--soft)}
.signature{font-family:var(--fs);font-style:italic;font-size:52px;line-height:1;color:var(--rouge)}
.signature-sm{font-family:var(--fs);font-style:italic;font-size:26px;color:var(--rouge)}
.err{color:var(--rouge);font-size:13.5px}.err:empty{display:none}
.block{display:block}.inline-block{display:inline-block}.self-start{align-self:flex-start}
.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-14{margin-top:14px}.mt-20{margin-top:20px}.mb-12{margin-bottom:12px}.mb-24{margin-bottom:24px}.pb-8{padding-bottom:8px}
.mt-section{margin-top:clamp(48px,7vw,96px)}
.max-46{max-width:46ch}.max-520{max-width:520px}
.stack-2{display:flex;flex-direction:column;gap:2px}
.stack-16{display:flex;flex-direction:column;gap:16px}
.stack-18{display:flex;flex-direction:column;gap:18px}
.stack-20{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.stack-22{display:flex;flex-direction:column;gap:22px}
.stack-24{display:flex;flex-direction:column;gap:24px}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}
.wrap-flex{flex-wrap:wrap;align-items:flex-end;gap:16px 40px}
.row-gap{display:flex;align-items:center;gap:16px}
.break{overflow-wrap:anywhere;text-align:right}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn-row.center{justify-content:center}
.notice{margin:18px 0 0;padding:14px 16px;border-radius:14px;background:var(--cream);box-shadow:inset 0 0 0 1.5px rgba(200,52,44,.3);font-size:15px}
.notice.small{font-size:13.5px;padding:10px 12px;margin:0}

/* Motifs de tissu */
.pat-vichy-rouge{background-color:var(--paper);background-image:linear-gradient(90deg,rgba(200,52,44,.5) 50%,transparent 50%),linear-gradient(rgba(200,52,44,.5) 50%,transparent 50%);background-size:28px 28px}
.pat-vichy-fraise{background-color:var(--paper);background-image:linear-gradient(90deg,rgba(224,115,134,.5) 50%,transparent 50%),linear-gradient(rgba(224,115,134,.5) 50%,transparent 50%);background-size:30px 30px}
.pat-pois-turq{background-color:var(--turq);background-image:radial-gradient(#FBF6EC 19%,transparent 21%),radial-gradient(#FBF6EC 19%,transparent 21%);background-size:16px 16px;background-position:0 0,8px 8px}
.pat-pois-kaki{background-color:var(--kaki);background-image:radial-gradient(#2B1A12 19%,transparent 21%),radial-gradient(#2B1A12 19%,transparent 21%);background-size:16px 16px;background-position:0 0,8px 8px}
.pat-rayures-jaune{background-color:var(--paper);background-image:repeating-linear-gradient(90deg,rgba(227,174,43,.8) 0 18px,transparent 18px 36px)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 22px;border-radius:14px;border:none;background:var(--rouge);color:var(--paper);text-decoration:none;font-weight:600;font-size:16px;line-height:1.1;text-align:center;cursor:pointer;outline:1.5px dashed rgba(251,246,236,.6);outline-offset:-6px;transition:background .2s,color .2s,transform .2s,outline-offset .3s,scale .15s,background-size .45s cubic-bezier(.2,.7,.2,1)}
.btn:hover{background:var(--rouge-d);color:var(--paper);outline-offset:-4px}
.btn:active,.card-add:active,.chip:active,.amount:active,.qty button:active,.cart-btn:active{scale:.97}
.btn:disabled,.btn.is-disabled{opacity:.5;cursor:not-allowed}
.btn-lg{height:56px}
.btn-xl{height:54px;padding:0 26px}
.btn-sm{height:50px;padding:0 16px;font-size:15px}
.btn-block{width:100%}
.btn-lift:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent linear-gradient(var(--ink),var(--ink)) no-repeat 0 0/0% 100%;color:var(--ink);border:1.5px solid var(--ink);outline:none}
.btn-ghost:hover{background:transparent linear-gradient(var(--ink),var(--ink)) no-repeat 0 0/100% 100%;color:var(--paper)}
.btn-dark{background:var(--ink);outline:none}.btn-dark:hover{background:var(--rouge)}
.btn-light{background:var(--paper);color:var(--rouge);font-weight:700;outline:none}.btn-light:hover{background:var(--paper);color:var(--rouge-d);transform:translateY(-2px)}
.btn-outline-light{background:transparent linear-gradient(var(--paper),var(--paper)) no-repeat 0 0/0% 100%;border:1.5px solid var(--paper);color:var(--paper);outline:none}.btn-outline-light:hover{background:transparent linear-gradient(var(--paper),var(--paper)) no-repeat 0 0/100% 100%;color:var(--rouge)}
.btn-gold{margin-top:8px;background:var(--jaune);color:var(--ink);font-weight:700;outline:none}.btn-gold:hover{background:var(--jaune-l);color:var(--ink)}
.link-dash{color:var(--ink);font-weight:600;text-decoration:none;border:none;padding:0 0 4px;background:linear-gradient(90deg,var(--rouge) 0 55%,transparent 55%) 0 100%/10px 2px repeat-x;-webkit-box-decoration-break:clone;box-decoration-break:clone;cursor:pointer}
.link-dash:hover{color:var(--rouge);animation:ecStitch 1.1s linear infinite}
.link-btn{background:none;border:none;padding:0;color:var(--soft);font-size:14px;text-decoration:underline;cursor:pointer}
.link-btn:hover{color:var(--rouge)}
.strong-link{color:var(--ink);font-weight:600}
.round-x{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(43,26,18,.25);background:transparent;cursor:pointer;font-size:16px;flex-shrink:0}
.round-x:hover{border-color:var(--ink)}

/* Bandeau + en-tête */
.topbar{background:var(--ink);color:var(--paper);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:9px 16px;display:flex;justify-content:center;align-items:center;gap:10px 24px;flex-wrap:wrap;text-align:center}
.topbar .dot{width:6px;height:6px;border-radius:50%;background:var(--jaune)}
.topbar a{color:var(--jaune);text-decoration:none;font-weight:600}.topbar a:hover{color:var(--paper)}
.topbar-hi{color:var(--jaune);font-weight:600}
.site-header{transition:box-shadow .3s;position:sticky;top:0;z-index:40;background:rgba(251,246,236,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(43,26,18,.12)}
.header-inner{max-width:1400px;margin:0 auto;padding:12px var(--gut);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.nav-zone{display:flex;align-items:center;min-width:0}
.nav{display:flex;align-items:center;gap:26px}
.nav a{position:relative;color:var(--ink);text-decoration:none;font-weight:500;font-size:15px;padding:6px 0;border-bottom:2px dashed transparent;white-space:nowrap}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;border-bottom:2px dashed var(--rouge);clip-path:inset(0 100% 0 0);transition:clip-path .45s cubic-bezier(.2,.7,.2,1)}
.nav a:hover::after{clip-path:inset(0 0 0 0)}
.nav a.is-active::after{display:none}
.nav a:hover{color:var(--rouge)}.nav a.is-active{border-bottom-color:var(--rouge)}
.burger{width:46px;height:46px;border-radius:14px;border:1.5px solid var(--ink);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:0}
.burger span{width:18px;height:2px;border-radius:2px;background:var(--ink)}
.logo{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--ink);line-height:1}
.logo:hover{color:var(--ink)}
.logo-word{display:flex;align-items:baseline;font-family:var(--fd);font-weight:900;font-size:clamp(28px,3vw,36px);letter-spacing:.02em;text-transform:uppercase}
.logo-word em{font-family:var(--fs);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:var(--rouge);font-size:1.06em;margin-left:2px}
.logo-sub{font-size:9.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--soft)}
.header-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}
.btn-header{display:inline-flex;align-items:center;height:46px;padding:0 18px;border-radius:14px;border:1.5px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:600;font-size:14.5px;white-space:nowrap;transition:background .2s,color .2s}
.btn-header{background:transparent linear-gradient(var(--ink),var(--ink)) no-repeat 0 0/0% 100%;transition:background-size .45s cubic-bezier(.2,.7,.2,1),color .3s}
.btn-header:hover{background-size:100% 100%;color:var(--paper)}
.acct-btn{width:46px;height:46px;flex-shrink:0;border-radius:14px;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;transition:background .2s,color .2s}
.acct-btn:hover{background:var(--ink);color:var(--paper)}
.acct-icon{display:flex;flex-direction:column;align-items:center;gap:2px}
.acct-icon i{width:10px;height:10px;border-radius:50%;border:2px solid currentColor}
.acct-icon b{width:17px;height:8px;border-radius:9px 9px 2px 2px;border:2px solid currentColor;border-bottom:none}
.acct-initial{width:28px;height:28px;border-radius:50%;background:var(--rouge);color:var(--paper);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.cart-btn{height:46px;padding:0 12px 0 16px;border-radius:14px;border:none;background:var(--rouge);color:var(--paper);display:flex;align-items:center;gap:10px;cursor:pointer;outline:1.5px dashed rgba(251,246,236,.6);outline-offset:-5px;transition:background .2s}
.cart-btn:hover{background:var(--rouge-d)}
.cart-word{font-weight:600;font-size:14.5px}
.bag-icon{position:relative;display:block;width:16px;height:14px;border:2px solid currentColor;border-radius:3px 3px 5px 5px;margin-top:5px}
.bag-icon::before{content:'';position:absolute;left:50%;top:-8px;width:8px;height:7px;margin-left:-4px;border:2px solid currentColor;border-bottom:none;border-radius:5px 5px 0 0}
.cart-count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--paper);color:var(--rouge);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.cart-count.bump{animation:ecPop .35s ease}

/* Fil d'Ariane */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--soft)}
.crumbs a{color:var(--soft);text-decoration:none}.crumbs a:hover{color:var(--rouge)}
.crumbs [aria-current]{color:var(--ink)}

/* Cartes produit */
.grid-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,270px),1fr));gap:clamp(28px,3vw,40px) clamp(14px,2vw,26px)}
.card{display:flex;flex-direction:column;gap:12px;min-width:0;height:100%}
.card-media{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden}
.card-link{position:absolute;inset:0;display:block}
.card-media img{transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .45s ease}
.card-media .alt{opacity:0}
.card:hover .card-media img{transform:scale(1.035)}
.badge{position:absolute;top:12px;left:12px;background:var(--paper);color:var(--ink);font-size:11.5px;font-weight:600;letter-spacing:.03em;padding:6px 11px;border-radius:999px;pointer-events:none;box-shadow:0 2px 8px rgba(43,26,18,.12)}
.quick-btn{position:absolute;right:12px;bottom:12px;height:38px;padding:0 14px;border-radius:999px;border:none;background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 8px 18px -6px rgba(43,26,18,.5);transition:background .2s}
.quick-btn:hover{background:var(--rouge)}
@media (hover:hover) and (pointer:fine){
  .quick-btn{opacity:0;translate:0 8px;transition:background .2s,opacity .3s,translate .35s cubic-bezier(.2,.7,.2,1)}
  .card:hover .quick-btn,.card:focus-within .quick-btn{opacity:1;translate:0 0}
  .card:hover .card-media .alt{opacity:1}
}
@media (max-width:520px){.quick-btn{height:34px;padding:0 11px;font-size:12px;right:8px;bottom:8px}}
.card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.card-name{color:var(--ink);text-decoration:none;font-weight:600;font-size:16px;line-height:1.25;text-wrap:pretty;min-width:0}
.card-name:hover{color:var(--rouge)}
.card-prices{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.price-old{font-size:13px;color:var(--soft);text-decoration:line-through;line-height:1}
.card-price{font-family:var(--fd);font-weight:800;font-size:22px;line-height:1;white-space:nowrap;color:var(--ink)}
.card-price.is-member{color:var(--rouge)}
.card-add{margin-top:auto;height:44px;border-radius:12px;border:1.5px dashed var(--rouge);background:transparent;color:var(--rouge);font-weight:600;font-size:14px;cursor:pointer;transition:background .2s,color .2s}
.card-add{background:transparent linear-gradient(var(--rouge),var(--rouge)) no-repeat 0 0/0% 100%;transition:background-size .45s cubic-bezier(.2,.7,.2,1),color .3s,scale .15s}
.card-add:hover{background-size:100% 100%;color:var(--paper)}
.card-add:disabled{border-color:var(--line);color:var(--soft);background:transparent;cursor:default;scale:1}

/* Accueil : hero */
.hero{position:relative;overflow:hidden;padding:clamp(26px,4vw,52px) var(--gut) 0}
.deco{position:absolute;inset:0;pointer-events:none;z-index:3}
.sew-btn{position:absolute;border-radius:50%;box-shadow:inset 0 0 0 var(--in) rgba(0,0,0,.10),0 14px 26px -10px rgba(43,26,18,.45);animation-name:ecFloat;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;transform:rotate(var(--r))}
.sew-btn i{position:absolute;inset:15%;border-radius:50%;border:1.5px solid rgba(255,255,255,.3)}
.sew-btn span{position:absolute;width:13%;height:13%;border-radius:50%;background:rgba(43,26,18,.55)}
.spin-badge{position:absolute}
.spin-badge svg{display:block;animation:ecSpin 26s linear infinite}
.hero-kicker{position:relative;z-index:1;margin:0 0 clamp(6px,1vw,14px);text-align:center;font-family:var(--fs);font-style:italic;font-size:clamp(20px,2.3vw,30px);line-height:1.2;color:var(--soft)}
.hero-title{position:relative;z-index:1;margin:0;text-align:center;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(60px,16.5vw,250px);line-height:.8;letter-spacing:-.005em}
.hero-title span{display:block;color:var(--ink)}
.hero-title span+span{color:var(--rouge)}
.hero-row{position:relative;z-index:2;max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(24px,4vw,64px)}
.hero-meta{flex:1 1 0;max-width:360px;padding-bottom:clamp(28px,4vw,56px);display:flex;align-items:stretch;gap:22px}
.meta-k{font-size:13px;color:var(--soft);margin-bottom:4px}
.meta-v{font-weight:600;font-size:17px;line-height:1.2}
.meta-sep{width:1px;background:var(--line)}
.hero-photo{flex:0 0 auto;width:clamp(260px,27vw,400px);margin-top:calc(clamp(60px,16.5vw,250px) * -.34);position:relative}
.arch-dash{position:absolute;inset:-14px -14px 0;border:2px dashed var(--rouge);border-bottom:none;border-radius:999px 999px 0 0;pointer-events:none}
.arch{position:relative;aspect-ratio:5/6;border-radius:999px 999px 0 0;overflow:hidden}
.hero-photo .arch{background-size:34px 34px}
.hero-text{flex:1 1 0;max-width:360px;align-self:center;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.hero-text p{margin:0;font-size:17px;line-height:1.55;color:var(--body);text-wrap:pretty}
@media (max-width:959px){
  .hero-row{flex-direction:column;align-items:center;gap:28px;padding-bottom:40px}
  .hero-photo{order:1;width:min(78%,360px);margin-top:calc(clamp(60px,16.5vw,250px) * -.3)}
  .hero-photo .arch-dash{inset:-10px -10px 0}
  .hero-photo .arch{background-size:28px 28px}
  .hero-text{order:2;align-items:center;text-align:center;max-width:460px;align-self:auto;gap:28px}
  .hero-meta{order:3;flex:none;padding-bottom:0;gap:20px}
  .meta-v{font-size:16px}
}

/* Bandeau défilant */
.ticker{position:relative;background:var(--rouge);color:var(--paper);overflow:hidden;padding:18px 0}
.ticker::before,.ticker::after{content:'';position:absolute;left:0;right:0;border-top:1.5px dashed rgba(251,246,236,.5)}
.ticker::before{top:6px}.ticker::after{bottom:6px}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track{display:flex;width:max-content;animation:ecMarquee 40s linear infinite;font-family:var(--fd);font-weight:800;font-size:clamp(24px,3vw,38px);text-transform:uppercase;letter-spacing:.02em;line-height:1;white-space:nowrap}
.ticker-run{display:flex;align-items:center;gap:34px;padding-right:34px;flex-shrink:0}
.ticker-dot{width:14px;height:14px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 4px var(--jaune);flex-shrink:0}

/* Titres de section */
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:clamp(28px,4vw,48px)}
.sec-aside{max-width:380px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.sec-aside p{margin:0;color:var(--body);font-size:16.5px}
.sec-aside-p{margin:0;max-width:420px;font-size:17px;color:var(--body)}

/* Manifeste */
.manifeste{margin-top:var(--sec);background:var(--cream)}
.manifeste-in{max-width:1220px;margin:0 auto;padding:var(--sec) var(--gut);text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(24px,3vw,36px)}
.manifeste-big{margin:0;font-weight:700;text-transform:uppercase;font-size:clamp(28px,4.6vw,64px);line-height:1.1;letter-spacing:-.015em;text-wrap:balance}
.pill-img{display:inline-block;vertical-align:middle;position:relative;width:2.2em;height:.95em;border-radius:999px;overflow:hidden;margin:0 .06em;transform:translateY(-.05em)}
.pill-1{background-color:var(--paper);background-image:linear-gradient(90deg,rgba(46,156,152,.5) 50%,transparent 50%),linear-gradient(rgba(46,156,152,.5) 50%,transparent 50%);background-size:16px 16px}
.pill-2{background-color:var(--rouge);background-image:radial-gradient(#FBF6EC 19%,transparent 21%),radial-gradient(#FBF6EC 19%,transparent 21%);background-size:12px 12px;background-position:0 0,6px 6px}
.manifeste .sub{margin:0;max-width:560px;font-size:18px;line-height:1.55;color:var(--body);text-wrap:pretty}

/* Univers */
.univers{border-top:2px dashed var(--line2)}
.univers a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(12px,3vw,40px);padding:clamp(14px,1.8vw,22px) 4px;border-bottom:2px dashed var(--line2);color:var(--ink);text-decoration:none;transition:color .2s,padding .25s}
.univers a:hover{color:var(--rouge);padding-left:18px}
.u-n{font-family:var(--fd);font-weight:700;font-size:clamp(16px,1.6vw,20px);color:var(--soft)}
.u-label{font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(32px,6vw,88px);line-height:.92;overflow-wrap:anywhere}
.u-end{display:flex;align-items:center;gap:14px}
.u-count{font-size:14px;color:var(--soft);white-space:nowrap}
.u-sw{position:relative;overflow:hidden;width:clamp(40px,5vw,64px);aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(43,26,18,.12);transition:rotate .6s cubic-bezier(.2,.7,.2,1),scale .6s cubic-bezier(.2,.7,.2,1)}
.univers a:hover .u-sw{scale:1.12}
.univers a:hover .u-sw:not(:has(img)){rotate:90deg}

/* Savoir-faire */
.sf{position:relative;overflow:hidden;margin-top:var(--sec);background:var(--cream);padding:var(--sec) var(--gut) 0}
.sf-bg{position:absolute;left:50%;bottom:-.2em;transform:translateX(calc(-50% + var(--p,0) * -9%));font-family:var(--fd);font-weight:900;font-size:clamp(110px,24vw,380px);line-height:1;color:#EAD8B8;white-space:nowrap;pointer-events:none}
.sf-head{position:relative;max-width:1240px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}
.sf-head .h2{text-wrap:balance}
.sf-head p{margin:0;max-width:520px;color:var(--body);font-size:17px}
.sf-grid{position:relative;max-width:1240px;margin:clamp(36px,5vw,64px) auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:32px clamp(24px,4vw,56px);align-items:end}
.sf-col{display:flex;flex-direction:column;gap:clamp(28px,4vw,56px);padding-bottom:clamp(40px,7vw,120px)}
.sf-item{display:flex;gap:16px;align-items:flex-start}
.sf-num{font-family:var(--fd);font-weight:900;font-size:44px;line-height:.9;color:var(--rouge);min-width:1.3em}
.sf-item p{margin:0;font-size:clamp(17px,1.5vw,20px);line-height:1.4;font-weight:500;text-wrap:pretty}
.sf-photo{position:relative;aspect-ratio:3/4;border-radius:999px 999px 0 0;overflow:hidden;background-color:var(--paper);background-image:radial-gradient(#C8342C 19%,transparent 21%),radial-gradient(#C8342C 19%,transparent 21%);background-size:18px 18px;background-position:0 0,9px 9px}
@media (max-width:899px){.sf-col{padding-bottom:0}.sf-grid{align-items:start}.sf-photo{max-width:420px;width:100%;margin:0 auto}}

/* Services (accueil) */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(28px,2.5vw,32px)}
.svc-card{display:flex;flex-direction:column;gap:16px}
.svc-card p{margin:0;color:var(--body)}
.svc-media{position:relative;display:block;aspect-ratio:4/3;border-radius:22px;overflow:hidden}
.svc-link{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.svc-link:hover{color:var(--rouge)}
.svc-title{font-family:var(--fd);font-weight:900;font-size:clamp(34px,3.4vw,46px);text-transform:uppercase;line-height:.9}
.arrow-circle{width:44px;height:44px;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}

/* Boutique */
.shop-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 40px;margin-top:14px}
.shop-title{margin:0;min-width:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(52px,10vw,150px);line-height:.84;overflow-wrap:anywhere}
.shop-count{margin:0 0 8px;font-family:var(--fs);font-style:italic;font-size:26px;line-height:1;color:var(--soft)}
.filters{margin-top:clamp(20px,3vw,32px);display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding:14px 0;border-top:2px dashed var(--line);border-bottom:2px dashed var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:8px;overflow-x:auto;min-width:0;flex:1 1 420px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
@media (max-width:719px){.chips{flex-wrap:nowrap;margin-right:calc(var(--gut) * -1);padding-right:var(--gut)}}
.chip{flex-shrink:0;padding:9px 15px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--ink);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:border-color .2s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sort{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--soft)}
.select{height:42px;border-radius:12px;border:1.5px solid rgba(43,26,18,.25);background:var(--paper);padding:0 12px;color:var(--ink);font-weight:500;cursor:pointer}
.shop-list{padding-top:clamp(24px,3vw,40px)}
.empty-state{padding:60px 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}
.empty-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;border-top:2px dashed var(--line);border-bottom:2px dashed var(--line)}

/* Fiche produit */
.pp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(28px,5vw,72px);margin-top:20px;align-items:start}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (min-width:960px){.gallery{position:sticky;top:96px}}
.g-main{grid-column:1/-1;position:relative;aspect-ratio:4/5;border-radius:24px;overflow:hidden}
.g-main img{transition:opacity .3s ease}
.g-thumb img{transition:scale .5s cubic-bezier(.2,.7,.2,1),opacity .45s}
.g-thumb:hover img{scale:1.06}
.g-thumb{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--cream);border:none;padding:0;cursor:pointer}
.g-thumb.is-on{outline:2.5px solid var(--rouge);outline-offset:2px}
.pp-info{display:flex;flex-direction:column;gap:20px}
.pp-badge{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rouge);border:1.5px dashed var(--rouge);border-radius:999px;padding:5px 12px}
.pp-title{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(44px,5.6vw,84px);line-height:.88;text-wrap:balance}
.pp-prices{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.pp-price{font-family:var(--fd);font-weight:800;font-size:40px;line-height:1;color:var(--rouge)}
.pp-old{font-size:17px;color:var(--soft);text-decoration:line-through}
.member-tag{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--ink);color:var(--jaune)}
.member-link{font-size:14.5px;color:var(--ink);text-decoration:none;border-bottom:2px dashed var(--rouge)}
.member-link:hover{color:var(--rouge)}
.pp-desc{margin:0;font-size:17.5px;line-height:1.55;color:var(--body);max-width:52ch;white-space:pre-line}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{padding:7px 12px;border-radius:999px;background:var(--cream);font-size:13.5px;font-weight:500}
.tag-warn{background:var(--ink);color:var(--jaune)}
.pp-form{display:flex;flex-direction:column;gap:20px}
.buy-row{display:flex;gap:10px;flex-wrap:wrap}
.buy-btn{flex:1 1 220px}
.qty{display:inline-flex;align-items:center;border:1.5px solid rgba(43,26,18,.25);border-radius:14px;height:56px}
.qty button{width:48px;height:100%;border:none;background:none;cursor:pointer;font-size:18px}
.qty output{min-width:26px;text-align:center;font-weight:700}
.qty-sm{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;height:38px;width:max-content}
.qty-sm button{width:38px;height:100%;border:none;background:none;cursor:pointer;font-size:16px}
.qty-sm span{min-width:22px;text-align:center;font-weight:600;font-size:14px}
.acc{margin-top:6px;border-top:2px dashed var(--line)}
.acc details{border-bottom:2px dashed var(--line)}
.acc summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;cursor:pointer;font-weight:600;font-size:16px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:'+';font-size:24px;line-height:1;color:var(--rouge)}
.acc details[open] summary::after{content:'−'}
.acc p{margin:0 0 18px;color:var(--body)}

/* Champs de formulaire */
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field-label{font-weight:600;font-size:14.5px}
.field-row{display:flex;justify-content:space-between;gap:12px}
.opt{color:var(--soft);font-weight:400}
.input{width:100%;height:50px;border-radius:12px;border:1.5px solid var(--line);background:var(--field);padding:0 14px;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s}
.input:focus{border-color:var(--rouge);box-shadow:0 0 0 3px rgba(200,52,44,.15)}
.input.is-err{border-color:var(--rouge)}
textarea.input{height:auto;min-height:104px;padding:12px 14px;resize:vertical;line-height:1.45}
.input-paper{background:var(--paper)}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px}
.span-2{grid-column:1/-1}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;cursor:pointer}
.check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--rouge);flex-shrink:0}
.check a{color:var(--ink)}
.panel{background:var(--field);border-radius:28px;padding:clamp(22px,3.5vw,40px);box-shadow:inset 0 0 0 1.5px rgba(43,26,18,.12)}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.chip-tab{height:46px;padding:0 20px;display:inline-flex;align-items:center;font-weight:600;font-size:15px}
.chip-lg{height:44px;padding:0 16px;display:inline-flex;align-items:center;font-size:14.5px}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:88px;padding:12px;text-align:center;border-radius:16px;border:2px dashed var(--line2);cursor:pointer;color:var(--soft);font-weight:500}
.drop:hover{border-color:var(--rouge);color:var(--rouge)}
.photo-chosen{display:flex;align-items:center;gap:14px;padding:10px;border-radius:16px;background:var(--cream)}
.photo-prev{flex-shrink:0;width:72px;height:72px;border-radius:12px;background-size:cover;background-position:center}
.photo-name{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}

/* Mes services */
.head-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:24px 56px;align-items:end;margin-top:14px}
.pill-links{display:flex;flex-wrap:wrap;gap:8px}
.pill-btn{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:600}
.pill-btn{background:transparent linear-gradient(var(--ink),var(--ink)) no-repeat 0 0/0% 100%;transition:background-size .45s cubic-bezier(.2,.7,.2,1),color .3s}
.pill-btn:hover{background-size:100% 100%;color:var(--paper)}
.svc-blocks{padding-top:clamp(48px,7vw,100px);display:flex;flex-direction:column;gap:clamp(48px,7vw,100px)}
.svc-block{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(24px,5vw,72px);align-items:center}
@media (min-width:880px){.svc-block.is-rev .svc-block-media{order:2}}
.svc-block-media{position:relative;aspect-ratio:5/4;border-radius:26px;overflow:hidden}
.svc-block-media.pat-vichy-rouge{background-size:30px 30px}
.svc-block-text{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.svc-block-text p{margin:0;font-size:17.5px;line-height:1.6;color:var(--body);max-width:56ch}
.svc-num{font-family:var(--fd);font-weight:900;font-size:28px;color:var(--rouge);line-height:1}

/* Configurateur sur mesure */
.cfg-sec{margin-top:clamp(64px,9vw,120px);background:var(--cream);padding:clamp(56px,8vw,110px) var(--gut);scroll-margin-top:70px}
#demande{scroll-margin-top:90px}
.cfg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(24px,4vw,56px);align-items:start}
.cfg-preview{position:relative;aspect-ratio:1;border-radius:28px;background-color:var(--paper);background-image:linear-gradient(rgba(43,26,18,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(43,26,18,.07) 1px,transparent 1px);background-size:28px 28px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1.5px rgba(43,26,18,.1)}
@media (min-width:960px){.cfg-preview{position:sticky;top:96px}}
.cfg-label{position:absolute;top:18px;left:20px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.cfg-foot{position:absolute;left:20px;right:20px;bottom:18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-size:14px}
.cfg-foot span{color:var(--soft)}
.shape{display:none;position:relative}
.cfg[data-shape="trousse"] .shape-trousse,.cfg[data-shape="pochette"] .shape-pochette,.cfg[data-shape="etui"] .shape-etui,.cfg[data-shape="sac"] .shape-sac,.cfg[data-shape="marque"] .shape-marque{display:block}
.cfg[data-shape="bandouliere"] .shape-bandouliere{display:flex}
.cfg[data-lace="0"] .lace{display:none}
.shape-trousse,.shape-pochette,.shape-etui,.shape-sac,.strap,.ribbon{background-color:var(--fab-bg);background-image:var(--fab-img);background-size:var(--fab-size);background-position:var(--fab-pos);transition:background-color .25s}
.shape-trousse{width:66%;aspect-ratio:16/10;border-radius:30px 30px 42px 42px;box-shadow:0 34px 50px -24px rgba(43,26,18,.45),inset 0 -22px 34px rgba(43,26,18,.14);outline:2px dashed rgba(251,246,236,.85);outline-offset:-12px}
.zip{position:absolute;left:9%;right:9%;top:18%;border-top:3px dashed rgba(43,26,18,.5)}
.pull{position:absolute;right:5%;top:calc(18% - 14px);width:14px;height:34px;border-radius:7px;background:var(--ink);transform:rotate(-14deg)}
.lace{position:absolute;left:7%;right:7%;bottom:-12px;height:14px;background-image:radial-gradient(circle at 50% 3px,rgba(43,26,18,.22) 1.6px,transparent 2.2px),radial-gradient(circle at 50% 0,#FFFDF7 7px,transparent 7.5px);background-size:16px 14px;filter:drop-shadow(0 2px 1.5px rgba(43,26,18,.18))}
.shape-pochette{width:66%;aspect-ratio:3/2;border-radius:16px;box-shadow:0 34px 50px -24px rgba(43,26,18,.45),inset 0 -22px 34px rgba(43,26,18,.12);outline:2px dashed rgba(251,246,236,.85);outline-offset:-10px}
.shape-pochette .lace{left:5%;right:5%}
.flap{position:absolute;left:0;right:0;top:0;height:62%;clip-path:polygon(0 0,100% 0,50% 100%);background:rgba(43,26,18,.18)}
.snap{position:absolute;left:50%;top:62%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--ink);box-shadow:inset 0 0 0 4px rgba(251,246,236,.28)}
.shape-etui{width:34%;aspect-ratio:5/8.4;border-radius:26px 26px 30px 30px;box-shadow:0 34px 50px -24px rgba(43,26,18,.45),inset 0 -22px 34px rgba(43,26,18,.12);outline:2px dashed rgba(251,246,236,.85);outline-offset:-10px}
.shape-etui .lace{left:8%;right:8%}
.etui-top{position:absolute;left:0;right:0;top:0;height:20%;border-radius:26px 26px 0 0;background:rgba(43,26,18,.16);border-bottom:3px dashed rgba(251,246,236,.8)}
.shape-sac{width:54%;aspect-ratio:1/1.02;margin-top:16%;border-radius:12px 12px 30px 30px;box-shadow:0 34px 50px -24px rgba(43,26,18,.45),inset 0 -22px 34px rgba(43,26,18,.12);outline:2px dashed rgba(251,246,236,.85);outline-offset:-12px}
.shape-sac .lace{left:6%;right:6%}
.handle{position:absolute;bottom:100%;width:26%;height:40%;border:11px solid var(--solid);border-bottom:none;border-radius:999px 999px 0 0}
.h-l{left:16%}.h-r{right:16%}
.shape-bandouliere{width:76%;aspect-ratio:1;align-items:center;justify-content:center}
.strap{width:15%;height:92%;border-radius:999px;transform:rotate(28deg);outline:2px dashed rgba(251,246,236,.85);outline-offset:-6px;box-shadow:0 24px 40px -20px rgba(43,26,18,.5)}
.ring{position:absolute;width:13%;aspect-ratio:1;border-radius:50%;border:8px solid #BFA77A}
.r1{left:65%;top:3%}.r2{left:22%;top:84%}
.shape-marque{width:21%;aspect-ratio:1/3.4;filter:drop-shadow(0 24px 22px rgba(43,26,18,.3))}
.ribbon{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,100% 100%,50% 88%,0 100%)}
.ribbon-dash{position:absolute;left:12%;right:12%;top:5%;bottom:20%;border:2px dashed rgba(251,246,236,.85);border-radius:4px}
.cfg-steps{display:flex;flex-direction:column;gap:28px}
.step{border:none;margin:0;padding:0;min-width:0}
.step-h{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;padding:0;font-weight:600;font-size:17px}
.step-n{font-family:var(--fd);font-weight:900;font-size:26px;line-height:1;color:var(--rouge);margin-right:10px}
.step-h .step-n{margin-right:0}
.step-sub{color:var(--soft);font-size:15px;font-weight:400}
.step-last{display:flex;flex-direction:column;gap:16px;padding-top:24px;border-top:2px dashed var(--line)}
.step-last .step-h{margin-bottom:0}
.chip-sw{gap:10px;height:46px;padding:0 16px 0 8px}
.sw{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(43,26,18,.15);flex-shrink:0}
.color-row{display:flex;flex-wrap:wrap;gap:12px}
.color-dot{width:46px;height:46px;border-radius:50%;border:3px solid var(--cream);box-shadow:0 0 0 2px transparent;cursor:pointer;padding:0;transition:box-shadow .15s}
.color-dot.is-on{box-shadow:0 0 0 2px var(--ink)}
.color-dot{transition:box-shadow .15s,scale .25s cubic-bezier(.2,.7,.2,1)}
.color-dot:hover{scale:1.1}
.switch{display:flex;align-items:center;gap:14px;background:none;border:none;padding:0;cursor:pointer;text-align:left}
.switch-track{position:relative;flex-shrink:0;width:52px;height:30px;border-radius:999px;background:rgba(43,26,18,.25);transition:background .2s}
.switch-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--paper);transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch[aria-checked="true"] .switch-track{background:var(--rouge)}
.switch[aria-checked="true"] .switch-knob{transform:translateX(22px)}
.switch:disabled{opacity:.45;cursor:not-allowed}
.switch-t{display:block;font-weight:600}
.switch-s{display:block;font-size:14px;color:var(--soft)}
.sent-box{max-width:760px;margin:0 auto;text-align:center;background:var(--paper);border-radius:28px;padding:clamp(36px,6vw,72px);outline:2px dashed var(--rouge);outline-offset:-12px;display:flex;flex-direction:column;align-items:center;gap:18px;animation:ecPop .35s ease both}
.sent-box p{margin:0;font-size:18px;line-height:1.55;color:var(--body)}
.sent-box strong{color:var(--ink)}
.sent-title{font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(48px,7vw,90px);line-height:.9}
.sent-title.sm{font-size:clamp(44px,6vw,72px)}
.pop{animation:ecPop .35s ease both}
.dem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(28px,5vw,72px);align-items:start}

/* La marque */
.marque-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:clamp(28px,5vw,72px);align-items:end;margin-top:14px}
.h1-marque{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(56px,8.6vw,132px);line-height:.84}
.marque-portrait{position:relative;max-width:520px;width:100%;justify-self:end;margin-top:14px}
.arch-45{aspect-ratio:4/5}
.band-cream{margin-top:clamp(48px,6vw,80px);background:var(--cream);padding:clamp(64px,9vw,120px) var(--gut)}
.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(24px,3vw,40px)}
.tl-item{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:2px dashed rgba(43,26,18,.3)}
.tl-n{font-family:var(--fd);font-weight:900;font-size:56px;line-height:.9;color:var(--rouge)}
.tl-item h3{margin:0;font-family:var(--fd);font-weight:800;text-transform:uppercase;font-size:30px;line-height:1}
.tl-item p{margin:0;color:var(--body);line-height:1.6}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(28px,5vw,72px);align-items:center}
.sq-media{position:relative;aspect-ratio:1;border-radius:28px;overflow:hidden}
.dot-list{display:flex;flex-direction:column;border-top:2px dashed var(--line);width:100%}
.dot-list>div{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:2px dashed var(--line);font-size:17px}
.red-dot{width:10px;height:10px;flex-shrink:0;border-radius:50%;background:var(--rouge);transform:translateY(-2px)}

/* Points de vente */
.pdv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(14px,2vw,24px)}
.pdv-card{display:flex;flex-direction:column;gap:18px;padding:16px 16px 24px;border-radius:26px;background:var(--cream)}
.pdv-sw{height:120px;border-radius:16px;outline:2px dashed rgba(251,246,236,.85);outline-offset:-8px}
.pdv-txt{padding:0 8px;display:flex;flex-direction:column;gap:6px}
.pdv-n{font-family:var(--fd);font-weight:700;font-size:18px;color:var(--rouge)}
.pdv-txt h2{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(36px,3.4vw,48px);line-height:.92;overflow-wrap:anywhere}
.pdv-link{margin:0 8px;align-self:flex-start}
.atelier-box{border-radius:30px;background:var(--ink);color:var(--foot);padding:clamp(32px,5vw,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:28px 48px;align-items:center}
.atelier-box h2{margin:6px 0 0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(40px,5vw,72px);line-height:.88;color:var(--paper)}
.serif-gold{font-family:var(--fs);font-style:italic;font-size:26px;color:var(--jaune)}
.atelier-links{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.atelier-links a:not(.btn){color:var(--paper);font-size:18px;text-decoration:none;overflow-wrap:anywhere}
.atelier-links a:not(.btn):hover{color:var(--jaune)}

/* Carte cadeau */
.gift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(28px,5vw,72px);align-items:start}
@media (min-width:960px){.sticky-wide{position:sticky;top:96px}}
.gift-card{position:relative;aspect-ratio:1.6;border-radius:26px;overflow:hidden;background-color:var(--rouge);background-image:linear-gradient(90deg,rgba(251,246,236,.16) 50%,transparent 50%),linear-gradient(rgba(251,246,236,.16) 50%,transparent 50%);background-size:36px 36px;color:var(--paper);outline:2px dashed rgba(251,246,236,.75);outline-offset:-14px;box-shadow:0 40px 70px -30px rgba(43,26,18,.55);padding:clamp(24px,3.5vw,40px);display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.gift-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.gift-logo{font-family:var(--fd);font-weight:900;font-size:clamp(22px,2.4vw,30px);text-transform:uppercase;line-height:1}
.gift-tag{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--paper);color:var(--rouge);white-space:nowrap}
.gift-big{font-family:var(--fd);font-weight:900;font-size:clamp(64px,9vw,128px);line-height:.85}
.gift-bottom{display:flex;flex-direction:column;gap:4px;min-width:0}
.gift-to{font-weight:600;font-size:clamp(14px,1.4vw,17px)}
.gift-msg{font-family:var(--fs);font-style:italic;font-size:clamp(17px,1.8vw,22px);line-height:1.25;overflow-wrap:anywhere}
.amount{height:50px;min-width:76px;padding:0 18px;border-radius:14px;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-family:var(--fd);font-weight:800;font-size:22px;cursor:pointer}
.amount:hover{border-color:var(--ink)}
.amount.is-on,.chip-other.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip-other{height:50px;border-radius:14px;font-weight:600;font-size:15px}
.custom-amount{display:flex;align-items:center;gap:10px;margin-top:12px}
.custom-amount .input{width:120px}

/* Pages légales */
.prose{max-width:760px;margin-top:clamp(24px,4vw,48px);font-size:17px;line-height:1.65;color:var(--body)}
.prose h2{margin:36px 0 10px;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:30px;line-height:1;color:var(--ink)}
.prose p{margin:0 0 14px}
.prose a{color:var(--ink)}

/* Panier */
.cart-layout{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,56px);align-items:flex-start}
.cart-main{flex:999 1 480px;min-width:0}
.cart-lines{border-top:2px dashed var(--line)}
.cart-line{display:grid;grid-template-columns:clamp(84px,10vw,112px) minmax(0,1fr) auto;gap:clamp(12px,2vw,22px);align-items:start;padding:20px 0;border-bottom:2px dashed var(--line)}
.cart-line.is-err{background:rgba(200,52,44,.05)}
.cl-img{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden}
.cl-info{display:flex;flex-direction:column;gap:8px;min-width:0}
.cl-name{color:var(--ink);text-decoration:none;font-weight:600;font-size:17px;line-height:1.25}
.cl-name:hover{color:var(--rouge)}
.cl-note{font-size:14px;color:var(--soft)}
.cl-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.cl-total{font-family:var(--fd);font-weight:800;font-size:26px;line-height:1;white-space:nowrap}
.summary{flex:1 1 320px;background:var(--cream);border-radius:26px;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:14px}
@media (min-width:960px){.summary{position:sticky;top:96px}}
.summary-title{font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:34px;line-height:1}
.sum-row{display:flex;justify-content:space-between;gap:12px}
.sum-row.is-red{color:var(--rouge);font-weight:600}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:14px;border-top:2px dashed rgba(43,26,18,.25);font-weight:600}
.sum-total span+span{font-family:var(--fd);font-weight:900;font-size:40px;line-height:1}
.promo-box{display:block;padding:12px 14px;border-radius:12px;background:var(--paper);color:var(--ink);text-decoration:none;font-size:14px;box-shadow:inset 0 0 0 1.5px rgba(200,52,44,.35)}
.promo-box:hover{color:var(--rouge)}

/* Commande */
.checkout{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,56px);align-items:flex-start;margin-top:clamp(24px,4vw,40px)}
.co-main{flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:clamp(24px,3vw,36px)}
.co-block{border:none;margin:0;padding:0 0 clamp(24px,3vw,36px);border-bottom:2px dashed var(--line);display:flex;flex-direction:column;gap:14px;min-width:0}
.co-h{display:flex;align-items:baseline;gap:10px;padding:0;margin-bottom:6px;font-weight:600;font-size:19px}
.ship-options{display:flex;flex-direction:column;gap:10px}
.ship-opt{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;border:1.5px solid var(--line);background:var(--field);cursor:pointer;transition:border-color .2s}
.ship-opt:hover{border-color:var(--ink)}
.ship-opt:has(input:checked){border-color:var(--rouge);box-shadow:0 0 0 3px rgba(200,52,44,.12)}
.ship-opt input{width:20px;height:20px;accent-color:var(--rouge);flex-shrink:0;margin:0}
.ship-opt .so-txt{flex:1;display:flex;flex-direction:column;gap:2px}
.ship-opt .so-txt small{color:var(--soft);font-size:13.5px}
.ship-opt .so-price{font-weight:700;white-space:nowrap}
.ship-opt s{color:var(--soft);font-weight:400;margin-right:6px}
.mini-lines{display:flex;flex-direction:column;gap:10px;padding-bottom:12px;border-bottom:2px dashed rgba(43,26,18,.18)}
.mini-line{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;font-size:14.5px}
.mini-img{position:relative;width:48px;height:58px;border-radius:10px;overflow:hidden}
.mini-qty{position:absolute;top:-1px;right:-1px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}
.mini-name{line-height:1.25}
.mini-name small{display:block;color:var(--soft);font-size:12.5px}
.gift-code{display:flex;flex-direction:column;gap:8px;padding-top:4px}
.gift-code-row{display:flex;gap:8px}
.gift-code-row .input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.04em}
.pay{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.pay-label{white-space:nowrap}
.card-ico{flex-shrink:0;display:inline-block;width:24px;height:17px;border-radius:4px;border:2px solid currentColor;position:relative}
.card-ico::after{content:'';position:absolute;left:0;right:0;top:3px;height:3px;background:currentColor}
.pp-sep{display:flex;align-items:center;gap:12px;color:var(--soft);font-size:13px}
.pp-sep::before,.pp-sep::after{content:'';flex:1;border-top:1.5px dashed rgba(43,26,18,.25)}
#paypal-buttons{min-height:50px}
.secure-note{font-size:13px}
.thanks{max-width:820px;margin:0 auto;text-align:center;background:var(--cream);border-radius:30px;padding:clamp(36px,6vw,80px);outline:2px dashed var(--rouge);outline-offset:-12px;display:flex;flex-direction:column;align-items:center;gap:18px}
.thanks p{margin:0;font-size:18px;line-height:1.55;color:var(--body)}
.thanks strong{color:var(--ink)}
.thanks-title{font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(56px,8vw,110px);line-height:.85}
.gift-codes{display:flex;flex-direction:column;gap:10px;width:100%;max-width:480px}
.gift-code-box{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:14px;background:var(--paper);border:1.5px dashed var(--rouge)}
.gift-code-box strong{font-family:var(--fd);font-size:30px;letter-spacing:.06em;color:var(--rouge)}

/* Espace client */
.acct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(28px,5vw,72px);align-items:start;margin-top:14px}
.member-card{position:relative;width:100%;max-width:520px;aspect-ratio:1.6;border-radius:26px;overflow:hidden;background-color:var(--ink);background-image:radial-gradient(rgba(251,246,236,.12) 19%,transparent 21%),radial-gradient(rgba(251,246,236,.12) 19%,transparent 21%);background-size:18px 18px;background-position:0 0,9px 9px;color:var(--paper);outline:2px dashed rgba(227,174,43,.7);outline-offset:-14px;padding:clamp(22px,3.5vw,36px);display:flex;flex-direction:column;justify-content:space-between;gap:8px;box-shadow:0 40px 70px -30px rgba(43,26,18,.55)}
.gold{color:var(--jaune)}
.gift-tag.gold{background:var(--jaune);color:var(--ink)}
.member-big{font-family:var(--fd);font-weight:900;font-size:clamp(64px,9vw,120px);line-height:.85;color:var(--jaune)}
.member-name{font-weight:600;font-size:clamp(15px,1.5vw,18px)}
.member-since{font-family:var(--fs);font-style:italic;font-size:clamp(16px,1.6vw,20px);color:var(--foot)}
.small-link{background:none;border:none;padding:0;color:var(--ink);font-size:14.5px;cursor:pointer;text-decoration:underline}
.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(24px,4vw,48px);margin-top:clamp(28px,4vw,48px);align-items:start}
.info-box{border-radius:24px;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.info-box.cream{background:var(--cream)}
.info-box.line{box-shadow:inset 0 0 0 1.5px rgba(43,26,18,.14);align-items:stretch}
.info-box p{margin:0;color:var(--body);line-height:1.55}
.box-title{font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:32px;line-height:1}
.orders{border-top:2px dashed var(--line)}
.order-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;padding:18px 0;border-bottom:2px dashed var(--line)}
.order-n{font-family:var(--fd);font-weight:800;font-size:26px;line-height:1}
.status-pill{font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--cream)}
.narrow{max-width:640px}

/* Appel à l'action */
.cta-sec{padding:var(--sec) var(--gut) 0}
.cta-box{max-width:1400px;margin:0 auto;position:relative;overflow:hidden;border-radius:30px;background:var(--rouge);color:var(--paper);padding:clamp(36px,6vw,84px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:32px;align-items:end}
.cta-deco{position:absolute;right:-70px;top:-90px;width:min(46vw,380px);aspect-ratio:1;border-radius:36px;transform:rotate(calc(14deg + var(--p,0) * -10deg));background-image:linear-gradient(90deg,rgba(251,246,236,.2) 50%,transparent 50%),linear-gradient(rgba(251,246,236,.2) 50%,transparent 50%);background-size:38px 38px;outline:2px dashed rgba(251,246,236,.55);outline-offset:-14px;pointer-events:none}
.cta-title{position:relative;margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(46px,7vw,108px);line-height:.86}
.cta-side{position:relative;display:flex;flex-direction:column;gap:22px;align-items:flex-start;max-width:460px}
.cta-side p{margin:0;font-size:18px;line-height:1.5}

/* Pied de page */
.site-footer{margin-top:var(--sec);background:var(--ink);color:var(--foot)}
.footer-in{padding-top:clamp(48px,6vw,84px);padding-bottom:28px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:44px 36px}
.footer-nl{display:flex;flex-direction:column;gap:16px}
.footer-nl h3{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:44px;line-height:.9;color:var(--paper)}
.footer-nl h3 .serif{color:var(--jaune)}
.footer-nl p{margin:0;font-size:15px}
.nl-form{display:flex;gap:8px;flex-wrap:wrap}
.nl-form input[type=email]{flex:1 1 180px;min-width:0;height:48px;border-radius:12px;border:1.5px solid rgba(234,223,207,.3);background:rgba(251,246,236,.06);color:var(--paper);padding:0 14px;font-size:16px;outline:none}
.nl-form input[type=email]:focus{border-color:var(--jaune)}
.nl-form input::placeholder{color:rgba(234,223,207,.6)}
.nl-form button{height:48px;padding:0 18px;border-radius:12px;border:none;background:var(--jaune);color:var(--ink);font-weight:700;cursor:pointer}
.nl-form button:hover{background:var(--jaune-l)}
.nl-msg{margin:0;padding:14px 16px;border-radius:12px;border:1.5px dashed var(--jaune);color:var(--paper)}
.nl-msg.is-err{border-color:#F2A08F;color:#F2A08F;padding:0;border:none}
.footer-col{display:flex;flex-direction:column;gap:10px;font-size:15px}
.footer-col a{color:var(--foot);text-decoration:none}
.footer-col a:hover{color:var(--jaune)}
.footer-h{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--jaune);margin-bottom:4px}
.socials{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.socials a{height:38px;padding:0 14px;border-radius:999px;border:1.5px solid rgba(234,223,207,.35);display:inline-flex;align-items:center;font-size:14px}
.socials a:hover{border-color:var(--jaune)}
.footer-bottom{margin-top:clamp(40px,5vw,64px);padding-top:22px;border-top:1.5px dashed rgba(234,223,207,.25);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font-size:13px;color:#BFAF9B}
.footer-bottom div{display:flex;flex-wrap:wrap;gap:8px 20px}
.footer-bottom a{color:#BFAF9B;text-decoration:none}
.footer-bottom a:hover{color:var(--jaune)}

/* Panier latéral */
.drawer{position:fixed;inset:0;z-index:80}
.drawer-bg{position:absolute;inset:0;background:rgba(43,26,18,.45);animation:ecFade .25s ease both}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--paper);display:flex;flex-direction:column;box-shadow:-24px 0 60px rgba(43,26,18,.25);animation:ecSlide .38s cubic-bezier(.2,.8,.2,1) both;outline:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:2px dashed rgba(43,26,18,.18)}
.drawer-title{font-family:var(--fd);font-weight:900;font-size:34px;text-transform:uppercase;line-height:1}
.drawer-count{color:var(--soft);font-size:14px}
.drawer-body{flex:1;display:flex;flex-direction:column;min-height:0}
.drawer-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px;text-align:center}
.drawer-empty p{margin:0;font-family:var(--fs);font-style:italic;font-size:32px;line-height:1.15}
.drawer-lines{flex:1;overflow-y:auto;padding:4px 24px}
.d-line{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid rgba(43,26,18,.1)}
.d-img{position:relative;width:64px;height:78px;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(43,26,18,.1)}
.d-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.d-info a{color:var(--ink);text-decoration:none;font-weight:600;line-height:1.25}
.d-info a:hover{color:var(--rouge)}
.d-note{font-size:13px;color:var(--soft);line-height:1.35}
.d-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.d-right strong{white-space:nowrap}
.drawer-foot{padding:20px 24px 24px;border-top:2px dashed rgba(43,26,18,.18);display:flex;flex-direction:column;gap:12px}
.drawer-foot .sum-total span+span{font-size:32px}
.drawer-promo{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--cream);color:var(--ink);text-decoration:none;font-size:14px}
.drawer-promo:hover{background:var(--cream2);color:var(--ink)}
.drawer-promo b{font-weight:600;color:var(--rouge);white-space:nowrap}
.btn-text{height:44px;border:none;background:none;color:var(--ink);font-weight:600;cursor:pointer;text-decoration:underline}
.line-err{color:var(--rouge);font-size:13px;font-weight:600}

/* Aperçu rapide */
.qv{position:fixed;inset:0;z-index:85;display:flex;align-items:center;justify-content:center;padding:16px}
.qv-bg{position:absolute;inset:0;background:rgba(43,26,18,.5);animation:ecFade .25s ease both}
.qv-box{position:relative;width:min(940px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--paper);border-radius:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));animation:ecPop .32s cubic-bezier(.2,.8,.2,1) both;box-shadow:0 40px 80px -20px rgba(43,26,18,.45)}
.qv-media{position:relative;min-height:340px;aspect-ratio:4/5}
.qv-info{padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:18px;justify-content:center}
.qv-info h3{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;font-size:clamp(36px,4.4vw,56px);line-height:.9}
.qv-info p{margin:0;color:var(--body);font-size:16.5px;white-space:pre-line}
.qv-prices{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.qv-prices .pp-price{font-size:32px}
.qv-close{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:none;background:var(--paper);cursor:pointer;font-size:16px;box-shadow:0 4px 14px rgba(43,26,18,.2);z-index:2}
.qv .qty{height:54px}
.qv .qty button{width:46px}

/* Menu mobile */
.mmenu{position:fixed;inset:0;z-index:90;background:var(--paper);display:flex;flex-direction:column;padding:16px var(--gut) 28px;overflow-y:auto;animation:ecFade .2s ease both}
.mmenu-top{display:flex;justify-content:space-between;align-items:center}
.mmenu-top .logo-word{font-size:30px}
.mmenu-close{width:46px;height:46px;border-radius:14px;border:1.5px solid var(--ink);background:transparent;cursor:pointer;font-size:16px}
.mmenu-nav{display:flex;flex-direction:column;margin-top:28px;border-top:2px dashed rgba(43,26,18,.25)}
.mmenu-nav a{padding:14px 0;border-bottom:2px dashed rgba(43,26,18,.25);color:var(--ink);text-decoration:none;font-family:var(--fd);font-weight:900;font-size:44px;text-transform:uppercase;line-height:1}
.mmenu-nav a.is-red{color:var(--rouge)}
.mmenu-cta{margin-top:24px;height:54px}
.mmenu-contact{margin-top:auto;padding-top:28px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.mmenu-contact a{color:var(--ink);text-decoration:none}

/* Notification */
.toast{position:fixed;left:50%;bottom:24px;z-index:120;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:14px;font-weight:600;font-size:14.5px;box-shadow:0 14px 30px -10px rgba(43,26,18,.5);animation:ecToast .3s ease both;max-width:calc(100% - 32px)}

body.no-scroll{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .sew-btn,.spin-badge,.sf-bg,.cta-deco{translate:none!important}
  .ticker-track{animation:none}
}
@media print{.topbar,.site-header,.site-footer,.cta-sec{display:none}}

/* ================================================================
   Animations — discrètes, au service de la lecture
   ================================================================ */
@keyframes ecRise{from{opacity:0;translate:0 22px}to{opacity:1;translate:none}}
@keyframes ecRiseSm{from{opacity:0;translate:0 14px}to{opacity:1;translate:none}}
@keyframes ecStitch{to{background-position:10px 100%}}
@keyframes ecNew{from{background:rgba(227,174,43,.28)}to{background:transparent}}

/* Arrivée sur la page : l'accueil se compose, les autres pages glissent en place */
.hero-kicker{animation:ecRise .9s cubic-bezier(.2,.7,.2,1) .05s both}
.hero-title span{animation:ecRise 1s cubic-bezier(.2,.7,.2,1) .15s both}
.hero-title span+span{animation-delay:.28s}
.hero-photo{animation:ecRise 1.1s cubic-bezier(.2,.7,.2,1) .4s both}
.hero-meta,.hero-text{animation:ecRise .9s cubic-bezier(.2,.7,.2,1) .62s both}
.deco{animation:ecFade 1.2s ease .75s both}
.page-head>*{animation:ecRiseSm .7s cubic-bezier(.2,.7,.2,1) both}
.page-head>:nth-child(2){animation-delay:.07s}
.page-head>:nth-child(n+3){animation-delay:.14s}

/* Apparition au défilement (activée par le script, donc tout reste visible sans JavaScript) */
.rv-on .rv:not(.in){opacity:0}
.rv-on .rv.in:not(.done){animation:ecRise .8s cubic-bezier(.2,.7,.2,1) var(--rv-d,0ms) both}

/* Profondeur : les boutons de couture de l'accueil réagissent au défilement et au curseur */
.sew-btn{translate:calc(var(--mx,0) * var(--ma,-24px)) calc(var(--p,0) * var(--sa,100px) + var(--my,0) * var(--ma,-24px))}
.deco .sew-btn:nth-child(1){--sa:120px;--ma:-30px}
.deco .sew-btn:nth-child(2){--sa:200px;--ma:-16px}
.deco .sew-btn:nth-child(3){--sa:90px;--ma:-38px}
.deco .sew-btn:nth-child(4){--sa:240px;--ma:-12px}
.deco .sew-btn:nth-child(5){--sa:150px;--ma:-24px}
.spin-badge{translate:calc(var(--mx,0) * -12px) calc(var(--p,0) * 60px + var(--my,0) * -12px)}

/* Photos : légère profondeur dans leur cadre */
.px-frame>img.fill{scale:1.12;translate:0 calc(var(--p,0) * -6%)}

/* Cartes à manipuler : carte cadeau, carte membre, aperçu du configurateur */
.gift-card,.member-card{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gift-card::after,.member-card::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.22),transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none}
.gift-card>*,.member-card>*{position:relative}
.cfg-preview .shape{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.is-tilting.gift-card,.is-tilting.member-card,.is-tilting .shape{transition-duration:.15s}
.is-tilting.gift-card::after,.is-tilting.member-card::after{opacity:1}

/* Flèches qui avancent au survol */
.arr{display:inline-block;transition:translate .35s cubic-bezier(.2,.7,.2,1)}
:is(a,button):hover .arr-r{translate:4px 0}
:is(a,button):hover .arr-l{translate:-4px 0}
.svc-link .arrow-circle{transition:background .3s,border-color .3s,color .3s,rotate .45s cubic-bezier(.2,.7,.2,1)}
.svc-link:hover .arrow-circle{background:var(--rouge);border-color:var(--rouge);color:var(--paper);rotate:-45deg}
.svc-media img,.svc-block-media img{transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.svc-card:hover .svc-media img{transform:scale(1.04)}

/* En-tête défilé, nouvel article dans le panier */
.site-header.is-scrolled{box-shadow:0 14px 30px -26px rgba(43,26,18,.55)}
.d-line.is-new{animation:ecNew 1.6s ease}

/* Bulle « Voir » qui suit le curseur sur les photos cliquables */
.cursor-bubble{position:fixed;left:0;top:0;z-index:70;width:0;height:0;pointer-events:none}
.cursor-bubble span{position:absolute;left:-38px;top:-38px;width:76px;height:76px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.03em;outline:1.5px dashed rgba(251,246,236,.45);outline-offset:-6px;box-shadow:0 12px 26px -12px rgba(43,26,18,.55);scale:.3;opacity:0;transition:scale .35s cubic-bezier(.2,.7,.2,1),opacity .25s}
.cursor-bubble.is-on span{scale:1;opacity:1}
