/* Responsive: max-width breakpoints (desktop-first overrides) */

/* Global responsive font-size: scale html so all rem units scale */
@media (max-width: 1200px) {
  html {
    font-size: 97%;
  }
}

@media (max-width: 992px) {
  html {
    font-size: 94%;
  }

  .banner {
    max-height: 400px;
  }

  .hero-title {
    font-size: clamp(2rem, 4.5vw, 2.75rem);
  }

  .container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (max-width: 768px) {
  html {
    font-size: 91%;
  }

  .banner {
    max-height: 320px;
  }

  .hero-title {
    font-size: clamp(1.75rem, 5vw, 2.25rem);
    letter-spacing: 0.03em;
  }

  .container {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

@media (max-width: 576px) {
  html {
    font-size: 88%;
  }

  .container {
    padding-left: 1.125rem;
    padding-right: 1.125rem;
  }
}

@media (max-width: 480px) {
  html {
    font-size: 90%;
  }

  .banner {
    max-height: 280px;
  }

  .hero-title {
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: 0.02em;
  }

  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 360px) {
  html {
    font-size: 82%;
  }

  .container {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }
}

/* After-banner responsive */
.after-banner {
  overflow-x: hidden;
}

@media (max-width: 1200px) {
  .after-banner__row {
    gap: 2rem;
  }

  .after-banner__video-wrap {
    flex: 0 0 54%;
    max-width: 54%;
  }
}

@media (max-width: 992px) {
  .after-banner {
    padding: 2.5rem 0;
  }

  .after-banner__row {
    gap: 1.75rem;
  }

  .after-banner__video-wrap {
    flex: 0 0 50%;
    max-width: 50%;
    min-height: 300px;
  }

  .after-banner__video {
    min-height: 300px;
  }

  .after-banner__title {
    font-size: clamp(1.35rem, 3.5vw, 1.6rem);
    margin-bottom: 1rem;
  }

  .after-banner__details dt {
    font-size: clamp(16px, 2.2vw, 18px);
  }

  .after-banner__details dd {
    font-size: clamp(0.9rem, 1.5vw, 1rem);
  }
}

@media (max-width: 768px) {
  .after-banner {
    padding: 2rem 0;
  }

  .after-banner__row {
    flex-direction: column;
    gap: 1.5rem;
    align-items: stretch;
  }

  .after-banner__video-wrap {
    flex: none;
    width: 100%;
    max-width: 100%;
    min-height: 280px;
    order: 1;
  }

  .after-banner__video {
    min-height: 280px;
    width: 100%;
    max-width: 100%;
  }

  .after-banner__content {
    order: 2;
  }

  .after-banner__title {
    font-size: clamp(1.25rem, 5vw, 1.5rem);
    margin-bottom: 1.25rem;
  }

  .after-banner__details {
    margin-bottom: 1.25rem;
  }

  .after-banner__details dt {
    font-size: 18px;
  }

  .after-banner__details dd {
    font-size: 0.95rem;
  }

  .after-banner__subtitle {
    font-size: clamp(0.95rem, 2.5vw, 1.05rem);
  }

  .after-banner__text {
    font-size: 0.95rem;
    line-height: 1.65;
  }
}

@media (max-width: 576px) {
  .after-banner {
    padding: 1.75rem 0;
  }

  .after-banner__row {
    gap: 1.25rem;
  }

  .after-banner__video-wrap {
    min-height: 240px;
  }

  .after-banner__video {
    min-height: 240px;
  }

  .after-banner__title {
    font-size: 22px;
    margin-bottom: 1rem;
  }

  .after-banner__details dt {
    font-size: 16px;
  }

  .after-banner__details dd {
    font-size: 0.9rem;
  }

  .after-banner__subtitle {
    font-size: 0.95rem;
    margin-bottom: 0.4rem;
  }

  .after-banner__text {
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .after-banner {
    padding: 1.5rem 0;
  }

  .after-banner__row {
    gap: 22px;
  }

  .after-banner__video-wrap {
    min-height: 200px;
  }

  .after-banner__video {
    min-height: 200px;
  }

  .after-banner__title {
    font-size: 20px;
    margin-bottom: 0.875rem;
  }

  .after-banner__details {
    margin-bottom: 1rem;
  }

  .after-banner__details dt {
    font-size: 16px;
  }

  .after-banner__details dd {
    font-size: 14px;
  }

  .after-banner__subtitle {
    font-size: 16px;
  }

  .after-banner__text {
    font-size: 14px;
  }
}

/* Parking overview responsive - stack only on small phones */
@media (max-width: 992px) {
  .foil-regatta-page .parking-overview {
    padding: 3rem 0;
  }

  .foil-regatta-page .parking-overview__row {
    gap: 1.75rem;
    flex-direction: row;
  }

  .foil-regatta-page .parking-overview__image-wrap {
    flex: 0 0 45%;
    max-width: 45%;
  }

  .foil-regatta-page .parking-overview__image {
    min-height: 240px;
  }

  .foil-regatta-page .parking-overview__title {
    font-size: clamp(1.35rem, 2.5vw, 1.6rem);
  }
}

/* Stack text above image only below 640px (phones) */
@media (max-width: 640px) {
  .foil-regatta-page .parking-overview {
    padding: 2.5rem 0;
  }

  .foil-regatta-page .parking-overview__row {
    flex-direction: column;
    gap: 1.5rem;
    align-items: stretch;
  }

  .foil-regatta-page .parking-overview__image-wrap {
    flex: none;
    width: 100%;
    max-width: 100%;
    min-height: 280px;
    order: 1;
  }

  .foil-regatta-page .parking-overview__image {
    min-height: 280px;
    width: 100%;
  }

  .foil-regatta-page .parking-overview__content {
    order: 2;
  }

  .foil-regatta-page .parking-overview__title {
    font-size: 1.5rem;
    margin-bottom: 0.875rem;
  }

  .foil-regatta-page .parking-overview__text {
    font-size: 0.95rem;
  }
}

@media (max-width: 576px) {
  .foil-regatta-page .parking-overview {
    padding: 2rem 0;
  }

  .foil-regatta-page .parking-overview__row {
    gap: 1.25rem;
  }

  .foil-regatta-page .parking-overview__image,
  .foil-regatta-page .parking-overview__image-wrap {
    min-height: 200px;
  }

  .foil-regatta-page .parking-overview__title {
    font-size: 1.35rem;
  }
}

/* Accordion responsive */
.accordion-section {
  overflow-x: hidden;
}

.accordion-section .container {
  width: 100%;
}

@media (max-width: 1200px) {
  .accordion-section {
    padding: 4rem 0;
  }

  .accordion-section__title {
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    padding-bottom: 18px;
  }

  .accordion {
    max-width: 100%;
  }
}

@media (max-width: 992px) {
  .accordion-section {
    padding: 3rem 0;
  }

  .accordion-section__title {
    font-size: clamp(1.5rem, 4vw, 1.75rem);
    margin-bottom: 1.25rem;
    padding-bottom: 16px;
  }

  .accordion__trigger {
    font-size: clamp(0.95rem, 2vw, 1.05rem);
    padding: 0.95rem 1.15rem;
  }

  .accordion__trigger-text {
    min-width: 0;
  }

  .accordion__content {
    padding: 1.25rem 1.15rem 1.15rem;
  }

  .accordion__content p {
    font-size: clamp(0.9rem, 1.5vw, 0.98rem);
    line-height: 1.6;
  }
}

@media (max-width: 768px) {
  .accordion-section {
    padding: 2.5rem 0;
  }

  .accordion-section__title {
    font-size: clamp(1.35rem, 4.5vw, 1.5rem);
    margin-bottom: 1rem;
    padding-bottom: 14px;
  }

  .accordion__trigger {
    font-size: 1rem;
    padding: 0.9rem 1rem;
    gap: 0.75rem;
  }

  .accordion__icon {
    width: 1.1rem;
    height: 1.1rem;
  }

  .accordion__content {
    padding: 1.15rem 1rem 1rem;
  }

  .accordion__content p {
    font-size: 0.95rem;
  }
}

@media (max-width: 576px) {
  .accordion-section {
    padding: 2rem 0;
  }

  .accordion-section__title {
    font-size: 1.25rem;
    margin-bottom: 0.875rem;
    padding-bottom: 12px;
  }

  .accordion {
    gap: 0.4rem;
  }

  .accordion__item {
    border-radius: 0.25rem;
  }

  .accordion__trigger {
    font-size: 0.95rem;
    padding: 0.85rem 1rem;
    letter-spacing: 0.02em;
  }

  .accordion__content {
    padding: 1rem 1rem 0.875rem;
  }

  .accordion__content p {
    font-size: 0.9rem;
    line-height: 1.65;
  }
}

@media (max-width: 480px) {
  .accordion-section {
    padding: 1.5rem 0;
  }

  .accordion-section__title {
    font-size: 16px;
    margin-bottom: 0.75rem;
    padding-bottom: 10px;
  }

  .accordion__trigger {
    font-size: 14px;
    padding: 0.75rem 0.875rem;
    gap: 0.5rem;
  }

  .accordion__icon {
    width: 1rem;
    height: 1rem;
  }

  .accordion__content {
    padding: 0.875rem 0.875rem 0.75rem;
  }

  .accordion__content p {
    font-size: 14px;
  }
}

/* Plans section responsive */
.plans .container {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 1200px) {
  .plans {
    padding: 3.5rem 0;
  }

  .plans__inner {
    max-width: 100%;
  }

  .plans__cta {
    max-width: 260px;
    margin: 2rem auto 0;
    padding: 0.98rem 1.35rem;
    font-size: clamp(1rem, 1.5vw, 1.1rem);
  }

  .plans__row {
    padding: 0.98rem 1.2rem;
    gap: 0.75rem;
  }

  .plans__name {
    font-size: clamp(0.95rem, 1.2vw, 1rem);
  }

  .plans__price {
    font-size: clamp(1rem, 1.2vw, 1.1rem);
  }
}

@media (max-width: 992px) {
  .plans {
    padding: 3rem 0;
  }

  .plans__cta {
    max-width: 260px;
    margin: 1.75rem auto 0;
    padding: 0.95rem 1.25rem;
    font-size: 1.05rem;
  }

  .plans__row {
    padding: 0.95rem 1.15rem;
  }

  .plans__name {
    font-size: 0.98rem;
  }

  .plans__price {
    font-size: 1.05rem;
  }
}

@media (max-width: 768px) {
  .plans {
    padding: 2.5rem 0;
  }

  .plans__inner {
    max-width: 100%;
  }

  .plans__cta {
    max-width: 100%;
    margin: 1.5rem auto 0;
    padding: 0.9rem 1.25rem;
    font-size: 1rem;
  }

  .plans__list {
    border-radius: 0.375rem;
  }

  .plans__row {
    flex-wrap: wrap;
    padding: 0.9rem 1rem;
    gap: 0.35rem;
    min-width: 0;
  }

  .plans__name {
    font-size: 0.95rem;
    flex: 1 1 100%;
  }

  .plans__price {
    font-size: 1rem;
    flex: 1 1 100%;
    text-align: right;
  }
}

@media (max-width: 576px) {
  .plans {
    padding: 2rem 0;
  }

  .plans .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .plans__cta {
    margin: 1.25rem auto 0;
    padding: 0.85rem 1rem;
    font-size: 0.95rem;
  }

  .plans__list {
    border-radius: 0.25rem;
  }

  .plans__row {
    padding: 0.8rem 1rem;
  }

  .plans__name {
    font-size: 0.9rem;
  }

  .plans__price {
    font-size: 0.95rem;
  }
}

@media (max-width: 480px) {
  .plans {
    padding: 1.5rem 0;
  }

  .plans .container {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .plans__cta {
    margin: 1rem auto 0;
    padding: 0.8rem 0.875rem;
    font-size: 14px;
    letter-spacing: 0.05em;
  }

  .plans__row {
    padding: 0.75rem 0.875rem;
  }

  .plans__name {
    font-size: 14px;
  }

  .plans__price {
    font-size: 14px;
  }
}

/* Brands section responsive */
@media (max-width: 992px) {
  .brands {
    padding: 2.5rem 0;
  }

  .brands__list {
    gap: 2rem;
  }

  .brands__logo {
    max-width: 140px;
    max-height: 70px;
  }
}

@media (max-width: 768px) {
  .brands {
    padding: 2rem 0;
  }

  .brands__list {
    gap: 1.75rem;
  }

  .brands__logo {
    max-width: 120px;
    max-height: 60px;
  }
}

@media (max-width: 576px) {
  .brands {
    padding: 1.75rem 0;
  }

  .brands__list {
    gap: 1.5rem;
  }

  .brands__logo {
    max-width: 100px;
    max-height: 50px;
  }
}

@media (max-width: 480px) {
  .brands {
    padding: 1.5rem 0;
  }

  .brands__list {
    gap: 1.25rem;
  }

  .brands__logo {
    max-width: 85px;
    max-height: 42px;
  }
}
