/* Phase 3: same 1180px grid as wine-business.html, plus floating country navigator. */
.maker-shell { width:min(1180px,calc(100% - 48px)); }
.maker-directory__hero { min-height:min(650px,74svh); align-items:end; }
.maker-directory__hero-inner { max-width:1180px; padding:120px 0 clamp(70px,8vw,104px); }
.maker-directory__hero h1 { max-width:none; font-size:clamp(3rem,5vw,5.4rem); line-height:1.04; }
.maker-directory__hero p:not(.maker-eyebrow) { max-width:640px; margin-top:22px; font-size:1.03rem; }
.maker-flag { display:grid; width:34px; height:22px; align-self:start; place-items:center; overflow:hidden; border:1px solid rgba(77,55,38,.18); border-radius:2px; background:#f8f3ea; }
.maker-flag img { display:block; width:100%; height:100%; object-fit:contain; }
.maker-country-nav__item>.maker-flag { grid-row:1 / span 3; }
.maker-country { scroll-margin-top:92px; }
.maker-country.is-maker-target .maker-country__hero { animation:makerDestination .8s ease; }
.maker-floating-nav { position:fixed; right:28px; bottom:28px; z-index:90; }
.maker-globe { display:grid; width:60px; height:60px; place-items:center; padding:0; border:1px solid rgba(225,194,138,.7); border-radius:50%; background:var(--maker-wine); color:#fffdf8; box-shadow:0 14px 30px rgba(48,20,26,.25); cursor:pointer; }
.maker-globe svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.1; }
.maker-globe svg circle { transform-origin:center; animation:makerGlobeSpin 14s linear infinite; }
.maker-globe:hover svg circle { animation-duration:9s; }
.maker-globe>span { position:absolute; right:calc(100% + 12px); width:max-content; padding:7px 10px; border-radius:4px; background:#fffdf8; color:var(--maker-wine); font-size:12px; font-weight:700; opacity:0; transform:translateX(8px); transition:opacity .2s,transform .2s; pointer-events:none; }
.maker-globe:hover>span,.maker-globe:focus-visible>span { opacity:1; transform:none; }
.maker-folder { position:absolute; right:0; bottom:72px; width:min(400px,calc(100vw - 32px)); max-height:520px; overflow:auto; padding:22px; border:1px solid rgba(101,70,47,.18); border-radius:50%; background:rgba(255,253,248,.94); box-shadow:0 24px 60px rgba(44,28,20,.22); backdrop-filter:blur(18px); opacity:0; transform:scale(.35); transform-origin:bottom right; transition:opacity .26s ease,transform .3s cubic-bezier(.2,.8,.2,1),border-radius .3s; }
.maker-folder.is-open { border-radius:24px; opacity:1; transform:scale(1); }
.maker-folder header { display:flex; align-items:start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.maker-folder header p { margin:0 0 3px; color:var(--maker-gold); font:700 11px/1 Georgia,'Times New Roman',serif; letter-spacing:.12em; }
.maker-folder h2 { margin:0; font-family:Georgia,'Yu Mincho',serif; font-size:21px; font-weight:500; }
.maker-folder header button { width:32px; height:32px; border:0; border-radius:50%; background:#f1e9de; color:var(--maker-wine); font-size:24px; line-height:1; cursor:pointer; }
.maker-folder nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.maker-folder__tile { display:grid; min-width:0; min-height:86px; justify-items:center; align-content:center; gap:4px; padding:7px 3px; border:1px solid transparent; border-radius:10px; color:var(--maker-ink); text-align:center; transition:background .2s,border-color .2s,transform .2s; }
.maker-folder__tile:hover,.maker-folder__tile:focus-visible { border-color:rgba(122,38,56,.32); background:#f5eee6; transform:translateY(-2px); }
.maker-folder__tile .maker-flag { width:32px; height:21px; }
.maker-folder__tile b { color:var(--maker-wine); font:700 10px/1 Georgia,'Times New Roman',serif; letter-spacing:.08em; }
.maker-folder__tile>span:last-child { overflow:hidden; width:100%; font-size:10px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.maker-folder.is-open .maker-folder__tile { animation:makerTileIn .35s both; }
.maker-folder.is-open .maker-folder__tile:nth-child(2){animation-delay:.02s}.maker-folder.is-open .maker-folder__tile:nth-child(3){animation-delay:.04s}.maker-folder.is-open .maker-folder__tile:nth-child(4){animation-delay:.06s}.maker-folder.is-open .maker-folder__tile:nth-child(5){animation-delay:.08s}.maker-folder.is-open .maker-folder__tile:nth-child(6){animation-delay:.1s}.maker-folder.is-open .maker-folder__tile:nth-child(7){animation-delay:.12s}.maker-folder.is-open .maker-folder__tile:nth-child(8){animation-delay:.14s}.maker-folder.is-open .maker-folder__tile:nth-child(9){animation-delay:.16s}.maker-folder.is-open .maker-folder__tile:nth-child(10){animation-delay:.18s}.maker-folder.is-open .maker-folder__tile:nth-child(11){animation-delay:.2s}.maker-folder.is-open .maker-folder__tile:nth-child(12){animation-delay:.22s}.maker-folder.is-open .maker-folder__tile:nth-child(13){animation-delay:.24s}.maker-folder.is-open .maker-folder__tile:nth-child(14){animation-delay:.26s}.maker-folder.is-open .maker-folder__tile:nth-child(15){animation-delay:.28s}.maker-folder.is-open .maker-folder__tile:nth-child(16){animation-delay:.3s}.maker-folder.is-open .maker-folder__tile:nth-child(17){animation-delay:.32s}
@keyframes makerGlobeSpin { to { transform:rotate(360deg); } } @keyframes makerTileIn { from { opacity:0; transform:translateY(10px) scale(.85); } to { opacity:1; transform:none; } } @keyframes makerDestination { from { opacity:.55; } to { opacity:1; } }
@media (max-width:768px) { .maker-shell { width:min(100% - 40px,1180px); }.maker-directory__hero { min-height:560px; }.maker-directory__hero-inner { padding:112px 0 55px; }.maker-folder nav { grid-template-columns:repeat(4,minmax(0,1fr)); }.maker-floating-nav { right:18px; bottom:18px; }.maker-globe { width:54px; height:54px; }.maker-folder { right:0; bottom:64px; width:auto; max-height:min(520px,calc(100svh - 100px)); } }
@media (max-width:520px) { .maker-shell { width:min(100% - 32px,1180px); }.maker-directory__hero { min-height:520px; }.maker-directory__hero h1 { font-size:clamp(2.7rem,12vw,4.1rem); }.maker-folder { position:fixed; right:16px; bottom:82px; left:16px; width:auto; }.maker-globe>span { display:none; } }
@media (prefers-reduced-motion:reduce) { .maker-globe svg circle { animation:none; }.maker-folder,.maker-folder__tile { transition:none; animation:none!important; } }
/* Phase 4 maker-image refresh. */
.maker-directory__hero::before { background:linear-gradient(90deg,rgba(18,12,10,.82),rgba(18,12,10,.6) 46%,rgba(18,12,10,.25)),url('../images/makers/hero/hero-producer-mosaic.png') center / cover no-repeat; }
.maker-region__heading > div > p { margin-bottom:5px; }


/* Floating country navigator: deliberately subtle motion that signals interactivity. */
.maker-globe { position:relative; overflow:hidden; isolation:isolate; animation:makerGlobeFloat 4s ease-in-out infinite; transition:border-color .24s ease,box-shadow .24s ease,filter .24s ease; }
.maker-globe::after { position:absolute; z-index:-1; top:-40%; width:38%; height:180%; background:linear-gradient(105deg,transparent,rgba(255,255,255,.72),transparent); content:""; opacity:0; transform:translateX(-270%) rotate(12deg); animation:makerGlobeGlint 8.1s ease-in-out infinite; pointer-events:none; }
.maker-globe:hover,.maker-globe:focus-visible { border-color:#fff4d3; box-shadow:0 17px 36px rgba(48,20,26,.32); filter:brightness(1.1); animation-play-state:paused; transform:translateY(-3px) scale(1.04); outline:0; }
.maker-globe:hover svg,.maker-globe:focus-visible svg { filter:brightness(1.22); }
.maker-producer-card__media--placeholder { flex-direction:column; gap:8px; justify-content:center; padding:22px; border-right:1px solid rgba(101,70,47,.08); background:linear-gradient(145deg,#eee7dc,#faf7f0); color:var(--maker-wine); text-align:center; }
.maker-producer-card__media--placeholder span { font:500 clamp(1.28rem,2vw,1.75rem)/1.15 Georgia,"Times New Roman",serif; letter-spacing:.02em; }
.maker-producer-card__media--placeholder small { color:rgba(94,56,45,.66); font-size:9px; font-weight:700; letter-spacing:.14em; }
@keyframes makerGlobeFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
@keyframes makerGlobeGlint { 0%,69%,100% { opacity:0; transform:translateX(-270%) rotate(12deg); } 74% { opacity:.9; } 81% { opacity:0; transform:translateX(430%) rotate(12deg); } }
@media (prefers-reduced-motion:reduce) { .maker-globe,.maker-globe::after { animation:none!important; } }