/* template-skin:mill prefix:ml */
/**
 * Mill — moinho de bankroll (pedra circular + sacas laterais)
 * Chrome: millstone CSS rings hero + sack/list cards; sticky hopper bar
 * (≠ dock berth+cargo, ≠ vault status+panels, ≠ signal rail, ≠ mesa tray)
 * Fonts: Archivo / Cabin via HTML link (no @import)
 * Palette: cool wheat + millstone gray + iron green — not terracotta cream
 */
*,*::before,*::after{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:4.6rem;
  scroll-padding-bottom:calc(4.35rem + env(safe-area-inset-bottom,0px));
}
html,body{margin:0}
body{
  --ml-ink:#1c1f23;
  --ml-muted:#5a5f66;
  --ml-wheat:#e6e2d6;
  --ml-flour:#f1eee6;
  --ml-panel:#f7f5ef;
  --ml-mill:#2a2e33;
  --ml-stone:#6a6e74;
  --ml-stone-deep:#3d4147;
  --ml-iron:#4f6b62;
  --ml-iron-deep:#3a524b;
  --ml-bolt:#8b939c;
  --ml-line:#c4c0b6;
  --ml-stitch:#a8a498;
  --ml-font:"Cabin","Segoe UI",sans-serif;
  --ml-display:"Archivo",system-ui,sans-serif;
  font-family:var(--ml-font);line-height:1.65;color:var(--ml-ink);
  background:
    radial-gradient(ellipse 70% 45% at 18% 8%,rgba(79,107,98,.12),transparent 55%),
    linear-gradient(180deg,#d9d5c9 0%,var(--ml-wheat) 38%,var(--ml-flour) 100%);
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ml-iron-deep);text-underline-offset:3px}
a:hover{color:var(--ml-ink)}

.ml-shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(4.2rem + env(safe-area-inset-bottom,0px))}
.ml-wrap{width:min(1120px,calc(100% - 2rem));margin-inline:auto}
.ml-wrap--wide{width:min(1180px,calc(100% - 1.4rem))}

/* —— Mast: stone bar —— */
.ml-mast{
  position:sticky;top:0;z-index:45;
  background:rgba(241,238,230,.94);backdrop-filter:blur(7px);
  border-bottom:1px solid var(--ml-line);
  box-shadow:inset 0 -2px 0 rgba(42,46,51,.06);
  padding:.68rem 0;padding-top:max(.68rem,env(safe-area-inset-top));
}
.ml-mast__row{
  width:min(1180px,calc(100% - 1.2rem));margin-inline:auto;
  display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;
}
.ml-brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ml-ink);min-width:0}
.ml-brand img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--ml-stone)}
.ml-brand__name{font-family:var(--ml-display);font-weight:700;font-size:1.1rem;letter-spacing:-.02em}
.ml-brand__tag{display:block;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ml-iron);font-weight:700}
.ml-nav{display:none;gap:.85rem;margin-left:auto}
@media(min-width:960px){.ml-nav{display:flex}}
.ml-nav a{color:var(--ml-muted);text-decoration:none;font-size:.9rem;font-weight:650}
.ml-nav a.is-active,.ml-nav a:hover{color:var(--ml-ink);border-bottom:2px solid var(--ml-iron)}
.ml-mast__cta{display:none;gap:.4rem;align-items:center}
@media(min-width:960px){.ml-mast__cta{display:flex}}
.ml-toggle{
  margin-left:auto;display:inline-flex;align-items:center;justify-content:center;
  width:2.25rem;height:2.25rem;border:1px solid var(--ml-line);background:var(--ml-panel);color:var(--ml-ink);cursor:pointer;border-radius:2px;
}
@media(min-width:960px){.ml-toggle{display:none}}

.ml-notice[hidden]{display:none}
.ml-notice{
  background:var(--ml-mill);color:#d8d6d0;
  border-bottom:2px solid rgba(79,107,98,.7);
}
.ml-notice__inner{
  width:min(1180px,calc(100% - 1.2rem));margin-inline:auto;
  display:flex;align-items:center;gap:.75rem;padding:.52rem 0;flex-wrap:wrap;
}
.ml-notice__kicker{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ml-bolt);font-weight:700}
.ml-notice__line{flex:1;font-size:.9rem;min-width:12rem}
.ml-notice__x{
  background:transparent;border:0;color:#9a9890;font-size:1.3rem;cursor:pointer;line-height:1;padding:.15rem .35rem;
}

.ml-drawer{
  display:none;flex-direction:column;gap:.5rem;padding:1rem 1.25rem 1.2rem;
  background:#1a1d21;border-bottom:1px solid rgba(79,107,98,.45);
}
.ml-drawer.is-open{display:flex}
.ml-drawer a{color:#d8d6d0;text-decoration:none;font-weight:600;padding:.3rem 0}

.ml-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  font:650 .88rem/1.2 var(--ml-font);text-decoration:none;border-radius:2px;
  padding:.55rem .95rem;border:1px solid transparent;cursor:pointer;
}
.ml-btn--iron{background:var(--ml-iron);color:#fff;border-color:var(--ml-iron-deep)}
.ml-btn--iron:hover{background:var(--ml-iron-deep);color:#fff}
.ml-btn--stone{background:var(--ml-stone-deep);color:#fff;border-color:#2a2e33}
.ml-btn--stone:hover{background:#2a2e33;color:#fff}
.ml-btn--ghost{background:transparent;color:var(--ml-ink);border-color:var(--ml-line)}
.ml-btn--ghost:hover{border-color:var(--ml-iron);color:var(--ml-iron-deep)}
.ml-btn--lg{padding:.75rem 1.2rem;font-size:.95rem}
.ml-btn--soft{background:rgba(255,255,255,.07);color:#ebe8e0;border-color:rgba(255,255,255,.2)}
.ml-btn--soft:hover{border-color:#fff;color:#fff}

/* —— Mill floor: stone hero + sack rail —— */
.ml-floor{padding:clamp(1.5rem,4vw,2.6rem) 0 1.8rem}
.ml-floor__grid{
  display:grid;gap:1.25rem;align-items:center;
  grid-template-columns:1fr;
}
@media(min-width:900px){
  .ml-floor__grid{grid-template-columns:minmax(260px,1.05fr) minmax(280px,.95fr);gap:1.6rem}
}

/* Circular millstone (CSS rings) */
.ml-stone-hero{
  position:relative;aspect-ratio:1;width:min(100%,420px);margin-inline:auto;
  display:grid;place-items:center;
}
.ml-ring{
  position:absolute;inset:0;margin:auto;border-radius:50%;
  border:2px solid var(--ml-stone);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.12),
    0 0 0 1px rgba(42,46,51,.15);
  background:
    repeating-conic-gradient(from 12deg,rgba(106,110,116,.14) 0 8deg,transparent 8deg 22deg);
  animation:ml-grind 48s linear infinite;
}
.ml-ring--outer{inset:0;background-color:#5e6369;border-width:3px;border-color:#8b939c}
.ml-ring--mid{inset:11%;background-color:#6a6e74;border-color:#9aa0a6;animation-duration:36s;animation-direction:reverse}
.ml-ring--inner{inset:24%;background-color:#4a4e54;border-color:#7a8086;animation-duration:28s}
.ml-ring--hub{
  inset:38%;animation:none;
  background:
    radial-gradient(circle at 40% 35%,#5a7a70 0%,var(--ml-iron) 55%,var(--ml-iron-deep) 100%);
  border:3px solid #c4c0b6;
  display:grid;place-items:center;z-index:2;
  box-shadow:inset 0 2px 8px rgba(0,0,0,.25);
}
.ml-spoke{
  position:absolute;left:50%;top:50%;width:2px;height:46%;
  background:linear-gradient(180deg,transparent,#c4c0b6 18%,#8b939c 82%,transparent);
  transform-origin:50% 0;z-index:1;opacity:.85;
}
.ml-spoke:nth-child(5){transform:translate(-50%,0) rotate(0deg)}
.ml-spoke:nth-child(6){transform:translate(-50%,0) rotate(60deg)}
.ml-spoke:nth-child(7){transform:translate(-50%,0) rotate(120deg)}
.ml-spoke:nth-child(8){transform:translate(-50%,0) rotate(180deg)}
.ml-spoke:nth-child(9){transform:translate(-50%,0) rotate(240deg)}
.ml-spoke:nth-child(10){transform:translate(-50%,0) rotate(300deg)}
@keyframes ml-grind{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .ml-ring{animation:none}
}
.ml-hub-copy{text-align:center;padding:.4rem;color:#f1eee6;z-index:3;position:relative}
.ml-hub-copy__kicker{
  margin:0 0 .25rem;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;
  color:#c8d4ce;font-weight:700;
}
.ml-hub-copy__brand{
  margin:0;font-family:var(--ml-display);font-weight:800;
  font-size:clamp(.95rem,2.8vw,1.25rem);line-height:1.1;letter-spacing:-.02em;
  max-width:7.5rem;
}
.ml-hub-copy__tag{margin:.3rem 0 0;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#b8c4be}

.ml-floor__intro{min-width:0}
.ml-floor__kicker{
  margin:0 0 .4rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ml-iron);font-weight:700;
}
.ml-floor__title{
  margin:0 0 .65rem;font-family:var(--ml-display);font-weight:750;
  font-size:clamp(1.85rem,4.8vw,2.75rem);line-height:1.08;letter-spacing:-.03em;
}
.ml-floor__text{margin:0 0 1rem;color:var(--ml-muted);font-size:1.04rem;max-width:36rem}
.ml-floor__actions{display:flex;flex-wrap:wrap;gap:.5rem}

/* Sack / list cards */
.ml-sacks{padding:0 0 2.2rem}
.ml-sacks__head{margin:0 0 .35rem;font-family:var(--ml-display);font-size:1.35rem}
.ml-sacks__lead{margin:0 0 1rem;color:var(--ml-muted);font-size:.95rem}
.ml-sacks__rail{
  display:grid;gap:.7rem;
  grid-template-columns:1fr;
}
@media(min-width:720px){.ml-sacks__rail{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.ml-sacks__rail{grid-template-columns:1fr 1fr 1fr 1fr}}
.ml-sack{
  position:relative;background:var(--ml-panel);border:1px solid var(--ml-line);
  padding:1rem .9rem .95rem;
  border-radius:4px 4px 18px 18px / 4px 4px 28px 28px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
.ml-sack::before{
  content:"";position:absolute;left:12%;right:12%;top:.35rem;height:3px;
  background:repeating-linear-gradient(90deg,var(--ml-stitch) 0 6px,transparent 6px 10px);
  opacity:.7;
}
.ml-sack__mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.55rem;height:1.55rem;border-radius:50%;
  border:2px solid var(--ml-iron);color:var(--ml-iron);
  font-family:var(--ml-display);font-size:.72rem;font-weight:800;margin-bottom:.45rem;
}
.ml-sack h3{margin:0;font-family:var(--ml-display);font-size:1.02rem}
.ml-sack p{margin:.3rem 0 .65rem;font-size:.88rem;color:var(--ml-muted)}
.ml-sack__go{font-weight:700;text-decoration:none;color:var(--ml-iron-deep);font-size:.85rem}
.ml-sack__go:hover{color:var(--ml-ink)}

.ml-gallery{padding:0 0 2.2rem}
.ml-gallery__grid{
  display:grid;gap:.7rem;grid-template-columns:1fr;
}
@media(min-width:720px){.ml-gallery__grid{grid-template-columns:1.1fr 1fr .9fr}}
.ml-gallery__item{margin:0;overflow:hidden;border:1px solid var(--ml-line);background:var(--ml-mill)}
.ml-gallery__item img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ml-gallery__ph{
  width:100%;aspect-ratio:16/9;
  background:
    linear-gradient(135deg,rgba(79,107,98,.35),transparent 55%),
    repeating-linear-gradient(45deg,#3d4147 0 8px,#2a2e33 8px 16px);
}
.ml-gallery__item figcaption{padding:.45rem .65rem;font-size:.8rem;color:var(--ml-muted);background:#fff;border-top:1px solid var(--ml-line)}

.ml-section{padding:0 0 2.5rem}
.ml-section__head{margin-bottom:1rem}
.ml-section__head h2{margin:0 0 .3rem;font-family:var(--ml-display);font-size:1.5rem}
.ml-section__head p{margin:0;color:var(--ml-muted)}

.ml-page{padding:1.4rem 0 2.5rem;flex:1}
.ml-title{margin:.3rem 0 1rem;font-family:var(--ml-display);font-size:clamp(1.55rem,3.4vw,2.1rem);line-height:1.12}
.ml-lead{color:var(--ml-muted);margin:0 0 1.2rem;max-width:42rem}
.ml-crumb{font-size:.85rem;color:var(--ml-muted);margin-bottom:.45rem}
.ml-crumb a{color:var(--ml-muted)}
.ml-prose h2{font-family:var(--ml-display);font-size:1.22rem;margin:1.45rem 0 .5rem}
.ml-prose ol,.ml-prose ul{padding-left:1.2rem}
.ml-prose li{margin:.35rem 0}
.ml-figure{margin:0 0 1.2rem;border:1px solid var(--ml-line);background:#fff}
.ml-figure img{width:100%}
.ml-figure__ph{
  width:100%;aspect-ratio:16/9;
  background:
    linear-gradient(160deg,rgba(106,110,116,.4),transparent 50%),
    repeating-conic-gradient(from 0deg at 50% 50%,#3d4147 0 12deg,#2a2e33 12deg 24deg);
}
.ml-figure figcaption{padding:.5rem .7rem;font-size:.82rem;color:var(--ml-muted);border-top:1px solid var(--ml-line)}
.ml-faq details{border:1px solid var(--ml-line);background:#fff;margin:0 0 .5rem;padding:.6rem .8rem;border-radius:2px}
.ml-faq summary{cursor:pointer;font-weight:700}

/* News — sack slip cards */
.ml-news-list{display:grid;gap:1rem}
.ml-news-card{
  display:grid;gap:.85rem;background:#fff;border:1px solid var(--ml-line);
  border-left:4px solid var(--ml-iron);padding:.85rem;
  border-radius:2px 12px 12px 2px;
}
@media(min-width:640px){.ml-news-card.has-thumb{grid-template-columns:220px 1fr}}
.ml-news-card__media{display:block;overflow:hidden;background:var(--ml-mill)}
.ml-news-card__media img,.ml-news-card__media picture{width:100%;aspect-ratio:16/9;object-fit:cover}
.ml-news-card__body{min-width:0}
.ml-news-card__meta{display:flex;flex-wrap:wrap;gap:.5rem .85rem;margin:0 0 .35rem;font-size:.78rem;color:var(--ml-muted);text-transform:uppercase;letter-spacing:.04em}
.ml-news-card__sack{
  font-family:var(--ml-display);font-weight:700;color:var(--ml-iron);letter-spacing:.06em;
}
.ml-news-card__title{margin:0 0 .35rem;font-family:var(--ml-display);font-size:1.15rem;line-height:1.25}
.ml-news-card__title a{color:var(--ml-ink);text-decoration:none}
.ml-news-card__title a:hover{color:var(--ml-iron-deep)}
.ml-news-card__excerpt{margin:0;color:var(--ml-muted);font-size:.95rem}
.ml-news-empty{color:var(--ml-muted);padding:1rem;border:1px dashed var(--ml-line);background:#fff}

.ml-pager{margin-top:1.25rem;display:flex;flex-direction:column;gap:.45rem}
.ml-pager__row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.ml-pager__pages{display:flex;list-style:none;margin:0;padding:0;gap:.3rem;flex-wrap:wrap}
.ml-pager__btn,.ml-pager__num{
  display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;
  padding:0 .45rem;border:1px solid var(--ml-line);background:#fff;text-decoration:none;color:var(--ml-ink);font-size:.88rem;font-weight:650;border-radius:50%;
}
.ml-pager__num.is-current{background:var(--ml-mill);color:#fff;border-color:var(--ml-mill)}
.ml-pager__btn.is-disabled{opacity:.4;pointer-events:none}
.ml-pager__gap{padding:.35rem;color:var(--ml-muted)}
.ml-pager__status{font-size:.82rem;color:var(--ml-muted)}

.ml-article__title{margin:.25rem 0 .75rem;font-family:var(--ml-display);font-size:clamp(1.6rem,3.5vw,2.2rem);line-height:1.12}
.ml-article__body{margin-top:1rem}
.ml-news-hero{margin:0 0 1.1rem;border:1px solid var(--ml-line);overflow:hidden}
.ml-news-hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ml-news-nav{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0}
.ml-news-nav a{display:block;padding:.75rem;border:1px solid var(--ml-line);background:#fff;text-decoration:none;color:var(--ml-ink);border-radius:2px 10px 10px 2px}
.ml-news-nav a span{display:block;font-size:.75rem;color:var(--ml-muted);text-transform:uppercase;letter-spacing:.06em}
.ml-news-nav a strong{display:block;margin-top:.25rem;font-size:.92rem}
.ml-news-related{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--ml-line)}
.ml-news-related h2{font-family:var(--ml-display);font-size:1.15rem;margin:0 0 .55rem}
.ml-news-related ul{margin:0;padding-left:1.1rem}
.ml-byline{font-weight:650;color:var(--ml-iron-deep)}
.ml-week-digest{margin:1rem 0;padding:1rem;border:1px solid var(--ml-line);background:#fff;border-radius:2px 12px 12px 2px}

.ml-foot{
  margin-top:auto;background:var(--ml-mill);color:#c9c7c0;padding:2rem 0 1.25rem;
  border-top:3px solid var(--ml-iron);
}
.ml-foot a{color:#ebe8e0}
.ml-foot__grid{display:grid;gap:1.25rem}
@media(min-width:780px){.ml-foot__grid{grid-template-columns:1.4fr 1fr 1fr}}
.ml-foot__brand{font-family:var(--ml-display);font-size:1.2rem;color:#fff;margin:0 0 .4rem}
.ml-foot h3{margin:0 0 .45rem;font-family:var(--ml-display);font-size:.95rem;color:#a8bbb4;text-transform:uppercase;letter-spacing:.08em}
.ml-foot ul{list-style:none;margin:0;padding:0}
.ml-foot li{margin:.3rem 0}
.ml-foot__meta{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;color:#8e8c84}

/* Sticky PIX hopper bar */
.ml-hopper{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:rgba(42,46,51,.97);color:#d8d6d0;
  border-top:2px solid rgba(79,107,98,.75);
  padding:.55rem 0;padding-bottom:max(.55rem,env(safe-area-inset-bottom));
}
.ml-hopper__inner{
  width:min(1180px,calc(100% - 1rem));margin-inline:auto;
  display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:space-between;
}
.ml-hopper__mark{font-family:var(--ml-display);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ml-bolt);font-weight:700}
.ml-hopper__links{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.ml-hopper__links a{
  font-size:.82rem;font-weight:650;text-decoration:none;color:#ebe8e0;
  padding:.35rem .65rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;
}
.ml-hopper__links a:hover{border-color:var(--ml-iron);color:#fff}

.ml-ready .ml-shell{opacity:1}

/* --- CTA visibility (skin-matched) --- */
.ml-cta-rail {
  position: fixed;
  right: max(0.85rem, env(safe-area-inset-right));
  bottom: max(0.85rem, env(safe-area-inset-bottom));
  z-index: 90;
  pointer-events: none;
}
.ml-cta-rail__btn {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1.15rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  color: #fff !important;
  background: var(--ml-accent, var(--ml-coral, var(--ml-teal, var(--ml-green, #0d9488))));
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
  border: 0;
}
.ml-cta-rail__btn:hover { filter: brightness(1.06); }
.ml-cta-rail__btn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@media (max-width: 720px) {
  .ml-cta-rail {
    left: max(0.75rem, env(safe-area-inset-left));
    right: max(0.75rem, env(safe-area-inset-right));
    bottom: max(0.75rem, env(safe-area-inset-bottom));
  }
  .ml-cta-rail__btn { width: 100%; border-radius: 0.85rem; }
}
.ml-cta-mid {
  margin: 1.1rem 0 1.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.ml-cta-mid__btn {
  display: inline-flex !important;
  min-height: 2.6rem;
  padding: 0.7rem 1.35rem;
  font-weight: 700;
  text-decoration: none !important;
}
/* 若主按钮类未覆盖底色，给 mid 一个皮肤底 */
a.ml-cta-mid__btn:not([class*="--solid"]):not([class*="-cta"]):not([class*="--navy"]):not([class*="--teal"]):not([class*="--coral"]):not([class*="--forest"]) {
  color: #fff !important;
  background: var(--ml-accent, var(--ml-coral, var(--ml-teal, var(--ml-green, #0d9488))));
  border-radius: 999px;
  border: 0;
  padding: 0.7rem 1.35rem;
}
.ml-btn--cta-vis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  color: #fff !important;
  background: var(--ml-accent, var(--ml-coral, var(--ml-teal, var(--ml-green, #0d9488))));
  border: 0;
}
