/*
Theme Name: iBUILDiT Child
Theme URI: https://iplanit.ie
Description: Child theme for iBUILDiT
Author: iPLANiT Ltd.
Author URI: https://iplanit.ie
Template: iBUILDiT
Version: 1.0.0
Text Domain: ibuildit-child
*/

/* Add your child theme styles here */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap');

/* ============================================================
THE GLASSHOUSES — BASE CSS
Global tokens, reset, typography, layout & shared primitives.
Every component stylesheet builds on these variables.
============================================================ */
:root
{
  --ib-heading-font: "DM Serif Display", Georgia, serif;
  --ib-accent-gold: #ae8b1b;
  --ib-muted-green: #3E4A5C;
  --ib-soft-green: #9FAAB9;
  --ib-line-green: #C3CBD6;
  --ib-gold-line: rgba(174,139,27,0.55);
  --ib-surface: #ffffff;
  --ib-surface-alt: #f0f0f0;
  --ib-topbar-bg: #001534;
  --ib-cream: #ffffff;
  --ib-border: rgba(0, 21, 52, 0.12);
  --ib-radius: 3px;
  --ib-radius-lg: 4px;
  --ib-shadow: 0 1px 0 rgba(0, 21, 52, 0.06);
  --ib-navy-alt: #001e45;
  --ib-bronze: #a08040;
  --ib-transition: 200ms ease;
}

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

html
{
  -webkit-text-size-adjust: 100%;
   scroll-behavior: smooth;
}

body
{
  margin: 0;
  background: var(--ib-bg);
  color: var(--ib-text);
  font-family: var(--ib-font);
  font-size: var(--ib-font-size);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.row
{
  padding-left: unset;
  padding-right: unset;
}

@media (max-width: 767px)
{
  :root
  {
    --ib-h1-size: 48px;
  }
  .row,
    .container
  {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* Typography */
h1, h2, h3, h4, h5, h6
{
  font-family: var(--ib-heading-font);
  font-weight: 400;
  margin: 0;
  line-height: 1.05;
}

h1
{
  font-size: clamp(2.8rem, 4.8vw, var(--ib-h1-size));
  letter-spacing: -1px;
}

h2
{
  font-size: clamp(2rem, 3.2vw, var(--ib-h2-size));
}

h3
{
  font-size: clamp(1.6rem, 2.2vw, var(--ib-h3-size));
}

h4
{
  font-size: clamp(1.3rem, 1.7vw, var(--ib-h4-size));
}

h5
{
  font-size: clamp(1.15rem, 1.4vw, var(--ib-h5-size));
}

h6
{
  font-size: clamp(1rem, 1.2vw, var(--ib-h6-size));
}

p
{
  margin: 0;
  text-wrap: pretty;
}

a
{
  color: var(--ib-primary);
  text-decoration: none;
  transition: opacity var(--ib-transition);
}

a:hover
{
  opacity: 0.82;
}

img
{
  max-width: 100%;
  display: block;
}

/* Layout helpers */
.ib-section
{
  padding-top: var(--ib-pad-top);
  padding-bottom: var(--ib-pad-bottom);
}

.ib-section--dark
{
  background: var(--ib-secondary);
  color: var(--ib-bg);
}

.ib-section--alt
{
  background: var(--ib-surface-alt);
}

/* Eyebrow / kicker label */
.ib-kicker
{
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--ib-primary);
  font-weight: 700;
}

.ib-kicker--gold
{
  color: var(--ib-accent-gold);
}

/* Section divider (gold rule under headings) */
.ib-divider
{
  width: 60px;
  height: 3px;
  background: var(--ib-primary);
  border: 0;
  margin: 14px 0 22px;
}

.ib-divider--center
{
  margin-inline: auto;
}

/* Buttons */
.ib-btn
{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ib-font);
  font-weight: 700;
  font-size: 15px;
  padding: 15px 28px;
  border-radius: 2px;
  border: 1.5px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: opacity var(--ib-transition);
}

.ib-btn--primary
{
  background: var(--ib-primary);
  color: var(--ib-cream);
}

.ib-btn--secondary
{
  background: var(--ib-secondary);
  color: var(--ib-bg);
}

.ib-btn--gold
{
  background: var(--ib-accent-gold);
  color: var(--ib-secondary);
}

.ib-btn--outline
{
  background: transparent;
  color: var(--ib-secondary);
  border-color: var(--ib-secondary);
}

.ib-btn--outline-light
{
  background: transparent;
  color: var(--ib-bg);
  border-color: rgba(243,236,221,0.55);
}

.ib-btn--sm
{
  padding: 10px 18px;
  font-size: 13px;
}

.ib-btn:hover
{
  opacity: 0.88;
}

/* Utility */
.ib-visually-hidden
{
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.site-header
{
  padding-top: 0px;
  position: sticky;
  padding: 6px 24px;
  z-index: 1000;
}

/* ============================================================
MODULE — IMAGE + TEXT
============================================================ */
.image_text_module
{
  max-width: var(--ib-container);
  margin: 0 auto;
}

/* ============================================================
MODULE — STATS
============================================================ */
.stats_module
{
  background: var(--ib-secondary);
  color: var(--ib-bg);
  box-shadow: 0 0 0 100vmax var(--ib-secondary);
  clip-path: inset(0 -100vmax);
}

.stats_module__value
{
  font-family: var(--ib-heading-font);
  font-size: 52px !important;
  font-weight: 400 !important;
  color: var(--ib-accent-gold);
}

.stats_module__label
{
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ib-line-green) !important;
  margin-top: 6px;
}

/* ============================================================
CTA MODULE — Full-width centered CTA
============================================================ */
#contact_us, #contact-us
{
  background: var(--ib-navy-alt);
}

.cta_module
{
  padding: 74px 40px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0;
}

.cta_module__content
{
  max-width: 1000px;
  width: 100%;
}

.cta_module__content h2
{
  font-size: 50px;
  line-height: 1.05;
  color: var(--ib-cream);
}

.cta_module__content p
{
  font-size: 18px;
  line-height: 1.5;
  max-width: 560px;
  margin: 20px auto 0;
  color: #c3cbd6;
}

.cta_module__actions
{
  margin-top: 30px;
  justify-content: center;
}

.cta_module__button
{
  padding: 16px 34px !important;
  border-radius: 2px !important;
  background: var(--ib-accent-gold) !important;
  color: var(--ib-secondary) !important;
  font-size: 16px;
}

@media (max-width: 768px)
{
  .cta_module
  {
    padding: 60px 24px;
  }
  .cta_module__content h2
  {
    font-size: 40px;
  }
  .cta_module__content p
  {
    font-size: 17px;
  }
}
/* ============================================================
HERO  MODULE —  HOME PAGE HEADER
============================================================ */
/* Desktop */
@media (min-width: 1025px) {
  .main_header_module--home .main_header_overlay{
      background: linear-gradient(to right, #010f23cf 52%, #010f2308) !important;
  }
}


/* ============================================================
HERO  MODULE —  INNER PAGE HEADER
============================================================ */
.main_header_module--inner
{
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: var(--ib-secondary);
  color: var(--ib-bg);
}

/* ============================================================
Slide
============================================================ */
.main_header_module--inner .main_header_slide
{
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0;
  display: block;
  background-color: var(--ib-secondary);
}

/* ============================================================
Content
============================================================ */
.main_header_module--inner .main_header_content
{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--ib-container);
  height: auto;
  margin-inline: auto;
  padding: 66px 0;
  display: block;
  color: var(--ib-bg);
}

/* ============================================================
Breadcrumb
============================================================ */
.main_header_module--inner .breadcrumb
{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  font-family: var(--ib-font);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ib-soft-green);
}

/* Breadcrumb links */
.main_header_module--inner .breadcrumb a
{
  color: var(--ib-soft-green);
  text-decoration: none;
}

.main_header_module--inner .breadcrumb a:hover
{
  color: var(--ib-bg);
  opacity: 1;
}

/* Breadcrumb current page */
.main_header_module--inner .breadcrumb span[aria-current="page"]
{
  color: var(--ib-soft-green);
}

/* Breadcrumb separator */
.main_header_module--inner .breadcrumb__separator
{
  display: inline-block;
  margin: 0 8px;
  color: var(--ib-soft-green);
}

/* ============================================================
Title
============================================================ */
.main_header_module--inner .main_header_title
{
  max-width: 740px;
  margin: 14px 0 0;
  color: var(--ib-bg);
  font-family: var(--ib-heading-font);
  font-size: 60px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -1px;
}

/* ============================================================
Subtitle
============================================================ */
.main_header_module--inner .main_header_subtitle
{
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--ib-line-green);
  font-family: var(--ib-font);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
}

/* ============================================================
Buttons
============================================================ */

/*
* Usually inner page headers don't have buttons,
* but keep them compatible if one is added.
*/
.main_header_module--inner .main_header_actions
{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

/* ============================================================
Responsive — Tablet
============================================================ */
@media (max-width: 860px)
{
  .main_header_module--inner .main_header_content
  {
    padding: 56px 40px;
  }
  .main_header_module--inner .main_header_title
  {
    font-size: 52px;
  }
  .main_header_module--inner .main_header_subtitle
  {
    font-size: 18px;
  }
}

/* ============================================================
Responsive — Mobile
============================================================ */
@media (max-width: 600px)
{
  .main_header_module--inner .main_header_content
  {
    padding: 48px 24px;
  }
  .main_header_module--inner .breadcrumb
  {
    font-size: 11px;
    letter-spacing: 1.5px;
  }
  .main_header_module--inner .main_header_title
  {
    max-width: 100%;
    margin-top: 12px;
    font-size: clamp(42px, 10vw, 52px);
    line-height: 1.05;
  }
  .main_header_module--inner .main_header_subtitle
  {
    max-width: 100%;
    margin-top: 18px;
    font-size: 17px;
    line-height: 1.55;
  }
}

/* ============================================================
Responsive — Small Mobile
============================================================ */
@media (max-width: 480px)
{
  .main_header_module--inner .main_header_content
  {
    padding: 42px 20px;
  }
  .main_header_module--inner .main_header_title
  {
    font-size: clamp(38px, 11vw, 48px);
  }
}

/* =========================================================
LOCATIONS Module — #locations
========================================================= */
#locations.image_text_module
{
  padding: 70px 0px;
}

#locations .image_text_module__block
{
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 46px;
  align-items: center;
  background: var(--ib-surface, #fff);
  border: 1px solid rgba(22, 58, 44, 0.1);
  border-radius: var(--ib-radius-lg, 20px);
  overflow: hidden;
  margin: 0;
}

/* Spacing between location cards */
#locations .image_text_module__block + .image_text_module__block
{
  margin-top: 40px;
}

/* =========================================================
IMAGE ON THE RIGHT
========================================================= */
#locations .image_text_module__block--image_right
{
  grid-template-columns: 1.15fr 1fr;
  direction: ltr;
}

/* Place content first and image second */
#locations .image_text_module__block--image_right
  .image_text_module__content
{
  order: 1;
}

#locations .image_text_module__block--image_right
  .image_text_module__media
{
  order: 2;
}

/* =========================================================
IMAGE
========================================================= */
#locations .image_text_module__media
{
  width: 100%;
  height: 340px;
  overflow: hidden;
}

#locations .image_text_module__media img
{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

/* =========================================================
CONTENT
========================================================= */
#locations .image_text_module__content
{
  padding: 34px 40px 34px 0;
}

/* Cards with image on the left */
#locations .image_text_module__block--image_left
  .image_text_module__content
{
  padding: 34px 40px 34px 0;
}

/* Cards with image on the right */
#locations .image_text_module__block--image_right
  .image_text_module__content
{
  padding: 34px 0 34px 40px;
}

/* =========================================================
TITLE
========================================================= */
#locations .image_text_module__content h2
{
  font-family: var(--ib-heading-font, inherit);
  font-size: 34px;
  line-height: 1.15;
  margin: 8px 0 0;
}

/* =========================================================
TEXT
========================================================= */
#locations .image_text_module__text
{
  margin-top: 14px;
}

#locations .image_text_module__text p
{
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ib-muted-green, #52675d);
  margin-top: 14px;
  margin-bottom: 0;
}

#locations .image_text_module__text p:first-child
{
  margin-top: 14px;
}

#locations .image_text_module__text p:last-child
{
  margin-bottom: 0;
}

/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 767px)
{
  #locations.image_text_module
  {
    padding: 50px 16px 20px;
  }
  #locations .image_text_module__block,
  #locations .image_text_module__block--image_right
  {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* On mobile, always place the image above the content */
  #locations .image_text_module__block--image_right
    .image_text_module__media
  {
    order: 1;
  }
  #locations .image_text_module__block--image_right
    .image_text_module__content
  {
    order: 2;
  }
  #locations .image_text_module__media
  {
    height: 260px;
  }
  #locations .image_text_module__content,
  #locations .image_text_module__block--image_left
    .image_text_module__content,
  #locations .image_text_module__block--image_right
    .image_text_module__content
  {
    padding: 28px 24px 30px;
  }
  #locations .image_text_module__content h2
  {
    font-size: 28px;
  }
}

/* =========================================
Gallery Mosaic
========================================= */
.gallery_mosaic_module
{
  max-width: var(--ib-container);
  margin: 0 auto;
  padding: 30px 0 20px;
}

/* Título */
.gallery_mosaic_module__heading
{
  margin: 0 0 6px;
  text-align: left !important;
  font-size: 30px;
  line-height: 1.2;
}

/* Linha divisória */
.gallery_mosaic_module__heading::after
{
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin-top: 0;
  background: var(--ib-primary);
  margin: 14px 0 22px;
}

/* =========================================
Slider
========================================= */
.gallery_mosaic_slider
{
  position: relative;
  width: 100%;
  margin-top: 20px;
}

/* Espaçamento entre slides */
.gallery_mosaic_slider .splide__slide
{
  width: auto;
  min-width: 0;
  margin-right: 12px;
}

/* Link da imagem */
.gallery_mosaic_slide
{
  display: block;
  width: auto;
}

/* Imagens */
.gallery_mosaic_slider img
{
  display: block;
  width: auto;
  height: auto;
  max-width: none;
  max-height: 320px;
  border-radius: 12px;
}

/* =========================================
Splide arrows
========================================= */
.gallery_mosaic_slider .splide__arrow
{
  width: 40px;
  height: 40px;
  background: var(--ib-primary);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.gallery_mosaic_slider:hover .splide__arrow
{
  opacity: 0.85;
}

.gallery_mosaic_slider .splide__arrow svg
{
  fill: #fff;
}

.gallery_mosaic_slider .splide__arrow:disabled
{
  opacity: 0;
}

/* =========================================
Pagination
========================================= */
.gallery_mosaic_slider .splide__pagination
{
  position: relative;
  bottom: auto;
  margin-top: 16px;
}

.gallery_mosaic_slider .splide__pagination__page
{
  width: 8px;
  height: 8px;
  margin: 4px;
  background: currentColor;
  opacity: 0.25;
}

.gallery_mosaic_slider .splide__pagination__page.is-active
{
  background: var(--ib-primary);
  opacity: 1;
}

/* =========================================
Lightbox
========================================= */
.gallery-lightbox
{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 12, 16, 0.86);
}

.gallery-lightbox__inner
{
  max-width: 90vw;
  max-height: 90vh;
}

.gallery-lightbox__inner img
{
  display: block;
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 12px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
}

body.lightbox-open
{
  overflow: hidden;
}

/* =========================================
Mobile
========================================= */
@media (max-width: 767px)
{
  .gallery_mosaic_module
  {
    padding: 30px 24px 20px;
  }
  .gallery_mosaic_module__heading
  {
    font-size: 26px;
  }
  .gallery_mosaic_slider img
  {
    max-height: 260px;
  }
  .gallery_mosaic_slider .splide__arrow
  {
    display: none;
  }
}

/* =========================================================
Meeting Rooms Grid
========================================================= */
#meeting-rooms-grid,
#hotdesk-rooms-grid
{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  max-width: 1220px;
  margin: 0 auto;
  padding: 66px 0px;
  background: transparent;
}

#hotdesk-rooms-grid
{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* =========================================================
Card
========================================================= */
#meeting-rooms-grid .feature-card,
#hotdesk-rooms-grid .feature-card
{
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(22, 58, 44, 0.12);
}

/* =========================================================
Image
========================================================= */
#meeting-rooms-grid .feature-card__image,
#hotdesk-rooms-grid .feature-card__image
{
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
}

#meeting-rooms-grid .feature-card__image img,
#hotdesk-rooms-grid .feature-card__image img
{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 0.5s ease;
}

/* Image hover */
#meeting-rooms-grid .feature-card:hover .feature-card__image img,
#hotdesk-rooms-grid .feature-card:hover .feature-card__image img
{
  transform: scale(1.05);
}

/* =========================================================
Content
========================================================= */
#meeting-rooms-grid .feature-card__scrim,
#hotdesk-rooms-grid .feature-card__scrim
{
  position: relative;
  inset: auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 24px;
  background: #fff;
}

/* Remove overlay completely */
#meeting-rooms-grid .feature-card__scrim::before,
#hotdesk-rooms-grid .feature-card__scrim::before,
#meeting-rooms-grid .feature-card__scrim::after,
#hotdesk-rooms-grid .feature-card__scrim::after
{
  display: none;
}

/* =========================================================
Meta
========================================================= */
#meeting-rooms-grid .feature-card__meta,
#hotdesk-rooms-grid .feature-card__meta
{
  font-size: 10.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ib-primary);
  font-weight: 700;
}

/* =========================================================
Title
========================================================= */
#meeting-rooms-grid .feature-card__title,
#hotdesk-rooms-grid  .feature-card__title
{
  margin: 8px 0 10px;
  font-size: 19px;
  font-weight: 700;
  font-family: var(--ib-font);
  color: var(--ib-text);
}

#meeting-rooms-grid .feature-card__title a,
#hotdesk-rooms-grid .feature-card__title a
{
  color: var(--ib-text);
  text-decoration: none;
}

/* =========================================================
Features
========================================================= */
#meeting-rooms-grid .feature-card__features p,
#hotdesk-rooms-grid .feature-card__features p
{
  margin: 0;
  color: var(--ib-muted-green);
  line-height: 1.7;
  flex: 1;
}

/* =========================================================
Actions
========================================================= */
#meeting-rooms-grid .feature-card__details-link,
#hotdesk-rooms-grid .feature-card__details-link
{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  padding: 10px 0;
  color: var(--ib-secondary, #163a2c);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 700;
  text-decoration: none;
  transition:
        gap 0.2s ease,
        opacity 0.2s ease;
}

#meeting-rooms-grid .feature-card__details-link:hover,
#hotdesk-rooms-grid .feature-card__details-link:hover
{
  gap: 9px;
  opacity: 0.75;
}

/* =========================================================
Book Now Button
========================================================= */
#meeting-rooms-grid .feature-card__button,
#hotdesk-rooms-grid .feature-card__button
{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-top: 4px;
  padding: 10px 16px;
  color: #fff;
  background: var(--ib-secondary, #163a2c);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--ib-secondary, #163a2c);
  transition:
        background 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

#meeting-rooms-grid .feature-card__button::after,
#hotdesk-rooms-grid .feature-card__button::after
{
  content: " →";
}

#meeting-rooms-grid .feature-card__button:hover,
 #hotdesk-rooms-grid .feature-card__button:hover
{
  background: transparent;
  color: var(--ib-secondary, #163a2c);
  transform: translateY(-1px);
}

/* =========================================================
Tablet
========================================================= */
@media (max-width: 991px)
{
  #meeting-rooms-grid,
     #hotdesk-rooms-grid
  {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 50px 30px 20px;
  }
}

/* =========================================================
Mobile
========================================================= */
@media (max-width: 640px)
{
  #meeting-rooms-grid,
     #hotdesk-rooms-grid
  {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 40px 20px 20px;
  }
  #meeting-rooms-grid .feature-card__image img,
     #hotdesk-rooms-grid .feature-card__image img
  {
    aspect-ratio: 16 / 10;
  }
  #meeting-rooms-grid .feature-card__scrim,
     #hotdesk-rooms-grid .feature-card__scrim
  {
    padding: 20px;
  }
  #meeting-rooms-grid .feature-card__title,
     #hotdesk-rooms-grid .feature-card__title
  {
    font-size: 21px;
  }
}

/* =========================================================
IPL Mega Menu
========================================================= */
.site-menu-overlay__search form
{
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  max-width: 560px;
  margin: 0;
  border-bottom: 1.5px solid rgba(22, 58, 44, 0.35);
}

.site-menu-overlay__search .search-field
{
  flex: 1;
  border: 0;
  background: none;
  padding: 13px 0;
  font-size: 15px;
  font-family: inherit;
  color: var(--ib-text);
}

.site-menu-overlay__search .search-form::before
{
  content: "";
  width: 17px;
  height: 17px;
  flex: none;
  background: var(--ib-muted-green);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.menu-close
{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid rgba(22, 58, 44, 0.35);
  background: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: var(--ib-secondary);
  flex: none;
  transition: background var(--ib-transition), color var(--ib-transition);
}

.ib-menu__eyebrow
{
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--ib-primary);
  font-weight: 700;
  margin-bottom: 26px;
}

.ipl-mm-inner .ipl-mm-col.ipl-mm-col--1 li,
.ipl-mm-mobile-list li
{
  border-top: 1px solid var(--ib-border);
}

.ipl-mega-menu .ipl-mm-item.has-children:not(.is-open) > a > .ipl-mm-linktext::after
{
  opacity: 1;
  transform: scaleX(0) !important;
}

.ipl-mega-menu .ipl-mm-item.has-children.is-open > a > .ipl-mm-linktext::after
{
  opacity: 1;
  transform: scaleX(0) !important;
  background: var(--ipl-mm-line-color) !important;
}

.ipl-mega-menu .ipl-mm-linktext::after
{
  content: none !important;
}

.ipl-mm-item.has-children > a
{
  position: relative;
}

.ipl-mm-item.has-children > a::after
{
  content: "";
  position: absolute;
  top: 50%;
  right: 4px;
  width: 8px;
  height: 8px;
  border: solid var(--ib-primary);
  border-width: 0 2px 2px 0;
  transform: translateY(-50%) rotate(-45deg);
  pointer-events: none;
}

.ipl-mm-m-row span
{
  position: relative;
  font-size: 1.5rem;
}

.ipl-mm-m-item.has-children > .ipl-mm-m-row > a > span::after
{
  content: "";
  position: absolute;
  right: 10%;
  border: solid var(--ib-primary);
  border-width: 0 2px 2px 0;
  width: 13px;
  height: 13px;
  cursor: pointer;
  -webkit-transform: rotate(-45deg) translate(0, -50%) !important;
  opacity: 1;
  top: 50%;
  left: unset;
  background: transparent;
}

.ipl-mega-menu a:hover
{
  color: var(--ib-primary) !important;
}

/* Shift via transform (not padding) so the line doesn't reflow — padding on the inline <a>
pushed the 100%-wide .ipl-mm-linktext onto a new line in Firefox. */
.ipl-mega-menu a .ipl-mm-linktext
{
  transition: transform .2s ease;
}

.ipl-mega-menu a:hover .ipl-mm-linktext
{
  transform: translateX(8px);
}

.ipl-mega-menu .pl-mm-item .ipl-mm-linktext::after
{
  content: none !important;
  display: none !important;
}

@media (max-width: 899px)
{
  .ipl-mm-m-item.has-children > .ipl-mm-m-row > a::after
  {
    content: "";
    position: absolute;
    margin-top: 10%;
    border: solid var(--gold);
    border-width: 0 2px 2px 0;
    width: 13px;
    height: 13px;
    cursor: pointer;
    -webkit-transform: rotate(-45deg) translate(0, -50%);
    opacity: 1;
  }
}

/* ========================================
OVERRIDE — match the reference example (ib-contact)
======================================== */
.contact_form_split_module
{
  background: var(--ib-bg) !important;
}

.section_heading
{
  margin-bottom: 22px;
}

.section_heading h2
{
  margin-bottom: 6px;
}

/* ---------- Addresses ---------- */
.contact_form_split_module__items
{
  gap: 22px !important;
}

.contact_form_split_module__label
{
  font-size: 12px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  color: var(--ib-primary) !important;
  margin-bottom: 4px !important;
}

.contact_form_split_module__text
{
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--ink-2, #4A5240) !important;
}

/* ---------- Form container ---------- */
.contact_form_split_module__form
{
  background: #fff !important;
  border: 1px solid rgba(22,58,44,0.1) !important;
  border-radius: 16px !important;
  padding: 38px 40px !important;
  box-shadow: none !important;
}

/* ---------- Name: First / Last side by side ---------- */
.contact_form_split_module__form .ginput_complex
{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
}

.contact_form_split_module__form .name_first,
.contact_form_split_module__form .name_last
{
  width: 100% !important;
}

/* ---------- Legends (Interested in / Location) ---------- */
.contact_form_split_module__form legend.gfield_label
{
  font-size: 12px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--ib-muted-green, #3D5A26) !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
}

/* ---------- Checkboxes turned into pill "chips" ---------- */
.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour) .ginput_container_checkbox
{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour) .gfield_checkbox
{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
}

.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour) .gchoice
{
  margin: 0 !important;
}

.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour)  .gchoice label
{
  display: inline-flex !important;
  align-items: center !important;
  font-size: 13px !important;
  border: 1px solid rgba(20,33,15,0.3) !important;
  border-radius: 999px !important;
  padding: 7px 15px !important;
  cursor: pointer !important;
  color: var(--pine, #14210F) !important;
  transition: .2s !important;
}

/* hide the native checkbox input */
.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour)  .gfield-choice-input
{
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  pointer-events: none !important;
}

/* checked state */
.contact_form_split_module__form .gfield--type-checkbox:not(.book-tour) .gchoice:has(.gfield-choice-input:checked) label
{
  background: #001534 !important;
  border-color: #001534 !important;
  color: #fff !important;
}

/* ---------- Textarea (message field) ---------- */
.contact_form_split_module__form .ginput_container_textarea textarea
{
  margin-top: 0 !important;
  min-height: 110px !important;
}

.contact_form_split_module__form #field_1_10
{
  margin-top: 4px !important;
}

/* ---------- Submit button: full width with arrow ---------- */
.contact_form_split_module__form .gform_footer
{
  margin-top: 20px !important;
}

.contact_form_split_module__form .gform_button
{
  background: var(--ib-primary) !important;
  color: var(--ib-cream) !important;
}

.contact_form_split_module__form .gform_button::after
{
  content: "→";
}

/* ---------- Responsive: name fields stack on small screens ---------- */
@media (max-width: 560px)
{
  .contact_form_split_module__form .ginput_complex
  {
    grid-template-columns: 1fr !important;
  }
}

/* COMPONENT: Footer */
.site-footer
{
  background: var(--ib-footer-bg, #0f172a);
  color: var(--ib-bg, #fff);
  padding: 0;
  border-top: 2px solid var(--ib-accent-gold);
}

.site-footer__inner
{
  max-width: 1240px;
  margin: 0 auto;
  display: block;
  gap: 0;
}

/* Top: brand + socials */
.site-footer__top
{
  max-width: 1240px;
  margin: 0 auto;
  padding: 56px 40px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.site-footer__brand .site-logo img
{
  max-height: 90px;
  width: auto;
  filter: invert(1);
}

.site-footer__socials
{
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: center;
}

.site-footer__socials a
{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ib-soft-green, #9fb3a8);
  transition: color .2s ease;
}

.site-footer__socials a:hover
{
  color: var(--ib-accent-gold, #c9a35c);
}

/* Widgets grid (4 columns like the example) */
.site-footer__widgets
{
  padding: 44px 40px 30px;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.4fr;
  gap: 44px;
}

@media (max-width: 900px)
{
  .site-footer__widgets
  {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }
}

.footer-col .widget-title
{
  font-family: var(--ib-heading-font, inherit);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ib-soft-green, #9fb3a8);
  font-weight: 700;
  margin-bottom: 16px;
}

.footer-col .textwidget
{
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ib-line-green, #c7d3cb);
  max-width: 300px;
}

.footer-col .textwidget p
{
  margin: 0 0 10px;
}

/* Nav menu columns (Locations / Explore) */
.footer-col .menu
{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 13.5px;
}

.footer-col .menu a
{
  color: var(--ib-bg, #fff);
  transition: color .2s ease;
}

.footer-col .menu a:hover
{
  color: var(--ib-accent-gold, #c9a35c);
}

/* "Grow with us" CTA column */
.footer-col .ib-btn
{
  display: inline-block;
  margin-top: 6px;
  padding: 10px 20px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
}

.footer-col .ib-btn--gold
{
  background: var(--ib-accent-gold, #c9a35c);
  color: #0f172a;
}

/* Bottom copyright bar */
.site-footer__extra
{
  border-top: 1px solid rgba(255,255,255,.12);
  max-width: 1240px;
  margin: 0 auto;
  padding: 18px 40px;
  font-size: 12px;
  color: var(--ib-soft-green, #9fb3a8);
  display: flex;
  justify-content: space-between;
}

.site-footer__extra .widget-title
{
  display: none;

  /* "Footer" title do WP não existe no exemplo */
}

.site-footer__extra .textwidget
{
  margin: 0;
}

.site-footer__bar
{
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 40px 20px;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 12px;
}

.site-footer__bar-links a
{
  color: var(--ib-soft-green, #9fb3a8);
}

.site-footer a
{
  color: inherit;
  text-decoration: none;
}

@media (max-width: 767px)
{
  .testimonials_module
  {
    padding: 60px 24px !important;
  }
  .site-menu-overlay__search
  {
    display: none;
  }
}

/* ============================================================
FOUR CS ABOUT US — override to match the example markup
============================================================ */
#four_cs_about_us
{
  padding-top: 40px;
  padding-bottom: 20px;
  margin-bottom: 50px;
}

/* Header */
#four_cs_about_us .feature_grid_module__header
{
  text-align: center;
  max-width: 620px;
  margin: 0 auto;
}

#four_cs_about_us .ib-kicker
{
  justify-content: center;
}

#four_cs_about_us .section_heading h2
{
  font-size: 40px;
  margin: 12px 0 0;
}

/* Description */
#four_cs_about_us .feature_grid_module__description
{
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
}

#four_cs_about_us .feature_grid_module__description p
{
  font-size: 16px;
  line-height: 1.7;
  color: var(--ib-muted-green);
  margin-top: 16px;
}

/* Grid */
#four_cs_about_us .feature_grid_module__grid
{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 44px;
}

/* Cards */
#four_cs_about_us .feature_grid_module__card
{
  display: block;
  position: static;
  background: var(--ib-surface);
  border: 1px solid var(--ib-border);
  border-radius: var(--ib-radius-lg);
  padding: 30px 26px;
  box-shadow: none;
  text-decoration: none;
  color: var(--ib-text);
  cursor: default;
}

/* Number (01, 02, 03, 04) — large number, no badge style */
#four_cs_about_us .feature_grid_module__highlight
{
  position: static;
  display: block;
  background: none;
  padding: 0;
  border-radius: 0;
  font-family: var(--ib-heading-font);
  font-size: 34px;
  font-weight: 100;
  color: var(--ib-primary);
  line-height: 1;
  letter-spacing: normal;
}

/* Card title */
#four_cs_about_us .feature_grid_module__title
{
  font-family: var(--ib-heading-font);
  font-size: 22px;
  color: var(--ib-text);
  margin: 16px 0 0;
}

/* Card description */
#four_cs_about_us .feature_grid_module__desc
{
  font-family: var(--ib-font);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ib-muted-green);
  margin-top: 10px;
}

/* ============================================================
RESPONSIVE
============================================================ */
@media (max-width: 900px)
{
  #four_cs_about_us .feature_grid_module__grid
  {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 20px;
  }
}

@media (max-width: 600px)
{
  #four_cs_about_us
  {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  #four_cs_about_us .feature_grid_module__description p
  {
    font-size: 16px;
  }
  #four_cs_about_us .feature_grid_module__grid
  {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 36px;
  }
}

/* =========================================================
TESTIMONIALS — TRUSTINDEX
========================================================= */

/* ---------------------------------------------------------
HEADER
--------------------------------------------------------- */
#Testemonials_code .shortcode_module__eyebrow
{
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 12px;
  color: var(--ib-primary);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
}

#Testemonials_code .shortcode_module__heading
{
  margin: 0;
  color: var(--ib-secondary);
  font-family: var(--ib-heading-font);
  font-size: var(--ib-h2-size);
  font-weight: 400;
  line-height: 1.05;
  text-align: center;
}

/* ---------------------------------------------------------
CONTENT
--------------------------------------------------------- */
.home #features .feature-card__details-link
{
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ib-accent-gold);
}

#see_availability h2
{
  font-size: 30px;
  margin-bottom: 6px;
}

#see_availability h2:after
{
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin-top: 0;
  background: var(--ib-primary);
  margin-top: 6px;
}

#see_availability .shortcode_module__description
{
  font-size: 16px;
  line-height: 1.7;
  color: var(--ib-muted-green);
  max-width: 640px;
  margin: 22px 0;
}

/*===============================================================================
WOOOCOMERCE CHECKOUT
===============================================================================*/
.woocommerce-info
{
  font-size: 13.5px;
  color: var(--ib-muted-green);
  background: var(--ib-surface);
  border-top: 3px solid var(--ib-accent-gold);
  border-radius: 2px;
  box-shadow: 0 1px 0 rgba(0, 21, 52, 0.08);
  padding: 16px 20px;
  margin-bottom: 18px;
}

.woocommerce-info::before
{
  content: unset;
}

.woocommerce-info a
{
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
  color: var(--ib-primary);
  text-decoration: underline;
}

.woocommerce form.checkout_coupon
{
  background: var(--ib-surface);
  border: 1px solid rgba(0, 21, 52, 0.14);
  border-radius: 2px;
  padding: 18px 20px;
  margin-top: unset;
  margin-bottom: 26px;
}

.ib-wc-coupon__note
{
  font-size: 13.5px;
  color: var(--ib-muted-green);
  margin: 0 0 12px;
}

.ib-wc-coupon__row
{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.ib-wc-coupon__row .input-text
{
  flex: 1;
  min-width: 200px;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--ib-text);
  background: var(--ib-surface);
  border: 1px solid rgba(0, 21, 52, 0.22);
  border-radius: 2px;
  padding: 12px 14px;
  width: 100%;
  box-sizing: border-box;
}

.woocommerce-billing-fields h3,
.woocommerce-checkout-review-order h3
{
  font-family: var(--ib-heading-font);
  font-size: 26px;
  color: var(--ib-secondary);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ib-gold-line);
  margin: 0 0 20px;
}

.woocommerce-billing-fields__field-wrapper label
{
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ib-secondary);
  margin-bottom: 6px;
}

.woocommerce-billing-fields__field-wrapper .required
{
  color: var(--ib-primary);
  text-decoration: none;
  border: 0;
}

.woocommerce-billing-fields__field-wrapper input
{
  font-family: inherit !important;
  font-size: 14.5px !important;
  color: var(--ib-text) !important;
  background: var(--ib-surface) !important;
  border: 1px solid rgba(0, 21, 52, 0.22) !important;
  border-radius: 2px !important;
  padding: 12px 14px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.ib-wc-order
{
  background: var(--ib-surface);
  border: 1px solid rgba(0, 21, 52, 0.14);
  border-radius: 2px;
  padding: 24px;
}

.woocommerce table.shop_table
{
  border: unset !important;
  margin: unset !important;
}

.woocommerce table th
{
  padding: 12px 0;
}

.woocommerce-checkout-review-order table
{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.woocommerce-checkout-review-order table thead th
{
  font-size: 11px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #8b93a1;
  border-bottom: 1px solid rgba(0, 21, 52, 0.16);
  padding-bottom: 10px;
}

.woocommerce-checkout-review-order table td
{
  border-bottom: 1px solid rgba(0, 21, 52, 0.1);
  color: var(--ib-text);
}

.order-total th,
.order-total td
{
  font-family: var(--ib-heading-font);
  font-size: 22px;
  color: var(--ib-secondary);
  padding: 9px 12px !important;
    border-bottom: 0;
  font-weight: 400 !important;
}

#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment
{
  background: transparent !important;
}

.wc_payment_methods.payment_methods.methods
{
  border-bottom: unset !important;
}

.woocommerce-privacy-policy-text
{
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ib-muted-green);
  margin: 20px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(0, 21, 52, 0.16);
}

#place_order
{
  width: 100%;
  justify-content: center;
  padding: 16px;
  margin-top: 18px;
  background: var(--ib-primary);
  color: var(--ib-cream);
}

#cart_shortcode,
#checkout_shortcode
{
  padding-left: unset;
  padding-right: unset;
}

.woocommerce-account .woocommerce-MyAccount-navigation
{
  background: var(--ib-surface);
  border: 1px solid rgba(0, 21, 52, 0.14);
  border-radius: 2px;
  overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation  ul
{
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation  ul li
{
  border-bottom: 1px solid rgba(0, 21, 52, 0.1);
}

.woocommerce-account .woocommerce-MyAccount-navigation  ul li a
{
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ib-text);
  padding: 14px 18px;
}

.woocommerce-account .woocommerce-MyAccount-navigation  ul li a:hover
{
  background: var(--ib-surface);
  color: var(--ib-primary);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul  li.is-active a
{
  background: var(--ib-surface);
  color: var(--ib-secondary);
  box-shadow: inset 3px 0 0 var(--ib-accent-gold);
}

.ib-ac-h
{
  font-family: var(--ib-heading-font);
  font-size: 26px;
  color: var(--ib-secondary);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ib-gold-line);
  margin: 0 0 20px;
}

.edit-account label
{
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ib-secondary);
  margin-bottom: 6px;
}

.edit-account input
{
  font-family: inherit !important;
  font-size: 14.5px !important;
  color: var(--ib-text) !important;
  background: var(--ib-surface) !important;
  border: 1px solid rgba(0, 21, 52, 0.22) !important;
  border-radius: 2px !important;
  padding: 12px 14px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.password_change
{
  margin-top: 30px;
  border: unset;
}

.password_change legend
{
  font-family: var(--ib-heading-font);
  font-size: 26px;
  color: var(--ib-secondary);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ib-gold-line);
  margin: 0 0 20px;
}

.woocommerce-orders-table__header
{
  font-size: 11px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #5C6472;
  text-align: left;
  padding: 14px 12px !important;
}

.woocommerce-orders-table__header:first-child,
th.woocommerce-orders-table__cell
{
  padding-left: 0;
}

.woocommerce-orders-table__cell
{
  color: var(--ib-text);
  text-align: left;
  padding: 14px 12px !important;
}

.woocommerce-orders-table__cell a
{
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ib-primary) !important;
  white-space: nowrap !important;
  background-color: transparent !important;
}

.ib-ac-bookings
{
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ib-ac-booking
{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  background: var(--ib-surface);
  border: 1px solid rgba(0,21,52,0.14);
  border-radius: 2px;
  padding: 20px;
}

.ib-ac-booking
{
  align-items: center;
}

.ib-ac-booking.is-past
{
  opacity: .78;
}

.ib-ac-booking__when
{
  flex: none;
  display: grid;
  place-items: center;
  width: 58px;
  padding: 10px 0;
  background: var(--ib-secondary);
  border-radius: 2px;
}

.ib-ac-booking__day
{
  font-family: var(--ib-heading-font);
  font-size: 24px;
  line-height: 1;
  color: #fff;
}

.ib-ac-booking__mon
{
  font-size: 10.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ib-accent-gold);
  margin-top: 4px;
}

.ib-ac-booking__body
{
  flex: 1;
  min-width: 0;
}

.ib-ac-next__side
{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
}

.ib-ac-booking:not(.is-past):last-child
{
  margin-bottom: 34px !important;
}

.ib-ac-booking.is-past
{
  opacity: 0.6 !important;
}

/*this is for solve a image that is never aling in the center*/
.aligncenter
{
  margin: 0 auto;
}

.woocommerce-form-coupon-toggle
{
  display: none !important;
}

.woocommerce-form-coupon
{
  display: block !important;
}

#only_features .ib-loc-detail
{
  grid-template-columns: unset;
}

#only_features .ib_amenity__icon
{
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 0;
  background: transparent;
  border: 1px solid var(--ib-gold-line);
  color: var(--ib-bronze);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.post-hero img
{
  margin: 0 auto;
}

.ib-ac-top-rooms
{
  margin-top: 30px;
}

.gfield--type-checkbox.book-tour
{
  margin: 20px 0 0;
  padding: 18px 20px 20px;
  border: 1px solid #d4d4d4;
  border-radius: 2px;
  background: #fff;
  min-width: 0;
}

.gfield--type-checkbox.book-tour legend
{
  padding: 0 8px;
  margin-left: -8px;
}

.gfield--type-checkbox.book-tour label
{
  font-size: 15px;
  font-weight: 700;
  color: var(--ib-secondary);
}

.woocommerce-error, .woocommerce-info, .woocommerce-message
{
  padding: 1em 2em 1em 3.5em !important;
}

.ipl-mega-menu .ipl-mm-list
{
  width: fit-content;
  max-width: 100%;
}

.ipl-mega-menu .ipl-mm-linktext
{
  position: relative;
  display: block;
  width: 100%;
  white-space: normal;
  box-sizing: border-box;
}

.ipl-mega-menu .ipl-mm-item.has-children > a > .ipl-mm-linktext
{
  padding-right: 60px;
}

.gform_required_legend
{
  display: none;
}

.ipl-mega-menu .ipl-mm-col
{
  flex: 0 0 auto !important;
  width: fit-content;
  max-width: 30%;
}

.ipl-mm-col--2,
.ipl-mm-col--3
{
  padding: 0 40px;
}

/*.ipl-mm-col--2:has(.is-visible),
.ipl-mm-col--3:has(.is-visible) {
border-left: 1px solid var(--ib-border);
}*/
