@font-face{font-family:Crimson;src:url('assets/CrimsonPro-VariableFont_wght.ttf');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Crimson;src:url('assets/CrimsonPro-Italic-VariableFont_wght.ttf');font-style:italic;font-weight:100 900;font-display:swap}
/* Deux familles. Six rôles typographiques ; le logo conserve son dessin propre. */
:root{
 --serif:Crimson,Georgia,serif;--sans:Arial,Helvetica,sans-serif;
 --tracking-label:.12em;--space-label:16px;--text-reading:18px;--text-label:12px;--text-body:14px;--text-editorial:20px;--text-card:24px;
 --text-heading:28px;--text-display:36px;
 --paper:#f7f4ee;--ink:#30362e;--muted:#747b6d;--soft:#e8ebdf;--line:#cbd0c1;
 --hover:#dce2d2;--action-hover:#454b43;--radius:6px;--ease:cubic-bezier(.22,1,.36,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--text-body)/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button{cursor:pointer}a,button,select{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--muted);outline-offset:4px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;margin:0}
h1{font-size:var(--text-display)}h2{font-size:var(--text-heading)}h3{font-size:var(--text-card)}
.eyebrow,.edition-label,.card p,#count,footer>small{font:400 var(--text-label)/1.5 var(--sans);color:var(--muted)}
.eyebrow,.edition-label{letter-spacing:var(--tracking-label);text-transform:uppercase}
/* Identité et bandeau */
header{height:116px;max-width:1650px;margin:auto;padding:0 6%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.brand{font:400 29px/1 var(--serif);letter-spacing:.24em;text-align:center}
.brand small{display:block;font:600 10px/1.5 var(--serif);letter-spacing:.49em;margin-top:2px}
header>.brand{grid-column:2;justify-self:center}.languages{grid-column:3;justify-self:end;display:flex;gap:4px}.languages>span{display:none}
.languages button{border:0;background:transparent;padding:10px 12px;border-radius:var(--radius);font-size:var(--text-label);color:var(--muted);transition:background-color .25s,color .25s}
.languages button.active,.languages button:hover{background:var(--soft);color:var(--ink)}
main{max-width:1650px;margin:auto}.hero{margin:0 24px;aspect-ratio:4/1;overflow:hidden;border-radius:var(--radius)}
.hero>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
/* Éditorial : même corps et même couleur pour tout le texte de présentation. */
.intro{text-align:center;padding:65px 24px 78px}.intro>.eyebrow{margin:0 0 22px}
.editorial-title em{font-weight:400;color:var(--muted)}
.intro .brand-statement,.intro>p:last-child,.house>p{font:400 var(--text-editorial)/1.6 var(--serif);color:var(--muted);max-width:900px;margin:0 auto}
.intro .brand-statement{margin-top:24px}.house{background:var(--soft);text-align:center;padding:80px 24px}
.house h2{margin:0 0 24px;text-transform:uppercase}.house>p{font-size:16px;line-height:1.6;margin-top:24px;margin-bottom:0;color:var(--muted);max-width:1000px;text-wrap:balance;letter-spacing:.02em}
/* Catalogue : trois colonnes, largeur contenue. */
.catalogue{width:100%;max-width:1280px;margin:auto;padding:0 40px 100px}.section-heading .eyebrow{margin:0 0 8px}.section-heading h2{text-transform:uppercase;margin:0 0 32px}.section-heading>p{display:none}
.catalogue-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:30px;border-top:1px solid var(--line);padding-top:30px}
.filters{position:sticky;top:25px;align-self:start;border-right:1px solid var(--line);padding-right:25px}.filters>.eyebrow{margin:0}
.patterns{display:flex;flex-direction:column;gap:5px;margin:var(--space-label) 0 24px}
.patterns button,.edition-buttons button,.variant{border:0;background:transparent;border-radius:var(--radius);padding:12px 14px;font:400 var(--text-body)/1.4 var(--sans);color:var(--muted);transition:background-color .25s,color .25s}
.patterns button,.edition-buttons button{text-align:left}
.patterns button.active,.edition-buttons button.active,.variant.active{background:var(--soft);color:var(--ink)}
.patterns button:hover,.edition-buttons button:hover,.variant:hover{background:var(--soft)}
.edition-buttons{border-top:1px solid var(--line);padding-top:24px}.edition-label{display:block;margin-bottom:var(--space-label)}.edition-buttons [role=group]{display:flex;flex-direction:column;gap:5px}
.catalogue-results{min-width:0}#count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}#grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 20px}
.card{border:0;background:none;padding:0;text-align:left;min-width:0;animation:card-arrive .6s var(--ease) both;animation-delay:calc(var(--card-index,0)*35ms)}
.image-wrap{aspect-ratio:1;background:#fff;border-radius:var(--radius);overflow:hidden;isolation:isolate}.card img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .85s var(--ease)}.card:hover img{transform:scale(1.045)}
.card-line{margin-top:16px}.card h3,#product-title{text-transform:uppercase;letter-spacing:normal}.card p{font-size:var(--text-body);margin:8px 0 0;text-transform:none;letter-spacing:normal}.empty-catalogue{grid-column:1/-1;color:var(--muted);margin:0}
/* Pied de page : liens textuels regroupés par usage. */
footer{max-width:1280px;margin:auto;padding:60px 40px 32px}
.footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;text-align:center;padding-bottom:48px}
.footer-column h3{font:400 var(--text-label)/1.5 var(--sans);text-transform:uppercase;letter-spacing:var(--tracking-label);margin:0 0 14px;color:var(--ink)}
.footer-column a{display:block;width:fit-content;margin:4px auto;font:400 var(--text-body)/1.4 var(--sans);color:var(--muted);transition:color .25s}.footer-column a:hover{color:var(--ink)}
.footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:28px}.footer-bottom>small{grid-column:1;font:400 var(--text-label)/1.5 var(--sans);color:var(--muted)}.footer-bottom>.brand{grid-column:2}
/* Fiche : titre éditorial, informations et actions en sans serif. */
dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(1060px,96vw);height:100dvh;max-height:100dvh;padding:65px 38px 40px;border:0;border-radius:12px 0 0 12px;background:var(--paper);color:var(--ink);overflow:auto;opacity:0;transform:translateX(100%);transition:transform .55s var(--ease),opacity .4s,display .55s allow-discrete,overlay .55s allow-discrete}
dialog[open]{opacity:1;transform:translateX(0)}dialog::backdrop{background:#19201499;backdrop-filter:blur(4px);opacity:0;transition:opacity .35s,display .55s allow-discrete,overlay .55s allow-discrete}dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;transform:translateX(100%)}dialog[open]::backdrop{opacity:0}}
body:has(dialog[open]){overflow:hidden}.product-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:34px}
.close{position:absolute;right:16px;top:13px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--radius);background:transparent;color:var(--muted);transition:background-color .25s}.close svg{width:16px;height:16px}.close:focus,.close:focus-visible{background:transparent;outline:none;box-shadow:none}.close:hover{background:var(--soft)}.close:focus-visible svg{filter:drop-shadow(0 0 .4px currentColor)}
#main-image{display:block;width:100%;background:#fff;border-radius:var(--radius);animation:image-arrive .45s var(--ease) both}
#thumbnails{display:flex;gap:10px;margin-top:12px}#thumbnails button{width:75px;padding:0;border:0;border-radius:var(--radius);background:#fff;overflow:hidden;opacity:.45;transition:opacity .25s}#thumbnails button[aria-pressed="true"],#thumbnails button:hover,#thumbnails button:focus-visible{opacity:1}#thumbnails button:focus-visible{outline:none;box-shadow:none}#thumbnails img{display:block;width:100%}
.product-info>.eyebrow{margin:0 0 8px}.product-info h2{margin:0 0 24px}.product-info>#product-copy{font-size:var(--text-body);line-height:1.6;color:var(--muted);margin:0 0 24px}
#variants{display:flex;gap:8px;flex-wrap:wrap}.variant{padding:10px 14px}.variant:focus-visible{outline:none;background:var(--hover)}
#specs{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;padding:24px 0}
#specs .spec-item{display:flex;align-items:center;gap:12px;min-width:0}#specs .spec-item>svg{width:48px;height:48px;flex:0 0 48px;isolation:isolate}#specs .spec-item>div{min-width:0}#specs strong{display:block;font:400 var(--text-body)/1.5 var(--sans)}#specs span{display:block;margin-top:3px;font:400 var(--text-label)/1.5 var(--sans);color:var(--muted)}
.store-label{display:grid;gap:8px;color:var(--muted);font-size:var(--text-label)}
.store-label select{width:100%;min-height:46px;border:0;border-radius:var(--radius);padding:13px 42px 13px 16px;background-color:var(--soft);font:400 var(--text-body)/1.4 var(--sans);color:var(--ink);appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23747b6d' stroke-width='1.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}
.store-label select:focus-visible{outline:none;background-color:var(--hover)}
.buy,.etsy,.house>a{display:block;border:0;border-radius:var(--radius);padding:14px 18px;text-align:center;font:400 var(--text-body)/1.4 var(--sans);transition:background-color .25s;color:var(--paper);background:var(--ink)}.buy{margin-top:24px}.etsy{margin-top:8px}.buy:hover,.etsy:hover{background:var(--action-hover)}.buy:focus-visible,.etsy:focus-visible{outline:none;background:var(--action-hover)}.house>a{display:inline-block;background:var(--paper);color:var(--ink)}.house>a:hover{background:var(--hover)}
@keyframes card-arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes image-arrive{from{opacity:.35}to{opacity:1}}
/* Deux seuls ajustements adaptatifs de la typographie : grand titre et titres de section. */
@media(max-width:900px) and (min-width:701px){.catalogue{padding-left:28px;padding-right:28px}.catalogue-layout{grid-template-columns:145px minmax(0,1fr);gap:22px}#grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 :root{--text-display:30px;--text-heading:26px}
 header{height:116px;padding:24px 5% 0;gap:8px;position:relative}header .brand{font-size:29px}header .languages{position:absolute;right:5%;top:8px}.languages button{padding:6px 8px}
 .hero{margin:0 12px;aspect-ratio:1.8/1;border-radius:var(--radius)}.hero>img{object-position:50% top;transform:scale(1.6);transform-origin:50% top}.intro{padding:45px 24px 55px}.intro .brand-statement br{display:none}
 .catalogue{padding:0 24px 60px}.section-heading h2{margin:0 0 24px}.catalogue-layout{display:block;padding-top:18px}.filters{position:static;border:0;padding:0}.filters>.eyebrow{display:none}
 .patterns{flex-direction:row;flex-wrap:nowrap;gap:5px;margin:0;padding:0 0 14px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.patterns button{padding:10px 14px;flex:0 0 auto;white-space:nowrap}.edition-buttons{display:block;padding:16px 0}.edition-label{margin:0 0 10px}.edition-buttons [role=group]{flex-direction:row;justify-content:flex-start;gap:5px}.edition-buttons button{padding:10px 14px}
 .catalogue-results{border-top:1px solid var(--line);padding-top:18px}#grid{grid-template-columns:minmax(0,1fr);gap:34px}.house{padding:60px 24px}
 footer{padding:44px 24px 28px}.footer-columns{grid-template-columns:1fr;gap:30px;padding-bottom:32px}.footer-column h3{margin-bottom:12px}.footer-bottom{grid-template-columns:1fr;text-align:center}.footer-bottom>.brand{grid-column:1;grid-row:1}.footer-bottom>small{grid-column:1;grid-row:2}
 dialog{width:100vw;padding:55px 22px 30px;border-radius:10px 0 0 10px}.product-layout{grid-template-columns:1fr;gap:25px}
}
@media(max-width:380px){#specs{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}dialog,dialog[open]{transform:none}}

.catalogue{padding-top:60px}
@media(max-width:700px){.catalogue{padding-top:40px}}

/* Mentions légales : lecture simple, alignement à gauche. */
.legal-page{max-width:1100px;margin:auto;padding:50px 40px 70px}.legal-page h1{font-size:var(--text-heading);text-align:center;margin:0 0 40px}.legal-page section{margin:0 0 24px}.legal-page h2{font:600 var(--text-body)/1.5 var(--sans);margin:0}.legal-page p{font:400 var(--text-body)/1.6 var(--sans);margin:0 0 8px;color:var(--muted)}.legal-page strong{font-weight:400}.legal-page a{text-decoration:underline;text-underline-offset:3px}.legal-back{margin-top:36px!important}@media(max-width:700px){.legal-page{padding:32px 24px 50px}}

.legal-page h1{overflow-wrap:anywhere}.legal-links{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:24px;font:400 var(--text-label)/1.5 var(--sans);color:var(--muted)}.legal-links a:hover{color:var(--ink)}.legal-page code{font-family:var(--sans);overflow-wrap:anywhere}

/* Mentions : titre centré, identité directe et rubriques compactes. */
.legal-notice section:first-of-type strong{font-weight:600;color:var(--ink)}

@media(max-width:700px){.legal-page h1{margin-bottom:32px}}

@media(max-width:500px){#specs{grid-template-columns:1fr;gap:24px}#specs .spec-item>svg{width:44px;height:44px;flex-basis:44px}}

@media(max-width:700px){.patterns::-webkit-scrollbar{display:none;width:0;height:0}}

/* Accordéons : filtres et rubriques du pied de page sur mobile. */
.filter-accordion>summary{display:none}.footer-accordion>summary{list-style:none;cursor:default}.footer-accordion>summary::-webkit-details-marker,.filter-accordion>summary::-webkit-details-marker{display:none}.footer-accordion .accordion-chevron{display:none}
@media(max-width:700px){
 .filter-accordion{border-top:1px solid var(--line)}.filter-accordion>summary{list-style:none;display:flex;align-items:center;gap:14px;padding:17px 0;cursor:pointer;font:400 var(--text-body)/1.4 var(--sans);color:var(--muted)}
 .accordion-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.accordion-value{margin-left:auto;color:var(--ink)}
 .accordion-chevron{display:block;flex:0 0 7px;width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(-45deg);margin:0 4px 0 6px;transition:transform .25s}
 details[open]>summary .accordion-chevron{transform:rotate(45deg)}
 .catalogue-layout{border-top:0;padding-top:0}.filter-accordion>.eyebrow,.filter-accordion .edition-label{display:none}.filter-accordion .patterns{overflow:visible;display:flex;flex-wrap:wrap;padding:0 0 16px;margin:0;gap:5px}.filter-accordion .edition-buttons{border:0;padding:0 0 16px}
 .footer-columns{display:block;text-align:left;padding-bottom:32px}.footer-accordion{border-top:1px solid var(--line)}.footer-accordion:last-child{border-bottom:1px solid var(--line)}
 .footer-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;cursor:pointer;color:var(--muted)}.footer-accordion>summary h3{margin:0;color:var(--muted)}.footer-accordion>summary .accordion-chevron{display:block}.footer-accordion-links{padding:0 0 16px}.footer-accordion a{margin:5px 0}.footer-accordion>summary:focus-visible,.filter-accordion>summary:focus-visible{outline:2px solid var(--muted);outline-offset:2px}
}

@media(max-width:700px){.footer-columns + .footer-bottom{border-top:0;padding-top:0}}

/* Filtres mobiles dans un panneau latéral gauche. */
.filter-menu,.mobile-filter-toolbar{display:none}.filter-panel{display:none}.filter-panel[open]{display:flex}
@media(max-width:700px){
 .filter-menu{display:grid;place-items:center;position:absolute;left:5%;top:8px;width:36px;height:32px;padding:7px;border:0;background:transparent;color:var(--ink);border-radius:var(--radius)}.filter-menu:hover{background:var(--soft)}.filter-menu svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3}
 .mobile-filter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:16px 0}.filter-trigger{border:0;background:var(--soft);border-radius:var(--radius);font:400 var(--text-body)/1.4 var(--sans);padding:11px 18px}.filter-state{font:400 var(--text-label)/1.5 var(--sans);color:var(--muted);text-align:right}.catalogue-results{padding-top:16px}
 dialog.filter-panel{inset:0 auto 0 0;width:min(360px,92vw);height:100dvh;max-height:100dvh;padding:28px 24px;border-radius:0 10px 10px 0;flex-direction:column;gap:24px;transform:translateX(-100%)}dialog.filter-panel[open]{transform:translateX(0)}@starting-style{dialog.filter-panel[open]{transform:translateX(-100%);opacity:0}}
 .filter-panel-top{position:relative;padding-right:40px}.filter-panel-top h2{font-size:var(--text-heading)}.filter-panel-top .close{top:-4px;right:-7px}.filter-panel-body{overflow:auto;flex:1;min-height:0}.filter-panel .filters{display:block}.filter-panel .filter-accordion{border:0}.filter-panel .filter-accordion>summary{display:none}.filter-panel .filter-accordion>.eyebrow,.filter-panel .edition-label{display:block;margin:0 0 12px}.filter-panel .patterns{display:flex;flex-direction:column;flex-wrap:nowrap;gap:5px;padding:0 0 24px}.filter-panel .patterns button{white-space:normal;text-align:left}.filter-panel .edition-buttons{display:block;border-top:1px solid var(--line);padding:24px 0 0}.filter-panel .edition-buttons [role=group]{display:flex;flex-direction:column}.filter-panel .filter-apply{margin:0;width:100%;cursor:pointer}.filter-panel .filter-accordion:not([open])>*:not(summary){display:block}.filter-panel .filter-accordion:not([open])>.patterns{display:flex}
}
@media(prefers-reduced-motion:reduce){dialog.filter-panel{transition:none;transform:none}}

/* En-tête mobile sur une seule ligne, logo de même taille en bas. */
@media(max-width:700px){
 .brand,header .brand{font-size:23px;letter-spacing:.18em}.brand small{font-size:9px;letter-spacing:.4em}
 header{height:90px;padding:0 16px;grid-template-columns:68px minmax(0,1fr) 68px;gap:6px}
 header>.brand{grid-column:2;grid-row:1;justify-self:center}
 header>.languages{position:static;grid-column:3;grid-row:1;justify-self:end;align-self:center;gap:0}
 header .languages button{font-size:11px;padding:8px 6px}
 header>.filter-menu{position:static;grid-column:1;grid-row:1;align-self:center;justify-self:start;width:36px;height:36px}
 header:not(:has(.filter-menu)){grid-template-columns:68px minmax(0,1fr) 68px}
}
@media(max-width:360px){.brand,header .brand{font-size:21px;letter-spacing:.14em}header{padding-left:12px;padding-right:12px;grid-template-columns:64px minmax(0,1fr) 64px}}

@media(max-width:700px){.footer-accordion>summary .accordion-chevron{transition:transform .34s var(--ease)}.footer-accordion[data-expanded="false"]>summary .accordion-chevron{transform:rotate(-45deg)}.footer-accordion[data-expanded="true"]>summary .accordion-chevron{transform:rotate(45deg)}}

/* Le bandeau mobile reste visible pendant le défilement. */
@media(max-width:700px){
 html{scroll-padding-top:106px}
 header{position:sticky;top:0;z-index:20;background:var(--paper)}
}

/* Adresse juridique : nouvelle ligne sur mobile uniquement. */
.mobile-address-break{display:none}
@media(max-width:700px){.mobile-address-break{display:inline}}

/* Coupure éditoriale de La maison sur mobile. */
.mobile-house-break{display:none}
@media(max-width:700px){.house>p{text-wrap:wrap}.mobile-house-break{display:inline}}

/* La maison : phrases équilibrées pour éviter les dernières lignes isolées. */
.house-thought{display:contents}
@media(max-width:700px){
 .house>p{max-width:36rem;line-height:1.65}
 .house-desktop-break{display:none}
 .house-thought{display:block;text-wrap:balance}
 .house-thought-second{margin-top:24px}
}
