/* Real Club de Golf Las Rozas — ajustes responsive.
   Cargar DESPUÉS de main.css y custom.css.
   Cabecera, menú, patrocinadores y footer: compartidos.
   .club-home: ajustes exclusivos de la portada.
   El diseño a partir de 1200 px conserva los estilos originales. */

@media (max-width: 1199.98px) {
  .theme-menu-five .main-header-area { padding: 14px 12px; }
  .theme-menu-five .main-header-area > .row {
    width: auto;
    flex-wrap: nowrap;
  }
  .theme-menu-five .logo-area { min-width: 0; }
  .theme-menu-five .main-menu { padding-left: 0; }
  .theme-menu-five .main-menu ul li { margin: 0 6px; }
  .theme-menu-five .quote-btn { display: none !important; }

  .footer-three .footer-main { gap: 32px; }
  .footer-three .footer-brand,
  .footer-three .footer-info-wrap,
  .footer-three .footer-widget { min-width: 0; }
  .footer-three .footer-info-wrap { gap: 28px; flex-wrap: wrap; }
  .footer-three .footer-widget a { overflow-wrap: anywhere; }
  .footer-three .footer-menu { flex-wrap: wrap; gap: 8px 16px; }

  .club-home .newsletter-box {
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
  }
  .club-home .newsletter-content { max-width: 100%; min-width: 0; }
  .club-home .newsletter-form {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    transform: none;
  }
  .club-home .newsletter-form input { min-width: 0; width: 100%; font-size: 16px; }
  .club-home .newsletter-form button { flex-shrink: 0; }
  .club-home .events-balanced-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
  }
  .club-home .events-balanced-row > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 991.98px) {
  /* Menú móvil: mantener el panel en el verde del club y compactar contacto. */
  .ht-menu-wrapper .ht-menu-area {
    background: #1c403d !important;
    border-right-color: #6b8f71;
  }
  .ht-menu-wrapper .mobile-menu-wrapper {
    margin-top: 36px;
    padding-bottom: 0;
  }
  .ht-menu-wrapper .mobile-menu ul li,
  .ht-menu-wrapper .mobile-menu ul li a,
  .ht-menu-wrapper .mean-container .mean-nav ul li a {
    background: transparent !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
  }
  .ht-menu-wrapper .mobile-menu ul li a {
    padding: 10px 0;
    font-size: 15px;
  }
  .ht-menu-wrapper .offset-widget {
    margin-top: 42px;
  }
  .ht-menu-wrapper .info-widget.info-widget2 .offset-title {
    margin-bottom: 14px !important;
    font-size: 17px;
  }
  .ht-menu-wrapper .info-widget.info-widget2 p {
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.45;
  }
  .ht-menu-wrapper .login-btn .ht-btn {
    min-height: 48px;
    padding: 12px 18px;
    font-size: 15px;
  }

  .theme-menu-five .main-header-area { min-height: 76px; padding: 12px 4px; }
  .theme-menu-five .logo-area img { max-width: 100%; object-fit: contain; }
  .theme-menu-five .hamburger-menu {
    width: 46px;
    height: 46px;
    flex-shrink: 0;
  }
  .theme-menu-five .right-nav { gap: 12px; }
  .ht-menu-wrapper .ht-menu-area {
    max-width: min(360px, 100%);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .ht-menu-wrapper .mobile-menu-wrapper {
    display: block !important;
    max-height: none;
    overflow: visible;
  }
  .ht-menu-wrapper .ht-menu-toggle { width: 44px; height: 44px; }
  .ht-menu-wrapper .info-widget a { overflow-wrap: anywhere; }

  .club-home .theme-banner-five {
    min-height: 640px;
    min-height: 100svh;
    padding: 150px 0 80px;
  }
  .club-home .theme-banner-five .main-title {
    font-size: clamp(36px, 6.5vw, 60px);
    line-height: 1.08;
    letter-spacing: -1px;
    margin-bottom: 24px;
  }
  .club-home .theme-banner-five .hero-description {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 28px;
  }
  .club-home .theme-banner-five .hero-actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 12px;
  }
  .club-home .theme-banner-five .hero-actions a {
    margin: 0 !important;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }
  .club-home .booking-cta-box { height: auto; min-height: 460px; }
  .club-home .booking-cta-box > img {
    position: absolute;
    inset: 0;
    height: 100%;
    min-height: 0;
  }
  .club-home .booking-content { position: relative; min-height: 460px; }
  .club-home .news-home-header h2 { font-size: 40px; }
}

@media (max-width: 767.98px) {
  .club-home .theme-banner-five { padding: 130px 0 60px; }
  .club-home .theme-banner-five .hero-description { font-size: 16px; }
  .club-home .service-section,
  .club-home .events-home-section { padding-top: 56px !important; padding-bottom: 56px !important; }
  .club-home .service-section .title-one { margin-bottom: 28px !important; }
  .club-home .booking-cta-section,
  .club-home .tournament-section { padding: 56px 0; }
  .club-home .news-home-section { padding: 56px 0 28px; }
  .club-home .newsletter-section { padding: 28px 0 56px; }
  .club-home .title-one .title,
  .club-home .news-home-header h2,
  .club-home .tournament-header h2,
  .club-home .newsletter-content h2,
  .club-home .booking-content h2 {
    font-size: clamp(28px, 7.5vw, 36px);
    line-height: 1.15;
    letter-spacing: -0.6px;
  }
  .club-home .news-card { padding: 26px 22px; }
  .club-home .news-card h3,
  .club-home .tournament-info h3 { font-size: 24px; }
  .club-home .newsletter-box { padding: 30px 22px; border-radius: 26px; }
  .club-home .newsletter-form { flex-direction: column; border-radius: 22px; gap: 8px; }
  .club-home .newsletter-form input { padding: 16px; }
  .club-home .newsletter-form button { width: 100%; }
  .club-home .booking-content { padding: 36px 22px; }
  .club-home .booking-buttons { width: 100%; }
  .club-home .booking-buttons a,
  .club-home .field-btn { max-width: 100%; white-space: normal; text-align: center; }

  .club-partners__inner { flex-direction: column; gap: 28px; }
  .club-partners__logos { gap: 24px; }
  .club-partners__logos img { width: 130px; max-width: 42%; height: 60px; }
  .club-partners__group--collaborators {
    padding: 28px 0 0;
    border-left: 0;
    border-top: 1px solid #e8e8e8;
  }
  .footer-three { padding: 56px 0 28px; }
  .footer-three .footer-main { padding-bottom: 32px; }
  .footer-three .footer-brand { margin-top: 0; }
  .footer-three .footer-info-wrap { flex-direction: column; gap: 24px; }
  .footer-three .footer-bottom { gap: 18px; }
}

@media (max-width: 374.98px) {
  .club-home .theme-banner-five .hero-actions { flex-direction: column; align-items: stretch !important; }
  .club-home .booking-buttons { flex-direction: column; }
}

/* EL CLUB — ajustes exclusivos de el-club.html. */
@media (max-width: 1199.98px) {
  .club-page main section[id] { scroll-margin-top: 104px; }
  .club-page .history-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .club-page .board-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .club-page .history-card,
  .club-page .board-card,
  .club-page .restaurant-content { min-width: 0; }
  .club-page .restaurant-box { gap: 36px; }
  .club-page .club-socios-box .booking-btn-primary {
    max-width: 100%;
    white-space: normal;
    text-align: center;
    height: auto;
  }
}

@media (max-width: 991.98px) {
  .club-page .club-hero-section {
    min-height: 540px;
    padding: 130px 0 56px;
  }
  .club-page .club-hero-content { padding-top: 0; }
  .club-page .club-hero-content h1 {
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1.08;
    letter-spacing: -1px;
  }
  .club-page .club-intro-section .club-intro-content {
    margin-left: 0;
    max-width: 100%;
  }
  .club-page .board-intro-text {
    max-width: 100%;
    margin-left: 0 !important;
    transform: none;
  }
  .club-page .board-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .club-page .restaurant-box { grid-template-columns: minmax(0, 1fr); }
  .club-page .restaurant-content { max-width: 100%; }
  .club-page .club-intro-image img,
  .club-page .restaurant-image img {
    height: auto;
    aspect-ratio: 4 / 3;
    max-height: 420px;
    object-fit: cover;
  }
  .club-page .club-intro-content h2,
  .club-page .section-header-wide h2,
  .club-page .club-board-section h2,
  .club-page .restaurant-content h2,
  .club-page .club-socios-box h2 {
    font-size: 40px;
    line-height: 1.15;
  }
}

@media (max-width: 767.98px) {
  .club-page .club-intro-section,
  .club-page .club-history-section,
  .club-page .club-board-section,
  .club-page .club-restaurant-section,
  .club-page .club-socios-section { padding: 56px 0; }
  .club-page .club-hero-content h1 { font-size: clamp(32px, 8.5vw, 44px); }
  .club-page .club-intro-content h2,
  .club-page .section-header-wide h2,
  .club-page .club-board-section h2,
  .club-page .restaurant-content h2,
  .club-page .club-socios-box h2 {
    font-size: clamp(28px, 7.5vw, 36px);
    letter-spacing: -.6px;
  }
  .club-page .section-header-wide { margin-bottom: 32px; }
  .club-page .history-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .club-page .history-card { padding: 26px 24px; }
  .club-page .club-socios-box { padding: 34px 22px; border-radius: 26px; }
  .club-page .club-socios-box .booking-btn-primary {
    padding: 16px 22px;
    line-height: 1.5;
  }
  .club-page .restaurant-content .field-btn {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }
}

@media (max-width: 575.98px) {
  .club-page .board-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .club-page .board-card img {
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }
}

/* EL CAMPO — ajustes exclusivos de el-campo.html. */
@media (max-width: 1199.98px) {
  .campo-page main section[id] { scroll-margin-top: 104px; }
  .campo-page .campo-stats-grid,
  .campo-page .campo-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .campo-page .campo-stat,
  .campo-page .campo-service-card,
  .campo-page .campo-feature-content,
  .campo-page .technical-box > div { min-width: 0; }
  .campo-page .campo-feature-box { gap: 32px; }
  .campo-page .technical-box { padding: 36px; gap: 32px; }
  .campo-page .technical-links a { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; }
  .campo-page .technical-links a em { grid-column: 2; }
  .campo-page .campo-buttons .ht-btn,
  .campo-page .campo-feature-content .field-btn {
    max-width: 100%;
    min-width: 0;
    height: auto;
    white-space: normal;
    text-align: center;
    line-height: 1.5 !important;
  }
}

@media (max-width: 991.98px) {
  .campo-page .club-hero-section { min-height: 500px; padding: 130px 0 56px; }
  .campo-page .club-hero-content { padding-top: 0; }
  .campo-page .club-hero-content h1 {
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1.08;
    letter-spacing: -1px;
  }
  .campo-page .campo-intro-section .row { row-gap: 28px; }
  .campo-page .campo-intro-section .row > div:first-child { margin-bottom: 0 !important; }
  .campo-page .campo-intro-section .club-intro-content {
    margin-left: 0;
    max-width: 100%;
  }
  .campo-page .campo-feature-box,
  .campo-page .technical-box { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .campo-page .campo-feature-content { max-width: 100%; transform: none; }
  .campo-page .club-intro-image img,
  .campo-page .campo-feature-image img {
    height: auto;
    aspect-ratio: 4 / 3;
    max-height: 420px;
    object-fit: cover;
  }
  .campo-page .club-intro-content h2,
  .campo-page .section-header-wide h2,
  .campo-page .campo-feature-content h3,
  .campo-page .technical-box h2,
  .campo-page .campo-cta-box h2 { font-size: 40px; line-height: 1.15; }
  .campo-page .campo-cta-box { padding: 40px 32px; }
}

@media (max-width: 767.98px) {
  .campo-page .club-hero-content h1 { font-size: clamp(32px, 8.5vw, 44px); }
  .campo-page .campo-intro-section,
  .campo-page .campo-hoyos-section,
  .campo-page .campo-services-section { padding: 56px 0; }
  .campo-page .campo-stats-section { padding-bottom: 56px; }
  .campo-page .campo-technical-section { padding-top: 56px; }
  .campo-page .campo-cta-section { padding: 20px 0 56px; }
  .campo-page .club-intro-content h2,
  .campo-page .section-header-wide h2,
  .campo-page .campo-feature-content h3,
  .campo-page .technical-box h2,
  .campo-page .campo-cta-box h2 {
    font-size: clamp(28px, 7.5vw, 36px);
    line-height: 1.15;
    letter-spacing: -.6px;
  }
  .campo-page .section-header-wide { margin-bottom: 32px; }
  .campo-page .campo-services-section h2 br { display: none; }
  .campo-page .campo-stat,
  .campo-page .campo-service-card { padding: 26px 24px; }
  .campo-page .technical-box,
  .campo-page .campo-cta-box { padding: 30px 22px; border-radius: 26px; }
  .campo-page .technical-box .section-pill { max-width: 100%; white-space: normal; }
  .campo-page .technical-links a { padding: 20px 16px; }
  .campo-page .technical-links a strong { font-size: 18px; }
}

@media (max-width: 575.98px) {
  .campo-page .campo-stats-grid,
  .campo-page .campo-services-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .campo-page .technical-links a { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .campo-page .technical-links a em { grid-column: auto; }
  .campo-page .campo-buttons { flex-direction: column; align-items: stretch; }
}

/* HOYO A HOYO — ajustes exclusivos de hoyo-hoyo.html. */
/* La imagen ampliada debe quedar por encima de la cabecera fija. */
.holes-page .mfp-bg { z-index: 1000000; }
.holes-page .mfp-wrap { z-index: 1000001; }
@media (max-width: 1199.98px) {
  .holes-page .hole-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .holes-page .hole-guide-box { padding: 36px; gap: 28px; }
  .holes-page .hole-guide-content,
  .holes-page .hole-guide-actions,
  .holes-page .compact-hole-card { min-width: 0; }
  .holes-page .hole-guide-actions i { flex-shrink: 0; }
  .holes-page .hole-guide-actions span { min-width: 0; }
  .holes-page .holes-slider { padding: 0 0 76px; }
  .holes-page .holes-slider .slick-slide { padding: 0 10px; }
  .holes-page .holes-arrow { top: auto; bottom: 0; width: 48px; height: 48px; }
  .holes-page .holes-prev { left: calc(50% - 58px); }
  .holes-page .holes-next { right: calc(50% - 58px); }
}
@media (max-width: 991.98px) {
  .holes-page .club-hero-section { min-height: 500px; padding: 130px 0 56px; }
  .holes-page .club-hero-content { padding-top: 0; }
  .holes-page .club-hero-content h1 {
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1.08;
    letter-spacing: -1px;
  }
  .holes-page .hole-guide-box { grid-template-columns: minmax(0, 1fr); }
  .holes-page .hole-guide-content h2,
  .holes-page .section-header-wide h2 { font-size: 40px; line-height: 1.15; }
}
@media (max-width: 767.98px) {
  .holes-page .club-hero-content h1 { font-size: clamp(32px, 8.5vw, 44px); }
  .holes-page .hole-guide-section,
  .holes-page .holes-list-section,
  .holes-page .hole-details-section { padding: 56px 0; }
  .holes-page .hole-guide-content h2,
  .holes-page .section-header-wide h2 {
    font-size: clamp(28px, 7.5vw, 36px);
    line-height: 1.15;
    letter-spacing: -.6px;
  }
  .holes-page .section-header-wide { margin-bottom: 32px; }
  .holes-page .section-header-wide h2 br { display: none; }
  .holes-page .hole-guide-box { padding: 28px 22px; border-radius: 26px; }
  .holes-page .hole-guide-actions a { padding: 16px; gap: 12px; }
  .holes-page .holes-slider .slick-slide { padding: 0; }
  .holes-page .hole-card img { height: 330px; object-fit: contain; }
  .holes-page .hole-card-content { padding: 22px; }
  .holes-page .hole-card-content h3 { font-size: 24px; overflow-wrap: anywhere; }
  .holes-page .compact-hole-content { padding: 24px; }
  .holes-page .compact-hole-card h3 { font-size: 26px; overflow-wrap: anywhere; }
  .holes-page .compact-hole-card .hole-detail-meta li { font-size: 12px; line-height: 1.4; }
}
@media (max-width: 575.98px) {
  .holes-page .hole-details-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .holes-page .compact-hole-top { flex-wrap: wrap; }
}

/* HANDICAP — ajustes exclusivos de handicap.html. */
@media (max-width: 1199.98px) {
  .handicap-page .handicap-actions-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .handicap-page .handicap-action-card { min-width: 0; padding: 28px; }
  .handicap-page .handicap-note-content,
  .handicap-page .handicap-cta-content { min-width: 0; }
  .handicap-page .handicap-note-line { flex-shrink: 0; }
  .handicap-page .handicap-cta-content .ht-btn {
    max-width: 100%;
    height: auto;
    min-height: 50px;
    padding: 14px 24px;
    white-space: normal;
    text-align: center;
    line-height: 1.5;
  }
}
@media (max-width: 991.98px) {
  .handicap-page .club-hero-section { min-height: 500px; padding: 130px 0 56px; }
  .handicap-page .club-hero-content { padding-top: 0; }
  .handicap-page .club-hero-content h1 {
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1.08;
    letter-spacing: -1px;
  }
  .handicap-page .club-intro-section .row { row-gap: 28px; }
  .handicap-page .club-intro-section .row > div:first-child { margin-bottom: 0 !important; }
  .handicap-page .club-intro-section .club-intro-content { margin-left: 0; max-width: 100%; }
  .handicap-page .club-intro-image img {
    height: auto;
    aspect-ratio: 4 / 3;
    max-height: 420px;
    object-fit: cover;
  }
  .handicap-page .club-intro-content h2,
  .handicap-page .section-header-wide h2 { font-size: 40px; line-height: 1.15; }
  .handicap-page .handicap-actions-grid { grid-template-columns: minmax(0, 1fr); }
  .handicap-page .handicap-cta-box { grid-template-columns: minmax(0, 1fr); }
  .handicap-page .handicap-cta-image { height: auto; }
  .handicap-page .handicap-cta-image img {
    display: block;
    height: auto;
    aspect-ratio: 16 / 9;
    max-height: 340px;
    object-fit: cover;
  }
}
@media (max-width: 767.98px) {
  .handicap-page .club-hero-content h1 { font-size: clamp(32px, 8.5vw, 44px); }
  .handicap-page .club-intro-section,
  .handicap-page .handicap-download-section,
  .handicap-page .handicap-note-section { padding: 56px 0; }
  .handicap-page .handicap-cta-section { padding: 0 0 56px; }
  .handicap-page .club-intro-content h2,
  .handicap-page .section-header-wide h2,
  .handicap-page .handicap-cta-content h2 {
    font-size: clamp(28px, 7.5vw, 36px);
    line-height: 1.15;
    letter-spacing: -.6px;
  }
  .handicap-page .section-header-wide { margin-bottom: 32px; }
  .handicap-page .handicap-action-card { padding: 26px 24px; }
  .handicap-page .handicap-action-card strong { font-size: 23px; overflow-wrap: anywhere; }
  .handicap-page .handicap-note-minimal { gap: 20px; }
  .handicap-page .handicap-note-content h2 { font-size: 28px; line-height: 1.25; }
  .handicap-page .handicap-note-links { gap: 18px 24px; }
  .handicap-page .handicap-cta-box { border-radius: 26px; }
  .handicap-page .handicap-cta-content { padding: 30px 22px; }
}
@media (max-width: 374.98px) {
  .handicap-page .handicap-cta-content .ht-btn { width: 100%; padding: 14px 18px; }
}

/* REGLAS Y NORMAS — ajustes exclusivos de reglas.html. */
@media (max-width: 1199.98px) {
  .rules-page .rules-doc-box,
  .rules-page .rules-doc-content,
  .rules-page .rules-doc-actions { min-width: 0; }
  .rules-page .rules-doc-actions a { min-width: 0; }
  .rules-page .rules-doc-actions strong,
  .rules-page .rules-doc-actions small { overflow-wrap: anywhere; }
}
@media (max-width: 991.98px) {
  .rules-page .club-hero-section { min-height: 500px; padding: 130px 0 56px; }
  .rules-page .club-hero-content { padding-top: 0; }
  .rules-page .club-hero-content h1 { font-size: clamp(34px, 6vw, 52px); line-height: 1.08; letter-spacing: -1px; }
  .rules-page .club-intro-section .row { row-gap: 28px; }
  .rules-page .club-intro-section .row > div:first-child { margin-bottom: 0 !important; }
  .rules-page .club-intro-section .club-intro-content { margin-left: 0; max-width: 100%; }
  .rules-page .club-intro-image img { height: auto; aspect-ratio: 4 / 3; max-height: 420px; object-fit: cover; }
  .rules-page .club-intro-content h2,
  .rules-page .section-header-wide h2,
  .rules-page .rules-doc-content h2 { font-size: 40px; line-height: 1.15; }
  .rules-page .rules-section .row { row-gap: 22px; }
  .rules-page .rules-doc-box { grid-template-columns: minmax(0, 1fr); padding: 36px; gap: 30px; }
}
@media (max-width: 767.98px) {
  .rules-page .club-hero-content h1 { font-size: clamp(32px, 8.5vw, 44px); }
  .rules-page .club-intro-section,
  .rules-page .rules-section,
  .rules-page .rules-doc-section { padding: 56px 0; }
  .rules-page .club-intro-content h2,
  .rules-page .section-header-wide h2,
  .rules-page .rules-doc-content h2 { font-size: clamp(28px, 7.5vw, 36px); line-height: 1.15; letter-spacing: -.6px; }
  .rules-page .section-header-wide { margin-bottom: 32px; }
  .rules-page .rules-section .campo-service-card { padding: 26px 24px; }
  .rules-page .rules-doc-box { padding: 30px 22px; border-radius: 26px; }
  .rules-page .rules-doc-actions a { padding: 18px 16px; gap: 12px; }
  .rules-page .rules-contact-link { display: none; }
}
