/* Foamagic presentation layer. Preserves child-theme assets and mobile carousels. */
.fm-site-polish main { overflow-wrap: break-word; }
.fm-site-polish :is(h1,h2,h3) { text-wrap: balance; }
.fm-site-polish :is(.section,.section-tight) { scroll-margin-top: 110px; }
.fm-site-polish .hero .eyebrow { color: #b5caff; }
.fm-site-polish .section-heading { gap: 24px 40px; }
.fm-site-polish .section-heading > * { min-width: 0; }
.fm-site-polish .section-heading p { line-height: 1.7; }
.fm-site-polish .route-card { gap: 24px; }
.fm-site-polish .route-card h3 { line-height: 1.25; }
.fm-site-polish :is(.audience-card,.process-card) p { line-height: 1.7; }
.fm-site-polish .journey-step { opacity: 1; }
.fm-site-polish .entry-content { margin-inline: auto; }
.fm-site-polish .entry-content > :is(h2,h3) { line-height: 1.25; }
.fm-site-polish .entry-content > p { line-height: 1.75; }
.fm-site-polish .entry-content a:not(.btn):not(.fm-unlock) { text-underline-offset: .18em; }
.fm-site-polish .booking-card { max-height: calc(100dvh - 32px); }
.fm-site-polish .close-btn { flex-shrink: 0; min-width: 44px; min-height: 44px; }
.fm-site-polish :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #2563eb; outline-offset: 4px; }
.fm-site-polish .site-footer { margin-top: 48px; }
.fm-site-polish .footer-links a { padding-block: 5px; }
.fm-site-polish .footer-bottom { flex-wrap: wrap; }
.fm-site-polish.fm-booking-page #main { padding-block: clamp(24px,4vw,48px); }
.fm-site-polish.fm-booking-page #main > .container { max-width: 1040px; }
.fm-site-polish.fm-booking-page #main article.audience-card { padding: 0; background: transparent; border: 0; }
.fm-site-polish.fm-booking-page #main article > h1 { max-width: 850px; margin: 0 auto 24px; text-align: center; font-size: clamp(1.6rem,4vw,2.5rem); line-height: 1.2; }
.fm-site-polish.fm-booking-page .entry-content { max-width: none; margin-top: 0; }
.fm-site-polish.fm-service-request-page #main { padding-block: clamp(24px,4vw,48px); }
.fm-site-polish.fm-service-request-page #main > .container { max-width: 1040px; }
.fm-site-polish.fm-service-request-page #main article.audience-card { padding: 0; background: transparent; border: 0; }
.fm-site-polish.fm-service-request-page #main article > h1 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fm-site-polish.fm-service-request-page .entry-content { max-width: none; margin-top: 0; }
.fm-site-polish.fm-customer-profile-page #main { padding-block: clamp(24px,4vw,48px); }
.fm-site-polish.fm-customer-profile-page #main > .container { max-width: 1040px; }
.fm-site-polish.fm-customer-profile-page #main article.audience-card { padding: 0; background: transparent; border: 0; }
.fm-site-polish.fm-customer-profile-page #main article > h1 { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.fm-site-polish.fm-customer-profile-page .entry-content { max-width:none; margin-top:0; }
@media (max-width: 900px) {
  .fm-site-polish .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .fm-site-polish .section-heading p { justify-self: start; max-width: 65ch; }
  .fm-site-polish .tech-panel { gap: 28px; }
  .fm-site-polish .cta { flex-direction: column; text-align: center; align-items: center; }
  .fm-site-polish .cta-actions { justify-content: center; }
}
@media (max-width: 680px) {
	html:has(body.fm-site-polish.fm-customer-profile-page),
	.fm-site-polish.fm-customer-profile-page { overflow-x: clip; }
	.fm-site-polish.fm-customer-profile-page :is(#page,#main,#main > .container,.entry-content) { width: 100%; min-width: 0; max-width: 100%; }
  .fm-site-polish :is(.section,.section-tight) { padding-block: 48px; }
  .fm-site-polish :is(h1,h2) { overflow-wrap: break-word; }
  .fm-site-polish .section-heading { margin-bottom: 24px; }
  .fm-site-polish .site-nav { max-height: calc(100dvh - 100px); overflow-y: auto; }
  .fm-site-polish .brand img { max-width: min(210px,55vw); height: auto; object-fit: contain; }
  .fm-site-polish :is(.tech-panel,.event-body) { grid-template-columns: 1fr; }
  .fm-site-polish .vehicle-row { grid-template-columns: auto minmax(0,1fr); }
  .fm-site-polish .vehicle-row .status-chip { grid-column: 2; justify-self: start; }
  .fm-site-polish .event-meta { gap: 8px; }
  .fm-site-polish .event-meta span { border-radius: 12px; }
  .fm-site-polish .price-row { align-items: start; }
  .fm-site-polish .price-row strong:last-child { flex-shrink: 0; }
  .fm-site-polish .booking-card { padding: 20px; border-radius: 20px; }
  .fm-site-polish .booking-head h2 { font-size: 1.65rem; }
  .fm-site-polish .match-actions { flex-direction: column; }
  .fm-site-polish .site-footer { margin-top: 24px; padding-top: 40px; }
  .fm-site-polish .footer-grid { gap: 28px; }
  .fm-site-polish.fm-booking-page #main { padding-block: 20px 32px; }
  .fm-site-polish.fm-booking-page #main article > h1 { margin-bottom: 16px; font-size: clamp(1.65rem,8vw,2rem); line-height: 1.18; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(body.fm-site-polish) { scroll-behavior: auto; }
  .fm-site-polish *, .fm-site-polish *::before, .fm-site-polish *::after { animation: none !important; transition: none !important; }
}
