/* AGGRO v31.29 — responsive hierarchy and mobile conversion layer */

:root{
  --conversion-dock-height:68px;
}

/* Internal first screens: one consistent editorial proportion */
.page-hero-grid{
  min-width:0;
}
.page-hero-grid > *{
  min-width:0;
}
.page-hero-grid > div:first-child{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.page-hero .breadcrumbs{
  margin-bottom:clamp(18px,2vw,26px)!important;
}
.page-hero .kicker{
  margin-bottom:clamp(12px,1.4vw,18px)!important;
}
.page-hero h1{
  margin:0!important;
  max-width:13.5ch!important;
}
.page-hero p{
  margin:clamp(20px,2vw,28px) 0!important;
}
.page-hero .btn,
.page-hero .btn-outline{
  margin-top:2px;
}
.page-hero-image{
  min-width:0;
}

/* Commercial blocks should have a clean final action */
.cta-premium .btn,
.cta-premium .btn-outline{
  white-space:nowrap;
}
.rfq-layout > *{
  min-width:0;
}
.rfq-layout .checklist{
  margin-top:26px;
}
.rfq-layout .checklist li{
  padding-block:4px;
}

/* Prevent dense card copy from touching the action edge */
.product-card__body,
.catalog-card__body,
.audience-card__content,
.info-card,
.business-card{
  min-width:0;
}
.product-card__body > :last-child,
.catalog-card__body > :last-child{
  margin-bottom:0;
}

/* Mobile conversion dock */
.conversion-dock{
  display:none;
}

@media (min-width:901px) and (max-width:1180px){
  .page-hero{
    padding:92px 0 66px!important;
  }
  .page-hero-grid{
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr)!important;
    gap:clamp(30px,4vw,48px)!important;
  }
  .page-hero h1{
    font-size:clamp(48px,5.35vw,68px)!important;
    max-width:14ch!important;
  }
  .page-hero p{
    font-size:17px!important;
    line-height:1.62!important;
  }
  .page-hero-image{
    height:clamp(330px,34vw,400px)!important;
  }
  .rfq-layout{
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
    gap:36px!important;
  }
}

@media(max-width:900px){
  body.has-conversion-dock{
    padding-bottom:calc(var(--conversion-dock-height) + 22px + env(safe-area-inset-bottom));
  }
  body.has-conversion-dock .footer{
    margin-bottom:calc(-1 * (var(--conversion-dock-height) + 22px + env(safe-area-inset-bottom)));
    padding-bottom:calc(26px + var(--conversion-dock-height) + 22px + env(safe-area-inset-bottom))!important;
  }

  .page-hero{
    padding-top:102px!important;
  }
  .page-hero-grid{
    gap:27px!important;
  }
  .page-hero h1{
    max-width:16ch!important;
  }
  .page-hero p{
    max-width:620px!important;
  }
  .page-hero-image{
    width:100%!important;
  }
  .cta-grid > div{
    min-width:0;
  }
  .cta-premium .btn,
  .cta-premium .btn-outline{
    white-space:normal;
    width:min(100%,420px)!important;
  }

  .conversion-dock{
    position:fixed;
    left:50%;
    bottom:calc(10px + env(safe-area-inset-bottom));
    z-index:1450;
    width:min(calc(100% - 20px),520px);
    min-height:var(--conversion-dock-height);
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    gap:9px;
    align-items:center;
    padding:8px;
    border:1px solid rgba(88,184,174,.34);
    border-radius:22px;
    background:rgba(255,239,219,.93);
    box-shadow:0 20px 54px rgba(45,27,16,.24),inset 0 1px 0 rgba(255,255,255,.72);
    -webkit-backdrop-filter:blur(18px) saturate(1.08);
    backdrop-filter:blur(18px) saturate(1.08);
    transform:translate3d(-50%,calc(100% + 30px),0) scale(.97);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .42s cubic-bezier(.18,.82,.22,1),opacity .3s ease,visibility .3s ease;
  }
  .conversion-dock.is-visible{
    transform:translate3d(-50%,0,0) scale(1);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  body.menu-open .conversion-dock,
  body.modal-open .conversion-dock{
    transform:translate3d(-50%,calc(100% + 30px),0) scale(.97)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .conversion-dock__call,
  .conversion-dock__request{
    min-width:0;
    min-height:50px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    -webkit-tap-highlight-color:transparent;
  }
  .conversion-dock__call{
    width:52px;
    border:1px solid rgba(88,184,174,.34);
    background:rgba(255,255,255,.58);
    color:var(--red);
    box-shadow:0 7px 18px rgba(73,45,25,.08);
  }
  .conversion-dock__call svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .conversion-dock__request{
    width:100%;
    border:0;
    padding:12px 18px;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    color:#fff;
    box-shadow:0 12px 25px rgba(180,31,52,.21);
    font-family:var(--sans);
    font-size:12px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.055em;
    text-transform:uppercase;
    cursor:pointer;
  }
  .conversion-dock__request:active,
  .conversion-dock__call:active{
    transform:scale(.975);
  }
}

@media(max-width:560px){
  :root{--conversion-dock-height:66px}

  .page-hero{
    padding-top:94px!important;
  }
  .page-hero-grid{
    gap:22px!important;
  }
  .page-hero .breadcrumbs{
    margin-bottom:15px!important;
  }
  .page-hero .kicker{
    margin-bottom:10px!important;
  }
  .page-hero h1{
    max-width:100%!important;
  }
  .page-hero p{
    margin:17px 0 21px!important;
    font-size:15px!important;
    line-height:1.58!important;
  }
  .page-hero-image{
    height:clamp(220px,65vw,270px)!important;
  }
  .rfq-panel{
    padding:24px 18px!important;
  }
  .conversion-dock{
    width:calc(100% - 16px);
    bottom:calc(8px + env(safe-area-inset-bottom));
    border-radius:20px;
    padding:7px;
  }
  .conversion-dock__request{
    padding-inline:12px;
    font-size:11px;
  }
}

@media(max-width:360px){
  .conversion-dock{
    grid-template-columns:48px minmax(0,1fr);
    gap:7px;
  }
  .conversion-dock__call{
    width:48px;
  }
  .conversion-dock__request{
    font-size:10px;
    letter-spacing:.035em;
  }
}

@media(prefers-reduced-motion:reduce){
  .conversion-dock{
    transition:none!important;
  }
}
