/* ==========================================================================
   mingda · base — reset, typographic baseline, container, grid, utilities
   Consumes tokens only (design-spec §8.2).
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;}

html{
  font-size:16px;
  -webkit-text-size-adjust:100%;
  scroll-padding-top:calc(var(--md-size-header-total) + var(--md-space-4));
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition-duration:.01ms !important;animation-duration:.01ms !important;}
}

body{
  margin:0;
  font-family:var(--md-font-body);
  font-size:var(--md-text-body);
  line-height:var(--md-lh-body);
  font-weight:400;
  color:var(--md-color-text-primary);
  background:var(--md-color-bg-page);
  overflow-x:hidden;
}

img,svg,video,iframe{max-width:100%;height:auto;display:block;}
img{background:transparent;}

h1,h2,h3,h4,h5,h6{font-family:var(--md-font-heading);margin:0 0 var(--md-space-4);color:var(--md-color-text-primary);}
h1{font-size:var(--md-text-h1);line-height:var(--md-lh-h1);font-weight:700;letter-spacing:var(--md-tracking-h1);}
h2{font-size:var(--md-text-h2);line-height:var(--md-lh-h2);font-weight:700;letter-spacing:var(--md-tracking-h2);}
h3{font-size:var(--md-text-h3);line-height:var(--md-lh-h3);font-weight:600;}
h4{font-size:var(--md-text-h4);line-height:var(--md-lh-h4);font-weight:600;}
h5{font-size:var(--md-text-h5);line-height:var(--md-lh-h5);font-weight:600;}
h6{font-size:var(--md-text-h6);line-height:var(--md-lh-h6);font-weight:600;
   letter-spacing:var(--md-tracking-caption);text-transform:uppercase;
   color:var(--md-color-text-secondary);}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3,
html[lang="zh-CN"] h4,html[lang="zh-CN"] h5,html[lang="zh-CN"] h6{
  font-family:var(--md-font-heading-zh);font-weight:700;}
html[lang="zh-CN"] h4,html[lang="zh-CN"] h5,html[lang="zh-CN"] h6{font-weight:500;}

p{margin:0 0 var(--md-space-4);}
p:last-child{margin-bottom:0;}
ul,ol{margin:0 0 var(--md-space-4);padding-left:var(--md-space-5);}
li{margin-bottom:var(--md-space-2);}
li:last-child{margin-bottom:0;}

a{color:var(--md-color-text-link);text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--md-color-text-link-hover);text-decoration-thickness:2px;}

hr{border:0;border-top:1px solid var(--md-color-border-subtle);margin:var(--md-space-6) 0;}

strong,b{font-weight:600;}
small{font-size:var(--md-text-small);}
code,kbd{font-variant-numeric:tabular-nums;background:var(--md-color-bg-subtle);
  border-radius:var(--md-radius-xs);padding:0 var(--md-space-1);}

:focus-visible{outline:none;box-shadow:0 0 0 3px var(--md-color-focus);
  border-radius:var(--md-radius-sm);}
.md-btn--hailidun:focus-visible{box-shadow:0 0 0 3px var(--md-color-focus-red);}

::selection{background:var(--md-color-green-100);color:var(--md-color-text-primary);}

/* ---------- container (§3.1) ---------- */
.md-container{width:100%;max-width:var(--md-container-max);margin-inline:auto;
  padding-inline:var(--md-container-gutter);}
.md-container--wide{max-width:var(--md-container-wide);}
.md-container--narrow{max-width:var(--md-container-narrow);}

/* ---------- section rhythm (§3.3) ---------- */
.md-section{padding-block:var(--md-section-y);}
.md-section--tight{padding-block:var(--md-space-8);}
.md-section--subtle{background:var(--md-color-bg-subtle);}
.md-section--soft{background:var(--md-color-bg-brand-soft);}
.md-section--dark{background:var(--md-color-bg-dark);color:var(--md-color-text-inverse);}
.md-section--dark h1,.md-section--dark h2,.md-section--dark h3,
.md-section--dark h4,.md-section--dark h5{color:var(--md-color-text-inverse);}
.md-section--bordered{border-block:1px solid var(--md-color-border);}

/* ---------- grid (§3.2) ---------- */
.md-grid{display:grid;gap:var(--md-space-6);grid-template-columns:repeat(12,1fr);}
.md-col-3{grid-column:span 3;}
.md-col-4{grid-column:span 4;}
.md-col-6{grid-column:span 6;}
.md-col-7{grid-column:span 7;}
.md-col-8{grid-column:span 8;}
.md-col-12{grid-column:span 12;}
@media (max-width:1023px){
  .md-grid{grid-template-columns:repeat(8,1fr);gap:var(--md-space-5);}
  .md-col-3,.md-col-4{grid-column:span 4;}
  .md-col-6,.md-col-7,.md-col-8{grid-column:span 8;}
}
@media (max-width:767px){
  .md-grid{grid-template-columns:repeat(4,1fr);gap:var(--md-space-4);}
  .md-col-3,.md-col-4,.md-col-6,.md-col-7,.md-col-8{grid-column:span 4;}
}

/* ---------- utilities ---------- */
.md-visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.md-eyebrow{
  display:block;font-family:var(--md-font-heading);font-size:var(--md-text-eyebrow);
  font-weight:600;letter-spacing:var(--md-tracking-eyebrow);text-transform:uppercase;
  color:var(--md-color-green-600);margin:0 0 var(--md-space-3);
}
.md-section--dark .md-eyebrow{color:var(--md-color-green-400);}
.md-eyebrow--hailidun{color:var(--md-color-red-500);}

.md-lede{font-size:var(--md-text-body-lg);line-height:var(--md-lh-body-lg);
  color:var(--md-color-text-secondary);}
.md-section--dark .md-lede{color:var(--md-color-text-inverse-secondary);}

.md-section-head{margin-bottom:var(--md-space-8);max-width:var(--md-container-narrow);}
.md-section-head--center{margin-inline:auto;text-align:center;}
.md-section-head--wide{max-width:none;}

.md-tbc{font-size:var(--md-text-small);color:var(--md-color-text-muted);
  text-transform:uppercase;letter-spacing:var(--md-tracking-caption);}
.md-tbc--inline{font-size:var(--md-text-caption);}

.md-num{font-variant-numeric:tabular-nums;}
.md-text-link{color:var(--md-color-text-link);font-weight:600;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;}
.md-text-link:hover{color:var(--md-color-text-link-hover);text-decoration-thickness:2px;}
.md-section--dark .md-text-link{color:var(--md-color-text-inverse);}
.md-row-split{display:flex;align-items:center;justify-content:space-between;
  gap:var(--md-space-5);flex-wrap:wrap;}
.md-stack{display:flex;flex-direction:column;gap:var(--md-space-3);}
.md-actions{display:flex;flex-wrap:wrap;gap:var(--md-space-4);align-items:center;}

/* ---------- Astra bridging (§8.2) ---------- */
:root{
  --ast-global-color-0:var(--md-color-primary);
  --ast-global-color-1:var(--md-color-grey-900);
  --ast-global-color-2:var(--md-color-text-primary);
  --ast-global-color-3:var(--md-color-text-secondary);
  --ast-global-color-4:var(--md-color-bg-subtle);
  --ast-global-color-5:var(--md-color-white);
  --ast-global-color-6:var(--md-color-border);
  --ast-global-color-7:var(--md-color-grey-800);
  --ast-global-color-8:var(--md-color-grey-900);
}

/* Our two sample templates need full-bleed sections, so neutralise the Astra
   container only on those templates (all other pages keep Astra defaults). */
body.md-tpl-home .site-content > .ast-container,
body.md-tpl-product .site-content > .ast-container{max-width:none;padding-inline:0;}
body.md-tpl-home .ast-separate-container .ast-article-post,
body.md-tpl-product .ast-separate-container .ast-article-post{
  border:0;background:transparent;padding:0;margin:0;}
body.md-tpl-product .site-content .ast-container > .ast-woocommerce-container{padding:0;}
body.md-tpl-home #content,body.md-tpl-product #content{padding-block:0;}

/* Astra widgets / block library inherit Mingda type */
.entry-content h1,.entry-content h2,.entry-content h3,
.entry-content h4,.entry-content h5,.entry-content h6{font-family:var(--md-font-heading);}

/* WordPress core alignment helpers */
.alignwide{max-width:var(--md-container-wide);margin-inline:auto;}
.alignfull{max-width:none;}
.wp-block-image img{border-radius:var(--md-radius-none);}
