/* ============================================================
   Responsive Overrides
   Loaded AFTER default.css — all changes override fixed-width
   desktop layout for tablet/mobile viewports.
   ============================================================ */

/* ─── Box Sizing Reset ─── */

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* ─── Fluid Containers ─── */

.youtube {
  width: 100%;
  display: flex;

}

.youtube iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

#header .content_wrap,
#content .content_wrap,
#footer .content_wrap {
  width: 100%;
  max-width: 960px;
}

#header .content_wrap {
  height: auto;
  min-height: 160px;
}

/* ─── Fluid Images ─── */

img {
  max-width: 100%;
  height: auto;
}

#content .att_list ul li img,
.contentbar img,
.fac_food .ff_level2 img {
  max-width: 100%;
  height: auto;
  width: auto;
  border: 4px solid #fff;
  padding: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  background: #fff;
}

iframe {
  max-width: 100%;
}

/* ─── Gallery album grid ─── */

.gallery_content .galleryalbum {
  display: flex;
  flex-wrap: wrap;
  gap: 25px;
}

.gallery_content .galleryalbum li {
  width: calc(33.33% - 18px);
  height: auto;
  padding: 0;
  margin-bottom: 0;
  float: none;
}

.gallery_content .galleryalbum li a {
  display: block;
  text-decoration: none;
}

.galleryalbum .album_image {
  display: block;
  margin-bottom: 8px;
  width: 100%;
  aspect-ratio: 220 / 150;
  border: 4px solid #fff;
  padding: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  background: #fff;
  box-sizing: border-box;
}

.galleryalbum .album_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.galleryalbum .album_title {
  line-height: 1.3;
}

.galleryalbum .album_qty {
  margin-top: 2px;
}

/* ─── Header ─── */

#header {
  height: auto;
  min-height: 380px;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

#header a.logo {
  position: static;
  float: none;
  display: inline-block;
}

#header a.logo img {}

/* ─── Homepage Slider ─── */

.main_photo {
  width: 100%;
}

#homeslider {
  min-width: 0;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto 24px;
  aspect-ratio: 1600 / 833.33;
  height: auto;
}

@media only screen and (min-width: 1600px) {
  #homeslider {
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.27);
  }
}

/* ─── Footer ─── */

#footer {
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

/* ─── Hamburger Nav Toggle ─── */

.nav-toggle {
  display: none;
}

/* ─── Tablet (≤ 960px) ─── */

@media only screen and (max-width: 960px) {

  #header {
    min-height: 0;
    height: auto;
  }

  #header .content_wrap {
    height: auto;
  }

  #content {
    top: 0;
  }

  #content .page_title {
    width: auto;
    padding: 10px 20px;
    border-radius: 10px;
  }

  #footer .footer_image {
    display: none;
  }

  #footer {
    margin-top: 0;
  }

  #footer .content_wrap {
    padding: 20px 15px 15px;
  }

  #homeslider {
    height: auto;
  }

  #slider {
    width: 100%;
    aspect-ratio: 960 / 440;
    height: auto;
  }

  #content .att_main_img {
    width: auto;
    left: 0;
    top: 0;
    margin-top: 0;
    height: auto;
  }

  #content .att_main_img img {
    width: 100%;
    height: auto;
  }

  #content .att_main_img .cs-slide img {
    height: 100%;
  }

  iframe {
    max-width: 100%;
  }

  /* TripAdvisor badges */
  .maintripadvisor .ta-badges-section {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
  }

  .maintripadvisor .ta-unitbadge,
  .maintripadvisor .TA_rated {
    width: auto !important;
  }

  .maintripadvisor .ta-badges-section a img {
    max-width: 100%;
    height: auto;
  }

  #content .cs-container .cs-dot {
    width: 8px;
    height: 8px;
    margin: 0 3px;
  }

  #content .about_main_img {
    width: auto;
    left: 0;
  }

  .buytiket {
    width: auto;
    margin: 10px auto;
    border-radius: 10px;
    padding: 15px;
    font-size: 18px;
  }

  .buytiket .tiketonline {
    display: inline-block;
    margin: 10px 0 0;
  }

}

/* Override default.css fixed heights so aspect-ratio can work */
@media only screen and (min-width: 960px) {
  #homeslider {
    height: auto;
    max-height: none;
  }

  #slider {
    height: auto;
    aspect-ratio: 960 / 440;
  }
}

/* ─── Tablet Portrait / Small Desktop (≤ 768px) ─── */

@media only screen and (max-width: 960px) {

  /* ─── Mobile Navigation ─── */

  .nav-toggle {
    display: block;
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    color: #fff;
    font-size: 28px;
    cursor: pointer;
    padding: 8px 12px;
    z-index: 100;
    line-height: 1;
  }

  #header .nav {
    position: static;
    display: none;
    width: 100%;
    clear: both;
  }

  #header .nav a {
    color: #fff;
    display: block;
    padding: 10px 15px;
  }

  #header .nav_content {
    float: none;
    height: auto;
    padding: 0;
    border-radius: 0;
    background: #9900cc;
    box-shadow: none;
    border: none;
  }

  #header .nav_content li {
    float: none;
    line-height: 1.5;
    margin-right: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }

  #header .nav_content li.last {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  }

  #header .nav_left,
  #header .nav_right {
    display: none;
  }

  /* Top nav: inside hamburger menu on mobile */
  #header .top_nav {
    display: none;
    float: none;
    padding: 8px 10px;
    text-align: center;
    font-size: 0.8em;
    line-height: 1.8em;
  }

  /* #header .top_nav a[href="career"],
  #header .top_nav a[href="en/career"],
  #header .top_nav a[href="/"],
  #header .top_nav a[href="http://www.mikieholiday.com/"] {
    display: none;
  } */

  #header .wanumber {
    position: static;
    border-radius: 0;
    text-align: center;
    font-size: 0.8em;
    padding: 5px 10px;
  }

  #header .content_wrap {
    height: auto;
    min-height: 0;
  }

  #content .section {
    padding: 10px 15px;
  }

  /* Homepage: stack columns */
  .home .main {
    width: 100%;
    float: none;
  }

  .home .side {
    width: 100%;
    float: none;
  }

  .home .side a.brochure {
    width: auto;
  }

  /* Attractions list: 2 columns */
  #content .att_list ul li {
    width: 50%;
  }

  #content .att_list ul li:nth-child(3n+1) {
    clear: none;
  }

  #content .att_list ul li:nth-child(2n+1) {
    clear: left;
  }

  #content .att_list ul li img {
    width: 100%;
    height: auto;
  }

  /* Attraction detail: stack columns */
  #content .att_details {
    flex-direction: column;
  }

  #content .leftbar,
  #content .contentbar,
  #content .rightbar {
    width: 100%;
    float: none;
    margin-right: 0;
    margin-bottom: 20px;
  }

  #content .leftbar {
    order: 2;
  }

  #content .contentbar {
    order: 1;
    padding: 15px;
  }

  #content .rightbar {
    order: 3;
    margin-bottom: 0;
  }

  /* Tickets */
  .main_ticket img.maintiket {
    float: none;
    display: block;
    margin: 0 auto 15px;
    max-width: 100%;
  }

  .main_ticket .ticket_mid_content {
    width: 100%;
    float: none;
  }

  .others_ticket img {
    float: none;
    display: block;
    margin: 0 auto 15px;
    width: 100%;
    max-width: 300px;
  }

  .others_ticket .ticket_mid_content {
    width: 100%;
    float: none;
  }

  .others_ticket .price_box {
    float: none;
    width: 100%;
    text-align: left;
    padding: 10px 0 0;
  }

  /* Facilities */
  .facilities .fac_detail {
    width: 45%;
    margin-right: 5%;
  }

  .fac_food .ff_level2 img {
    float: none;
    display: block;
    margin: 0 auto 15px;
    max-width: 100%;
  }

  /* Gallery albums */
  .gallery_content .galleryalbum {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
  }

  .gallery_content .galleryalbum li {
    width: calc(50% - 10px);
    height: auto;
    padding: 0;
    margin-bottom: 0;
    float: none;
  }

  /* Contact */
  .contact_left,
  .contact_right {
    width: 100%;
    float: none;
  }

  .contact_right form input,
  .contact_right textarea {
    width: 90%;
  }

  /* FAQ */
  .faq_askform textarea {
    width: 90%;
  }

  .faq_askform form {
    float: none;
  }

  .faq_askform .faq_ls,
  .faq_askform .faq_rs {
    float: none;
  }

  /* Getting to Funland */
  .htg_column {
    width: 100%;
    padding-right: 0;
    float: none;
  }

  /* About */
  #content .about_main_img {
    width: auto;
  }

  .about_content .awards {
    padding-right: 0;
    display: block;
  }

  /* Tickets section */
  .tiketsection {
    flex-direction: column;
  }

  .tiketsection div:first-child {
    padding: 15px;
  }

  .tiketsection .pricebox {
    width: 100%;
  }

  /* Map */
  #map {
    display: none;
  }

  #mainmapzoom,
  #mapzoom {
    width: 100%;
    height: auto;
  }

  #map img {
    display: block !important;
  }

  /* Footer */
  #footer .mikie_holiday,
  #footer .sitemap,
  #footer .contact-us {
    width: 100%;
    float: none;
    margin-bottom: 25px;
  }

  #footer .col_group ul {
    width: 100%;
    float: none;
  }

  #footer .bottom {
    text-align: center;
  }

  #footer .copyright,
  #footer .stay_connected {
    float: none;
    display: block;
    margin: 5px 0;
  }

  #footer .stay_connected {
    margin-top: 10px;
  }

  #footer .stay_connected a {
    float: none;
    display: inline-block;
    margin: 0 8px;
    top: 0;
  }

  #footer .stay_connected span.get_connect {
    display: block;
    margin-bottom: 8px;
    float: none;
  }

  /* Promo */
  .promo .promo_image img {
    max-width: 100%;
  }

  /* Career form fields */
  #jobsframe {
    width: auto;
    padding: 15px;
  }

  #jobsframe input[type="text"],
  #jobsframe input[type="text"].field,
  #jobsframe textarea {
    width: 100%;
  }

  /* Leftbar attraction nav: touch-friendly */
  #content .leftbar li a {
    padding: 8px 0 8px 38px;
  }

  #content .leftbar .lb_level2 li a {
    padding: 8px 0 8px 50px;
  }

  /* Attractions list filter nav: wrap */
  #content .att_nav ul {
    float: none;
    text-align: center;
  }

  #content .att_nav li {
    float: none;
    display: inline-block;
    margin: 0 8px 8px;
  }

}

/* ─── Gallery photo view (individual album) ─── */

@media only screen and (max-width: 960px) {
  .gallery_content .gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
  }

  .gallery_content .gallery li a {
    float: none;
    display: block;
    margin: 0;
  }

  .gallery_content .gallery li img {
    max-width: 160px;
    max-height: 100px;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

@media only screen and (max-width: 480px) {
  .gallery_content .galleryalbum {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
  }

  .gallery_content .galleryalbum li {
    width: 100%;
    height: auto;
    padding: 0;
    margin-bottom: 0;
    float: none;
  }

  .gallery_content .gallery li a {
    float: none;
    display: inline-block;
    margin: 0 5px 6px 0;
  }

  .gallery_content .gallery li img {
    max-width: 120px;
    max-height: 80px;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* ─── Mobile (≤ 480px) ─── */

@media only screen and (max-width: 480px) {

  #header a.logo img {
    max-width: 180px;
  }

  #header a.logo {
    margin-bottom: 6px;
  }

  .home .summary iframe {
    width: 100% !important;
    height: auto !important;
  }

  .home .thumbs li {
    float: none;
    display: inline-block;
    margin: 0 4px 8px;
  }

  /* Attractions list: 1 column */
  #content .att_list ul li {
    width: 100%;
    clear: both !important;
  }

  /* Facilities: 1 column */
  .facilities .fac_detail {
    width: 100%;
    margin-right: 0;
  }

  /* Gallery albums: 1 column */
  .gallery_content .galleryalbum li {
    width: 45%;
    padding: 20px 0 0 10px;
  }

  .buytiket {
    font-size: 15px;
    padding: 12px;
  }

  .faq_askform form input {
    width: 90%;
  }

  .faq_askform .faq_ls {
    margin-right: 0;
  }

  .aboutmember {
    width: 100%;
  }

}