/* =========================================================
   AGGRO v21 — official typography system
   PT Sans Caption: core text / interface
   Oswald: web-safe visual analogue of Reforma Grotesk MediumC
   Loaded last so earlier experimental type rules cannot override it.
   ========================================================= */
:root{
  --aggro-font-text:"PT Sans Caption","PT Sans",Arial,Helvetica,sans-serif;
  --aggro-font-accent:"Oswald","Roboto Condensed","Arial Narrow","Liberation Sans Narrow",Arial,sans-serif;
}

html{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body,
button,input,select,textarea,
.nav,.mega,.footer,.modal,.toast,
p,li,label,small,
.lead,.form-consent,.faq-answer,
.product-card p,.business-card p,.info-card p,.contact-item p,
.store-point span,.photo-tile figcaption small,
.production-gallery figcaption small,
.contact-route span,.premium-rail p{
  font-family:var(--aggro-font-text)!important;
}

body{
  font-size:16px;
  font-weight:400;
  line-height:1.58;
  letter-spacing:0;
}

/* Main brand accent typography */
h1,h2,h3,
.hero-copy h1,.page-hero h1,
.section-heading h2,.store-copy h2,
.product-card h3,.business-card h3,.info-card h3,
.catalog-card h3,.contact-item strong,
.freshness-banner h3,.modal h2,.faq-button,
.store-number,.info-card__num,
.premium-rail article>span,.premium-rail b,.contact-route b,
.photo-tile figcaption b,.production-gallery figcaption b,
.audience-card h2,.brand-quote{
  font-family:var(--aggro-font-accent)!important;
  font-style:normal!important;
  font-weight:500!important;
  font-stretch:condensed;
  text-wrap:balance;
}

h1,.hero-copy h1,.page-hero h1{
  text-transform:uppercase;
  line-height:.9!important;
  letter-spacing:.005em!important;
}

h2,.section-heading h2,.store-copy h2,.audience-card h2{
  text-transform:uppercase;
  line-height:.94!important;
  letter-spacing:.008em!important;
}

h3,.product-card h3,.business-card h3,.info-card h3,.catalog-card h3{
  line-height:1.02!important;
  letter-spacing:.012em!important;
}

.hero-copy h1{font-size:clamp(66px,6.5vw,108px)!important;max-width:690px!important}
.page-hero h1{font-size:clamp(58px,5.6vw,92px)!important}
h2{font-size:clamp(42px,4.1vw,68px)!important}
.section-heading h2{font-size:clamp(42px,4vw,66px)!important}
.audience-card h2{font-size:clamp(42px,3.8vw,62px)!important}
.store-copy h2{font-size:clamp(45px,4vw,62px)!important}
.product-card h3,.catalog-card h3{font-size:29px!important}
.business-card h3,.info-card h3{font-size:30px!important}
.freshness-banner h3{font-size:31px!important;line-height:1.03!important;letter-spacing:.01em!important}
.faq-button{font-size:25px!important;line-height:1.1!important}
.contact-item strong{font-size:28px!important;line-height:1.05!important}
.store-number{font-size:92px!important;line-height:.88!important;letter-spacing:.015em!important}
.info-card__num{font-size:62px!important;line-height:.9!important}

/* PT Sans Caption Bold for navigation, labels and actions */
.nav>a,.nav-group__trigger,
.header-actions .btn-outline,
.btn,.btn-outline,.btn-ghost,
.kicker,.tag,.breadcrumbs,.filter-btn,.picker-btn,
.footer h4,.footer a,.footer button,
.field label,.form-consent,
.mobile-nav-head,.mega strong,
.store-point b,.product-meta,.catalog-card__foot small{
  font-family:var(--aggro-font-text)!important;
  font-weight:700!important;
}

.nav>a,.nav-group__trigger{
  font-size:12px!important;
  line-height:1.15!important;
  letter-spacing:.035em!important;
  text-transform:uppercase;
}

.kicker{
  font-size:12px!important;
  line-height:1.2!important;
  letter-spacing:.095em!important;
  text-transform:uppercase;
}

.btn,.btn-outline,.btn-ghost,
.header-actions .btn-outline{
  font-size:12px!important;
  line-height:1.15!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
}

.tag,.breadcrumbs,.filter-btn,.picker-btn,.field label,.catalog-card__foot small{
  letter-spacing:.065em!important;
  text-transform:uppercase;
}

/* Body copy rhythm copied from the brandbook's compact caption style */
p,.lead,.checklist li,.product-card p,.business-card p,.info-card p,.contact-item p{
  letter-spacing:.002em!important;
}
.lead{font-size:18px!important;line-height:1.65!important}
.checklist li{font-size:15px!important;line-height:1.45!important}
.product-card p,.business-card p,.info-card p,.catalog-card p{line-height:1.52!important}

/* Brand numerals and 3–23 statements */
.store-number,.badge-323 strong,.footer-badge strong,
.freshness-banner strong,.premium-rail article>span{
  font-family:var(--aggro-font-accent)!important;
  font-weight:500!important;
}

/* Inputs must remain comfortably readable */
.field input,.field select,.field textarea{
  font-family:var(--aggro-font-text)!important;
  font-size:15px!important;
  line-height:1.35!important;
}

/* Keep logos proportional; typography changes must not distort marks */
.logo img,.footer-logo,.footer-badge img,.badge-323 img{
  height:auto!important;
  object-fit:contain!important;
}

@media(max-width:1250px){
  .nav>a,.nav-group__trigger{font-size:10px!important;letter-spacing:.025em!important}
  .hero-copy h1{font-size:clamp(62px,6vw,94px)!important}
}

@media(max-width:900px){
  body{font-size:15px}
  .nav>a,.nav-group__trigger{font-size:18px!important;letter-spacing:.035em!important}
  .hero-copy h1{font-size:clamp(62px,11vw,88px)!important;line-height:.9!important}
  .page-hero h1{font-size:clamp(52px,10vw,76px)!important}
  h2,.section-heading h2{font-size:clamp(40px,8vw,58px)!important}
  .audience-card h2,.store-copy h2{font-size:clamp(41px,8vw,56px)!important}
  .freshness-banner h3{font-size:29px!important}
  .store-number{font-size:78px!important}
}

@media(max-width:560px){
  body{font-size:14px;line-height:1.54}
  .hero-copy h1{font-size:clamp(54px,16vw,72px)!important;line-height:.91!important}
  .page-hero h1{font-size:clamp(48px,14vw,66px)!important}
  h2,.section-heading h2{font-size:clamp(38px,11vw,50px)!important}
  .audience-card h2,.store-copy h2{font-size:clamp(39px,11vw,50px)!important}
  .product-card h3,.catalog-card h3{font-size:27px!important}
  .business-card h3,.info-card h3{font-size:28px!important}
  .lead{font-size:16px!important;line-height:1.58!important}
  .freshness-banner h3{font-size:27px!important}
  .faq-button{font-size:23px!important}
  .store-number{font-size:70px!important}
  .btn,.btn-outline,.btn-ghost{font-size:11px!important}
}
