/* AGGRO v31.28 — fine details pass: controls, surfaces, footer and mobile rhythm */

:root{
  --fine-line:rgba(68,43,25,.11);
  --fine-line-strong:rgba(88,184,174,.32);
  --fine-paper:rgba(255,251,246,.74);
  --fine-shadow:0 18px 46px rgba(72,43,22,.10);
  --fine-shadow-hover:0 28px 64px rgba(72,43,22,.15);
}

::selection{
  background:rgba(88,184,174,.28);
  color:#2e2118;
}

body{
  overflow-x:clip;
}

section[id],
[id].section,
#documents{
  scroll-margin-top:124px;
}

img{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* Buttons and compact controls */
.btn,
.btn-outline,
.filter-btn,
.picker-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  -webkit-tap-highlight-color:transparent;
}

.btn,
.btn-outline{
  border-width:1px!important;
  transition:
    transform .28s cubic-bezier(.2,.72,.2,1),
    box-shadow .28s ease,
    background-color .28s ease,
    border-color .28s ease,
    color .28s ease!important;
}

@media(hover:hover) and (pointer:fine){
  .btn:hover,
  .btn-outline:hover{
    transform:translateY(-3px)!important;
  }
  .btn:hover{
    box-shadow:0 19px 38px rgba(180,31,52,.21)!important;
  }
  .btn-outline:hover{
    border-color:rgba(180,31,52,.42)!important;
    box-shadow:0 17px 36px rgba(87,52,25,.12)!important;
  }
}

.filter-btn,
.picker-btn{
  min-height:44px;
  padding:10px 17px!important;
  border:1px solid var(--fine-line)!important;
  background:rgba(255,250,244,.64)!important;
  box-shadow:0 8px 22px rgba(83,51,27,.06)!important;
}
.filter-btn.is-active,
.picker-btn.is-active{
  border-color:rgba(88,184,174,.48)!important;
  box-shadow:0 12px 28px rgba(52,139,131,.14)!important;
}

/* Images: sharper crop and calmer hover */
.product-card__image,
.page-hero-image,
.store-media,
.editorial-collage figure,
.photo-tile,
.quality-mosaic img{
  overflow:hidden;
  isolation:isolate;
}
.product-card__image img,
.page-hero-image img,
.store-media img,
.editorial-collage figure img,
.photo-tile img,
.quality-mosaic img{
  transform-origin:center center;
  transition:transform .72s cubic-bezier(.2,.7,.2,1),filter .42s ease!important;
}
@media(hover:hover) and (pointer:fine){
  .product-card:hover .product-card__image img,
  .page-hero-image:hover img,
  .store-media:hover img,
  .editorial-collage figure:hover img,
  .photo-tile:hover img,
  .quality-mosaic img:hover{
    transform:scale(1.025)!important;
    filter:saturate(1.025) contrast(1.01);
  }
}

/* Cards: one restrained premium system */
:is(
  .product-card,
  .business-card,
  .info-card,
  .contact-item,
  .faq-item,
  .premium-rail article,
  .contact-route article,
  .page-icon-rail article,
  .map-card,
  .rfq-panel
){
  border-color:var(--fine-line)!important;
  box-shadow:var(--fine-shadow)!important;
}

:is(
  .product-card,
  .business-card,
  .info-card,
  .contact-item,
  .faq-item,
  .premium-rail article,
  .contact-route article,
  .page-icon-rail article,
  .map-card
) :is(h3,b,strong){
  text-wrap:balance;
}

@media(hover:hover) and (pointer:fine){
  :is(
    .product-card,
    .business-card,
    .info-card,
    .contact-item,
    .faq-item,
    .premium-rail article,
    .contact-route article,
    .page-icon-rail article,
    .map-card
  ):hover{
    border-color:var(--fine-line-strong)!important;
    box-shadow:var(--fine-shadow-hover)!important;
  }
}

/* Icons should feel alive without looking playful */
:is(.premium-business-icon,.brand-audit-icon,.business-icon img,.page-icon-rail__icon img){
  transition:transform .42s cubic-bezier(.2,.72,.2,1),filter .42s ease!important;
}
@media(hover:hover) and (pointer:fine){
  :is(.business-card,.info-card,.page-icon-rail article):hover
  :is(.premium-business-icon,.brand-audit-icon,.business-icon img,.page-icon-rail__icon img){
    transform:translateY(-3px) scale(1.035)!important;
    filter:drop-shadow(0 10px 18px rgba(88,184,174,.16));
  }
}

/* CTA surfaces */
.cta-premium{
  position:relative;
  overflow:hidden;
}
.cta-premium .shell,
.cta-premium .cta-grid{
  position:relative;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 30px 74px rgba(67,38,18,.16)!important;
}
.cta-premium .shell::after,
.cta-premium .cta-grid::after{
  content:"";
  position:absolute;
  inset:1px;
  border:1px solid rgba(88,184,174,.13);
  border-radius:inherit;
  pointer-events:none;
}

/* Forms */
.field input,
.field select,
.field textarea{
  caret-color:var(--red);
}
.field input:-webkit-autofill,
.field textarea:-webkit-autofill,
.field select:-webkit-autofill{
  -webkit-text-fill-color:var(--ink)!important;
  -webkit-box-shadow:0 0 0 1000px #fffaf4 inset!important;
  transition:background-color 9999s ease-out 0s;
}
.form-consent{
  max-width:720px;
}

/* Phone numbers and email look intentional */
a[href^="tel:"],
a[href^="mailto:"]{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

/* Footer refinement */
.footer{
  padding-top:clamp(70px,7vw,96px)!important;
  padding-bottom:26px!important;
}
.footer-grid{
  gap:clamp(28px,3vw,44px)!important;
  align-items:start;
}
.footer-grid>div:first-child p{
  max-width:330px;
  line-height:1.68!important;
}
.footer-logo{
  margin-bottom:20px!important;
}
.footer h4{
  margin-bottom:16px!important;
  color:#3d2a1e!important;
}
.footer a,
.footer button{
  position:relative;
  width:max-content;
  max-width:100%;
  margin:9px 0!important;
  color:#4d3f35!important;
  text-decoration:none;
}
.footer a::after,
.footer button::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-2px;
  height:1px;
  background:currentColor;
  transition:right .28s ease;
}
@media(hover:hover) and (pointer:fine){
  .footer a:hover,
  .footer button:hover{
    color:var(--red)!important;
    transform:none!important;
  }
  .footer a:hover::after,
  .footer button:hover::after{
    right:0;
  }
}
.footer-badge{
  min-width:0;
  border-color:rgba(88,184,174,.22)!important;
  background:linear-gradient(145deg,rgba(255,250,244,.46),rgba(216,240,235,.28))!important;
  box-shadow:0 18px 42px rgba(82,48,24,.08)!important;
}
.footer-bottom{
  padding-top:22px!important;
  margin-top:clamp(36px,4vw,52px)!important;
  border-color:rgba(69,43,25,.13)!important;
}

/* Mobile details */
@media(max-width:900px){
  html{scroll-padding-top:96px}
  section[id],
  [id].section,
  #documents{scroll-margin-top:104px}

  .section{
    padding-block:clamp(66px,12vw,84px)!important;
  }
  .section--compact{
    padding-block:clamp(52px,10vw,68px)!important;
  }
  .section-heading{
    padding-bottom:20px!important;
    margin-bottom:34px!important;
  }
  .section-heading>p{
    max-width:680px!important;
  }

  .footer-grid{
    gap:30px 24px!important;
  }
  .footer-grid>div:first-child p{
    max-width:520px;
  }
}

@media(max-width:560px){
  .shell{
    width:min(100% - 24px,1480px)!important;
  }

  .btn,
  .btn-outline{
    min-height:50px;
    padding:13px 19px!important;
  }
  :is(.hero-actions,.cta-grid,.audience-card__content,.store-copy) :is(.btn,.btn-outline){
    width:100%;
  }

  .filters,
  .picker-menu{
    scroll-padding-inline:12px;
  }
  .filter-btn,
  .picker-btn{
    min-height:42px;
    padding:9px 14px!important;
  }

  .product-card__body{
    padding:21px!important;
  }
  .info-card,
  .business-card,
  .contact-item{
    padding:22px!important;
  }

  .footer{
    padding-top:58px!important;
  }
  .footer-grid{
    gap:28px!important;
  }
  .footer-grid>div{
    min-width:0;
  }
  .footer-grid>div:first-child{
    padding-bottom:4px;
  }
  .footer-logo{
    width:190px!important;
  }
  .footer h4{
    margin-bottom:12px!important;
  }
  .footer-bottom{
    align-items:flex-start!important;
    line-height:1.5;
  }
}

@media(max-width:370px){
  .shell{
    width:min(100% - 18px,1480px)!important;
  }
  .btn,
  .btn-outline{
    padding-inline:15px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .btn,
  .btn-outline,
  .filter-btn,
  .picker-btn,
  .footer a,
  .footer button,
  img{
    transition:none!important;
  }
}
