/* Version 4: responsive refinements only. Desktop design stays intact. */
@media (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  .container, .service-page__inner, .about-v7__wrap,
  .service-page__layout > *, .service-page__aside > *,
  .solutions-v7__options > *, .service-choice__paths > *,
  .footer-refresh .fr-top > *, .footer-refresh .fr-columns > * { min-width: 0; }
  .service-page__layout { grid-template-columns: minmax(0, 1fr); }
  .contact-v6.service-page .contact-v6__field input,
  .contact-v6.service-page .contact-v6__field select,
  .contact-v6.service-page .contact-v6__field textarea {
    box-sizing: border-box;
    width: 100%; max-width: 100%; min-width: 0;
    scroll-margin-top: 24px;
  }
  .contact-v6.service-page .contact-v6__field input[type="date"] {
    min-inline-size: 0; max-inline-size: 100%;
    -webkit-min-logical-width: 0;
  }
  .contact-v6__field input[type="date"]::-webkit-date-and-time-value { min-height: 1.5em; text-align: left; }
  .contact-v6__field input[type="date"]::-webkit-datetime-edit { min-width: 0; padding: 0; }
  .contact-v6__field select { overflow: hidden; text-overflow: ellipsis; }
  .press-dialog, .contact-v6-review {
    box-sizing: border-box;
    width: min(650px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    margin: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .dialog-copy, .contact-v6-review__list dd { overflow-wrap: anywhere; }
  .dialog-close, .dialog-pagination button,
  .contact-v6-review .contact-v6-review__close { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
  .dialog-image img { max-height: 36vh; max-height: 36dvh; }
  .dialog-copy .button { min-height: 52px; white-space: normal; font-size: 16px; }
  .contact-v6-review .contact-v6-review__edit { min-height: 52px; font-size: 16px; }
  .footer-refresh .fr-nav > a, .footer-refresh .fr-bottom nav a,
  .legal-footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-refresh .fr-nav > a { display: flex; margin-bottom: 0; }
}

@media (max-width: 760px) {
  .mw6-header .mw6-bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px 12px;
    padding: 10px 20px 15px !important;
  }
  .mw6-header .mw6-brand { grid-column: 1 / -1; justify-self: center; width: 80px; }
  .mw6-header .mw6-brand img { width: 80px; height: 80px; }
  .mw6-header .mw6-bar .mw6-contact-action,
  .mw6-header .mw6-bar .mw6-service { min-height: 52px; padding: 13px 8px; font-size: 15px; }
  .version-one-plus .hero-v5 { min-height: 610px; }
  .version-one-plus .hero-v5-inner { padding-top: 29px; padding-bottom: 235px; }
  .hero-v5 .launch-note { max-width: 100%; font-size: 12px; padding: 12px 13px; gap: 9px; margin-bottom: 27px; }
  .hero-v5 .launch-note__dot { flex: 0 0 7px; width: 7px; height: 7px; }
  .hero-v5 h1 { font-size: clamp(36px, 10.5vw, 62px); line-height: 1.055; margin-bottom: 24px; }
  .hero-v5 .hero-v5-copy > p:not(.eyebrow) { max-width: 370px; font-size: 17px; line-height: 1.65; margin-bottom: 0; }
  .splash-composition { width: 720px; right: -155px; bottom: -16px; }
  .section-wave { height: 49px; }
  .version-one-plus .php-v7 { padding-top: 42px; padding-bottom: 76px; }
  .php-v7 .php-v7__inner { width: calc(100% - 40px); }
  .php-v7 .php-context { font-size: 11px; line-height: 1.5; gap: 8px; }
  .php-v7 .php-v8__intro h2 { font-size: clamp(27px, 5.4vw, 37px); line-height: 1.27; }
  .php-v7 .php-v7__deck { gap: 26px; margin-top: 35px; }
  .php-v7 .php-v7__caption > strong { font-size: 28px; }
  .php-v7 .php-v7__source { font-size: 11px; line-height: 1.5; }
  .php-v7 .php-v7__action { min-height: 48px; font-size: 14px; }
  .service-choice { padding-top: 86px; padding-bottom: 55px; }
  .service-choice__label { font-size: 12px; }
  .service-choice__go { min-height: 46px; align-items: center; font-size: 14px; }
  .service-choice__path p { font-size: 16px; }
  .footer-refresh .fr-actions { max-width: 100%; }
  .footer-refresh .fr-action { white-space: normal; text-align: center; }
  .footer-refresh .fr-lead { font-size: clamp(27px, 7vw, 33px); }
  .footer-refresh .fr-bottom { column-gap: 16px; row-gap: 11px; }
  .footer-refresh .fr-bottom nav { gap: 20px; }
  .footer-refresh .fr-back { min-height: 44px; }
}

@media (max-width: 600px) {
  .container, .about-v7__wrap, .service-page__inner { width: calc(100% - 40px); }
  .version-one-plus .hero-v5 { min-height: 590px; }
  .version-one-plus .hero-v5-inner { padding-bottom: 225px; }
  .splash-composition { width: 650px; right: -160px; bottom: -12px; }
  .solutions-v7__options { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px 22px; }
  .solutions-v7__options h3 { font-size: 22px; overflow-wrap: normal; }
  .solutions-v7__options p { font-size: 15px; line-height: 1.65; }
  .about-teaser-v7__copy { padding: 30px 24px; }
  .about-teaser-v7__copy h2 { font-size: 40px; }
  .service-page__heading { margin: 28px 0 35px; }
  .contact-v6.service-page .service-page__eyebrow { font-size: 11px; margin-bottom: 19px; }
  .contact-v6.service-page .service-page__heading h1 { font-size: clamp(40px, 10.3vw, 58px); }
  .contact-v6.service-page .service-page__heading > p:last-child { font-size: 17px; line-height: 1.65; }
  .contact-v6.service-page .service-page__form-heading h2 { font-size: 29px; }
  .service-page__aside { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .contact-v6.service-page .contact-v6__field input,
  .contact-v6.service-page .contact-v6__field select,
  .contact-v6.service-page .contact-v6__field textarea { min-height: 60px; font-size: 18px; padding: 15px 18px; }
  .contact-v6.service-page .contact-v6__field textarea { min-height: 175px; border-radius: 23px; }
  .contact-v6.service-page .contact-v6__field > label { font-size: 16px; }
  .contact-v6.service-page .contact-v6__consent { align-items: flex-start; gap: 12px; padding: 10px 0; font-size: 14px; }
  .service-page .contact-v6__consent > input { width: 22px; height: 22px; flex-basis: 22px; margin-top: 1px; }
  .service-page .contact-v6__actions { gap: 17px; align-items: stretch; }
  .contact-v6.service-page .contact-v6__submit { width: 100%; min-height: 60px; font-size: 18px; }
  .service-contact-card { padding: 28px 24px; }
  .contact-v6.service-page .service-contact-card h2 { font-size: 37px; }
  .contact-v6.service-page .service-contact-card__details a { font-size: 19px; }
  .contact-v6.service-page .service-contact-card__intro { font-size: 17px; }
  .contact-v6-review { padding: 30px 21px 24px; }
  .contact-v6-review h2 { font-size: 27px; }
  .contact-v6-review__list > div { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .contact-v6-review__list dt { font-size: 13px; }
  .contact-v6-review__list dd { font-size: 16px; }
  .contact-v6-review .contact-v6-review__edit { width: 100%; }
  .dialog-copy { padding: 25px 22px; }
  .dialog-copy h2 { font-size: 28px; }
  .dialog-copy > p:not(.eyebrow) { font-size: 16px; }
  .dialog-copy .button { width: 100%; gap: 18px; }
  .dialog-pagination { justify-content: space-between; }
  .legal-nav { padding: 13px 20px; gap: 18px; }
  .legal-nav > a:last-child { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  .legal-main { padding: 32px 20px 48px; }
  .legal-original p { font-size: 16px; line-height: 1.7; }
  .legal-original h2 { font-size: 25px; }
  .legal-source { overflow-wrap: anywhere; }
  .legal-footer { padding: 22px 20px; }
  .legal-footer-inner { gap: 13px; }
}

@media (max-width: 370px) {
  .container, .service-page__inner, .about-v7__wrap { width: calc(100% - 32px); }
  .mw6-header .mw6-bar { padding-inline: 16px !important; gap: 9px 10px; }
  .mw6-header .mw6-bar .mw6-contact-action,
  .mw6-header .mw6-bar .mw6-service { font-size: 14px; letter-spacing: -.025em; }
  .hero-v5 .launch-note { font-size: 11px; letter-spacing: 0; padding: 12px 11px; }
  .version-one-plus .hero-v5 { min-height: 590px; }
  .hero-v5 h1 { font-size: 36px; }
  .php-v7 .php-v7__inner { width: calc(100% - 32px); }
  .php-v7 .php-v8__intro h2 { font-size: 27px; }
  .php-v7 .php-v7__caption > strong { font-size: 26px; }
  .solutions-v7__options { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .solutions-v7__options h3 { font-size: 24px; }
  .solutions-v7__options p { max-width: none; font-size: 16px; }
  .service-choice__path { padding: 23px 22px; }
  .service-choice__path h3 { font-size: 27px; }
  .contact-v6.service-page .service-page__heading h1 { font-size: 39px; }
  .service-contact-card { padding-inline: 22px; }
  .contact-v6.service-page .service-contact-card__details a { font-size: 18px; }
  .footer-refresh .fr-top { gap: 17px; }
  .footer-refresh .fr-brand { width: 82px; height: 82px; }
  .footer-refresh .fr-brand img { width: 74px; height: 74px; }
  .footer-refresh .fr-lead { font-size: 27px; }
  .footer-refresh .fr-email { font-size: 24px; }
}

/* Keep the compact hero text on a clean background above the water. */
@media(max-width:760px){.hero-v5 .splash-composition{mask-image:linear-gradient(180deg,transparent 0%,transparent 28%,#000 58%)}}
@media(max-width:370px){.hero-v5 .splash-composition{mask-image:linear-gradient(180deg,transparent 0%,transparent 32%,#000 62%)}}
