/* PHP 8 release: readable typography and native request modal. */
html.modal-open { overflow: hidden; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* The design-stage source used 7–12 px labels in many desktop areas.
   Keep the hierarchy but make every meaningful text element readable. */
.brand-copy small,
.phone span,
.eyebrow,
.proof span,
.machine-label span,
figcaption small,
.visual-index,
.section-kicker,
.section-kicker span,
.service-facts li > span,
.price-section__kicker,
.price-section__kicker span,
.price-list__index,
.price-section__note,
.services-section__kicker,
.service-card > span,
.service-card small,
.machine-types__kicker,
.machine-type-card > span,
.machine-type-card small,
.brands-section__kicker,
.brand-card > span,
.brand-card small,
.reviews-section__kicker,
.review-card header span,
.review-card footer small,
.faq-section .section-kicker,
.faq-list summary > span,
.contact-section__kicker,
.contact-cards span,
.contact-cards small,
.contact-facts span,
.request-card--modal > p:first-of-type,
.request-card--modal > small,
.site-footer nav > strong,
.site-footer address > strong,
.site-footer address small,
.site-footer__legal p,
.breadcrumbs,
.inner-kicker,
.inner-proof span,
.fault-directory__card > span,
.fault-directory__card small,
.brand-directory__card > span,
.brand-directory__card small,
.service-directory__card > span,
.service-directory__card small,
.coffee-gift__copy > p:first-child,
.coffee-gift__visual > p span,
.coffee-gift__visual > p small,
.coffee-gift__seal span,
.coffee-gift__seal small,
.coffee-gift__note,
.full-price li > span,
.price-assurance span,
.inner-final-cta p,
.contacts-page__info small,
.contacts-page__info address > span,
.contacts-page__info a span,
.contacts-page__info dt,
.contacts-page__info dd,
.compact-request > p,
.compact-request > label,
.compact-request__consent span,
.compact-request > button,
.compact-request > small,
.compact-thanks > p,
.site-footer__about p,
.site-footer nav a,
.site-footer address a,
.site-footer address span {
  font-size: 14px;
}

.desktop-nav a,
.header-cta,
.button,
.mobile-bottom a,
.service-card p,
.machine-type-card p,
.brand-card p,
.review-card blockquote,
.faq-list p,
.contact-section__lead,
.service-directory__card p,
.coffee-gift__lead,
.full-price li > b,
.contacts-page__info address p,
.article-page__body section p,
.policy-page p {
  font-size: 16px;
}

.request-dialog[hidden] { display: none; }
.request-dialog { --ink: #0d0f10; --copper-light: #e8c8a5; position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; padding: 12px; }
.request-dialog__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(7, 10, 11, .72); backdrop-filter: blur(6px); cursor: default; }
.request-dialog .request-modal { position: relative; z-index: 1; width: min(610px, calc(100vw - 24px)); }
.request-dialog__close { position: absolute; z-index: 4; top: 17px; right: 17px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #c7bdb0; border-radius: 50%; background: #f7f3ec; color: #212728; font: 400 28px/1 Arial, sans-serif; cursor: pointer; }
.request-dialog .compact-request { position: relative; top: auto; width: 100%; min-height: 0; padding: 42px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.request-dialog .compact-request > label > input,
.request-dialog .compact-request > label > textarea { display: block; box-sizing: border-box; width: 100%; min-width: 0; }
.request-dialog .compact-request > button[type="submit"],
.request-dialog .compact-thanks > a { background: var(--ink, #0d0f10); color: #fff; }
.request-dialog .compact-thanks { min-height: 580px; border: 0; border-radius: 0; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-status { min-height: 24px; margin: 13px 0 0 !important; color: #8a3f2e !important; font-size: 14px !important; font-weight: 700 !important; line-height: 1.45; text-transform: none !important; letter-spacing: 0 !important; }
.compact-request button[disabled] { opacity: .65; cursor: wait; }
.no-script-request { width: min(760px, calc(100vw - 28px)); margin: 24px auto; padding: 28px; border: 1px solid #d2cbc0; border-radius: 20px; background: #f3f0e9; color: #0d0f10; }
.no-script-request h2 { margin: 0 0 12px; font-size: clamp(28px, 5vw, 42px); line-height: 1.05; }
.no-script-request p { margin: 0; font-size: 16px; line-height: 1.6; }
.no-script-request a { color: #8a5334; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 650px) {
  .request-dialog { padding: 9px; }
  .request-dialog .request-modal { width: calc(100vw - 18px); max-height: calc(100dvh - 18px); overflow: auto; overscroll-behavior: contain; }
  .request-dialog .compact-request { padding: 28px 20px 24px; }
  .request-dialog__close { top: 12px; right: 12px; width: 44px; height: 44px; }
  .eyebrow, .proof span, .section-kicker, .section-kicker span,
  .service-facts li > span, .price-list__index, .contact-facts span,
  .site-footer__legal p { font-size: 13px; }
  .service-card p, .machine-type-card p, .brand-card p,
  .service-directory__card p, .coffee-gift__lead { font-size: 15px; }
}

/* Responsive hardening without changing the approved layout. */
.hero-shell > *,
.service-intro__head > *,
.service-directory__card > *,
.fault-directory__card > *,
.brand-directory__card > *,
.article-page__body > *,
.contacts-page > * { min-width: 0; }

.hero h1,
.inner-hero h1,
.faults-hero h1,
.simple-hero h1,
.article-page h1,
.policy-page h1,
.service-directory__card h2,
.fault-directory__card h2,
.brand-directory__card h2 {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

[id] { scroll-margin-top: 100px; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid #b8784f;
  outline-offset: 3px;
}

@media (max-width: 900px) {
  .messengers a { width: 44px; height: 44px; }
  .mobile-bottom { bottom: max(10px, env(safe-area-inset-bottom)); }
  .site-footer { padding-bottom: calc(105px + env(safe-area-inset-bottom)); }
  .request-dialog { padding-bottom: max(9px, env(safe-area-inset-bottom)); }
}

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