/* gb-fixes.css — responsive/layout fixes. Loaded after all theme CSS. */

/* ---------- 1. Header: grid layout so logo / nav / buttons can never collide ---------- */
@media (min-width:1101px){
  .qodef-header-standard--center #qodef-page-header-inner .qodef-header-wrapper{
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:clamp(10px,1.4vw,28px)}
  .qodef-header-standard--center #qodef-page-header-inner .qodef-header-logo,
  .qodef-header-standard--center #qodef-page-header-inner .qodef-widget-holder{position:static;height:auto}
  .qodef-header-standard--center #qodef-page-header-inner .qodef-header-logo{height:100%}
  .qodef-header-standard--center #qodef-page-header-inner .qodef-header-navigation{margin:0;justify-self:center;min-width:0}
  .qodef-header-standard--center #qodef-page-header-inner .qodef-widget-holder{display:flex;align-items:center;gap:clamp(8px,1vw,18px);white-space:nowrap}
  #qodef-page-header .qodef-header-navigation>ul>li,
  .qodef-header-sticky .qodef-header-navigation>ul>li{margin:0 clamp(7px,1.1vw,21px);white-space:nowrap}
  #qodef-page-header .qodef-header-navigation>ul>li>a,
  .qodef-header-sticky .qodef-header-navigation>ul>li>a{font-size:clamp(11px,.95vw,12px);letter-spacing:.08em}
  #qodef-page-header .qodef-widget-holder .qodef-button .qodef-m-text{white-space:nowrap}
}
/* Keep the full desktop header from 1025px up (theme switches at 1200px) */
@media (min-width:1101px) and (max-width:1200px){
  #qodef-page-header{display:inline-block}
  #qodef-page-mobile-header{display:none}
  body:not(.qodef-content-behind-header) #qodef-page-outer{margin-top:revert-layer!important}
  #qodef-page-header .qodef-widget-holder .qodef-button{padding-left:clamp(12px,1.6vw,22px);padding-right:clamp(12px,1.6vw,22px)}
}

/* ---------- 2. Pricing-table arches: equal height within a row ---------- */
.elementor-widget-container:has(>.qodef-pricing-table){height:100%;display:flex;flex-direction:column;padding-bottom:0!important;margin-bottom:0!important}
.elementor-widget:has(>.elementor-widget-container>.qodef-pricing-table){align-self:stretch}
.qodef-pricing-table{flex:1 1 auto;box-sizing:border-box}

/* ---------- 3. Footer logo (about half the previous size) ---------- */
#qodef-page-footer .wp-block-media-text__media img{width:min(100%,175px);height:auto}

/* ---------- 4. Calendar thumbnails: always square ---------- */
.calendar-image{width:80px;height:auto;aspect-ratio:1/1}
.calendar-image img{aspect-ratio:1/1}
@media (max-width:700px){
  /* same look as the Wellness cards: full-width photo, then date, title, button */
  .calendar-image{width:100%;height:auto;aspect-ratio:auto;border-radius:4px}
  .calendar-image img{width:100%;height:240px;aspect-ratio:auto;object-fit:cover}
}

/* ---------- 5. Wellness / event cards grid (no stretched last card) ---------- */
#eventbrite-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start}
#eventbrite-collection::after{content:none;display:none}
#eventbrite-collection .event-card{flex:none;min-width:0}
@media (max-width:992px){#eventbrite-collection{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){#eventbrite-collection{grid-template-columns:minmax(0,1fr)}}

/* ---------- 6. Interactive showcase sliders (home 2nd slider, Space Rental): mobile ---------- */
.qodef-interactive-link-showcase.qodef-layout--slider .qodef-m-images .qodef-m-image img{width:100%;height:100%;object-fit:cover;object-position:var(--gb-fx,50%) var(--gb-fy,40%)}
@media (max-width:767px){
  .qodef-interactive-link-showcase.qodef-layout--slider .swiper-container .swiper-wrapper{min-height:min(62vh,520px)}
  .qodef-interactive-link-showcase.qodef-layout--slider .qodef-m-item{width:100%!important;box-sizing:border-box;padding:0 22px}
  .qodef-interactive-link-showcase.qodef-layout--slider .qodef-m-item:before,
  .qodef-interactive-link-showcase.qodef-layout--slider .qodef-m-item:after{display:none}
  .qodef-interactive-link-showcase.qodef-layout--slider .qodef-m-item .qodef-e-title{
    font-size:clamp(32px,10.5vw,52px);line-height:1.08;letter-spacing:.03em;white-space:normal;overflow-wrap:break-word;text-wrap:balance}
}

/* ---------- 7. Invisible Instagram feed block (its script isn't part of the static export) ---------- */
.e-con:has(>.elementor-widget #sb_instagram),.e-con:has(#sb_instagram):not(:has(#eventbrite-collection)){display:none!important}
#sb_instagram{display:none!important}

/* ---------- 8. Forms: guests hint ---------- */
.cf7-hint{display:block;margin-top:4px;font-size:.8rem;opacity:.75}

/* ---------- 9. Header logo: same width on every page ---------- */
@media (min-width:1101px){
  #qodef-page-header .qodef-header-logo-link img{width:clamp(105px,11vw,150px)!important;height:auto!important;max-width:none}
}

/* ---------- 10. Inquiry form: single column, tighter spacing ---------- */
form[data-inquiry] .cf7-grid{display:block}
form[data-inquiry] .cf7-field{margin:0 0 14px;min-width:0}
form[data-inquiry] .cf7-field label{margin:0;line-height:1.3}
form[data-inquiry] .cf7-field input,form[data-inquiry] .cf7-field select,form[data-inquiry] .cf7-field textarea{width:100%;max-width:100%;box-sizing:border-box}
form[data-inquiry] .cf7-field input,form[data-inquiry] .cf7-field select{height:44px;min-height:0;margin:0}
form[data-inquiry] .cf7-field textarea{height:90px;min-height:0}
form[data-inquiry] .cf7-field .wpcf7-form-control-wrap{display:block}
form[data-inquiry] .cf7-hint{margin-top:2px}
form[data-inquiry] .cf7-submit{margin-top:8px}
/* centre the form column against the photo; keep the date input inside the column (iOS Safari) */
@media (min-width:768px){.e-con:has(>.elementor-widget form[data-inquiry]){justify-content:center}}
form[data-inquiry] input[type=date]{display:block;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}

/* ---------- 11. Qi masonry galleries (Last-Minute page): their init script is not in the export, so never hide them ---------- */
.qodef-qi-grid.qodef-layout--qi-masonry>.qodef-grid-inner{visibility:visible!important}

/* ---------- 12. Round 2 (Oct 8 brief) ---------- */
/* side-area + mobile-menu contact blocks */
.gb-btn{display:inline-block;padding:14px 26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;text-align:center;border:1px solid #fff;line-height:1.2;transition:background .2s,color .2s}
.gb-btn--solid,.gb-btn--solid:visited{background:#fff;color:#0B2121!important}
.gb-btn--solid:hover{background:transparent;color:#fff!important}
.gb-btn--outline,.gb-btn--outline:visited{background:transparent;color:#fff!important}
.gb-btn--outline:hover{background:#fff;color:#0B2121!important}
.gb-side-cta{display:flex;flex-direction:column;gap:12px;margin-top:26px;max-width:260px}
.gb-mobile-contact{padding:22px 24px 12px;text-align:left;box-sizing:border-box}
.gb-mobile-cta{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.gb-mobile-contact__title{margin:0 0 8px;font-size:22px;line-height:1.2}
.gb-mobile-contact p{margin:0 0 12px;font-size:15px;line-height:1.7}
.gb-mobile-contact a:not(.gb-btn){color:inherit;text-decoration:none}
.gb-mobile-contact__social a{text-transform:uppercase;letter-spacing:.12em;font-size:13px}
/* pricing cards: titles/content/buttons align across the row (no spacer paragraphs) */
.qodef-pricing-table{display:flex;flex-direction:column}
.qodef-pricing-table>.qodef-m-inner{flex:1 1 auto;display:flex;flex-direction:column}
.qodef-pricing-table .qodef-m-content{flex:1 1 auto}
.qodef-pricing-table .qodef-m-button{margin-top:auto}
@media (max-width:767px){
  /* home reviews */
  .qodef-testimonials-list{padding:0 26px;box-sizing:border-box}
  .qodef-testimonials-list .qodef-e-text{font-size:clamp(19px,5.2vw,23px);line-height:1.32;margin-bottom:14px}
  .qodef-testimonials-list .qodef-e-inner{padding-bottom:30px}
  /* readable text blocks never touch the screen edges */
  .elementor-element-a17caad .elementor-widget-container{padding-left:22px;padding-right:22px}
  /* photo galleries: two columns */
  .qodef-image-gallery.qodef-grid{width:100%!important;max-width:100%!important;align-self:stretch}
  .qodef-image-gallery.qodef-grid>.qodef-grid-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}
  .qodef-image-gallery.qodef-grid>.qodef-grid-inner>.qodef-grid-item{width:auto!important;max-width:none!important;margin:0!important}
}

/* ---------- 13. Wellness page (mobile): less empty green between the categories and Upcoming Events ---------- */
@media (max-width:767px){
  .elementor-element-834d138 .qodef-image-with-text{display:block!important;height:auto!important}
  .elementor-element-834d138>.e-con-inner{padding-bottom:36px!important}
  .elementor-element-2f2d0ed>.e-con-inner{padding-top:40px!important}
}

/* ---------- 14. Mobile: photo first, then the intro text and the first Inquire Now button ---------- */
@media (max-width:767px){
  .elementor-element-4157378,.elementor-element-f826c0e,.elementor-element-4d2c573{display:flex;flex-direction:column}
  .elementor-element-56a8215,.elementor-element-edebce8,.elementor-element-9298e17{order:-1}
}

/* ---------- 15. Wedding tour button ---------- */
.gb-tour-cta{margin-top:14px}
.gb-tour-cta .gb-btn{font-weight:900;padding:17px 30px}

/* ---------- 16. Mobile: breathing room between Reserve / Visit / Join; two cropped hero photos ---------- */
@media (max-width:767px){
  .elementor-element-b58c5a6{row-gap:20px!important;gap:20px!important}
  /* photo 1 (above the text) and photo 2 (below the buttons), both cropped */
  .elementor-element-56a8215 .qodef-m-image img,.elementor-element-edebce8 .qodef-m-image img,.elementor-element-9298e17 .qodef-m-image img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:50% 35%}
  .gb-hero2 .qodef-m-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 50%}
  .gb-hero2{width:100%;margin-top:8px}
  .elementor-element-4157378,.elementor-element-f826c0e,.elementor-element-4d2c573{padding-top:0!important}
  .elementor-element-56a8215,.elementor-element-edebce8,.elementor-element-9298e17{margin-bottom:12px;padding-bottom:16px;height:auto!important;min-height:0!important}
  .elementor-element-56a8215 .elementor-widget,.elementor-element-edebce8 .elementor-widget,.elementor-element-9298e17 .elementor-widget,.elementor-element-56a8215 .elementor-widget-container,.elementor-element-edebce8 .elementor-widget-container,.elementor-element-9298e17 .elementor-widget-container{margin-top:0!important;height:auto!important;min-height:0!important}
}
@media (min-width:768px){.gb-hero2{display:none}}

/* ---------- 17. Wellness category pages (mobile): text keeps a comfortable distance from the screen edges ---------- */
@media (max-width:767px){
  .elementor-element-78926d7>.elementor-widget-container,.elementor-element-6db356e>.elementor-widget-container{padding-left:24px!important;padding-right:24px!important;box-sizing:border-box}
  .elementor-element-358fa46>.elementor-widget-container,.elementor-element-43e4447>.elementor-widget-container,.elementor-element-e834fad>.elementor-widget-container,.elementor-element-7fdf388>.elementor-widget-container,.elementor-element-0cd5713>.elementor-widget-container,.elementor-element-d4ab27d>.elementor-widget-container{padding-left:14px!important;padding-right:14px!important;box-sizing:border-box}
}
