/* ============================================================
   SITE BASE — SHARED FOUNDATIONS + REUSABLE COMPONENTS
   One source of truth for common site-wide CSS.
   Header and footer remain in their dedicated master files.
   ============================================================ */

/* ------------------------------------------------------------
   1. GLOBAL FOUNDATIONS
   ------------------------------------------------------------ */
.master-cta{padding:90px 5%;background:#111111;text-align:center;color:#ffffff;}
.master-cta-container>span{display:block;margin-bottom:16px;color:#b68b42;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;}
.master-cta-container h2{margin-bottom:22px;color:#ffffff;}
.master-cta-container p{max-width:700px;margin:0 auto 35px;color:rgba(255,255,255,.82);}
.master-cta-buttons{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:28px;}
.master-whatsapp-button,
.master-contact-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:220px;min-height:54px;padding:15px 28px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:.3s ease;}
.master-whatsapp-button{background:#237D49;border:2px solid #237D49;color:#ffffff;}
.master-whatsapp-button:hover{background:#1faa55;border-color:#1faa55;}
.master-contact-button{background:#b68b42;border:2px solid #b68b42;color:#ffffff;}
.master-contact-button:hover{background:#9d7537;border-color:#9d7537;}
.master-cta-trust{margin:0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.9;}
:root{--font-heading:"Cormorant Garamond",Georgia,"Times New Roman",serif;--font-body:Georgia,"Times New Roman",serif;}
body{margin:0;font-family:var(--font-body) ;font-size:16px ;line-height:1.75 ;letter-spacing:.008em ;font-weight:400;}
body h1,
body h2,
body h3,
body h4{font-family:var(--font-heading) ;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-top:0;}
body h1{font-size:clamp(34px,5vw,60px) ;line-height:1.08 ;font-weight:600 ;letter-spacing:-.01em ;}
body h2{font-size:clamp(29px,4vw,46px) ;line-height:1.14 ;font-weight:600 ;letter-spacing:-.005em ;}
body h3{font-size:clamp(22px,2.6vw,32px) ;line-height:1.2 ;font-weight:600 ;letter-spacing:0 ;}
body h4{font-size:clamp(19px,2vw,25px) ;line-height:1.28 ;font-weight:600 ;letter-spacing:.005em ;}
section p,
article p,
main p,
section li,
article li,
main li{font-family:var(--font-body) ;font-weight:400 ;letter-spacing:.008em ;}
section p,
article p,
main p{font-size:16px ;line-height:1.8 ;}
section li,
article li,
main li{font-size:16px ;line-height:1.75 ;}
section small,
article small,
main small{font-family:var(--font-body) ;line-height:1.6 ;letter-spacing:.02em ;}
.master-cta-container h2{font-family:var(--font-heading) ;font-size:46px ;line-height:1.25 ;font-weight:400 ;letter-spacing:.005em ;}
.master-cta-container p{font-family:var(--font-body) ;font-size:15px ;line-height:1.9 ;letter-spacing:.008em ;}
button,
a,
input,
textarea,
select{-webkit-tap-highlight-color:transparent;}
a{text-decoration:none;}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{outline:2px solid #b68b42;outline-offset:3px;}
:root{--luxury-gold:#b68b42;--luxury-gold-light:#d6ad63;--luxury-ink:#222222;--luxury-muted:#666666;--luxury-border:#e7dfd4;--luxury-surface:#f7f5f0;}
main p{text-wrap:pretty;}
[id]{scroll-margin-top:105px;}
.master-whatsapp-button,.master-contact-button,.contact-form-submit{border-radius:6px;}
.master-whatsapp-button,.master-contact-button,.contact-form-submit{box-shadow:0 5px 16px rgba(0,0,0,.08);}
.master-whatsapp-button:hover,.master-contact-button:hover,.contact-form-submit:hover{box-shadow:0 8px 22px rgba(0,0,0,.12);}
input,
select,
textarea{border-radius:5px;transition:border-color .25s ease, box-shadow .25s ease, background-color .25s ease;}
input:focus,
select:focus,
textarea:focus{box-shadow:0 0 0 3px rgba(182,139,66,.13);}
body.lightbox-open{overflow:hidden;}
.master-cta{display:block ;width:100% ;max-width:none ;margin:0 ;border:0 ;border-radius:0 ;box-shadow:none ;}
.master-cta-container{width:100% ;max-width:900px ;margin:0 auto ;border:0 ;border-radius:0 ;box-shadow:none ;background:transparent ;}
:root{--rat-gold:#b68b42;--rat-gold-light:#d6ad63;--rat-cream:#f7f5f0;--rat-ink:#171717;--rat-charcoal:#111111;}
body{font-family:Arial,Helvetica,sans-serif;color:#222;}
h1,
h2,
h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;}
:focus-visible{outline:2px solid #b68b42;outline-offset:3px;}
button,
a,
input,
select,
textarea{touch-action:manipulation;}
html,body{min-height:100%;}
body{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;padding-bottom:0;}
.floating-buttons{position:fixed;left:50%;right:auto;bottom:0;z-index:10010;width:min(560px,calc(100vw - 24px));display:flex;flex-direction:row;gap:8px;transform:translateX(-50%);transition:transform .35s ease,opacity .35s ease;}
.floating-buttons a{flex:1 1 0;display:flex;align-items:center;justify-content:center;min-width:0;height:54px;padding:0 14px;gap:9px;border:0;border-radius:14px 14px 0 0;color:#fff;text-decoration:none;font-family:Arial,Helvetica,sans-serif;font-size:15px;font-weight:600;line-height:1;box-shadow:0 -3px 14px rgba(0,0,0,.18);-webkit-tap-highlight-color:transparent;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;}
.floating-buttons a i{width:22px;flex:0 0 22px;font-size:20px;line-height:1;text-align:center;transition:transform .2s ease;}
.floating-buttons a span{display:inline-block;white-space:nowrap;}
.floating-buttons .call-btn{background:#b68b42;border:1px solid #c3974d;}
.floating-buttons .whatsapp-btn{background:#237d49;border:1px solid #2d8b59;}
.floating-buttons a:focus-visible{outline:3px solid #fff;outline-offset:-3px;}
.floating-buttons a:active{transform:scale(.98);filter:brightness(1.04);}
.floating-buttons.hide-floating{transform:translate(-50%,120%);opacity:0;pointer-events:none;}
body.contact-enquiry-active .floating-buttons{transform:translate(-50%,120%) ;opacity:0 ;pointer-events:none ;}
#car-rental .home-vehicle-grid{align-items:stretch;}
#car-rental .home-vehicle-card{height:100%;display:flex;flex-direction:column;}
#car-rental .home-vehicle-image{display:block;width:100%;aspect-ratio:3 / 2;height:auto;min-height:0;overflow:hidden;background:#f7f5f0;}
#car-rental .home-vehicle-image img{display:block;width:100%;height:100%;aspect-ratio:3 / 2;object-fit:contain;object-position:center;background:#f7f5f0;}
#car-rental .home-vehicle-content{display:flex;flex-direction:column;flex:1 1 auto;}
#car-rental .vehicle-card-cta{margin-top:auto;}
body.tour-enquiry-active .floating-buttons,
body.contact-enquiry-active .floating-buttons{opacity:0;pointer-events:none;transform:translateY(140%);}
#bus-rental-section .vehicle-grid-two{align-items:stretch;}
#bus-rental-section .vehicle-card{height:100%;display:flex;flex-direction:column;}
#bus-rental-section .vehicle-card-image{display:block;width:100%;aspect-ratio:3 / 2;overflow:hidden;background:#eee;}
#bus-rental-section .vehicle-card-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;visibility:visible;opacity:1;}
#bus-rental-section .vehicle-card-content{display:flex;flex-direction:column;flex:1 1 auto;}
#bus-rental-section .vehicle-card-actions{margin-top:auto;}
.tour-inline-enquiry .contact-method-option{display:flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #d8cbb8;background:#fffdf9;color:#5e564c;border-radius:5px;cursor:pointer;}
.tour-inline-enquiry .contact-method-option input{width:auto;min-height:auto;margin:0 8px 0 0;accent-color:#b88a3b;}
.tour-inline-enquiry .contact-method-option.is-selected{border-color:#b88a3b;background:#fbf3e4;color:#2f2a25;}
.tour-inline-enquiry .contact-email-wrap{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;}
.tour-inline-enquiry .contact-email-wrap[hidden],.tour-inline-enquiry .dynamic-service-field[hidden]{display:none ;}
.tour-inline-enquiry button.is-email{background:#b68b42;}
body.tour-enquiry-active .floating-buttons{transform:translate(-50%,120%) ;opacity:0 ;pointer-events:none ;}
.tour-inline-enquiry .contact-method-option,.tour-inline-enquiry .contact-method-option.is-selected{display:inline-flex;align-items:center;justify-content:flex-start;width:auto;min-width:0;min-height:0;padding:3px 0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#3f3931;}
.tour-inline-enquiry .contact-method-option input{width:auto;min-height:0;margin:0 7px 0 0;accent-color:#237D49;}
.tour-inline-enquiry .contact-method-option strong{font-size:14px;font-weight:700;line-height:1.2;}
.tour-inline-enquiry .contact-email-wrap{grid-column:1/-1;}
.contact-enquiry-form-compact .contact-method-option,.contact-enquiry-form-compact .contact-method-option.is-selected{width:auto;min-width:0;min-height:0;padding:3px 0;border:0;border-radius:0;background:transparent;box-shadow:none;}
.contact-enquiry-form-compact .contact-method-option input{width:auto;margin:0;accent-color:#237D49;}
.contact-enquiry-form-compact .contact-email-wrap{margin-top:10px;}
.contact-form-submit.is-email,.tour-inline-enquiry button[type="submit"].is-email{background:#b68b42;border-color:#b68b42;}
.contact-form-submit.is-email:hover,.tour-inline-enquiry button[type="submit"].is-email:hover{background:#9d7537;border-color:#9d7537;}
input[data-master-date],input.contact-time-input{cursor:pointer;}
html,body{width:100%;max-width:100%;overflow-x:hidden;}
*,*::before,*::after{box-sizing:border-box;}
img{max-width:100%;}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:900PX)
   ------------------------------------------------------------ */
@media (max-width:900px) {
.master-cta{padding:80px 20px;}
.master-cta-container h2{font-size:40px;}
.premium-experience-item,.premium-experience-item.large{grid-column:auto;grid-row:auto;min-height:230px;}
}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:650PX)
   ------------------------------------------------------------ */
@media (max-width:650px) {
.master-cta{padding:70px 20px;}
.master-cta-container h2{font-size:32px;}
.master-cta-container p{font-size:14px;}
.master-cta-buttons{flex-direction:column;}
.master-whatsapp-button,
.master-contact-button{width:100%;max-width:340px;}
.master-cta-trust{font-size:12px;line-height:1.8;}
}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:480PX)
   ------------------------------------------------------------ */
@media (max-width:480px) {
.master-cta-container h2{font-size:28px;}
}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:600PX)
   ------------------------------------------------------------ */
@media (max-width:600px) {
body{overflow-x:hidden;}
body{font-size:15.5px ;line-height:1.72 ;}
section p,
article p,
main p{font-size:15.5px ;line-height:1.78 ;}
section li,
article li,
main li{font-size:15.5px ;line-height:1.72 ;}
.master-cta-container h2{font-size:32px ;line-height:1.2 ;}
[id]{scroll-margin-top:84px;}
.floating-buttons{left:0;right:0;width:100%;max-width:none;padding:0 max(10px,env(safe-area-inset-right)) max(0px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));box-sizing:border-box;transform:translateY(0);}
.floating-buttons a{height:58px;padding:0 10px;gap:7px;border-radius:13px 13px 0 0;font-size:13px;}
.floating-buttons a i{width:20px;flex-basis:20px;font-size:18px;}
.floating-buttons.hide-floating{transform:translateY(120%);}
body.contact-enquiry-active .floating-buttons{transform:translateY(120%) ;}
body.tour-enquiry-active .floating-buttons,body.contact-enquiry-active .floating-buttons{transform:translateY(140%);}
}

/* ------------------------------------------------------------
   @MEDIA (PREFERS-REDUCED-MOTION:REDUCE)
   ------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce) {
html{scroll-behavior:auto;}
*,
*::before,
*::after{animation:none ;transition:none ;}
*,
*::before,
*::after{scroll-behavior:auto ;animation-duration:.01ms ;animation-iteration-count:1 ;transition-duration:.01ms ;}
.floating-buttons,.floating-buttons a,.floating-buttons a i{transition:none;}
}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:760PX)
   ------------------------------------------------------------ */
@media (max-width:760px) {
.travel-gallery-container,
.travel-gallery-grid,
.gallery-item{width:100% ;max-width:none ;}
}

/* ------------------------------------------------------------
   @MEDIA (HOVER:HOVER) AND (POINTER:FINE)
   ------------------------------------------------------------ */
@media (hover:hover) and (pointer:fine) {
.floating-buttons .call-btn:hover,.floating-buttons .whatsapp-btn:hover{transform:translateY(-4px) scale(1.015);filter:brightness(1.08);box-shadow:0 -8px 22px rgba(0,0,0,.28);}
.floating-buttons .call-btn:hover i,.floating-buttons .whatsapp-btn:hover i{transform:scale(1.08);}
}

/* ------------------------------------------------------------
   @MEDIA (HOVER:NONE)
   ------------------------------------------------------------ */
@media (hover:none) {
.floating-buttons .call-btn:active,.floating-buttons .whatsapp-btn:active{transform:translateY(-2px) scale(.985);filter:brightness(1.06);box-shadow:0 -6px 18px rgba(0,0,0,.24);}
}

/* ------------------------------------------------------------
   @MEDIA (MIN-WIDTH:761PX)
   ------------------------------------------------------------ */
@media (min-width:761px) {
#featured-tours .tour-card-cta,
  #our-tours .tour-category-visual-cta,
  #car-rental .vehicle-card-cta,
  #car-rental .home-vehicle-cta a,
  .tours-main-cta a{width:auto;min-width:0;min-height:36px;height:36px;padding:8px 12px;font-size:10px;letter-spacing:.10em;line-height:1;border-radius:4px;box-shadow:none;}
#car-rental .home-vehicle-image{height:auto;min-height:0;}
#car-rental .home-vehicle-card{min-width:0;}
}

/* ------------------------------------------------------------
   @MEDIA (MAX-WIDTH:700PX)
   ------------------------------------------------------------ */
@media (max-width:700px) {
.tour-inline-enquiry .field.full,.tour-inline-enquiry button,.tour-inline-enquiry__note,.tour-inline-enquiry .contact-method-options,.tour-inline-enquiry .contact-email-wrap{grid-column:auto;}
}
/* ============================================================
   MASTER DATE PICKER — SHARED ENQUIRY COMPONENT
   ============================================================ */
.master-date-picker[hidden]{display:none;}
.master-date-picker{position:fixed;inset:0;z-index:15000;display:flex;align-items:center;justify-content:center;padding:18px;}
.master-date-backdrop{position:absolute;inset:0;background:rgba(20,16,12,.58);backdrop-filter:blur(2px);}
.master-date-dialog{position:relative;z-index:1;width:min(460px,100%);max-height:min(92vh,720px);overflow:auto;background:#fffdf9;border:1px solid #d8c7ae;border-radius:10px;box-shadow:0 24px 70px rgba(30,20,10,.28);color:#302a24;}
.master-date-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px 15px;border-bottom:1px solid #e4dacb;background:#f7f1e8;}
.master-date-header small{display:block;margin-bottom:4px;color:#9a7535;font:700 10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.16em;}
.master-date-header strong{display:block;color:#2f2923;font:600 22px/1.2 Georgia,'Times New Roman',serif;}
.master-date-close{width:34px;height:34px;border:1px solid #d8c7ae;border-radius:50%;background:#fff;color:#5f5143;font:400 24px/1 Arial,sans-serif;cursor:pointer;}
.master-date-close:hover{background:#f1e6d7;}
.master-date-calendar{padding:18px 20px 14px;}
.master-date-monthbar{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:14px;}
.master-date-monthbar strong{text-align:center;color:#3b3229;font:700 17px/1.2 Georgia,'Times New Roman',serif;}
.master-date-nav{width:42px;height:38px;border:1px solid #d8c7ae;border-radius:6px;background:#fff;color:#9a7535;font:700 22px/1 Arial,sans-serif;cursor:pointer;}
.master-date-nav:hover:not(:disabled){background:#f7eee2;border-color:#b68b42;}
.master-date-nav:disabled{opacity:.35;cursor:not-allowed;}
.master-date-weekdays,.master-date-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.master-date-weekdays{margin-bottom:6px;}
.master-date-weekdays span{text-align:center;color:#8b7966;font:700 10px/1.2 Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.05em;}
.master-date-empty{min-height:42px;}
.master-date-day{width:100%;min-height:42px;border:1px solid #e0d8cd;border-radius:6px;background:#fff;color:#2b2925;font:600 13px/1 Arial,sans-serif;cursor:pointer;}
.master-date-day:hover:not(:disabled),.master-date-day:focus-visible{border-color:#b68b42;background:#faf5eb;outline:none;}
.master-date-day.is-selected{background:#b68b42;border-color:#b68b42;color:#fff;box-shadow:0 3px 10px rgba(182,139,66,.18);}
.master-date-day.is-today{box-shadow:inset 0 0 0 1px #b68b42;}
.master-date-day.is-past{color:#c6c0b8;background:#f4f1ed;border-color:#e7e1d8;cursor:not-allowed;}
.master-date-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px;border-top:1px solid #e4dacb;background:#fffaf3;}
.master-date-cancel,.master-date-ok{min-width:90px;min-height:40px;padding:9px 16px;border-radius:5px;font:700 11px/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;cursor:pointer;}
.master-date-cancel{border:1px solid #d5c6b3;background:#fff;color:#6e5c49;}
.master-date-ok{border:1px solid #b68b42;background:#b68b42;color:#fff;}
.master-date-cancel:hover{background:#f5eee4;}
.master-date-ok:hover:not(:disabled){background:#9f7838;}
.master-date-ok:disabled{opacity:.45;cursor:not-allowed;}
[data-master-date][readonly]{cursor:pointer;}
[data-master-date][readonly]:focus{border-color:#b68b42;outline:none;box-shadow:0 0 0 2px rgba(182,139,66,.08);}
@media (max-width:650px){
  .master-date-picker{padding:12px;}
  .master-date-dialog{border-radius:8px;}
  .master-date-header{padding:15px 16px 13px;}
  .master-date-header strong{font-size:19px;}
  .master-date-calendar{padding:15px 14px 12px;}
  .master-date-day{min-height:40px;font-size:12px;}
  .master-date-empty{min-height:40px;}
  .master-date-actions{padding:12px 14px 15px;}
}

