:root{--ink:#19343a;--muted:#62757b;--surface:#fff;--paper:#f3f5f2;--line:#dce5e4;--accent:#285f73;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.largeur{width:min(1160px,calc(100% - 40px));margin-inline:auto}.section{padding:72px 0}.site-header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:1}.entete-interne{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:84px}.marque{font-size:21px;font-weight:800;display:flex;gap:12px;align-items:center}.logo-3d{display:inline-grid;place-items:center;border-radius:10px;background:var(--accent);color:#fff;font-size:16px;width:44px;height:44px}.entete-interne nav{display:flex;gap:26px;align-items:center;font-weight:600;font-size:14px}.hero{background:linear-gradient(120deg,#14333e,#265c68 68%,#509394);color:#fff}.hero-interne{min-height:470px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;padding:54px 0}.hero h1{font-size:clamp(36px,4.8vw,66px);line-height:1.08;letter-spacing:-.04em;margin:16px 0 20px;max-width:680px}.hero p:not(.surtitre){font-size:18px;color:#e6efef;max-width:530px}.surtitre{text-transform:uppercase;font-weight:800;letter-spacing:.16em;font-size:12px;color:#438d9c}.hero .surtitre{color:#a9e5db}.bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);border:1px solid var(--accent);border-radius:9px;padding:11px 19px;color:white;cursor:pointer;font:inherit;font-weight:650}.bouton:hover{background:#194354;color:#fff}.bouton-clair{background:white;color:#194354;border-color:white;margin-top:22px}.bouton-clair:hover{background:#ccebe9;color:#194354}.bouton-secondaire{color:#225566;background:#e5eff0;border-color:#c5d7d9}.bouton-secondaire:hover{color:#194354;background:#d3e5e7}.hero-objet{width:min(300px,75%);aspect-ratio:1;margin:auto;background:radial-gradient(circle at 30% 20%,#def4ee,#4b9dad 46%,#174d65 75%);box-shadow:32px 35px 60px #0c293b88,-8px -8px 50px #ffffff55;transform:rotate(-12deg);border-radius:28%;display:flex;justify-content:center;align-items:center;flex-direction:column;border:3px solid #ccf1e9a0}.hero-objet span{font-size:116px;font-weight:900;color:white;text-shadow:5px 8px #19546e66;letter-spacing:-.1em}.hero-objet small{font-weight:800;letter-spacing:.24em;color:#e8fbfa}.titre-section{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.titre-section h2,.atelier-section h2{font-size:clamp(28px,3vw,42px);margin:4px 0;letter-spacing:-.035em}.titre-section>p{max-width:350px;color:var(--muted)}.filtres,.etiquettes{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 34px}.filtres a,.etiquettes span{border-radius:30px;border:1px solid #d3dfdf;background:#fff;padding:9px 16px;font-size:14px}.filtres a.actif,.filtres a:hover{background:#183c46;border-color:#183c46;color:#fff}.grille-produits{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.carte-produit{background:#fff;border:1px solid var(--line);overflow:hidden;border-radius:var(--radius);display:flex;flex-direction:column;box-shadow:0 13px 35px #17455710}.illustration-produit{aspect-ratio:4/3;background:linear-gradient(130deg,#e8f1ec,#c8e2df);display:grid;place-items:center;overflow:hidden}.illustration-produit img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.illustration-produit:hover img{transform:scale(1.04)}.image-defaut{display:grid;place-items:center;width:100%;height:100%;min-height:220px;font-size:84px;font-weight:900;color:#7da9ab;background:repeating-linear-gradient(45deg,#e8f0ee,#e8f0ee 18px,#d9e9e8 18px,#d9e9e8 36px)}.carte-corps{padding:22px;display:flex;flex:1;flex-direction:column}.carte-corps h3{font-size:22px;margin:0 0 12px}.carte-corps>p:not(.categorie){color:var(--muted);margin:0}.categorie{color:var(--accent);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}.carte-bas{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:24px}.carte-bas strong{font-size:21px}.carte-bas a{color:var(--accent);font-weight:700}.message-vide{background:white;border:1px dashed #bfd0cd;border-radius:14px;text-align:center;padding:48px;color:var(--muted)}.atelier-section{padding:74px 0;background:#e6efeb}.atelier-interne{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.atelier-interne>p{font-size:19px;white-space:pre-line;color:#465f63}.pied-site{background:#162f38;color:#fff;padding:52px 0}.pied-interne{display:flex;justify-content:space-between;gap:30px}.pied-interne p{color:#ccdfe0}.pied-interne a{text-decoration:underline}.fil-ariane{color:var(--muted);margin:0 0 30px}.fiche-produit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}.visuel-fiche{aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:#dfebed}.visuel-fiche img{width:100%;height:100%;object-fit:contain}.detail-fiche h1{font-size:clamp(30px,4vw,50px);line-height:1.1;margin:8px 0 15px}.lead{font-size:19px;color:var(--muted)}.prix-fiche{font-size:32px;display:block;margin:24px 0 10px}.info-livraison{color:#29727b;font-weight:700}.texte-long{white-space:pre-wrap}.demande-fiche{background:#fff;border-radius:18px;border:1px solid var(--line);padding:26px;margin-top:32px}.demande-fiche h2{margin-top:0}.demande-fiche p{color:var(--muted)}.formulaire{display:grid;gap:17px}.formulaire label{display:grid;gap:6px;font-size:14px;font-weight:650}.formulaire input:not([type=checkbox]):not([type=color]),.formulaire textarea,.formulaire select,.demande-fiche input,.demande-fiche textarea{font:inherit;width:100%;border:1px solid #c6d5d7;background:#fff;border-radius:8px;padding:11px;color:var(--ink)}.formulaire input[type=color]{width:76px;height:45px;cursor:pointer;border:0}.formulaire input[type=file]{padding:8px!important}.formulaire :is(input,textarea,select):focus{outline:2px solid #86bfbc;outline-offset:1px}.demande-fiche form{display:grid;gap:14px}.demande-fiche label{display:grid;gap:5px;font-weight:650;font-size:14px}.piege{position:absolute;left:-10000px;height:1px;overflow:hidden}.centre{text-align:center;min-height:330px}.centre .bouton{margin-top:20px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:30px 15px;background:linear-gradient(120deg,#ebf1ed,#d3e7e4)}.auth-carte{background:white;border-radius:18px;max-width:460px;width:100%;padding:36px;box-shadow:0 24px 65px #0d455418}.auth-carte h1{font-size:36px;margin:5px 0 24px}.auth-carte .retour{display:inline-block;margin-bottom:36px;color:#40717d}.auth-carte .formulaire{margin-top:30px}.alerte{padding:12px;background:#fff0ed;border-left:4px solid #b8523a}.succes{padding:12px 14px;background:#e6f5e9;border-left:4px solid #3f9060;margin:22px 0}.gestion-header{background:#193640;color:#fff}.gestion-entete{min-height:66px;display:flex;justify-content:space-between;align-items:center;gap:15px}.gestion-entete>div{display:flex;align-items:center;gap:18px}.gestion-entete a:hover{color:#c0edeb}.inline{display:inline}.lien-bouton{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}.gestion h1{font-size:34px;margin:0 0 12px}.gestion h2{font-size:24px;margin:0 0 20px}.panneau{background:#fff;border:1px solid var(--line);padding:30px;border-radius:16px;margin:30px 0}.grille-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grille-form .large-col{grid-column:1/-1}.grille-form .case{display:flex;align-items:center;gap:9px}.case input{width:17px;height:17px}.indicateurs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.indicateurs>div{padding:22px;background:white;border:1px solid var(--line);border-radius:14px}.indicateurs strong,.indicateurs small{display:block}.indicateurs strong{font-size:35px}.indicateurs small{color:var(--muted)}.actions-tableau{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.liste-sites,.liste-produits-admin{display:grid;gap:8px}.carte-ligne{display:flex;justify-content:space-between;gap:15px;align-items:center;border:1px solid var(--line);padding:17px 21px;background:white;border-radius:11px}.carte-ligne span:first-child{flex:1}.carte-ligne small{display:block;color:var(--muted)}.publie{color:#24794a;font-weight:700}.brouillon{color:#8a7759;font-weight:700}.formulaire-ligne{display:flex;align-items:end;flex-wrap:wrap}.formulaire-ligne label{min-width:min(360px,100%)}.demande-admin{display:flex;justify-content:space-between;gap:24px;padding:25px 0;border-top:1px solid var(--line)}.demande-admin>div{flex:1}.demande-admin h3{margin:0}.demande-admin form{width:200px;align-self:start}.demande-admin small{color:var(--muted)}.apercu-photo{max-width:210px;max-height:160px;object-fit:contain;border-radius:9px;display:block;margin-bottom:7px}@media(max-width:850px){.grille-produits{grid-template-columns:repeat(2,1fr)}.hero-interne{grid-template-columns:1fr}.hero-objet{display:none}.fiche-produit{gap:30px}.atelier-interne{gap:30px}}@media(max-width:650px){.largeur{width:min(100% - 28px,1160px)}.section{padding:40px 0}.entete-interne{align-items:start;padding:15px 0;flex-direction:column}.entete-interne nav{gap:17px;flex-wrap:wrap}.hero-interne{min-height:350px;padding:45px 0}.grille-produits,.fiche-produit,.atelier-interne,.grille-form,.indicateurs{grid-template-columns:1fr}.grille-form .large-col{grid-column:auto}.titre-section,.pied-interne,.demande-admin,.gestion-entete{flex-direction:column;align-items:start}.gestion-entete{padding:16px 0}.gestion-entete>div{flex-wrap:wrap}.demande-admin form{width:100%}.panneau{padding:20px}.visuel-fiche{aspect-ratio:4/3}}

/* Administration : mêmes composants pour les listes, fiches et tableaux de bord. */
.gestion-description{color:var(--muted);max-width:720px;margin:0 0 28px}
.grille-cartes-gestion{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:30px}
.carte-gestion{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:25px;box-shadow:0 8px 25px #19343a09;transition:border-color .15s,transform .15s}
.carte-gestion:hover{border-color:var(--accent);transform:translateY(-2px)}
.carte-gestion h2{font-size:21px;margin:0}
.carte-gestion p{color:var(--muted);margin:0;flex:1;font-size:14px}
.carte-gestion-icone{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#e9f2f1;font-size:24px}
.carte-gestion-bas{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:15px;margin-top:10px;color:var(--muted);font-size:13px}
.carte-gestion-bas span{font-weight:750;color:var(--accent)}
.barre-liste-gestion{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:18px 0}
.barre-liste-gestion p{margin:0;color:var(--muted)}
.tableau-panneau{padding:0;overflow:hidden;margin-top:16px}
.tableau-defilement{overflow-x:auto}
.tableau-gestion{width:100%;border-collapse:collapse;text-align:left}
.tableau-gestion th{background:#f0f6f5;color:#355761;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:750}
.tableau-gestion td,.tableau-gestion th{padding:17px 19px;border-bottom:1px solid var(--line);vertical-align:top}
.tableau-gestion tbody tr:last-child td{border-bottom:0}
.tableau-gestion tbody tr:hover{background:#fbfdfc}
.tableau-gestion small{display:block;color:var(--muted)}
.tableau-vide{text-align:center;padding:44px!important;color:var(--muted)}
.lien-modifier{color:var(--accent);font-weight:700;white-space:nowrap}
.texte-discret{color:var(--muted);font-size:13px}
.fiche-gestion{max-width:980px;margin-top:22px}
.actions-fiche{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px;margin-top:5px}
.bouton-annuler{background:transparent;border-color:#bbcdd1;color:#24454e}
.bouton-annuler:hover{background:#e5eff0;color:#24454e}
.formulaire-statut{display:flex;gap:8px;align-items:center}
.formulaire-statut select{min-width:125px;font:inherit;border:1px solid #c6d5d7;border-radius:8px;padding:9px}
.formulaire-statut .bouton{padding:9px 12px;font-size:13px}
@media(max-width:650px){.barre-liste-gestion{align-items:flex-start;flex-direction:column}.actions-fiche{align-items:stretch;flex-direction:column}.actions-fiche>*{width:100%}.tableau-gestion td,.tableau-gestion th{padding:12px}.formulaire-statut{flex-wrap:wrap}}

/* Couleurs produit, aperçu photo et ajout rapide (Blazor SSR). */
.champ-categorie{display:grid;gap:6px;font-size:14px;font-weight:650}
.ligne-select-ajout{display:flex;gap:8px;align-items:stretch}
.ligne-select-ajout select{flex:1;min-width:0}
.bouton-ajout-rapide{width:45px;min-width:45px;padding:0;font-size:24px}
.rubrique-photo h2{font-size:19px;margin:0 0 15px}
.ligne-photo{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.cadre-photo{width:210px;height:170px;border:1px solid var(--line);background:#eef5f4;border-radius:12px;display:grid;place-items:center;overflow:hidden}
.apercu-photo-produit{width:100%;height:100%;display:block;object-fit:contain}
.apercu-photo-produit[hidden],.photo-vide[hidden]{display:none}
.photo-vide{color:var(--muted);font-weight:650;font-size:14px}
.commandes-photo{display:flex;flex-direction:column;align-items:flex-start;gap:9px;max-width:350px}
.commandes-photo small{color:var(--muted)}
.formulaire input.fichier-photo-invisible{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;padding:0;border:0;pointer-events:none}
.bouton-upload{cursor:pointer;font-size:14px;display:inline-flex!important;align-items:center;justify-content:center}
.bouton-upload:focus-within{outline:2px solid var(--accent)}
.choix-couleurs{border:1px solid var(--line);border-radius:12px;padding:16px 20px;min-width:0}
.choix-couleurs legend{font-size:16px;font-weight:750;padding:0 7px}
.obligatoire,.texte-erreur{color:#a53636}
.texte-erreur:empty{display:none}
.grille-couleurs-produit{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:9px}
.formulaire .choix-couleur{display:flex;flex-direction:row;align-items:center;gap:9px;background:#f8fbfa;border:1px solid var(--line);padding:10px;border-radius:9px;cursor:pointer}
.choix-couleur:has(input:checked){border-color:var(--accent);background:#e9f3f2}
.choix-couleur input{accent-color:var(--accent);flex:0 0 auto}
.pastille-couleur{display:inline-block;width:23px;height:23px;border-radius:50%;border:1px solid #8d9a9c;vertical-align:middle;box-shadow:inset 0 0 0 1px #fff7;flex-shrink:0}
.dialog-categorie{width:min(460px,calc(100% - 30px));border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #0f343a33;padding:27px;color:var(--ink)}
.dialog-categorie::backdrop{background:#112d3c99}
.dialog-categorie h2{margin:0 0 12px;font-size:23px}
.dialog-categorie p{color:var(--muted)}
.dialog-categorie label{display:grid;gap:7px;font-weight:700;font-size:14px}
.dialog-categorie input{font:inherit;width:100%;border:1px solid #c6d5d7;border-radius:8px;padding:11px}
.actions-popup{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.couleurs-publiques{margin:18px 0}
.pastilles-liste{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}
.couleur-publique{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:25px;padding:7px 11px;font-size:13px}

.demande-fiche select{font:inherit;width:100%;border:1px solid #c6d5d7;background:#fff;border-radius:8px;padding:11px;color:var(--ink)}

/* Galerie 16/9 réutilisant le même cadrage pour les cartes et fiches. */
.illustration-produit{aspect-ratio:16/9}
.galerie-produit-admin{min-width:0;margin-top:5px}
.galerie-produit-admin h2{font-size:20px;margin:0 0 8px}
.galerie-produit-admin h2 small{font-size:13px;color:var(--muted)}
.galerie-produit-admin .texte-discret{margin:5px 0 14px}
.galerie-aide{background:#eef5f4;border:1px dashed #a5c4c5;padding:17px;border-radius:10px}
.grille-galerie-admin{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:14px;margin:20px 0}
.carte-photo-admin{background:#f9fbfa;border:1px solid var(--line);border-radius:12px;overflow:hidden;padding:8px;min-width:0}
.carte-photo-admin>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#dee8e7;border-radius:7px}
.carte-photo-admin>small{display:block;font-size:11px;color:#7a5a20;margin:8px 2px}
.carte-photo-etat{min-height:42px;display:flex;align-items:center;margin:5px 0;gap:8px}
.galerie-principale{background:#d9eee6;color:#205a46;padding:5px 9px;font-size:12px;font-weight:700;border-radius:6px}
.actions-photo-admin{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.actions-photo-admin .bouton,.carte-photo-etat .bouton{font-size:11px;padding:6px 8px;min-height:30px}
.galerie-ajouter{margin-top:8px}
.dialog-recadrage{width:min(900px,95vw);max-height:96vh;overflow:auto;border:0;border-radius:18px;box-shadow:0 20px 70px #0006;padding:22px;background:#fff;color:var(--ink)}
.dialog-recadrage::backdrop{background:#10262cb9}
.dialog-recadrage h2{margin:0 0 8px}
.dialog-recadrage p{color:var(--muted)}
.dialog-recadrage canvas{display:block;width:100%;aspect-ratio:16/9;height:auto;touch-action:none;cursor:grab;background:#e0e9e8;border-radius:8px}
.dialog-recadrage canvas:active{cursor:grabbing}
.dialog-recadrage label{display:flex;gap:16px;align-items:center;margin:14px 0;font-weight:650}
.dialog-recadrage input[type=range]{flex:1}
.galerie-publique{aspect-ratio:auto;overflow:visible;background:transparent;align-self:start}
.galerie-publique>img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;background:#d6e8e9;border-radius:15px;display:block}
.vignettes-produit{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.vignette-produit{padding:3px;border:2px solid transparent;background:white;border-radius:9px;cursor:pointer;width:104px}
.vignette-produit.active{border-color:var(--accent)}
.vignette-produit img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:5px}
@media(max-width:650px){.grille-galerie-admin{grid-template-columns:repeat(2,minmax(0,1fr))}.vignette-produit{width:83px}}

/* Héro de la boutique : image entière en arrière-plan et réserve de contraste pour le texte à gauche. */
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero-image-fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.hero-avec-image::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,29,37,.93) 0%,rgba(8,29,37,.84) 36%,rgba(8,29,37,.40) 65%,rgba(8,29,37,.12) 100%)}
.hero-avec-image .hero-interne{grid-template-columns:minmax(0,1fr) .5fr}
.hero-avec-image .hero-objet{display:none}
.hero-texte{position:relative;z-index:1}
.hero-texte h1{overflow-wrap:break-word}
.edition-hero h2{font-size:20px;margin:0 0 4px}
.edition-hero-apercu{display:grid;place-items:center;width:100%;max-width:720px;aspect-ratio:16/9;margin:13px 0;background:#ebf1ef;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.edition-hero-apercu img{display:block;width:100%;height:100%;object-fit:cover}
.edition-hero-apercu img[hidden],.edition-hero-apercu p[hidden]{display:none}
.edition-hero-apercu p{color:var(--muted);text-align:center;padding:16px}
.edition-hero-boutons{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.edition-hero-boutons .case{display:flex;align-items:center;gap:8px}
@media(max-width:650px){.hero-avec-image .hero-interne{grid-template-columns:1fr}.hero-avec-image::before{background:linear-gradient(90deg,rgba(8,29,37,.9),rgba(8,29,37,.55))}}

.hero-avec-image .hero-interne{position:relative;z-index:2}
