/* Splash N Go upgrade layer
   Upload this file to /css/splash-upgrades.css and load it after style.css and responsi.css.
   It intentionally overrides older template styles without requiring a full rebuild. */

:root {
  --sng-blue: #053f5f;
  --sng-green: #83c669;
  --sng-yellow: #fdbc44;
  --sng-sky: #5bcbf3;
  --sng-dark: #183548;
  --sng-light: #f7fbfd;
  --sng-white: #ffffff;
  --sng-shadow: 0 18px 45px rgba(5, 63, 95, 0.18);
  --sng-radius: 18px;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--sng-blue);
  background: var(--sng-white);
}

/* Restore visible keyboard focus. The older CSS removes outlines globally. */
:focus,
button:focus,
select:focus,
a:focus,
input:focus,
textarea:focus {
  outline: 3px solid rgba(253, 188, 68, 0.85) !important;
  outline-offset: 3px !important;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 99999;
  background: var(--sng-yellow);
  color: var(--sng-blue);
  padding: 10px 16px;
  border-radius: 0 0 10px 10px;
  font-weight: 700;
}

.skip-link:focus {
  top: 0;
}

.sng-section {
  float: left;
  width: 100%;
  padding: 78px 0;
}

.sng-kicker {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--sng-green);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.sng-section-title {
  max-width: 780px;
  margin: 0 auto 38px;
  text-align: center;
}

.sng-section-title h2,
.sng-plan h2,
.sng-subscribe h2 {
  color: var(--sng-blue);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 800;
  line-height: 1.08;
  margin-bottom: 15px;
}

.sng-section-title p,
.sng-plan p {
  color: #315b73;
  font-size: 18px;
  line-height: 1.65;
}

.sng-btn,
.all-button,
.popular-choice-box a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px !important;
  border: 0;
  border-radius: 999px !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.sng-btn:hover,
.all-button:hover,
.popular-choice-box a:hover {
  transform: translateY(-2px);
  text-decoration: none !important;
}

.sng-btn-primary,
.all-button,
.popular-choice-box a {
  background: var(--sng-yellow) !important;
  color: var(--sng-blue) !important;
  box-shadow: 0 12px 25px rgba(253, 188, 68, 0.28);
}

.sng-btn-secondary {
  background: rgba(255, 255, 255, 0.14);
  color: var(--sng-white);
  border: 2px solid rgba(255, 255, 255, 0.75);
}

.sng-hero {
  float: left;
  width: 100%;
  min-height: 640px;
  display: flex;
  align-items: center;
  background-position: center;
  background-size: cover;
  color: var(--sng-white);
  position: relative;
  overflow: hidden;
}

.sng-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 120px;
  background: linear-gradient(to bottom, rgba(255,255,255,0), var(--sng-white));
  pointer-events: none;
}

.sng-hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: 90px 0;
}

.sng-hero .sng-kicker {
  color: var(--sng-yellow);
}

.sng-hero h1 {
  color: var(--sng-white);
  font-size: clamp(46px, 7vw, 82px);
  font-weight: 900;
  line-height: 0.98;
  margin-bottom: 22px;
  text-shadow: 0 8px 28px rgba(0,0,0,0.28);
}

.sng-hero-text {
  max-width: 640px;
  color: rgba(255,255,255,0.94);
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1.55;
  margin-bottom: 28px;
}

.sng-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 28px;
}

.sng-hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sng-hero-points li {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: rgba(255, 255, 255, 0.13);
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: 999px;
  color: var(--sng-white);
  font-size: 15px;
  font-weight: 700;
  padding: 9px 14px;
  backdrop-filter: blur(7px);
}

.sng-quick-info {
  padding-top: 28px;
  background: var(--sng-white);
}

.sng-info-card {
  height: 100%;
  background: var(--sng-white);
  border: 1px solid rgba(5, 63, 95, 0.08);
  border-radius: var(--sng-radius);
  box-shadow: var(--sng-shadow);
  padding: 28px;
  text-align: center;
}

.sng-info-card i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin-bottom: 18px;
  background: rgba(131, 198, 105, 0.15);
  border-radius: 50%;
  color: var(--sng-green);
  font-size: 25px;
}

.sng-info-card h2 {
  color: var(--sng-blue);
  font-size: 21px;
  font-weight: 800;
  margin-bottom: 12px;
}

.sng-info-card p {
  color: #315b73;
  font-size: 16px;
  line-height: 1.55;
}

.sng-parks {
  background-color: #f8fcff;
  background-size: 100%;
  padding-top: 88px !important;
}

.sng-parks h2 {
  color: var(--sng-blue) !important;
  margin-bottom: 10px !important;
}

.sng-park-card {
  position: relative;
  height: 100%;
  overflow: hidden;
  background: var(--sng-white) !important;
  border: 1px solid rgba(5, 63, 95, 0.08);
  box-shadow: var(--sng-shadow) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sng-park-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 55px rgba(5, 63, 95, 0.23) !important;
}

.sng-featured-park {
  border: 2px solid rgba(131, 198, 105, 0.65) !important;
}

.sng-card-ribbon {
  position: absolute;
  right: 18px;
  top: 18px;
  z-index: 3;
  background: var(--sng-green);
  color: var(--sng-white);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 7px 12px;
  text-transform: uppercase;
}

.popular-choice-bg {
  min-height: 215px;
  background-size: cover !important;
  background-position: center !important;
}

.popular-choice-box span {
  font-size: clamp(26px, 3vw, 34px) !important;
  font-weight: 800 !important;
  margin: 28px 0 16px !important;
}

.popular-choice-box p {
  max-width: 300px !important;
  min-height: 86px !important;
  color: #315b73 !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.circle {
  box-shadow: 0 10px 25px rgba(0,0,0,0.18);
}

.sng-plan {
  background: var(--sng-white);
}

.sng-checklist-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.sng-check-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--sng-light);
  border: 1px solid rgba(5, 63, 95, 0.08);
  border-radius: 14px;
  color: #315b73;
  font-size: 16px;
  line-height: 1.45;
  padding: 17px;
}

.sng-check-item i {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  background: var(--sng-green);
  border-radius: 50%;
  color: var(--sng-white);
  font-size: 13px;
  margin-top: 1px;
}

.sng-gallery {
  background: #f8fcff;
}

.sng-gallery.gallary h2 {
  margin-bottom: 10px !important;
}

.sng-gallery img {
  width: 100%;
  height: 100%;
  min-height: 150px;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(5, 63, 95, 0.16);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.sng-gallery a:hover img {
  transform: translateY(-2px);
  opacity: 0.92;
}

.sng-gallery-grid > div {
  margin-bottom: 15px;
}

.sng-subscribe {
  background: var(--sng-blue);
  color: var(--sng-white);
  padding: 55px 0;
}

.sng-subscribe h2 {
  color: var(--sng-white);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.15;
}

.sng-subscribe h2 span {
  color: var(--sng-yellow);
  font-weight: 500;
}

.sng-subscribe .form-control {
  min-height: 54px;
  border: 0;
  border-radius: 999px;
  padding: 0 165px 0 22px;
}

.sng-subscribe .subcribe-form button {
  min-height: 46px;
  border-radius: 999px;
  background: var(--sng-yellow);
  color: var(--sng-blue);
  font-weight: 800;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Better mobile menu contrast overrides for older template */
@media screen and (max-width: 767px) {
  .menubar {
    background: var(--sng-blue) !important;
  }

  .menubar ul li a {
    color: var(--sng-white) !important;
  }

  .menubar ul li .contact-btn {
    background: var(--sng-yellow) !important;
    color: var(--sng-blue) !important;
  }

  .sng-section {
    padding: 56px 0;
  }

  .sng-hero {
    min-height: 560px;
  }

  .sng-hero-content {
    padding: 70px 0;
  }

  .sng-hero-actions,
  .sng-hero-points {
    flex-direction: column;
    align-items: stretch;
  }

  .sng-btn,
  .sng-hero-points li {
    width: 100%;
  }

  .sng-info-card {
    margin-bottom: 18px;
  }

  .sng-checklist-grid {
    grid-template-columns: 1fr;
  }

  .sng-subscribe .subcribe-content,
  .sng-subscribe .subcribe-form {
    width: 100%;
  }

  .sng-subscribe .form-control {
    padding-right: 22px;
    margin-bottom: 12px;
  }

  .sng-subscribe .subcribe-form button {
    position: static;
    width: 100%;
  }
}

@media screen and (max-width: 480px) {
  .sng-hero h1 {
    font-size: 42px;
  }

  .sng-hero-text,
  .sng-section-title p,
  .sng-plan p {
    font-size: 16px;
  }

  .popular-choice-bg {
    min-height: 185px;
  }
}

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

.sng-location-note {
  display: inline-flex;
  align-items: flex-start;
  gap: 12px;
  max-width: 720px;
  margin-top: 4px;
  padding: 14px 18px;
  background: rgba(253, 188, 68, 0.94);
  color: var(--sng-blue);
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}

.sng-location-note i {
  margin-top: 3px;
  color: var(--sng-blue);
}


/* Booking strip and supporting page upgrades */
.sng-booking-strip {
  float: left;
  width: 100%;
  margin-top: -52px;
  position: relative;
  z-index: 4;
  padding: 0 0 34px;
}

.sng-booking-card {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
  gap: 26px;
  align-items: center;
  background: var(--sng-white);
  border: 1px solid rgba(5, 63, 95, 0.08);
  border-radius: 24px;
  box-shadow: var(--sng-shadow);
  padding: 28px;
}

.sng-booking-card h2 {
  color: var(--sng-blue);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 10px;
}

.sng-booking-card p:not(.sng-kicker) {
  color: #315b73;
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}

.sng-booking-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.sng-btn-light {
  background: var(--sng-blue) !important;
  color: var(--sng-white) !important;
  border-color: var(--sng-blue) !important;
}

.sng-wide-checklist {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sng-accordion .card {
  border: 0;
  border-radius: 14px !important;
  margin-bottom: 12px;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(5, 63, 95, 0.10);
}

.sng-accordion .card-header {
  padding: 0;
  background: #d0e2b8;
  border: 0;
}

.sng-accordion .btn-link {
  display: block;
  width: 100%;
  padding: 18px 22px;
  color: var(--sng-blue);
  font-size: 19px;
  font-weight: 800;
  text-align: left;
  white-space: normal;
  text-decoration: none;
}

.sng-accordion .card-body {
  color: #315b73;
  font-size: 17px;
  line-height: 1.6;
  padding: 22px;
}

@media screen and (max-width: 991px) {
  .sng-booking-card {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 767px) {
  .sng-booking-strip {
    margin-top: 0;
    padding-top: 24px;
  }

  .sng-booking-actions,
  .sng-wide-checklist {
    grid-template-columns: 1fr;
  }
}


/* Support page upgrades */
.sng-page-hero { float:left; width:100%; min-height:360px; display:flex; align-items:center; background-position:center; background-size:cover; color:var(--sng-white); position:relative; }
.sng-page-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,63,95,0.78), rgba(5,63,95,0.42)); }
.sng-page-hero .container { position:relative; z-index:2; }
.sng-page-hero h1 { color:var(--sng-white); font-size:clamp(38px,6vw,66px); font-weight:900; line-height:1.02; margin-bottom:16px; }
.sng-page-hero p { max-width:760px; color:rgba(255,255,255,0.94); font-size:clamp(17px,2.1vw,22px); line-height:1.55; }
.sng-page-section { float:left; width:100%; padding:72px 0; }
.sng-page-section-alt { background:#f8fcff; }
.sng-lead { max-width:860px; margin:0 auto 34px; color:#315b73; font-size:19px; line-height:1.7; text-align:center; }
.sng-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.sng-card-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sng-content-card { height:100%; background:var(--sng-white); border:1px solid rgba(5,63,95,0.09); border-radius:var(--sng-radius); box-shadow:0 14px 34px rgba(5,63,95,0.12); padding:26px; }
.sng-content-card h2, .sng-content-card h3 { color:var(--sng-blue); font-weight:900; line-height:1.15; margin-bottom:12px; }
.sng-content-card h2 { font-size:26px; } .sng-content-card h3 { font-size:22px; }
.sng-content-card p, .sng-content-card li { color:#315b73; font-size:16px; line-height:1.6; }
.sng-content-card ul { padding-left:0; list-style:none; margin:0; }
.sng-content-card li { margin-bottom:10px; padding-left:30px; position:relative; }
.sng-content-card li::before { content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; left:0; top:1px; color:var(--sng-green); }
.sng-alert { background:rgba(253,188,68,0.22); border-left:6px solid var(--sng-yellow); border-radius:14px; color:var(--sng-blue); padding:20px 22px; font-size:17px; line-height:1.6; }
.sng-rule-list { column-count:2; column-gap:28px; } .sng-rule-list li { break-inside:avoid; }
.sng-job-card .sng-job-meta { display:flex; flex-wrap:wrap; gap:9px; margin:12px 0 18px; }
.sng-pill { display:inline-flex; align-items:center; border-radius:999px; background:rgba(131,198,105,0.15); color:var(--sng-blue); font-weight:800; font-size:13px; padding:7px 11px; }
.sng-faq-intro { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:36px; }
.sng-faq-intro .sng-info-card { padding:22px; } .sng-faq-intro .sng-info-card h2 { font-size:18px; } .sng-faq-intro .sng-info-card p { font-size:14px; }
.sng-cta-band { float:left; width:100%; background:var(--sng-blue); color:var(--sng-white); padding:46px 0; }
.sng-cta-band h2 { color:var(--sng-white); font-size:clamp(28px,4vw,42px); font-weight:900; margin-bottom:10px; }
.sng-cta-band p { color:rgba(255,255,255,0.9); font-size:17px; line-height:1.6; margin-bottom:0; }
.sng-cta-band .sng-btn { margin-top:12px; }
@media screen and (max-width:991px){ .sng-card-grid,.sng-card-grid.two,.sng-faq-intro{grid-template-columns:repeat(2,minmax(0,1fr));} .sng-rule-list{column-count:1;} }
@media screen and (max-width:767px){ .sng-page-hero{min-height:310px;} .sng-page-section{padding:52px 0;} .sng-card-grid,.sng-card-grid.two,.sng-faq-intro{grid-template-columns:1fr;} }


/* v5 shared component polish */
.topbar a { font-weight: 700; }
.social_link ul { display:flex; gap:12px; align-items:center; }
.social_link a { color: var(--sng-blue); }
.menubar .logo img { max-width: 175px; height: auto; }
.menubar ul li .contact-btn { box-shadow: 0 10px 20px rgba(131,198,105,.22); }
.sng-nav-note { font-size: 12px; display:block; line-height:1.2; color:#315b73; }
.sng-footer-list a { color:#fff; text-decoration:none; }
.sng-footer-list a:hover { color: var(--sng-yellow); text-decoration:underline; }
.footer-social-link ul { display:flex; flex-direction:column; gap:8px; }
.footer-social-link li a { color:#fff; text-transform:none; }
.footer-social-link li a i { margin-right:8px; }
.copyright p { margin:0; }
#myIframe { min-height: 760px; width: 100%; border: 0; }
.modal-body#model_body_id { padding:0; }
.sng-mini-faq { background:#faf2e5; }
.sng-mini-faq .sng-accordion { max-width: 920px; margin:auto; }
.sng-review-section .review-section { padding-top:80px; }
.sng-page-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.sng-meta-list { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 0; padding:0; list-style:none; }
.sng-meta-list li { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:999px; padding:8px 13px; font-weight:800; font-size:14px; }
.sng-park-hero { min-height: 470px; }
.sng-price-card { background:var(--sng-blue); color:#fff; border-radius:var(--sng-radius); padding:28px; box-shadow:var(--sng-shadow); }
.sng-price-card h2 { color:#fff; font-size:30px; font-weight:900; }
.sng-price-card .sng-price { color:var(--sng-yellow); font-size:42px; font-weight:900; line-height:1; margin:8px 0 12px; }
.sng-price-card p, .sng-price-card li { color:rgba(255,255,255,.9); }
.sng-private-card { background:rgba(253,188,68,.18); border:1px solid rgba(253,188,68,.45); }
.sng-private-card h2 { color:var(--sng-blue); }
.sng-locations-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.sng-location-tile { background:#fff; border-radius:18px; box-shadow:0 12px 30px rgba(5,63,95,.12); padding:22px; border:1px solid rgba(5,63,95,.08); height:100%; }
.sng-location-tile h3 { color:var(--sng-blue); font-weight:900; margin-bottom:8px; }
.sng-location-tile p { color:#315b73; line-height:1.55; }
.sng-location-tile a { font-weight:900; }
.sng-header-book-mobile { display:none; }
@media screen and (max-width:991px){ .sng-locations-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media screen and (max-width:767px){
  .topbar .float-left, .topbar .float-right { float:none!important; display:block; text-align:center; line-height:1.5; padding:5px 0; }
  .menubar .logo { display:block; width:160px; }
  .menubar .logo img { margin:10px 0; width:135px; }
  .overlay-content { top:12%; }
  .overlay .closebtn { right:25px; }
  .sng-locations-grid{grid-template-columns:1fr;}
  .sng-page-actions .sng-btn{ width:100%; }
  #myIframe{min-height:640px;}
}
