/* AVIX Water global responsive hardening layer
   Applies after each page's existing stylesheet. */

:root {
  --avix-safe-left: env(safe-area-inset-left, 0px);
  --avix-safe-right: env(safe-area-inset-right, 0px);
  --avix-safe-top: env(safe-area-inset-top, 0px);
  --avix-safe-bottom: env(safe-area-inset-bottom, 0px);
}

html {
  min-width: 0;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 110px;
}

body {
  min-width: 0;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
main, section, article, aside, header, footer, nav, div, form, fieldset { min-width: 0; }
img, picture, video, canvas, svg, iframe { max-width: 100%; }
img, video, canvas { height: auto; }
iframe { display: block; border: 0; }
button, input, select, textarea { max-width: 100%; font: inherit; }
button, [type="button"], [type="submit"], a.btn, a.av5-button { touch-action: manipulation; }
p, li, dd, address, figcaption, label { overflow-wrap: break-word; }
a, code, pre, .prose, .reference-list, .av5-footer-contact, .tb-footer-contact { overflow-wrap: anywhere; }
pre { max-width: 100%; overflow: auto; }
[id] { scroll-margin-top: 120px; }

/* Responsive media and data containers */
.data-table-wrap, .table-scroll, .responsive-table, .chart-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}
.data-table-wrap table, .table-scroll table, .responsive-table table { width: max(100%, 680px); }

/* Make interactive controls comfortable without changing desktop composition. */
.menu-toggle, .av5-menu { min-width: 44px; min-height: 44px; }
input, select, textarea { min-height: 44px; }
textarea { min-height: 130px; resize: vertical; }

/* Modern-page status strip: retain all three messages where they fit. */
.av5-topline-centre { max-width: 100%; overflow: hidden; }
.av5-topline-centre span { flex: 0 0 auto; }

/* Decorative hero geometry must never influence layout width. */
.s12-hero, .p3-hero, .co2-hero, .av5-hero,
.s12-hero-visual, .p3-hero-visual, .co2-hero-visual, .av5-hero-bottle {
  overflow: clip;
}
.s12-hero-orbit, .p3-hero-halo, .co2-hero::after, .av5-hero::after { pointer-events: none; }

/* Old-generation pages: preserve layout but improve resilient sizing. */
.page-our-team .hero-copy h1,
.page-contact .contact-utility-hero h1,
.page-legal .page-hero h1,
.page-references .page-hero h1 {
  text-wrap: balance;
}
.page-our-team .team-leader-card-v213,
.page-our-team .person,
.page-contact .contact-form-v210,
.page-contact .contact-information-v210 article { max-width: 100%; }

/* Wider desktops: keep lines readable and layouts centred. */
@media (min-width: 1680px) {
  .av5-container, .container, .wrap, .tb-footer-shell { max-width: 1280px; }
  .av5-hero-lead, .s12-hero-copy > p:not(.av5-eyebrow),
  .p3-hero-copy > p:not(.av5-eyebrow), .co2-hero-copy > p:not(.av5-eyebrow) {
    max-width: 52rem;
  }
}

/* Intermediate desktop/tablet widths. */
@media (max-width: 1180px) {
  .av5-nav { gap: 12px; }
  .av5-nav > a:not(.av5-button) { font-size: .72rem; }
  .av5-nav .av5-button { padding-inline: 16px; }

  .co2-gcc-chart, .co2-volume-model, .co2-long-model,
  .s12-comparison > article, .s12-comparison > aside { min-width: 0; }

  .page-our-team .team-logo-marquee-v213 { max-width: 100%; }
}

/* Tablet and collapsed-navigation behaviour. */
@media (max-width: 860px) {
  html { scroll-padding-top: 82px; }

  .av5-nav {
    max-height: 100dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: max(24px, var(--avix-safe-right));
    padding-left: max(24px, var(--avix-safe-left));
    padding-bottom: max(30px, var(--avix-safe-bottom));
  }
  .av5-nav > a { min-height: 48px; display: flex; align-items: center; }

  .main-nav {
    max-height: calc(100dvh - 96px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: max(22px, var(--avix-safe-right));
    padding-left: max(22px, var(--avix-safe-left));
    padding-bottom: max(22px, var(--avix-safe-bottom));
  }
  .main-nav > a { min-height: 46px; display: flex; align-items: center; }

  .s12-section-head, .p3-section-head, .co2-heading,
  .av5-section-head, .headblock, .contact-heading-v210 {
    gap: 24px;
  }

  .s12-hero-orbit--outer { width: min(500px, 92vw); height: min(500px, 92vw); }
  .s12-hero-orbit--inner { width: min(360px, 72vw); height: min(360px, 72vw); }

  .page-our-team .team-leader-card-v213 { width: 100%; }
  .page-contact .contact-form-grid-v210 { grid-template-columns: 1fr 1fr; }
}

/* Phone layout. */
@media (max-width: 620px) {
  html { scroll-padding-top: 74px; }

  .av5-container, .container, .wrap, .tb-footer-shell {
    width: min(calc(100% - 28px), 1280px);
  }

  .av5-topline-centre { gap: 7px !important; }
  .av5-topline-centre span { font-size: .5rem; letter-spacing: .055em; }
  .av5-topline-centre i { height: 9px; }

  .av5-actions, .hero-actions, .button-row {
    width: 100%;
  }
  .av5-actions .av5-button, .hero-actions .btn, .button-row .btn {
    max-width: 100%;
  }

  .s12-hero-label { display: none; }
  .s12-hero-orbit, .p3-hero-halo { opacity: .55; }

  .s12-gap-flow, .s12-approach-track,
  .p3-proof-track, .co2-status-line {
    width: 100%;
  }

  .page-contact .contact-form-grid-v210,
  .page-contact .office-card-grid-v210,
  .page-contact .contact-submit-row-v210 {
    grid-template-columns: 1fr;
  }
  .page-contact .contact-submit-row-v210 { align-items: stretch; }
  .page-contact .contact-submit-v210 { width: 100%; }
  .page-contact .contact-consent-v210 { max-width: 100%; }
  .page-contact .contact-social-v210 { flex-wrap: wrap; }

  .page-our-team .team-logo-set-v213 { gap: .65rem .75rem; }
  .page-our-team .team-logo-set-v213 > div { height: 3.55rem; }
  .page-our-team .team-leader-main-v213 { padding-inline: 1rem; }
  .page-our-team .people { gap: .8rem !important; }

  .page-references .reference-list article,
  .page-legal .prose { max-width: 100%; }

  table { font-size: .82rem; }
  th, td { padding: .75rem .7rem; }
}

/* Narrow phones, including 320 px devices. */
@media (max-width: 350px) {
  .av5-container, .container, .wrap, .tb-footer-shell {
    width: min(calc(100% - 22px), 1280px);
  }

  /* One concise status remains; the full status returns at wider widths. */
  .av5-topline-centre span:nth-of-type(n+2),
  .av5-topline-centre i { display: none !important; }
  .av5-topline-centre { justify-content: center !important; }

  .av5-brand img { width: 138px !important; }
  .brand img { width: 174px !important; }

  .av5-hero h1, .s12-hero-copy h1, .p3-hero-copy h1, .co2-hero h1 {
    font-size: clamp(2.55rem, 13.5vw, 3.05rem) !important;
    letter-spacing: -.025em !important;
  }
  .av5-section h2, .s12-section-head h2, .p3-section-head h2,
  .co2-heading h2, .co2-prefooter h2 {
    font-size: clamp(2.1rem, 11.5vw, 2.7rem) !important;
  }

  .av5-button, .btn { padding-inline: 16px; }

  .page-our-team .people { grid-template-columns: 1fr !important; }
  .page-our-team .team-leader-portrait-v213 {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .page-our-team .team-leader-portrait-v213 img { grid-row: auto; width: min(100%, 13rem); }

  .tb-footer-bottom nav, .av5-footer-bottom nav { grid-template-columns: 1fr !important; }
}

/* Phone landscape and other short viewports. */
@media (orientation: landscape) and (max-height: 540px) and (min-width: 600px) and (max-width: 940px) {
  .av5-topline, .top-strip { display: none; }
  .av5-header { top: 0 !important; }
  .site-header { top: 0; }

  .av5-hero, .s12-hero, .p3-hero, .co2-hero {
    min-height: auto !important;
    padding-top: 74px !important;
  }
  .av5-hero-grid, .s12-hero-grid, .p3-hero-grid, .co2-hero-grid {
    grid-template-columns: minmax(0, 1.28fr) minmax(220px, .72fr) !important;
    min-height: auto !important;
    gap: 22px !important;
    align-items: center;
  }
  .av5-hero-copy, .s12-hero-copy, .p3-hero-copy, .co2-hero-copy {
    padding: 28px 0 34px !important;
  }
  .av5-hero h1, .s12-hero-copy h1, .p3-hero-copy h1, .co2-hero h1 {
    font-size: clamp(2.35rem, 6vw, 3.2rem) !important;
  }
  .av5-hero-lead, .s12-hero-copy > p:not(.av5-eyebrow),
  .p3-hero-copy > p:not(.av5-eyebrow), .co2-hero-copy > p:not(.av5-eyebrow) {
    margin-top: 18px !important;
    font-size: .92rem !important;
    line-height: 1.48 !important;
  }
  .av5-hero-bottle, .s12-hero-visual, .p3-hero-visual, .co2-hero-visual {
    min-height: 300px !important;
  }
  .av5-hero-bottle img, .s12-hero-visual img, .p3-hero-visual img, .co2-hero-visual img {
    max-height: 290px !important;
    width: auto !important;
  }
  .av5-actions { display: flex !important; width: auto; }
  .av5-actions .av5-button { width: auto !important; min-height: 46px; }

  .page-hero-grid, .contact-hero-grid {
    grid-template-columns: minmax(0,1.2fr) minmax(200px,.8fr) !important;
    gap: 28px !important;
  }
  .page-hero, .contact-utility-hero { padding-block: 46px !important; }
}

/* Short laptop windows: remove unnecessary hero height without changing normal desktop. */
@media (max-height: 700px) and (min-width: 941px) {
  .av5-hero, .s12-hero, .p3-hero, .co2-hero { min-height: auto !important; }
  .av5-hero-grid, .s12-hero-grid, .p3-hero-grid, .co2-hero-grid { min-height: 610px !important; }
  .av5-hero-bottle, .s12-hero-visual, .p3-hero-visual, .co2-hero-visual { min-height: 560px !important; }
}

/* Motion and accessibility. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

@media (prefers-contrast: more) {
  a, button, input, select, textarea { outline-color: currentColor; }
  .av5-button, .btn { border-width: 2px; }
}

/* Final narrow-phone refinements. */
@media (max-width: 350px) {
  .page-terms .page-hero h1 {
    max-width: 100%;
    font-size: 2.45rem !important;
    letter-spacing: -.045em;
    overflow-wrap: normal;
    hyphens: auto;
  }
  /* Two compact team columns remain more usable than an excessively long single column. */
  .page-our-team .people { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .page-our-team .team-leader-portrait-v213 {
    grid-template-columns: 5.7rem minmax(0, 1fr);
    grid-template-rows: auto auto;
  }
  .page-our-team .team-leader-portrait-v213 img {
    grid-row: 1 / 3;
    width: 100%;
  }
}

@media (orientation: landscape) and (max-height: 540px) and (min-width: 600px) and (max-width: 940px) {
  .page-contact .contact-utility-hero h1 {
    max-width: 100%;
    font-size: clamp(2.25rem, 5.4vw, 3rem) !important;
    line-height: 1.02;
  }
  .page-contact .contact-utility-hero h1 span { display: block; white-space: normal; }
  .page-contact .contact-hero-bottle { min-height: 270px; }
  .page-contact .contact-hero-bottle img { max-height: 270px; }
  .page-contact .contact-utility-hero p { font-size: .95rem; line-height: 1.5; }
}

/* Ensure the off-canvas modern menu never leaves a visible sliver while closed. */
@media (max-width: 860px) {
  .av5-nav:not(.is-open) {
    visibility: hidden;
    pointer-events: none;
  }
  .av5-nav.is-open {
    visibility: visible;
    pointer-events: auto;
  }
}

@media (orientation: landscape) and (max-height: 540px) and (min-width: 600px) and (max-width: 940px) {
  .s12-hero-label { display: none !important; }
}

/* Dedicated portrait-tablet composition for the contact hero. */
@media (min-width: 720px) and (max-width: 900px) and (min-height: 700px) {
  .page-contact .contact-hero-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(240px, .88fr) !important;
    gap: 34px !important;
  }
  .page-contact .contact-hero-bottle {
    order: 0 !important;
    min-height: 470px;
  }
  .page-contact .contact-hero-bottle img { max-height: 440px; }
  .page-contact .contact-utility-hero h1 {
    font-size: clamp(3.05rem, 6.6vw, 4rem) !important;
  }
  .page-contact .contact-utility-hero { padding-block: 74px; }
}
/* === AVIX GLOBAL FOOTER V2 === */
.avix-global-footer {
  --avix-footer-bg: #0b161a;
  --avix-footer-panel: #0e1c20;
  --avix-footer-text: #b6b9ba;
  --avix-footer-muted: #868b8c;
  --avix-footer-line: rgba(255,255,255,0.14);
  --avix-footer-heading: #37b6d0;
  --avix-footer-accent: #37b6d0;
  background:
    radial-gradient(circle at 6% 5%, rgba(45,168,193,0.08), transparent 30%),
    linear-gradient(180deg, #0e1c20 0%, var(--avix-footer-bg) 100%);
  color: var(--avix-footer-text);
  font-family: inherit;
  width: 100%;
  overflow: hidden;
}

.avix-global-footer,
.avix-global-footer * {
  box-sizing: border-box;
}

.avix-footer-shell {
  width: min(1280px, calc(100% - 80px));
  margin: 0 auto;
  padding: 58px 0 14px;
}

.avix-footer-top {
  display: grid;
  grid-template-columns: minmax(330px, 1.65fr) minmax(150px, 0.76fr) minmax(210px, 1fr) minmax(210px, 0.86fr);
  gap: 48px;
  align-items: start;
  padding-bottom: 26px;
}

.avix-footer-brand,
.avix-footer-column,
.avix-footer-contact,
.avix-footer-office {
  min-width: 0;
}

.avix-footer-logo-link {
  display: inline-flex;
  align-items: center;
  max-width: 230px;
  margin-bottom: 20px;
}

.avix-footer-logo {
  display: block;
  width: 214px;
  max-width: 100%;
  height: auto;
}

.avix-footer-brand > p {
  max-width: 410px;
  margin: 0 0 14px;
  color: #c3c6c7;
  font-size: 15px;
  line-height: 1.55;
}

.avix-footer-proof {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, max-content));
  gap: 5px 24px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.avix-footer-proof li {
  position: relative;
  padding-left: 15px;
  color: #bbbfc0;
  font-size: 14px;
  line-height: 1.45;
  white-space: nowrap;
}

.avix-footer-proof li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--avix-footer-accent);
  transform: translateY(-50%);
}

.avix-footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.avix-footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255,255,255,0.23);
  border-radius: 50%;
  color: #c2c5c6;
  background: rgba(255,255,255,0.01);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: border-color 180ms ease, color 180ms ease, background 180ms ease, transform 180ms ease;
}

.avix-footer-socials a:hover,
.avix-footer-socials a:focus-visible {
  color: #ffffff;
  border-color: var(--avix-footer-accent);
  background: rgba(45,168,193,0.12);
  transform: translateY(-2px);
  outline: none;
}

.avix-footer-column h2,
.avix-footer-contact h2,
.avix-footer-office h2 {
  margin: 0 0 18px;
  color: var(--avix-footer-heading);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.avix-footer-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.avix-footer-column h2 {
  margin-bottom: 5px;
}

.avix-footer-column a,
.avix-footer-contact a,
.avix-footer-office a,
.avix-footer-bottom a {
  color: var(--avix-footer-text);
  text-decoration: none;
  transition: color 160ms ease;
}

.avix-footer-column a {
  font-size: 15px;
  line-height: 1.4;
}

.avix-footer-column a:hover,
.avix-footer-column a:focus-visible,
.avix-footer-contact a:hover,
.avix-footer-contact a:focus-visible,
.avix-footer-office a:hover,
.avix-footer-office a:focus-visible,
.avix-footer-bottom a:hover,
.avix-footer-bottom a:focus-visible {
  color: #ffffff;
  outline: none;
}

.avix-footer-contact-block + .avix-footer-contact-block {
  margin-top: 28px;
}

.avix-footer-contact-block span {
  display: block;
  margin-bottom: 12px;
  color: var(--avix-footer-muted);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.avix-footer-contact-block a {
  display: inline-block;
  max-width: 100%;
  color: #c5c8c9;
  font-size: 15px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.avix-footer-offices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--avix-footer-line);
  border-bottom: 1px solid var(--avix-footer-line);
}

.avix-footer-office {
  padding: 14px 28px 14px 0;
}

.avix-footer-office + .avix-footer-office {
  border-left: 1px solid var(--avix-footer-line);
  padding-left: 28px;
  padding-right: 0;
}

.avix-footer-office h2 {
  margin-bottom: 10px;
}

.avix-footer-office p {
  margin: 0 0 11px;
  color: #a8acad;
  font-size: 14px;
  line-height: 1.5;
}

.avix-footer-phones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}

.avix-footer-phones span {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}

.avix-footer-phones b {
  color: var(--avix-footer-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.avix-footer-phones a {
  color: #b8bcbd;
  font-size: 13px;
  white-space: nowrap;
}

.avix-footer-disclaimer {
  margin: 0;
  padding: 17px 0 13px;
  color: #74797a;
  font-size: 11px;
  line-height: 1.55;
}

.avix-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: #74797a;
  font-size: 11px;
  line-height: 1.45;
}

.avix-footer-bottom p {
  margin: 0;
}

.avix-footer-bottom nav {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.avix-footer-bottom a {
  color: #828789;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .avix-footer-shell {
    width: min(100% - 56px, 1280px);
  }

  .avix-footer-top {
    grid-template-columns: minmax(0, 1.35fr) minmax(150px, 0.65fr) minmax(200px, 0.85fr);
    gap: 40px;
  }

  .avix-footer-contact {
    grid-column: 2 / -1;
    display: grid;
    grid-template-columns: auto repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    align-items: start;
    padding-top: 2px;
  }

  .avix-footer-contact h2 {
    margin-top: 2px;
  }

  .avix-footer-contact-block + .avix-footer-contact-block {
    margin-top: 0;
  }
}

@media (max-width: 820px) {
  .avix-footer-shell {
    width: min(100% - 40px, 1280px);
    padding-top: 46px;
  }

  .avix-footer-top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 34px;
  }

  .avix-footer-brand {
    grid-column: 1 / -1;
  }

  .avix-footer-contact {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    border-top: 1px solid var(--avix-footer-line);
    padding-top: 24px;
  }

  .avix-footer-contact h2 {
    grid-column: 1 / -1;
    margin: 0 0 -8px;
  }

  .avix-footer-offices {
    grid-template-columns: 1fr;
  }

  .avix-footer-office {
    padding: 16px 0;
  }

  .avix-footer-office + .avix-footer-office {
    border-left: 0;
    border-top: 1px solid var(--avix-footer-line);
    padding: 16px 0;
  }

  .avix-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .avix-footer-bottom nav {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .avix-footer-shell {
    width: min(100% - 32px, 1280px);
    padding-top: 40px;
  }

  .avix-footer-top {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-bottom: 24px;
  }

  .avix-footer-brand,
  .avix-footer-contact {
    grid-column: auto;
  }

  .avix-footer-logo-link {
    max-width: 194px;
    margin-bottom: 18px;
  }

  .avix-footer-logo {
    width: 190px;
  }

  .avix-footer-brand > p {
    font-size: 14px;
  }

  .avix-footer-proof {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .avix-footer-proof li {
    white-space: normal;
  }

  .avix-footer-column {
    gap: 10px;
  }

  .avix-footer-contact {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .avix-footer-contact h2 {
    grid-column: auto;
    margin-bottom: -6px;
  }

  .avix-footer-phones {
    flex-direction: column;
    gap: 7px;
  }

  .avix-footer-phones span {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 8px;
  }

  .avix-footer-disclaimer {
    font-size: 10.5px;
  }

  .avix-footer-bottom nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 8px 18px;
  }
}


/* Global CTA typography polish, 07 August 2026 */
button,.btn,.btn-small,.av5-button,[class*="button"]{font-weight:600!important;}
