/* =========================================================
   Aetheris Medical Supply & Chemicals — Design System
   Palette & type scale mirrored from the reference enterprise
   medical-distribution site (McKesson) theme tokens.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

:root{
  --color-primary: #143359;
  --color-primary-dark: #0d2340;
  --color-primary-opacity-10: #e8eaee;
  --color-primary-contrast: #fff;
  --color-primary-light: #b6e2fa;
  --color-primary-lighter: #ecf5f8;
  --color-secondary: #ef8200;
  --color-secondary-dark: #d06e00;
  --color-tertiary: #f5f4f1;
  --color-tertiary-light: #ebe9e3;
  --color-link: #007bc7;
  --color-white: #fff;
  --color-black: #111;
  --color-text: #333;
  --color-text-muted: #5b5f66;
  --color-gray: #d8d8d8;
  --color-border: #e2e1dd;
  --color-accent-teal: #00997b;
  --color-accent-green: #00a978;

  --font-family: "Libre Franklin", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --radius-full: 999px;
  --radius-lg: 6rem;
  --radius-md: 2.4rem;
  --radius-sm: 1.4rem;

  --vspace-xs: 1rem;
  --vspace-sm: 2rem;
  --vspace-md: 6rem;
  --vspace-lg: 9.6rem;
  --vspace-xl: 13rem;

  --max-width: 1280px;
  --header-h: 128px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ font-size: 62.5%; scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin:0;
  font-family: var(--font-family);
  font-size: 1.6rem;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
}
img{ max-width:100%; display:block; }
a{ color: var(--color-link); text-decoration:none; }
a:hover{ text-decoration: underline; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{
  color: rgb(20, 51, 89);
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 1.6rem;
}
h1{ font-size: clamp(3.2rem, 4.2vw, 5.2rem); }
h2{ font-size: clamp(2.6rem, 5vw, 4.1rem); }
h3{ font-size: clamp(1.9rem, 3vw, 2.2rem); }
h4{ font-size: 1.8rem; }
p{ margin: 0 0 1.6rem; }
.container{
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 3.2rem;
}
section{ position:relative; }
.section{ padding: var(--vspace-lg) 0; }
.section--sm{ padding: var(--vspace-md) 0; }
.section--tertiary{ background: var(--color-tertiary); }
.section--primary{ background: var(--color-primary); color: var(--color-white); }
.section--primary h2, .section--primary h3{ color: var(--color-white); }
.text-center{ text-align:center; }

/* ---------- Eyebrow label ---------- */
.eyebrow{
  display:flex;
  align-items:center;
  gap: .9rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 1.2rem;
}
.eyebrow::before{
  content:"";
  display:inline-block;
  width: 2.8rem;
  height: 3px;
  background: var(--color-secondary);
}
.eyebrow--center{ justify-content:center; }
.eyebrow--light{ color: var(--color-white); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  font-weight:600;
  font-size:1.5rem;
  padding: 1.3rem 2.8rem;
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  cursor:pointer;
  transition: all .2s ease;
  text-decoration:none;
  white-space:nowrap;
}
.btn:hover{ text-decoration:none; transform: translateY(-1px); }
.btn-primary{ background: var(--color-secondary); color:#fff; }
.btn-primary:hover{ background: var(--color-secondary-dark); }
.btn-navy{ background: var(--color-primary); color:#fff; }
.btn-navy:hover{ background: var(--color-primary-dark); }
.btn-light{ background: var(--color-primary-light); color: var(--color-primary); }
.btn-light:hover{ background:#9fd4f2; }
.btn-outline{ background: transparent; border-color: var(--color-primary); color: var(--color-primary); }
.btn-outline:hover{ background: var(--color-primary); color:#fff; }
.btn-outline-white{ background: transparent; border-color:#fff; color:#fff; }
.btn-outline-white:hover{ background:#fff; color: var(--color-primary); }
.btn-sm{ padding: .9rem 2rem; font-size:1.3rem; }
.btn svg{ width:1.4rem; height:1.4rem; flex-shrink:0; }

/* ---------- Announcement bar ---------- */
.announcement{
  background: var(--color-primary);
  color:#fff;
}
.announcement__inner{
  max-width: var(--max-width);
  margin:0 auto;
  padding: 1rem 3.2rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem 1.6rem;
  font-size:1.4rem;
}
.announcement__icon{ flex-shrink:0; }
.announcement__text{ flex:1 1 200px; font-weight:500; min-width:0; overflow-wrap:break-word; }
.announcement__text strong{ text-transform:uppercase; letter-spacing:.06em; font-size:1.1rem; margin-right:.6rem; opacity:.9;}
.announcement .btn{ background:#fff; color: var(--color-primary); padding:.8rem 1.8rem; font-size:1.3rem; }
.announcement__close{
  background:none; border:none; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; opacity:.85; padding:.4rem;
}
.announcement__close:hover{ opacity:1; }

/* ---------- Utility bar ---------- */
.utility-bar{
  background:#fff;
  border-bottom:1px solid var(--color-border);
}
.utility-bar__inner{
  max-width: var(--max-width);
  margin:0 auto;
  padding: .8rem 3.2rem;
  display:flex;
  justify-content:flex-end;
  gap:2.4rem;
  font-size:1.3rem;
}
.utility-bar a{ color: var(--color-text); font-weight:500; }
.utility-bar a:hover{ color: var(--color-link); text-decoration:none; }

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top:0; z-index:200;
  background:#fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.05);
}
.nav{
  max-width: var(--max-width);
  margin:0 auto;
  padding: 1.6rem 3.2rem;
  display:flex;
  align-items:center;
  gap: 3.2rem;
}
.nav__logo{ flex-shrink:0; display:flex; align-items:center; margin-right:1.6rem; }
.nav__logo img{ height:48px; width:auto; }
.nav__menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 3.2rem;
  flex:1;
}
.nav__item{ position:relative; }
.nav__item--mobile-cta{ display:none; }
.nav__link{
  display:flex; align-items:center; gap:.5rem;
  color: var(--color-primary);
  font-weight:600;
  font-size:1.65rem;
  padding: 1.4rem 0;
  cursor:pointer;
  background:none; border:none; font-family:inherit;
}
.nav__link:hover{ color: var(--color-link); text-decoration:none; }
.nav__link .chev{ width:1rem; height:1rem; transition: transform .2s ease; }
.nav__item.open .nav__link .chev{ transform: rotate(180deg); }
.nav__actions{ display:flex; align-items:center; gap:1.6rem; flex-shrink:0; }
.nav__search{
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--color-border);
  display:flex; align-items:center; justify-content:center;
  background:#fff; cursor:pointer;
}
.nav__search svg{ width:18px; height:18px; color: var(--color-primary); }
.nav__burger{
  display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.6rem;
}
.nav__burger span{ width:26px; height:2px; background: var(--color-primary); display:block; }

/* Mega dropdown */
.mega{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:#fff;
  border-radius: 1.2rem;
  box-shadow: 0 18px 48px rgba(20,51,89,.18);
  padding: 2.8rem;
  min-width: 620px;
  display:none;
  gap: 3rem;
  border-top:3px solid var(--color-secondary);
  z-index: 300;
}
.nav__item.open .mega{ display:flex; }
.mega__col{ flex:1; min-width:180px; }
.mega__col h5{
  text-transform:uppercase; letter-spacing:.08em; font-size:1.15rem; color: var(--color-secondary);
  margin-bottom:1.2rem; font-weight:700;
}
.mega__col ul li{ margin-bottom: 1rem; }
.mega__col ul li a{ color: var(--color-primary); font-weight:500; font-size:1.45rem; }
.mega__col ul li a:hover{ color: var(--color-link); }
.mega__feature{
  flex:1; min-width:220px;
  background: var(--color-tertiary);
  border-radius: 1rem;
  overflow:hidden;
}
.mega__feature img{ width:100%; height:120px; object-fit:cover; }
.mega__feature .mega__feature-body{ padding: 1.6rem; }
.mega__feature h6{ color:var(--color-primary); font-size:1.4rem; margin:0 0 .6rem; font-weight:700; }
.mega__feature p{ font-size:1.3rem; color:var(--color-text-muted); margin:0 0 1rem; }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height: 560px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background: var(--color-primary);
}
.hero__bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; z-index:0;
}
.hero__slide{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center;
  z-index:0; opacity:0; transition: opacity 1.4s ease;
}
.hero__slide.active{ opacity:1; }
.hero__dots{
  position:absolute; z-index:3; left:50%; bottom:2.4rem; transform:translateX(-50%);
  display:flex; gap:.8rem;
}
.hero__dots button{
  width:9px; height:9px; border-radius:50%; border:1.5px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.25); padding:0; cursor:pointer;
}
.hero__dots button.active{ background:#fff; }
.hero__scrim{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(13,35,64,.88) 0%, rgba(13,35,64,.55) 45%, rgba(13,35,64,.1) 80%);
  z-index:1;
}
.hero__content{
  position:relative; z-index:2;
  max-width: var(--max-width);
  margin:0 auto;
  padding: 8rem 3.2rem;
  width:100%;
  min-width: 0;
  box-sizing: border-box;
}
.hero__content-inner{ max-width: 620px; width:100%; }
.hero__content h1{ color:#fff; margin-bottom:1.8rem; max-width:100%; overflow-wrap:break-word; }
.hero__content p{ color: rgba(255,255,255,.92); font-size:1.8rem; margin-bottom:2.8rem; max-width:100%; overflow-wrap:break-word; }
.hero__actions{ display:flex; gap:1.6rem; flex-wrap:wrap; }

.hero--page{ min-height:340px; background: var(--color-tertiary); }
.hero--page .hero__scrim{ display:none; }
.hero--page .hero__content h1{ color: var(--color-primary); }
.hero--page .hero__content p{ color: var(--color-text); }
.hero--page::after{
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(circle at 85% 30%, rgba(20,51,89,.06) 0, transparent 60%);
}

/* ---------- Breadcrumb ---------- */
.breadcrumb{ font-size:1.3rem; color: var(--color-text-muted); margin-bottom:1.6rem; }
.breadcrumb a{ color: var(--color-text-muted); }
.breadcrumb a:hover{ color: var(--color-link); }
.breadcrumb span{ margin: 0 .6rem; }

/* ---------- Grids / Cards ---------- */
.grid{ display:grid; gap: 3.2rem; }
.grid-3{ grid-template-columns: repeat(3,1fr); }
.grid-4{ grid-template-columns: repeat(4,1fr); }
.grid-2{ grid-template-columns: repeat(2,1fr); }

.solution-card{
  display:block;
  background:#fff;
  border-radius: .8rem;
  overflow:hidden;
  box-shadow: 0 2px 14px rgba(20,51,89,.08);
  transition: transform .25s ease, box-shadow .25s ease;
  height:100%;
}
.solution-card:hover{ transform: translateY(-6px); box-shadow: 0 16px 32px rgba(20,51,89,.16); text-decoration:none; }
.solution-card__img{ height:180px; overflow:hidden; }
.solution-card__img img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.solution-card:hover .solution-card__img img{ transform: scale(1.06); }
.solution-card__bar{ height:4px; background: var(--color-accent-green); }
.solution-card__body{ padding: 2.2rem 2.4rem; }
.solution-card__body a, .solution-card__title{ color: var(--color-primary); font-weight:700; font-size:1.5rem; display:flex; align-items:center; gap:.6rem; }
.solution-card:hover .solution-card__title{ color: var(--color-link); }

/* Stat card */
.stat-card{
  background:#fff;
  border: 1px solid var(--color-border);
  border-radius: 1rem;
  padding: 2.8rem 2rem;
  text-align:center;
  transition: box-shadow .2s ease;
}
.stat-card:hover{ box-shadow: 0 10px 26px rgba(20,51,89,.1); }
.stat-card__num{ font-size: 3.6rem; font-weight:800; color: var(--color-secondary); margin-bottom:.8rem; }
.stat-card__num.blue{ color: var(--color-link); }
.stat-card__num.teal{ color: var(--color-accent-teal); }
.stat-card__num.green{ color: var(--color-accent-green); }
.stat-card p{ font-size:1.35rem; color: var(--color-text-muted); margin:0; }

/* Info tile (about page "learn more" grid) */
.info-tile{ display:block; }
.info-tile__img{ border-radius:.8rem; overflow:hidden; height:150px; margin-bottom:1.2rem; }
.info-tile__img img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.info-tile:hover .info-tile__img img{ transform: scale(1.06); }
.info-tile h4{ color: var(--color-primary); font-size:1.6rem; margin-bottom:.6rem; display:flex; align-items:center; gap:.5rem; }
.info-tile:hover h4{ color: var(--color-link); }
.info-tile p{ font-size:1.35rem; color: var(--color-text-muted); margin:0; }

/* News / article card */
.article-card{
  background:#fff; border-radius:.8rem; overflow:hidden;
  box-shadow: 0 2px 14px rgba(20,51,89,.08);
  display:flex; flex-direction:column; height:100%;
}
.article-card__img{ height:170px; }
.article-card__img img{ width:100%; height:100%; object-fit:cover; }
.article-card__tag{ font-size:1.1rem; text-transform:uppercase; letter-spacing:.06em; color: var(--color-secondary); font-weight:700; margin-bottom:.6rem; }
.article-card__body{ padding:2.4rem; flex:1; display:flex; flex-direction:column; }
.article-card__body h4{ font-size:1.6rem; margin-bottom:1rem; }
.article-card__body p{ font-size: 1.35rem; color: var(--color-text-muted); flex:1; }
.article-card__link{ font-weight:700; font-size:1.35rem; }
.article-card--dark{ background: var(--color-primary); color:#fff; }
.article-card--dark h4{ color:#fff; }

/* ---------- Split banner (image + overlapping card) ---------- */
.banner{
  position:relative;
  overflow:hidden;
  min-height: 640px;
  display:flex;
  align-items:center;
}
.banner__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; }
.banner__bg::after{ content:""; }
.banner__scrim{ position:absolute; inset:0; background: linear-gradient(90deg, rgba(13,35,64,.35), rgba(13,35,64,.05)); }
.banner__card{
  position:relative; z-index:2;
  background:#fff;
  max-width: 420px;
  margin-left: 3.2rem;
  padding: 3.6rem 3.2rem;
  border-radius: 0 var(--radius-lg) 0 var(--radius-lg);
  box-shadow: 0 24px 60px rgba(20,51,89,.25);
}
.banner__card p{ color: var(--color-text-muted); }

/* Two-col image/text feature */
.feature{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.8rem;
  align-items:center;
}
.feature__img{ border-radius: 0 var(--radius-lg) 0 var(--radius-lg); overflow:hidden; }
.feature__img img{ width:100%; height:100%; object-fit:cover; min-height:320px; }
.feature--reverse .feature__img{ order:2; }

/* Impact / callout tile like screenshot1 "Turning Purpose into Action" */
.callout{
  background: var(--color-tertiary);
  border-radius: 1.2rem;
  overflow:hidden;
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items:stretch;
}
.callout__img{ position:relative; }
.callout__img img{ width:100%; height:100%; object-fit:cover; min-height:280px; }
.callout__img span{
  position:absolute; bottom:1.2rem; left:1.6rem; color:#fff; font-size:1.1rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; text-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.callout__body{ padding: 3.6rem; }

/* ---------- Marquee ---------- */
.marquee-wrap{
  overflow:hidden;
  position:relative;
  padding: 3.2rem 0;
  background:#fff;
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.marquee-wrap::before, .marquee-wrap::after{
  content:""; position:absolute; top:0; bottom:0; width:80px; z-index:2;
}
.marquee-wrap::before{ left:0; background: linear-gradient(90deg,#fff, transparent); }
.marquee-wrap::after{ right:0; background: linear-gradient(270deg,#fff, transparent); }
.marquee{
  display:flex; align-items:center; gap:6rem;
  width: max-content;
  animation: marquee 32s linear infinite;
}
.marquee-wrap:hover .marquee{ animation-play-state: paused; }
.marquee img{ height:34px; width:auto; opacity:.6; filter: grayscale(100%); transition: opacity .2s ease, filter .2s ease; }
.marquee img:hover{ opacity:1; filter:grayscale(0%); }
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ---------- Product grid ---------- */
.product-card{
  background:#fff; border:1px solid var(--color-border); border-radius:.8rem; overflow:hidden;
  display:flex; flex-direction:column; height:100%; transition: box-shadow .2s ease, transform .2s ease;
}
.product-card:hover{ box-shadow: 0 16px 32px rgba(20,51,89,.14); transform:translateY(-4px); }
.product-card__img{ background:#f7f7f5; height:220px; display:flex; align-items:center; justify-content:center; padding:1.6rem; }
.product-card__img img{ max-height:100%; object-fit:contain; }
.product-card__body{ padding:2.2rem; flex:1; display:flex; flex-direction:column; }
.product-card__cat{ font-size:1.1rem; text-transform:uppercase; letter-spacing:.06em; color: var(--color-secondary); font-weight:700; margin-bottom:.5rem; }
.product-card__body h4{ font-size:1.5rem; margin-bottom:.6rem; }
.product-card__body p{ font-size:1.3rem; color: var(--color-text-muted); flex:1; }
.product-card__footer{ display:flex; align-items:center; justify-content:space-between; margin-top:1.2rem; }
.product-card__badge{ font-size:1.1rem; font-weight:700; color: var(--color-accent-green); background: #e6f6f0; padding:.3rem .9rem; border-radius: var(--radius-full); }

/* ---------- Category list row (like McKesson product page list) ---------- */
.cat-row{ border-top:1px solid var(--color-border); padding: 2.8rem 0; display:grid; grid-template-columns: 280px 1fr; gap:3.2rem; }
.cat-row:last-child{ border-bottom:1px solid var(--color-border); }
.cat-row h3{ margin-bottom:.8rem; }
.cat-row a.explore{ font-weight:700; font-size:1.4rem; }

/* ---------- FAQ / Accordion ---------- */
.accordion-item{ border-bottom:1px solid var(--color-border); }
.accordion-trigger{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between;
  padding: 2rem 0; font-size:1.7rem; font-weight:600; color: var(--color-primary); font-family:inherit;
}
.accordion-trigger .plus{ font-size:2.4rem; font-weight:300; color: var(--color-secondary); transition: transform .25s ease; flex-shrink:0; margin-left:1.6rem; }
.accordion-item.open .accordion-trigger .plus{ transform: rotate(45deg); }
.accordion-panel{ max-height:0; overflow:hidden; transition: max-height .3s ease; }
.accordion-panel__inner{ padding: 0 0 2rem; color: var(--color-text-muted); font-size:1.45rem; }

/* ---------- Carousel (news / stats) ---------- */
.carousel{ display:flex; gap:2.4rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:1rem; scrollbar-width:none; }
.carousel::-webkit-scrollbar{ display:none; }
.carousel > *{ scroll-snap-align:start; flex: 0 0 320px; }
.carousel-nav{ display:flex; justify-content:flex-end; gap:1rem; margin-top:1.6rem; }
.carousel-nav button{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--color-border); background:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition: background .2s ease;
}
.carousel-nav button:hover{ background: var(--color-tertiary); }
.carousel-nav svg{ width:16px; height:16px; color: var(--color-primary); }

/* ---------- Forms ---------- */
.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.form-field{ margin-bottom:1.8rem; }
.form-field label{ display:block; font-weight:600; font-size:1.35rem; color: var(--color-primary); margin-bottom:.6rem; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding: 1.2rem 1.4rem; border:1px solid var(--color-gray); border-radius:.6rem;
  font-family:inherit; font-size:1.5rem; color: var(--color-text); background:#fff;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--color-link); box-shadow: 0 0 0 3px rgba(0,123,199,.15);
}
.form-field textarea{ resize:vertical; min-height:120px; }

/* Contact cards */
.contact-card{ background: var(--color-primary); color:#fff; border-radius:1rem; padding:2.8rem; }
.contact-card h4{ color:#fff; margin-bottom:1.6rem; }
.contact-card a{ color:#fff; }
.contact-card ul li{ display:flex; gap:1rem; margin-bottom:1.2rem; align-items:flex-start; font-size:1.4rem; }
.contact-card ul li svg{ width:18px; height:18px; flex-shrink:0; margin-top:.3rem; color: var(--color-secondary); }
.contact-card--light{ background: var(--color-tertiary); color: var(--color-text); }
.contact-card--light h4{ color: var(--color-primary); }
.contact-card--light a{ color: var(--color-link); }
.contact-card--light .btn-outline{ color: var(--color-primary); border-color: var(--color-primary); }
.contact-card--light .btn-outline:hover{ color:#fff; }

/* ---------- Footer ---------- */
.site-footer{ background: var(--color-primary-dark); color: rgba(255,255,255,.8); }
.footer-top{ border-bottom:1px solid rgba(255,255,255,.12); padding: 5.6rem 0; }
.footer-grid{ display:grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: 3.2rem; }
.footer-brand img{ height:52px; margin-bottom:1.8rem; filter: brightness(0) invert(1); }
.footer-brand p{ font-size:1.35rem; color: rgba(255,255,255,.65); max-width:280px; }
.footer-social{ display:flex; gap:1.2rem; margin-top:1.6rem; }
.footer-social a{
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center;
}
.footer-social svg{ width:16px; height:16px; color:#fff; }
.footer-social a:hover{ background: rgba(255,255,255,.12); }
.footer-col h5{ color:#fff; font-size:1.3rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1.6rem; }
.footer-col ul li{ margin-bottom:1rem; }
.footer-col a{ color: rgba(255,255,255,.75); font-size:1.4rem; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  padding: 2rem 0;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size:1.25rem; color: rgba(255,255,255,.55);
}
.footer-bottom-links{ display:flex; gap:2rem; flex-wrap:wrap; }
.footer-bottom-links a{ color: rgba(255,255,255,.55); font-size:1.25rem; }
.footer-bottom-links a:hover{ color:#fff; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
.reveal-delay-1{ transition-delay:.1s; }
.reveal-delay-2{ transition-delay:.2s; }
.reveal-delay-3{ transition-delay:.3s; }

/* ---------- Back to top ---------- */
.back-to-top{
  position:fixed; right:2.4rem; bottom:2.4rem; width:48px; height:48px; border-radius:50%;
  background: var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 20px rgba(20,51,89,.3); opacity:0; pointer-events:none; transition: opacity .25s ease, transform .2s ease;
  z-index:150; border:none; cursor:pointer;
}
.back-to-top.show{ opacity:1; pointer-events:auto; }
.back-to-top:hover{ transform: translateY(-3px); }
.back-to-top svg{ width:18px; height:18px; }

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:400;
  background:#fff; border-top:1px solid var(--color-border);
  box-shadow: 0 -8px 30px rgba(0,0,0,.08);
  padding: 1.6rem 3.2rem;
  display:flex; align-items:center; gap:2.4rem; flex-wrap:wrap;
  transform: translateY(100%); transition: transform .4s ease;
}
.cookie-banner.show{ transform:none; }
.cookie-banner p{ flex:1; min-width:240px; font-size:1.25rem; color: var(--color-text-muted); margin:0; }
.cookie-banner__actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.cookie-banner__close{ background:none; border:none; font-size:1.8rem; cursor:pointer; color: var(--color-text-muted); }

/* ---------- Badge chips (certifications) ---------- */
.chip-row{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.chip{
  display:inline-flex; align-items:center; gap:.6rem; background: var(--color-primary-lighter); color: var(--color-primary);
  padding:.7rem 1.6rem; border-radius: var(--radius-full); font-size:1.25rem; font-weight:600;
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .grid-4{ grid-template-columns: repeat(2,1fr); }
  .grid-3{ grid-template-columns: repeat(2,1fr); }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .feature{ grid-template-columns:1fr; }
  .feature__img{ order:-1 !important; }
  .callout{ grid-template-columns:1fr; }
}
@media (max-width: 900px){
  .nav__menu{
    position:fixed; top: var(--header-h); left:0; right:0; bottom:0;
    background:#fff; flex-direction:column; align-items:stretch; gap:0;
    padding: 1rem 3.2rem 3rem; overflow-y:auto;
    transform: translateX(100%); transition: transform .3s ease;
    display:flex;
  }
  .nav__menu.open{ transform:none; }
  .nav__item{ border-bottom:1px solid var(--color-border); }
  .nav__link{ width:100%; justify-content:space-between; }
  .mega{
    position:static; transform:none; box-shadow:none; border:none; min-width:0;
    flex-direction:column; padding: 0 0 1.6rem; gap:1.6rem; display:none;
  }
  .nav__item.open .mega{ display:flex; }
  .mega__feature{ display:none; }
  .nav__burger{ display:flex; }
  .nav__actions .btn-primary{ display:none; }
  .nav__item--mobile-cta{ display:block; padding-top:1.6rem; border-bottom:none !important; }
  .nav__item--mobile-cta .btn{ width:100%; justify-content:center; }
  .utility-bar__inner{ justify-content:center; }
  .cat-row{ grid-template-columns:1fr; }
  .banner__card{ margin-left:1.6rem; margin-right:1.6rem; max-width:none; }
}
@media (max-width: 900px){
  .nav__link{ font-size: 1.5rem; }
}
@media (max-width: 700px){
  html{ font-size: 56%; }
  .grid-4, .grid-3, .grid-2{ grid-template-columns: 1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .hero__content h1{ font-size: 3rem; }
  .hero__content p{ font-size: 1.6rem; }
  .container{ padding: 0 2rem; }
  .section{ padding: var(--vspace-md) 0; }
  .eyebrow{ font-size: 1.2rem; }
}
