/* Homepage layout is scoped so the confirmation page keeps its own spacing. */
.minimal-homepage {
  --page-width: 1260px;
  --page-gutter: clamp(24px, 6.15vw, 88px);
}

.minimal-homepage .site-header { padding-top: 55px; }
.minimal-homepage .brand-logo { width: 118px; }
.minimal-homepage .primary-navigation { gap: 56px; }
.hero-section { padding-top: 72px; padding-bottom: 40px; }
.hero-heading { font-size: clamp(44px, 5vw, 72px); line-height: .95; }
.hero-description { margin-top: 28px; font-size: 18px; line-height: 1.55; }
.hero-actions { margin-top: 28px; }
.hero-actions .button { font-size: 20px; min-height: 60px; padding: 16px 32px; }
.hero-accent { width: 60px; right: clamp(0px, calc(80vw - 800px), 28%); bottom: 4px; }

/* Copy sits beneath the scrolling list; the section has no divider lines. */
.about-section { margin-top: 0; grid-template-columns: 1fr; gap: 28px; padding-block: 20px 16px; }
.about-heading { font-size: clamp(32px, 3vw, 42px); line-height: 1.05; }
.about-content { padding-top: 0; }
.about-description { font-size: 18px; line-height: 1.6; max-width: 78ch; }
.about-content .text-link { margin-top: 18px; font-size: 18px; }

/* Circle at left; location and links in a stack aligned to the right. */
.site-footer { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 24px; padding-block: 24px 39px; }
.footer-details { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.footer-navigation { gap: 24px; }
.footer-location { color: var(--color-text); font-size: 16px; line-height: 1.6; }

/* currentColor drives the ring and both halos in each toggle state. */
.footer-neon-button {
  width: 96px; height: 96px; padding: 0; border: 4px solid currentColor;
  border-radius: 50%; background: transparent; color: var(--color-pink);
  box-shadow: 0 0 3px currentColor, 0 0 12px currentColor,
    0 0 24px color-mix(in srgb, currentColor 55%, transparent),
    inset 0 0 3px currentColor, inset 0 0 12px color-mix(in srgb, currentColor 65%, transparent);
  transition: color 220ms ease, box-shadow 220ms ease;
}
.footer-neon-button[aria-pressed="true"] { color: var(--color-mint); }
.footer-neon-button:focus-visible { outline: 2px solid var(--color-text); outline-offset: 8px; }

/* One repeated group lets rows loop through a six-line clipped viewport. */
.services-ticker { --services-row-height: 1.05em; }
.services-ticker.is-looping { height: calc(6 * var(--services-row-height)); overflow: hidden; }
.services-ticker-track, .services-ticker-group, .services-ticker-item { display: block; }
.services-ticker-item { line-height: inherit; white-space: nowrap; }
.services-ticker.is-looping .services-ticker-track {
  animation: services-scroll-up 18s linear infinite;
  will-change: transform;
}
@keyframes services-scroll-up {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
/* Keep scrolling on mouse hover; keyboard focus and dialogs can pause it. */
.services-ticker:focus-within .services-ticker-track,
.dialog-is-open .services-ticker.is-looping .services-ticker-track { animation-play-state: paused; }

/* Show the full original list when the visitor requests reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .services-ticker.is-looping { height: auto; overflow: visible; }
  .services-ticker.is-looping .services-ticker-track { transform: none; will-change: auto; }
  .services-ticker-repeat { display: none; }
}

@media (min-width: 651px) {
  .minimal-homepage .dialog-heading { font-size: 36px; }
}

@media (max-width: 1100px) {
  .minimal-homepage .site-header { padding-top: 42px; }
  .minimal-homepage .brand-logo { width: 90px; }
  .minimal-homepage .primary-navigation { gap: 35px; }
  .footer-location { font-size: 13px; }
}

/* Preserve the existing phone layout independently of desktop typography. */
@media (max-width: 650px) {
  .minimal-homepage .site-header { padding-top: 28px; }
  .minimal-homepage .brand-logo { width: 92px; }
  .minimal-homepage .primary-navigation { gap: 16px; }
  .hero-section { padding-top: 64px; padding-bottom: 44px; }
  .hero-heading { font-size: clamp(36px, 10.25vw, 66px); line-height: .99; }
  .hero-accent { width: 36px; right: 8px; bottom: 5px; }
  .hero-description { margin-top: 30px; font-size: 14px; line-height: 1.8; }
  .hero-actions { margin-top: 26px; }
  .hero-actions .button { font-size: 16px; min-height: 52px; padding: 14px 20px; font-weight: 700; }
  .about-section { gap: 22px; padding-block: 36px; }
  .about-heading { font-size: clamp(29px, 7.8vw, 46px); }
  .about-description { font-size: 14px; max-width: 56ch; }
  .about-content .text-link { margin-top: 16px; font-size: 14px; }
  .site-footer { padding-block: 28px; }
  .footer-neon-button { width: 80px; height: 80px; }
  .footer-navigation { flex-direction: row; flex-wrap: nowrap; align-items: center; }
  .footer-location { font-size: 11px; }
}

@media (max-width: 360px) {
  .hero-heading { font-size: 11vw; }
  .hero-accent { width: 30px; right: 0; }
}
