/* ===== v1.1.1 — maquette fidèle ===== */
body{
  background:
    radial-gradient(circle at 10% 6%,rgba(255,255,255,.96),rgba(255,255,255,0) 22%),
    radial-gradient(circle at 88% 14%,rgba(169,210,236,.42),rgba(169,210,236,0) 22%),
    linear-gradient(180deg,#eef5fb 0%,#e9f1f7 48%,#eef4f8 100%);
}
.wrap{width:min(1500px,calc(100% - 24px))}
.topbar{
  position:sticky;
  top:8px;
  margin:0 auto;
  width:min(1500px,calc(100% - 24px));
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.nav{
  min-height:60px;
  padding:0 18px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(96,140,176,.88),rgba(109,152,188,.82));
  border:1px solid rgba(255,255,255,.38);
  box-shadow:0 14px 34px rgba(26,68,97,.14),inset 0 1px rgba(255,255,255,.45);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.brand{font-size:1rem;font-weight:780}
.brand-mark{
  width:34px;height:34px;border:1px solid rgba(255,255,255,.42);
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(205,231,246,.84));
  color:#255a84;box-shadow:inset 0 1px rgba(255,255,255,.9),0 5px 14px rgba(19,58,85,.12)
}
.desktop-nav{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.24);padding:5px;gap:5px}
.desktop-nav a{padding:9px 18px;font-size:.9rem}
.desktop-nav a.active{background:linear-gradient(180deg,#4f97cd,#2c73a9)}
.icon-action{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.24)}
.app-main{padding-top:10px}

.collection-hero{
  min-height:276px;
  padding:32px 190px 26px;
  border-radius:22px;
  background:
    linear-gradient(180deg,rgba(235,244,250,.08),rgba(235,244,250,.58)),
    url('/public/assets/winter-header.svg') center/cover no-repeat;
  box-shadow:0 18px 40px rgba(28,71,99,.12);
}
.hero-copy{max-width:760px}
.hero h1{font-size:clamp(2.5rem,4.7vw,3.6rem);margin:.18rem 0 .22rem;letter-spacing:-.05em}
.collection-subtitle{font-size:1.03rem;color:#4f6f86}
.hero-stat{
  min-width:154px;
  padding:11px 20px;
  border-radius:16px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(214,229,238,.95);
  box-shadow:0 10px 20px rgba(39,78,104,.08);
}
.hero-stat strong{font-size:1.7rem;margin-bottom:2px}
.hero-stat span{font-size:.80rem;color:#526f83}
.hero-globe{
  width:150px;height:150px;top:18px;border:0;box-shadow:none;background:transparent
}
.hero-globe:before,.hero-globe:after{display:none}
.hero-globe-left{left:16px;background:url('/public/assets/hero-globe-left.png') center/contain no-repeat;transform:none}
.hero-globe-right{right:18px;background:url('/public/assets/hero-globe-right.png') center/contain no-repeat;transform:none}

.toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1.3fr) minmax(0,3fr);
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:10px 12px;
  border-radius:18px;
  background:rgba(245,249,252,.88);
  border:1px solid rgba(194,215,228,.9);
  box-shadow:0 8px 22px rgba(37,75,101,.08);
}
.toolbar>.search{margin:0}
.toolbar>.search>label{display:none}
.search-input{height:48px;border-radius:13px;padding-right:8px}
.search-input input::placeholder{color:#8aa0b0}
.search-input button{width:36px;height:36px;border-radius:10px}
.filter-details{display:block;margin:0}
.filter-details>summary{display:none}
.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;margin-top:0;align-items:center}
.filter-grid .field label{display:none}
.filter-grid .field select{min-height:48px;border-radius:13px}
.filter-actions{justify-content:flex-end;align-items:center}
.filter-actions .btn{min-height:48px;border-radius:13px;padding-inline:18px}
.results-head{margin:2px 4px 14px;font-size:.82rem}

.grid{gap:16px}
.card{
  border-radius:15px;
  background:#fff;
  border:1px solid rgba(203,220,231,.96);
  box-shadow:0 10px 24px rgba(34,73,99,.10)
}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(34,73,99,.14)}
.photo{aspect-ratio:1/0.74;background:linear-gradient(145deg,#dcecf6,#fbfdfe)}
.cardbody{padding:11px 12px 12px}
.cardbody h3{font-size:1.04rem;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.25em}
.card-location{font-size:.76rem}
.card-facts{font-size:.75rem}
.card-flake{width:24px;height:24px;right:8px;top:8px;font-size:.64rem;background:rgba(35,69,96,.66)}

.panel,.form-section{border-radius:18px}
.hero-compact{padding:28px 32px 20px;border-radius:22px}
.map-hero h1{font-size:clamp(2.2rem,4vw,3.2rem)}
.geo-toolbar{
  padding:10px 12px;
  border-radius:16px;
  background:rgba(245,249,252,.88);
  border:1px solid rgba(194,215,228,.92)
}
.geo-view-switch{padding:5px;border-radius:13px;background:#dbe9f2}
.geo-view-button,.geo-rotation{padding:9px 13px;font-size:.8rem}
.map,.globe-shell{border-radius:20px;box-shadow:0 18px 42px rgba(24,65,92,.15)}
.globe-info-card{
  border-radius:18px;
  border:1px solid rgba(210,226,235,.92);
  background:rgba(255,255,255,.96);
  box-shadow:0 18px 36px rgba(25,67,94,.18)
}
.map-popup-photo,.globe-info-card>img,.globe-card-placeholder{border-radius:12px}
.map-popup{min-width:215px;gap:5px}
.map-popup strong{font-size:1.05rem}
.map-popup a{font-size:.78rem}
.map-legend{border:1px solid rgba(193,214,228,.92);background:rgba(255,255,255,.9)}

.form-section{background:rgba(250,252,253,.9)}
.section-heading{padding:18px 18px 16px;background:linear-gradient(180deg,#fbfdff,#f1f7fb)}
.section-heading h2{font-size:1.06rem}
.field input,.field select,.field textarea,.input-unit{border-radius:12px}
.form-submit-bar{padding-top:8px}
.btn.primary{background:linear-gradient(180deg,#3e85ba,#226391)}

.statgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stat{border-radius:18px;min-height:170px}

.login-shell{max-width:560px}
.login{background:rgba(255,255,255,.94);border:1px solid rgba(209,224,234,.95);box-shadow:0 20px 40px rgba(28,70,98,.12)}

@media (max-width:1180px){
  .collection-hero{padding-left:150px;padding-right:150px}
  .toolbar{grid-template-columns:1fr}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .filter-grid .field label{display:block}
  .filter-actions{grid-column:1/-1;justify-content:flex-start}
}
@media (max-width:900px){
  .topbar{width:calc(100% - 18px)}
  .nav{padding:0 12px}
  .collection-hero{padding-left:34px;padding-right:34px}
  .hero-globe{display:none}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){
  .topbar{top:0;width:100%;margin:0}
  .nav{width:calc(100% - 18px);margin:8px auto 0;min-height:52px;border-radius:16px;padding:0 10px}
  .brand-text{font-size:.84rem}
  .app-main{padding-top:4px}
  .collection-hero{padding:20px 14px 14px;border-radius:18px}
  .hero h1{font-size:2.2rem}
  .collection-subtitle{font-size:.82rem}
  .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .hero-stat{padding:10px 8px;border-radius:12px}
  .hero-stat strong{font-size:1.18rem}
  .hero-stat span{font-size:.62rem}
  .toolbar{display:block;padding:9px;border-radius:14px}
  .toolbar>.search{display:block}
  .filter-details{margin-top:8px}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}
  .filter-grid .field label{display:block;font-size:.66rem}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .photo{aspect-ratio:1/1}
  .cardbody h3{font-size:.95rem}
  .hero-compact{padding:22px 16px 16px}
  .geo-toolbar{padding:8px;border-radius:14px}
  .globe-shell,.map{border-radius:18px}
}
@media (max-width:390px){
  .grid{grid-template-columns:1fr}
  .filter-grid{grid-template-columns:1fr}
}

/* ===== v1.2.0 — palette magique violette / pêche ===== */
:root{
  --navy:#2f225b;
  --navy-2:#4a2f7f;
  --blue:#9359d3;
  --blue-2:#f0a0cb;
  --ice:#f8eef8;
  --ice-2:#fff7fb;
  --ink:#3f2464;
  --muted:#7f6b97;
  --line:#e5d3ea;
  --card:rgba(255,250,255,.78);
  --glass:rgba(255,245,251,.58);
  --shadow:0 18px 48px rgba(84,44,113,.15);
  --shadow-soft:0 10px 28px rgba(84,44,113,.10);
}
html{background:#efe3f2}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(255,255,255,.94),rgba(255,255,255,0) 22%),
    radial-gradient(circle at 80% 10%,rgba(255,196,160,.26),rgba(255,196,160,0) 22%),
    radial-gradient(circle at 72% 84%,rgba(213,176,255,.22),rgba(213,176,255,0) 20%),
    linear-gradient(180deg,#f3e4f1 0%,#f8edf5 45%,#f4e9f5 100%);
}
body:before{
  opacity:.20;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.95) 0 1.1px,transparent 1.5px),
    radial-gradient(circle,rgba(198,136,222,.35) 0 1px,transparent 1.4px),
    radial-gradient(circle,rgba(255,186,136,.28) 0 1px,transparent 1.5px);
  background-size:110px 110px,170px 170px,210px 210px;
  background-position:18px 18px,80px 62px,140px 102px;
}
.wrap{width:min(1480px,calc(100% - 28px))}
.topbar{top:12px;width:min(1480px,calc(100% - 28px))}
.nav{
  min-height:62px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,244,251,.50),rgba(232,210,240,.42));
  border:1px solid rgba(255,255,255,.52);
  box-shadow:0 16px 34px rgba(94,50,120,.10),inset 0 1px rgba(255,255,255,.62);
}
.brand,.icon-action,.desktop-nav a{color:#fff}
.brand{gap:12px;text-shadow:0 1px 2px rgba(58,30,78,.20)}
.brand-mark{
  width:42px;height:42px;
  background:linear-gradient(180deg,rgba(255,243,255,.95),rgba(248,191,213,.84));
  color:#8f4fca;
  border-color:rgba(255,255,255,.66);
  box-shadow:inset 0 1px rgba(255,255,255,.95),0 8px 18px rgba(84,44,113,.14);
}
.brand-text{font-size:1rem;font-weight:800}
.desktop-nav{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.22);
  box-shadow:inset 0 1px rgba(255,255,255,.20);
}
.desktop-nav a{font-size:.92rem;color:rgba(255,255,255,.92)}
.desktop-nav a.active{background:linear-gradient(180deg,#a260df,#7a46c9);box-shadow:0 6px 14px rgba(88,40,127,.20),inset 0 1px rgba(255,255,255,.24)}
.icon-action{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.24);
  box-shadow:inset 0 1px rgba(255,255,255,.14);
}
.icon-action:hover,.desktop-nav a:hover{background:rgba(255,255,255,.22)}

.collection-hero{
  min-height:232px;
  padding:30px 355px 24px 42px;
  text-align:left;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.52);
  background:
    linear-gradient(90deg,rgba(254,242,251,.26) 0%,rgba(255,250,255,.05) 38%,rgba(255,215,195,.08) 100%),
    linear-gradient(180deg,rgba(96,46,140,.24),rgba(255,169,123,.12)),
    url('/public/assets/magic-hero-bg.jpg') center/cover no-repeat;
  box-shadow:0 18px 40px rgba(91,45,124,.14);
  overflow:hidden;
}
.collection-hero:before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 74% 32%,rgba(255,232,162,.48),rgba(255,232,162,0) 14%),
    radial-gradient(circle at 78% 40%,rgba(255,178,222,.18),rgba(255,178,222,0) 18%),
    radial-gradient(circle at 18% 78%,rgba(255,255,255,.28),rgba(255,255,255,0) 14%),
    linear-gradient(180deg,rgba(78,34,113,.05),rgba(255,255,255,0));
}
.collection-hero:after{
  content:"";
  position:absolute;
  right:28px;
  bottom:-18px;
  width:285px;
  height:285px;
  background:url('/public/assets/magic-globe.png') center/contain no-repeat;
  filter:drop-shadow(0 20px 24px rgba(72,37,101,.25));
  pointer-events:none;
}
.hero-copy{margin:0;max-width:520px;text-align:left}
.hero h1{color:#4a1f68;text-shadow:0 1px 0 rgba(255,255,255,.34),0 10px 22px rgba(93,47,119,.06);font-size:clamp(2.25rem,4vw,3.6rem);line-height:1.02}
.collection-subtitle,.hero p{margin:.15rem 0 0;color:#654f7a;font-size:1.02rem;max-width:480px}
.hero-snow{color:#e89dc8;filter:drop-shadow(0 4px 10px rgba(255,188,115,.22))}
.hero-globe{display:none}
.hero-stats{justify-content:flex-start;gap:14px;margin-top:18px}
.hero-stat{
  min-width:152px;padding:12px 16px;border-radius:18px;
  background:linear-gradient(180deg,rgba(255,247,252,.48),rgba(255,245,251,.28));
  border:1px solid rgba(255,255,255,.52);
  box-shadow:0 12px 28px rgba(91,45,124,.09);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
}
.hero-stat strong{color:#512773;font-size:1.65rem}
.hero-stat span{color:#7d688f;font-size:.77rem}

.toolbar{
  display:grid;
  grid-template-columns:minmax(280px,1.45fr) minmax(0,3fr);
  gap:12px;
  margin-top:18px;
  padding:12px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.62);
  background:linear-gradient(180deg,rgba(255,248,253,.76),rgba(251,241,247,.60));
  box-shadow:0 12px 28px rgba(90,48,121,.08);
}
.search-input,
.field input,.field select,.field textarea,.input-unit,
.geo-view-switch,.stat,.card,.panel,.form-section,.login,.map-legend{
  box-shadow:0 8px 20px rgba(91,45,124,.06)
}
.search-input{
  background:rgba(255,255,255,.74);
  border:1px solid rgba(228,205,233,.92);
  border-radius:18px;
}
.search-input>span{color:#9d6bd2}
.search-input button,
.btn.primary{
  background:linear-gradient(135deg,#9f5fe0,#7a45c9 60%,#f1a1c6 110%);
  border-color:#8b54d3;
  box-shadow:0 10px 18px rgba(127,68,193,.20);
}
.search-input button:hover,.btn.primary:hover{filter:saturate(1.05) brightness(1.02)}
.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr)) auto}
.filter-grid .field select{background:rgba(255,255,255,.74);border-color:rgba(228,205,233,.92);border-radius:16px;color:#5c4076}
.btn.secondary{background:rgba(255,255,255,.78);border-color:rgba(228,205,233,.92);color:#66487d}
.results-head{color:#836c97}
.results-head strong{color:#5b3b7a}

.grid{gap:18px;padding-bottom:32px}
.card{
  border-radius:20px;
  border:1px solid rgba(236,219,238,.94);
  background:linear-gradient(180deg,rgba(255,253,255,.94),rgba(254,248,252,.88));
  box-shadow:0 14px 32px rgba(82,43,110,.10);
}
.card:hover{border-color:#e8c3df;box-shadow:0 20px 36px rgba(82,43,110,.14)}
.photo{aspect-ratio:1/0.84;background:linear-gradient(145deg,#f2d8ef,#fdeedb)}
.photo:after{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 64%,rgba(61,27,80,.18))}
.cardbody h3{color:#4a1f68;font-size:1.08rem}
.card-location{color:#806b93;font-size:.76rem}
.card-facts{color:#775295;font-size:.74rem}
.card-flake{
  background:rgba(79,33,110,.36);
  border-color:rgba(255,255,255,.76)
}

.map-hero,.hero-compact{
  border:1px solid rgba(255,255,255,.52);
  background:
    linear-gradient(90deg,rgba(254,242,251,.26) 0%,rgba(255,250,255,.05) 38%,rgba(255,215,195,.08) 100%),
    linear-gradient(180deg,rgba(96,46,140,.18),rgba(255,169,123,.10)),
    url('/public/assets/magic-hero-bg.jpg') center/cover no-repeat;
}
.geo-toolbar,.panel,.form-section,.login{
  border-color:rgba(255,255,255,.60);
  background:linear-gradient(180deg,rgba(255,249,253,.78),rgba(251,241,247,.62));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
}
.geo-view-switch{background:rgba(255,255,255,.46)}
.geo-view-button.active{background:linear-gradient(180deg,rgba(160,96,223,.14),rgba(255,255,255,.92));color:#6b3bb5}
.geo-rotation{background:rgba(255,255,255,.65);border-color:rgba(226,204,233,.95);color:#6d4f86}
.geo-rotation.active{background:rgba(255,247,251,.80);border-color:#e4c1d6;color:#8b3f66}
.geo-key{color:#856f99}
.map,.globe-shell{border:1px solid rgba(255,255,255,.48);box-shadow:0 18px 44px rgba(82,43,110,.15)}
.globe-shell{background:radial-gradient(circle at 52% 42%,#6d3e91 0,#3e255b 45%,#2a183d 76%,#170f21 100%)}
.globe-info-card{
  border:1px solid rgba(255,255,255,.58);
  background:linear-gradient(180deg,rgba(255,250,254,.95),rgba(248,236,244,.92));
}
.globe-card-body strong,.detail-content h1,.login h1,.section-heading h2,.stat strong,.hero-stat strong{font-family:Georgia,"Times New Roman",serif}

.form-section{background:linear-gradient(180deg,rgba(255,249,253,.86),rgba(251,241,247,.68))}
.section-heading{background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,248,252,.24))}
.section-icon{background:linear-gradient(145deg,#fce6f4,#ecd7fc);color:#8b57cc}
.field label{color:#694e81}
.field input,.field select,.field textarea,.input-unit{background:rgba(255,255,255,.76);border-color:rgba(226,204,233,.94);color:#54366e}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#b777df;box-shadow:0 0 0 4px rgba(183,119,223,.12)}
.required-badge{background:#f5deee;color:#9555a3}
.optional-badge{background:#f5edf7;color:#8e76a7}
.file-picker{border-color:#e7cce7;background:linear-gradient(180deg,rgba(255,253,255,.84),rgba(250,242,247,.62))}
.file-picker-icon{background:#f2dff6;color:#8a54cb}

.stat{
  border:1px solid rgba(255,255,255,.60);
  background:linear-gradient(145deg,rgba(255,250,255,.86),rgba(247,232,244,.74));
}
.stat:after{background:radial-gradient(circle,rgba(240,161,198,.26),rgba(240,161,198,0) 68%)}
.stat.featured{background:linear-gradient(145deg,#6a38a2,#8a55cb 54%,#f09ec8 118%)}
.stat>span:not(.stat-icon){color:#8a739b}
.stat.featured>span:not(.stat-icon),.stat.featured small{color:#f6e7f2}
.stat strong{color:#512772}
.stat.featured strong{color:#fff}

.detail-photo,.quick-facts>div,.dl,.text-block,.note-block{border-color:rgba(230,210,234,.92);background:rgba(255,255,255,.68)}
.detail-place,.text-block p,.quick-facts small,.dl dt{color:#7f6a93}
.quick-facts>div>span{color:#9764cf}

.login{background:linear-gradient(180deg,rgba(255,250,254,.90),rgba(248,237,244,.85))}
.login-shell{max-width:560px}
.login-mark{background:linear-gradient(180deg,#fff,#f3c0df 38%,#d18ade 70%,#7a45c9 100%);border-color:rgba(255,255,255,.88);color:#fff}
.flash.error{background:#fff1f7;border-color:#f0c9df;color:#99416e}
.auth-diagnostic,.trust-note{background:rgba(255,255,255,.54);border-color:rgba(231,210,235,.95);color:#735a88}

.mobile-bottom-nav{
  background:rgba(255,244,251,.88);
  box-shadow:0 -10px 28px rgba(84,44,113,.10)
}
.mobile-bottom-nav a{color:#8c749f}
.mobile-bottom-nav a.active{background:rgba(255,255,255,.86);color:#7d48c9}
.mobile-bottom-nav .nav-add .nav-icon{background:linear-gradient(145deg,#9f5fe0,#7a46c9 70%,#f1a1c6)}

@media (max-width:1180px){
  .collection-hero{padding-right:280px}
  .collection-hero:after{width:240px;height:240px;right:10px}
  .hero-stats{gap:10px}
  .hero-stat{min-width:138px}
}
@media (max-width:900px){
  .collection-hero{padding:24px 24px 20px}
  .collection-hero:after{display:none}
  .hero-copy{max-width:100%;text-align:center;margin:auto}
  .hero-stats{justify-content:center}
  .toolbar{grid-template-columns:1fr}
}
@media (max-width:700px){
  .topbar{top:0;width:100%;margin:0}
  .nav{width:calc(100% - 16px);margin:8px auto 0;min-height:54px;border-radius:18px;padding:0 10px}
  .brand-mark{width:36px;height:36px}
  .collection-hero{min-height:auto;padding:20px 16px 16px;border-radius:22px}
  .hero h1{font-size:2.15rem;text-align:center}
  .collection-subtitle,.hero p{text-align:center;margin-inline:auto;font-size:.86rem}
  .hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .hero-stat{min-width:0;padding:10px 10px;border-radius:16px}
  .hero-stat strong{font-size:1.22rem}
  .hero-stat span{font-size:.63rem}
  .toolbar{padding:10px;border-radius:18px}
  .search-input{border-radius:16px}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
  .filter-grid .field label{display:block;font-size:.66rem;color:#876c99}
  .filter-grid .field select{border-radius:14px;min-height:46px}
  .card{border-radius:18px}
  .photo{aspect-ratio:1/1}
  .mobile-bottom-nav{background:rgba(255,245,251,.95)}
}
@media (max-width:390px){
  .hero-stats{grid-template-columns:1fr 1fr}
  .filter-grid{grid-template-columns:1fr}
}

/* ===== v1.2.1 — typographie et contraste ===== */
.nav{
  background:linear-gradient(180deg,rgba(255,250,253,.82),rgba(242,224,241,.72));
  border-color:rgba(255,255,255,.82);
  box-shadow:0 14px 30px rgba(80,44,101,.10),inset 0 1px rgba(255,255,255,.88);
}
.brand{
  color:#4b2d63;
  text-shadow:none;
}
.brand-text{
  color:#4b2d63;
  font-weight:760;
  letter-spacing:-.015em;
}
.brand-mark{color:#8d55c5}
.desktop-nav{
  background:rgba(122,77,153,.06);
  border-color:rgba(119,76,149,.14);
}
.desktop-nav a{
  color:#664a78;
  font-weight:720;
  text-shadow:none;
}
.desktop-nav a:hover{
  color:#4f3268;
  background:rgba(140,93,172,.09);
}
.desktop-nav a.active{
  color:#fff;
  background:linear-gradient(180deg,#9959d4,#7741bc);
  box-shadow:0 7px 16px rgba(112,58,160,.22),inset 0 1px rgba(255,255,255,.24);
}
.icon-action{
  color:#664a78;
  background:rgba(255,255,255,.40);
  border-color:rgba(126,83,151,.16);
  font-weight:720;
}
.icon-action:hover{
  color:#4e3066;
  background:rgba(255,255,255,.66);
}

.hero h1,
.collection-hero h1{
  max-width:650px;
  color:#35204f;
  font-family:Baskerville,"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  font-size:clamp(2.25rem,3.35vw,3.75rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.035em;
  text-shadow:0 1px 0 rgba(255,255,255,.30),0 8px 20px rgba(83,42,104,.05);
}
.hero-copy{max-width:670px}
.collection-subtitle,
.hero p{
  color:#58436f;
  font-size:1.02rem;
  font-weight:500;
  letter-spacing:.005em;
}
.hero-snow{
  color:#d987bd;
  font-size:.64em;
  vertical-align:.08em;
  filter:drop-shadow(0 3px 8px rgba(255,185,119,.22));
}
.hero-stat strong{
  color:#3d2359;
  font-family:Baskerville,"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  font-weight:600;
}
.hero-stat span{
  color:#674f7b;
  font-weight:650;
}

/* Réutiliser la même identité serif élégante dans les titres secondaires */
.cardbody h3,
.detail-content h1,
.login h1,
.section-heading h2,
.stat strong,
.globe-card-body strong{
  font-family:Baskerville,"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
}
.cardbody h3{font-weight:600;color:#40245b}
.detail-content h1,.login h1,.section-heading h2{color:#40245b;font-weight:600}

@media (max-width:900px){
  .hero h1,.collection-hero h1{max-width:none;font-size:clamp(2.15rem,7vw,3rem);line-height:1.02}
}
@media (max-width:700px){
  .brand-text{color:#4b2d63;font-weight:760}
  .icon-action{color:#604474}
  .hero h1,.collection-hero h1{font-size:2.12rem;font-weight:500;line-height:1.02}
  .collection-subtitle,.hero p{color:#5f4a73;font-size:.86rem}
}

/* ===== v1.2.2 — bandeau plus fidèle à la maquette de référence ===== */
.collection-hero{
  min-height:300px;
  padding:34px 370px 26px 44px;
  border-radius:0 0 24px 24px;
  border:1px solid rgba(255,255,255,.48);
  background:
    linear-gradient(90deg,rgba(255,245,250,.76) 0%,rgba(255,240,248,.48) 18%,rgba(255,246,251,.14) 36%,rgba(255,255,255,0) 55%),
    linear-gradient(180deg,rgba(102,53,135,.08),rgba(255,177,146,.06)),
    url('/public/assets/hero-reference-bg-soft.jpg') center/cover no-repeat;
  box-shadow:0 22px 48px rgba(88,44,114,.16);
}
.collection-hero:before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 17% 12%,rgba(255,255,255,.28),rgba(255,255,255,0) 10%),
    radial-gradient(circle at 22% 62%,rgba(255,213,232,.22),rgba(255,213,232,0) 16%),
    radial-gradient(circle at 77% 56%,rgba(255,181,215,.22),rgba(255,181,215,0) 14%),
    radial-gradient(circle at 86% 20%,rgba(255,239,187,.24),rgba(255,239,187,0) 12%);
}
.collection-hero:after{
  content:"";
  position:absolute;
  right:14px;
  top:8px;
  width:420px;
  height:290px;
  background:url('/public/assets/hero-reference-bg.jpg') right center/cover no-repeat;
  -webkit-mask-image: radial-gradient(circle at 68% 48%, black 0 40%, transparent 58%), linear-gradient(black,black);
  -webkit-mask-composite: source-over;
  mask-image: radial-gradient(circle at 68% 48%, black 0 40%, transparent 58%), linear-gradient(black,black);
  opacity:.95;
  mix-blend-mode:screen;
  pointer-events:none;
}
.hero-copy{
  position:relative;
  z-index:2;
  max-width:430px;
  margin:26px 0 0 58px;
}
.hero-kicker{
  margin:0 0 12px;
  color:#dc7fae;
  font-size:1.5rem;
  letter-spacing:.12em;
  line-height:1;
}
.hero h1,
.collection-hero h1{
  max-width:420px;
  margin:0;
  color:#2d2363;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.35rem,4.4vw,4rem);
  font-weight:500;
  line-height:.95;
  letter-spacing:-.045em;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}
.collection-hero h1 em{
  font-style:italic;
  font-weight:500;
}
.collection-subtitle,
.hero p{
  margin:.55rem 0 0;
  max-width:360px;
  color:#4f3f6d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
  line-height:1.25;
}
.hero-snow{
  color:#d98db8;
  font-size:.46em;
  vertical-align:.06em;
  margin-left:4px;
  filter:none;
}
.hero-stats{
  position:relative;
  z-index:2;
  justify-content:flex-start;
  gap:12px;
  margin-top:28px;
}
.hero-stat{
  position:relative;
  min-width:174px;
  padding:14px 18px 13px 56px;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(115,83,182,.44),rgba(137,97,196,.36));
  border:1px solid rgba(255,255,255,.30);
  box-shadow:0 10px 22px rgba(83,48,115,.14);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.hero-stat:before{
  content:"";
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid rgba(255,238,252,.36);
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 1px rgba(255,255,255,.14);
}
.hero-stats .hero-stat:nth-child(1):after,
.hero-stats .hero-stat:nth-child(2):after,
.hero-stats .hero-stat:nth-child(3):after,
.hero-stats .hero-stat:nth-child(4):after{
  position:absolute;
  left:23px;
  top:50%;
  transform:translateY(-50%);
  color:#ffe9f3;
  font-size:1rem;
}
.hero-stats .hero-stat:nth-child(1):after{content:"◉"}
.hero-stats .hero-stat:nth-child(2):after{content:"⌖"}
.hero-stats .hero-stat:nth-child(3):after{content:"△"}
.hero-stats .hero-stat:nth-child(4):after{content:"♡"}
.hero-stat strong{
  display:block;
  color:#fff4fb;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
  font-weight:600;
  line-height:1;
}
.hero-stat span{
  display:block;
  margin-top:4px;
  color:rgba(255,240,248,.92);
  font-size:.72rem;
  line-height:1.15;
}

@media (max-width:1180px){
  .collection-hero{padding:26px 300px 22px 26px}
  .collection-hero:after{width:340px;height:250px;right:8px;top:18px}
  .hero-copy{margin:22px 0 0 30px}
  .hero-stats{margin-top:22px;gap:10px}
  .hero-stat{min-width:150px;padding-left:48px}
}
@media (max-width:900px){
  .collection-hero{padding:20px 20px 16px;min-height:auto;border-radius:22px}
  .collection-hero:after{display:none}
  .hero-copy{max-width:100%;margin:12px auto 0;text-align:center}
  .collection-hero h1{max-width:none;font-size:clamp(2rem,8vw,3rem)}
  .collection-subtitle,.hero p{max-width:100%;margin:.45rem auto 0;text-align:center}
  .hero-kicker{text-align:center}
  .hero-stats{justify-content:center;gap:10px}
}
@media (max-width:700px){
  .collection-hero{padding:18px 14px 14px;border-radius:20px}
  .hero-copy{margin-top:6px}
  .hero-kicker{margin-bottom:8px;font-size:1.15rem}
  .hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
  .hero-stat{min-width:0;padding:12px 10px 11px 42px;border-radius:16px}
  .hero-stat:before{left:10px;width:24px;height:24px}
  .hero-stats .hero-stat:nth-child(1):after,
  .hero-stats .hero-stat:nth-child(2):after,
  .hero-stats .hero-stat:nth-child(3):after,
  .hero-stats .hero-stat:nth-child(4):after{left:16px;font-size:.88rem}
  .hero-stat strong{font-size:1rem}
  .hero-stat span{font-size:.65rem}
}



/* ===== v1.4.6 — tri et filtres accessibles sur mobile ===== */
@media (max-width:700px){
  .filter-details{
    display:block;
    width:100%;
    margin-top:8px;
  }
  .filter-details>summary{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    min-height:44px;
    padding:10px 12px;
    border:1px solid rgba(228,205,233,.94);
    border-radius:14px;
    background:rgba(255,255,255,.70);
    color:#65477d;
    font-size:.76rem;
    font-weight:850;
    list-style:none;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(82,43,110,.06);
  }
  .filter-details>summary::-webkit-details-marker{display:none}
  .filter-details .summary-chevron{
    display:inline-block;
    transition:transform .18s ease;
  }
  .filter-details[open] .summary-chevron{transform:rotate(180deg)}
  .filter-details:not([open]) .filter-grid{display:none}
  .filter-details[open] .filter-grid{display:grid}
  .filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:8px;
  }
  .filter-grid .sort-field{
    grid-column:1/-1;
    order:-1;
  }
  .filter-grid .sort-field label{
    font-weight:850;
    color:#684681;
  }
  .filter-grid .sort-field select{
    min-height:48px;
    border-color:rgba(191,139,218,.58);
    background:rgba(255,255,255,.88);
  }
}
@media (max-width:390px){
  .filter-grid{grid-template-columns:1fr}
  .filter-grid .sort-field{grid-column:auto}
}


/* ===== v1.4.8 — bandeau mobile dézoomé + filtre compact à côté de la recherche ===== */
@media (max-width:700px){
  /*
   * Le fond "cover" recadrait trop fortement la photo panoramique sur un écran étroit.
   * On utilise maintenant deux couches : une copie douce/floutée qui remplit tout le
   * bandeau, puis la photo nette affichée en entier par-dessus.
   */
  .collection-hero{
    position:relative;
    isolation:isolate;
    background:linear-gradient(180deg,rgba(255,247,251,.56),rgba(255,247,251,.50));
  }
  .collection-hero:before{
    display:block!important;
    content:""!important;
    position:absolute;
    z-index:0;
    inset:-18px;
    pointer-events:none;
    background:url('/public/assets/collection-hero-snowglobes.jpg') center 50%/cover no-repeat;
    filter:blur(13px) saturate(.94);
    transform:scale(1.05);
    opacity:.42;
  }
  .collection-hero:after{
    display:block!important;
    content:""!important;
    position:absolute;
    z-index:1;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(180deg,rgba(255,249,252,.48),rgba(255,249,252,.40)),
      url('/public/assets/collection-hero-snowglobes.jpg') center 50%/contain no-repeat;
    opacity:.88;
  }
  .collection-hero .hero-copy,
  .collection-hero .hero-stats{
    position:relative;
    z-index:2;
  }

  /* Recherche + roue dentée sur une seule ligne. */
  .toolbar{
    position:relative;
    display:block;
  }
  .toolbar>.search{
    display:block;
    padding-right:52px;
  }
  .filter-details{
    width:100%;
    margin-top:0;
  }
  .filter-details>summary{
    position:absolute;
    top:9px;
    right:9px;
    z-index:3;
    width:44px;
    height:44px;
    min-height:44px;
    display:grid!important;
    place-items:center;
    padding:0;
    border:1px solid rgba(208,178,221,.92);
    border-radius:14px;
    background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(247,232,246,.78));
    color:#6d4a84;
    box-shadow:0 6px 16px rgba(82,43,110,.08);
  }
  .filter-details>summary:hover,
  .filter-details>summary:focus-visible{
    background:#fff;
    color:#7b43a8;
    outline:none;
    box-shadow:0 0 0 3px rgba(154,91,205,.12),0 7px 18px rgba(82,43,110,.10);
  }
  .filter-gear-icon{
    display:block;
    font-size:1.12rem;
    line-height:1;
    transition:transform .18s ease;
  }
  .filter-details[open] .filter-gear-icon{transform:rotate(42deg)}
  .filter-summary-text,
  .filter-details .summary-chevron{display:none!important}
  .filter-details:not([open]) .filter-grid{display:none}
  .filter-details[open] .filter-grid{
    display:grid;
    margin-top:8px;
  }
}


/* ===== v1.5.0 — molette mobile sortie du cadre et centrée ===== */
@media(max-width:700px){
  .toolbar{
    position:relative;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:9px 0 11px;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .toolbar>.search{
    flex:1 1 0;
    min-width:0;
    display:block;
    margin:0;
    padding-right:0;
  }
  .toolbar>.search .search-input{
    height:46px;
    border-radius:16px;
  }
  .filter-details{
    flex:0 0 auto;
    width:62px;
    margin:0;
  }
  .filter-details>summary{
    position:static;
    top:auto;
    right:auto;
    width:62px;
    height:62px;
    min-height:62px;
    margin:0;
    border-radius:18px;
    align-self:center;
    display:grid!important;
    place-items:center;
  }
  .filter-details[open]{
    position:relative;
    flex:1 0 100%;
    width:100%;
    margin-top:0;
  }
  .filter-details[open]>summary{
    position:absolute;
    top:-72px;
    right:0;
  }
  .filter-details[open] .filter-grid{
    display:grid;
    margin-top:0;
    padding:12px;
    border:1px solid rgba(220,198,231,.92);
    border-radius:16px;
    background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(250,241,248,.88));
    box-shadow:0 10px 22px rgba(82,43,110,.08);
  }
}
@media(max-width:390px){
  .toolbar{gap:8px}
  .filter-details{width:58px}
  .filter-details>summary{width:58px;height:58px;min-height:58px;border-radius:16px}
  .filter-details[open]>summary{top:-66px}
}


/* ===== v1.5.1 — molette mobile sans cadre, centrée dans l'espace à droite ===== */
@media(max-width:700px){
  .toolbar{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) 92px;
    align-items:center;
    column-gap:0;
    row-gap:8px;
    margin:9px 0 11px;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .toolbar>.search{
    grid-column:1;
    grid-row:1;
    min-width:0;
    display:block;
    margin:0;
    padding:0;
  }
  .toolbar>.search .search-input{
    width:100%;
    height:46px;
    border-radius:16px;
  }

  /* Le <details> ne crée plus de boîte : son summary et son panneau deviennent
     directement des éléments de la grille du toolbar. */
  .toolbar>.filter-details{
    display:contents;
  }
  .toolbar>.filter-details>summary{
    grid-column:2;
    grid-row:1;
    position:static;
    justify-self:center;
    align-self:center;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    margin:0;
    padding:0;
    display:grid!important;
    place-items:center;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#76518c;
    cursor:pointer;
    list-style:none;
    -webkit-tap-highlight-color:transparent;
  }
  .toolbar>.filter-details>summary::-webkit-details-marker{display:none}
  .toolbar>.filter-details>summary:hover,
  .toolbar>.filter-details>summary:focus-visible{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#7b43a8;
    outline:2px solid rgba(154,91,205,.24);
    outline-offset:3px;
    border-radius:50%!important;
  }
  .filter-gear-icon{
    display:block;
    font-size:2rem;
    line-height:1;
    transform-origin:50% 50%;
    transition:transform .18s ease,color .18s ease;
  }
  .filter-details[open] .filter-gear-icon{transform:rotate(42deg)}
  .filter-summary-text,
  .filter-details .summary-chevron{display:none!important}

  .toolbar>.filter-details:not([open]) .filter-grid{display:none}
  .toolbar>.filter-details[open] .filter-grid{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    min-width:0;
    display:grid;
    margin:0;
    padding:12px;
    border:1px solid rgba(220,198,231,.92);
    border-radius:16px;
    background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(250,241,248,.88));
    box-shadow:0 10px 22px rgba(82,43,110,.08);
  }
}
@media(max-width:390px){
  .toolbar{grid-template-columns:minmax(0,1fr) 82px}
  .toolbar>.filter-details>summary{width:46px;height:46px;min-width:46px;min-height:46px}
  .filter-gear-icon{font-size:1.85rem}
}


/* ===== v1.5.2 — recherche élargie, molette compacte, filtres pleine largeur ===== */
@media(max-width:700px){
  .toolbar{
    position:relative;
    display:block;
    width:100%;
    margin:9px 0 11px;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .toolbar>.search{
    display:block;
    width:calc(100% - 54px);
    min-width:0;
    margin:0;
    padding:0;
  }
  .toolbar>.search .search-input{
    width:100%;
    height:46px;
    border-radius:16px;
  }
  .toolbar>.filter-details{
    display:block;
    width:100%;
    margin:0;
    padding:0;
  }
  .toolbar>.filter-details>summary{
    position:absolute;
    top:0;
    right:0;
    width:54px;
    height:46px;
    min-width:54px;
    min-height:46px;
    margin:0;
    padding:0;
    display:grid!important;
    place-items:center;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#76518c;
    cursor:pointer;
    list-style:none;
    -webkit-tap-highlight-color:transparent;
  }
  .toolbar>.filter-details>summary::-webkit-details-marker{display:none}
  .toolbar>.filter-details>summary:hover,
  .toolbar>.filter-details>summary:focus-visible{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#7b43a8;
    outline:none;
  }
  .filter-gear-icon{
    display:block;
    font-size:1.85rem;
    line-height:1;
    transform-origin:50% 50%;
    transition:transform .18s ease,color .18s ease;
  }
  .filter-details[open] .filter-gear-icon{transform:rotate(42deg)}
  .filter-summary-text,
  .filter-details .summary-chevron{display:none!important}
  .toolbar>.filter-details:not([open]) .filter-grid{display:none}
  .toolbar>.filter-details[open] .filter-grid{
    width:100%;
    min-width:0;
    display:grid;
    margin:10px 0 0;
    padding:12px;
    border:1px solid rgba(220,198,231,.92);
    border-radius:16px;
    background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(250,241,248,.88));
    box-shadow:0 10px 22px rgba(82,43,110,.08);
    box-sizing:border-box;
  }
}
@media(max-width:390px){
  .toolbar>.search{width:calc(100% - 48px)}
  .toolbar>.filter-details>summary{width:48px;min-width:48px}
  .filter-gear-icon{font-size:1.7rem}
}


/* ===== v1.5.3 — molette réellement centrée dans l’espace à droite ===== */
@media(max-width:700px){
  .toolbar{
    position:relative;
    width:100%;
    overflow:visible;
  }

  /* On laisse 72 px à droite du champ : la roue est centrée dans cette zone
     en tenant compte de la petite marge latérale de la page. */
  .toolbar>.search{
    display:block;
    width:calc(100% - 72px)!important;
    max-width:none;
    min-width:0;
    margin:0;
    padding:0;
  }
  .toolbar>.search .search-input{
    width:100%;
    box-sizing:border-box;
  }

  .toolbar>.filter-details{
    display:block;
    width:100%!important;
    margin:0;
    padding:0;
  }
  .toolbar>.filter-details>summary{
    position:absolute!important;
    top:0!important;
    right:8px!important;
    width:44px!important;
    height:46px!important;
    min-width:44px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .toolbar>.filter-details>summary:hover,
  .toolbar>.filter-details>summary:focus-visible{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    outline:none;
  }
  .filter-gear-icon{
    font-size:1.72rem!important;
    line-height:1;
  }

  /* Le panneau reste indépendant de la largeur du champ de recherche. */
  .toolbar>.filter-details[open] .filter-grid{
    position:relative;
    left:0;
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box;
    margin:10px 0 0!important;
  }
}
@media(max-width:390px){
  .toolbar>.search{width:calc(100% - 68px)!important}
  .toolbar>.filter-details>summary{
    right:7px!important;
    width:42px!important;
    min-width:42px!important;
  }
  .filter-gear-icon{font-size:1.62rem!important}
}
