/* Wanderin Perfect System v2 — photo-independent, site-wide */
:root{
  --w2-font: Arial, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --w2-bg:#f4f7f3;
  --w2-bg-soft:#edf3ee;
  --w2-surface:#ffffff;
  --w2-surface-soft:#fbfdfb;
  --w2-line:#dbe4dd;
  --w2-line-strong:#cfdacf;
  --w2-text:#102238;
  --w2-muted:#607386;
  --w2-soft:#7e8fa0;
  --w2-accent:#0f6b42;
  --w2-accent-strong:#0a5231;
  --w2-accent-soft:#edf7f1;
  --w2-blue-soft:#eef5ff;
  --w2-shadow-sm:0 12px 26px rgba(15,23,42,.05);
  --w2-shadow:0 18px 42px rgba(15,23,42,.07);
  --w2-radius:24px;
  --w2-radius-lg:30px;
}

html{background:linear-gradient(180deg,#f9fbf8 0%, var(--w2-bg) 44%, var(--w2-bg-soft) 100%)!important}
body{
  background:transparent!important;
  color:var(--w2-text)!important;
  font-family:var(--w2-font)!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Global contrast safety */
body, .wp-public, .ws-shell, .wr-page, .wr-page--route-master, .wt-trip, .wt-trips, .wp-cms, .wp-search, .wp-driver-apply{
  color:var(--w2-text)!important;
}
:where(.wp-public,.ws-shell,.wr-page,.wr-page--route-master,.wt-trip,.wt-trips,.wp-cms,.wp-search,.wp-driver-apply) :where(p,li,label,small,span,dd,dt,div){
  color:var(--w2-muted);
}
:where(.wp-public,.ws-shell,.wr-page,.wr-page--route-master,.wt-trip,.wt-trips,.wp-cms,.wp-search,.wp-driver-apply) :where(h1,h2,h3,h4,strong,b,summary){
  color:var(--w2-text)!important;
}

/* Header + nav */
.ww-header-wrap{
  background:rgba(248,251,248,.9)!important;
  border-bottom:1px solid rgba(219,228,221,.95)!important;
  box-shadow:0 12px 28px rgba(15,23,42,.045)!important;
  backdrop-filter:blur(12px)!important;
}
.ww-brand img{border-radius:50%!important;box-shadow:0 10px 22px rgba(15,23,42,.12)!important}
.ww-brand-name,.ww-nav a,.ww-lang-toggle,.ww-menu-btn,.ww-book-btn,.ww-search-toggle,.ww-help-link{font-family:var(--w2-font)!important}
.ww-nav a,.ww-lang-toggle,.ww-menu-btn,.ww-search-toggle,.ww-help-link{
  background:rgba(255,255,255,.95)!important;
  border:1px solid var(--w2-line)!important;
  color:var(--w2-text)!important;
}
.ww-book-btn,.wi-btn,.w2-btn,.wr-btn--primary,.t-btn--primary,.whm-btn,.wi-searchbox__submit,.ww-search-btn{
  background:linear-gradient(180deg,var(--w2-accent),var(--w2-accent-strong))!important;
  border-color:transparent!important;
  color:#fff!important;
  box-shadow:0 14px 30px rgba(15,107,66,.18)!important;
}
.ww-book-btn:hover,.wi-btn:hover,.w2-btn:hover,.wr-btn--primary:hover,.t-btn--primary:hover,.whm-btn:hover,.wi-searchbox__submit:hover,.ww-search-btn:hover{transform:translateY(-1px)!important}
.ww-search-shell,.wi-searchbox,.t-search,.wp-search .wi-searchbox--page{
  background:rgba(255,255,255,.96)!important;
  border:1px solid var(--w2-line)!important;
  border-radius:20px!important;
  box-shadow:var(--w2-shadow-sm)!important;
}

/* Inputs */
input,select,textarea,.wi-searchbox__input,.t-form input,.t-form select,.t-form textarea,.wr-form input,.wr-form select,.wr-form textarea{
  background:#fff!important;
  border:1px solid var(--w2-line)!important;
  color:var(--w2-text)!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
input::placeholder,textarea::placeholder,.wi-searchbox__input::placeholder{color:#8a98a7!important}
input:focus,select:focus,textarea:focus,.wi-searchbox__input:focus,.t-form input:focus,.t-form select:focus,.t-form textarea:focus,.wr-form input:focus,.wr-form select:focus,.wr-form textarea:focus{
  border-color:#bbd8c6!important;
  box-shadow:0 0 0 4px rgba(15,107,66,.08)!important;
}

/* Shared surfaces */
:where(.wi-card,.ws-route-card,.ws-vehicle-card,.ws-gallery-card,.ws-link-card,.ws-panel,.wr-panel,.wr-class-card,.wr-review,.wr-stop-card,.wr-related-link,.wr-detail-box,.wr-step,.t-card,.t-book,.t-form,.t-hero-card,.wi-cookie,.wi-searchbox,.t-search,.wi-faq details,.wi-faq-item,.wp-cms article,.wp-driver-apply section,.wp-driver-apply aside > div,.wp-search .wi-searchbox--page,.ww-footer-pill){
  background:linear-gradient(180deg,var(--w2-surface),var(--w2-surface-soft))!important;
  border:1px solid var(--w2-line)!important;
  border-radius:var(--w2-radius)!important;
  box-shadow:var(--w2-shadow-sm)!important;
  color:var(--w2-text)!important;
}
:where(.ws-route-card,.ws-vehicle-card,.ws-gallery-card,.ws-link-card,.wi-card,.t-card,.wr-related-link,.wr-review,.wr-stop-card,.wr-detail-box,.wr-step){overflow:hidden!important}
:where(.ws-card-body,.wi-card-body,.t-body,.wr-detail-box,.wr-review,.wr-step,.wr-related-link){display:grid!important;gap:8px!important}
:where(.ws-card-body h3,.wi-card-title,.t-h3,.wr-related-link strong,.wr-step h3,.wr-detail-box strong){font-size:18px!important;line-height:1.14!important;letter-spacing:-.02em!important}
:where(.ws-card-body p,.wi-card-desc,.t-summary,.wr-related-link span,.wr-step p,.wr-detail-box div,.wr-review p){font-size:13px!important;line-height:1.6!important;color:var(--w2-muted)!important}

/* Hero system: clean and photo-independent */
:where(.ws-hero,.wi-hero,.wr-hero,.t-hero){
  position:relative!important;
  overflow:hidden!important;
  border-radius:var(--w2-radius-lg)!important;
  background:
    radial-gradient(circle at 100% 0, rgba(15,107,66,.08), transparent 28%),
    radial-gradient(circle at 0 100%, rgba(22,119,255,.05), transparent 24%),
    linear-gradient(180deg,#ffffff,#f8fbf9)!important;
  border:1px solid var(--w2-line)!important;
  box-shadow:var(--w2-shadow)!important;
}
:where(.ws-hero,.wi-hero,.wr-hero,.t-hero)::before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(255,255,255,0) 40%);
  pointer-events:none;z-index:0;
}
:where(.ws-hero h1,.wi-hero h1,.wr-hero h1,.t-hero-card h1,.t-title){
  color:var(--w2-text)!important;
  letter-spacing:-.05em!important;
  line-height:.98!important;
}
:where(.ws-hero p,.wi-hero p,.wr-hero p,.t-summary,.t-sub,.wi-p,.wr-hero-tagline){
  color:var(--w2-muted)!important;
  line-height:1.62!important;
}
:where(.ws-eyebrow,.wr-eyebrow,.wi-hero-kicker,.t-kicker){
  display:inline-flex!important;align-items:center!important;gap:8px!important;
  width:max-content!important;padding:8px 12px!important;min-height:34px!important;
  border-radius:999px!important;background:#fff!important;border:1px solid var(--w2-line)!important;
  color:var(--w2-accent)!important;font-size:11px!important;font-weight:900!important;
  letter-spacing:.12em!important;text-transform:uppercase!important;box-shadow:0 8px 18px rgba(15,23,42,.04)!important;
}
:where(.ws-pills span,.wr-hero-strip span,.wr-service-strip span,.t-pill,.wi-chip,.wr-meta-row span,.wr-stop-meta span,.wr-booking-selected-card__meta span,.wr-booking-brain__chips span,.wr-booking-brain__fit,.wr-hero-statline span,.wr-summary-tile small){
  background:#fff!important;border:1px solid var(--w2-line)!important;color:var(--w2-text)!important;border-radius:999px!important;
}

/* Homepage + hubs + cms spacing */
body :where(.wi-container,.ww-site-shell,.ww-footer-shell,.ws-shell,.wr-page,.wt-trip,.wt-trips,.wp-cms main,.wp-search main){max-width:1248px!important}
body :where(.ws-section,.wi-section,.t-section,.wr-section){margin-top:24px!important}
body :where(.ws-section-head,.wi-section-head,.t-section-head,.wr-section-head){margin-bottom:12px!important}
body :where(.ws-section-head h2,.wi-section-head h2,.t-section h2,.wr-section-head h2,.wp-cms h2){font-size:clamp(24px,2.8vw,34px)!important;line-height:1.04!important;letter-spacing:-.045em!important}
body :where(.ws-section-head p,.wi-section-head p,.t-section p,.wr-section-head p,.wp-cms p){font-size:14px!important;line-height:1.65!important;max-width:64ch!important}

/* Text-only cards across homepage / destinations / trips */
.ws-route-card.ws-card--textonly,
.ws-link-card.ws-card--textonly,
.wi-card.wi-card--textonly,
.wt-trips .t-card.t-card--textonly{
  position:relative!important;
  overflow:hidden!important;
  min-height:0!important;
  background:linear-gradient(180deg,#ffffff,#f8fbfa)!important;
}
.ws-route-card.ws-card--textonly::before,
.ws-link-card.ws-card--textonly::before,
.wi-card.wi-card--textonly::before,
.wt-trips .t-card.t-card--textonly::before{
  content:"";display:block;width:100%;height:4px;
  background:linear-gradient(90deg,var(--w2-accent),#2bb673 52%,#1677ff);
}
.ws-route-card.ws-card--textonly>img,
.ws-link-card.ws-card--textonly>img,
.wi-card.wi-card--textonly .wi-card-img,
.wt-trips .t-card.t-card--textonly .t-media,
.wt-trip .t-card.t-card--textonly .t-media{
  display:none!important;
}
.ws-route-card.ws-card--textonly .ws-card-body,
.ws-link-card.ws-card--textonly .ws-card-body,
.wi-card.wi-card--textonly .wi-card-body,
.wt-trips .t-card.t-card--textonly .t-body,
.wt-trip .t-card.t-card--textonly .t-body{
  padding-top:18px!important;
  min-height:0!important;
}
.wi-card-img:empty,.t-media:empty,.wt-trip .t-hero-media.is-empty,.wt-trip .t-card .t-media:empty{display:none!important}

/* Trips pages without imagery */
.wt-trip .t-hero-shell--textonly{grid-template-columns:1fr!important}
.wt-trip .t-hero-media,
.wt-trip .t-hero-media.is-empty{
  display:none!important;
}
.wt-trip .t-hero-card{
  background:linear-gradient(180deg,#ffffff,#f8fbf9)!important;
  border:1px solid var(--w2-line)!important;
  border-radius:28px!important;
  box-shadow:var(--w2-shadow)!important;
  backdrop-filter:none!important;
}
.wt-trips .t-card,
.wt-trip .t-book,
.wt-trip .t-form{box-shadow:var(--w2-shadow-sm)!important}

/* Route pages — fully photo-independent */
.wr-page--route-master{
  background:linear-gradient(180deg,#f7faf7 0%,#f2f6f2 58%,#edf3ed 100%)!important;
  padding-bottom:96px!important;
}
.wr-page--route-master .wr-side,
.wr-page--route-master .wr-hero-side,
.wr-page--route-master .wr-hero-media,
.wr-page--route-master .wr-hero-inline-link,
.wr-page--route-master .wr-hero-subnote,
.wr-page--route-master .wr-story-media,
.wr-page--route-master .wr-hero-media--placeholder,
.wr-page--route-master .wr-hero-media--text,
.wr-page--route-master .wr-vehicle-media--placeholder{
  display:none!important;
}
.wr-page--route-master .wr-layout,
.wr-page--route-master .wr-hero-grid,
.wr-page--route-master #booking .wr-class-grid--booking,
.wr-page--route-master #classes .wr-class-grid,
.wr-page--route-master #classes .wr-class-grid--booking,
.wr-page--route-master #booking .wr-book-grid--summary,
.wr-page--route-master #booking .wr-booking-essential-grid,
.wr-page--route-master #booking .wr-form-grid,
.wr-page--route-master #booking .wr-context-grid{
  grid-template-columns:1fr!important;
}
.wr-page--route-master .wr-main{gap:22px!important}
.wr-page--route-master .wr-main>.wr-section:not(.wr-hero):not(#booking){
  position:relative!important;padding-top:28px!important;border-top:1px solid rgba(15,23,42,.06)!important;
}
.wr-page--route-master .wr-main>.wr-section:not(.wr-hero):not(#booking)::before{
  content:"";position:absolute;left:0;top:0;width:84px;height:2px;border-radius:999px;
  background:linear-gradient(90deg,rgba(15,107,66,.26),rgba(15,107,66,0));
}
.wr-page--route-master .wr-hero{padding:24px!important}
.wr-page--route-master .wr-hero h1{max-width:11ch!important;font-size:clamp(34px,5.1vw,56px)!important}
.wr-page--route-master .wr-hero-copy{display:grid!important;gap:14px!important}
.wr-page--route-master .wr-breadcrumbs{display:flex!important;gap:8px!important;flex-wrap:wrap!important;align-items:center!important;margin:0 0 12px!important;font-size:12px!important;color:var(--w2-muted)!important}
.wr-page--route-master .wr-breadcrumbs a{color:var(--w2-accent)!important;text-decoration:none!important}
.wr-page--route-master .wr-route-flow{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.wr-page--route-master .wr-step,
.wr-page--route-master .wr-review,
.wr-page--route-master .wr-related-link,
.wr-page--route-master .wr-detail-box,
.wr-page--route-master .wr-stop-card,
.wr-page--route-master .wr-faq-item{
  background:linear-gradient(180deg,#fff,#fbfdfb)!important;
  border:1px solid var(--w2-line)!important;
  border-radius:22px!important;
  box-shadow:var(--w2-shadow-sm)!important;
}
.wr-page--route-master .wr-step{padding:18px!important}
.wr-page--route-master .wr-step h3{font-size:19px!important;line-height:1.15!important;margin:0 0 8px!important}
.wr-page--route-master .wr-review-grid,
.wr-page--route-master .wr-related-grid,
.wr-page--route-master #reviews .wr-review-grid--slider,
.wr-page--route-master .wr-seo-restore-links{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;overflow:visible!important;padding:0!important}

/* Route booking: no media dependency */
.wr-page--route-master #booking,
#booking.wr-booking-sticky,
#booking.wb-form-shell{
  background:linear-gradient(180deg,#fff,#fbfdfb)!important;
  border:1px solid var(--w2-line)!important;
  border-radius:26px!important;
  box-shadow:var(--w2-shadow)!important;
}
.wr-page--route-master #booking .wr-book-head h2{font-size:26px!important;line-height:1.05!important;letter-spacing:-.04em!important;color:var(--w2-text)!important}
.wr-page--route-master #booking .wr-book-head p{font-size:13px!important;line-height:1.55!important;color:var(--w2-muted)!important}
.wr-page--route-master #booking .wr-booking-selected-card,
.wr-page--route-master #booking .wr-class-card,
.wr-page--route-master #classes .wr-class-card{
  display:block!important;
  overflow:hidden!important;
  border:1px solid var(--w2-line)!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#fff,#fbfdfb)!important;
  box-shadow:var(--w2-shadow-sm)!important;
}
.wr-page--route-master #booking .wr-booking-selected-card{border-color:#cfe1d4!important;background:linear-gradient(180deg,#f8fcf9,#ffffff)!important}
.wr-page--route-master #booking .wr-booking-selected-card__media,
.wr-page--route-master #booking .wr-booking-selected-card .wr-vehicle-media,
.wr-page--route-master #booking .wr-class-grid--booking .wr-vehicle-media,
.wr-page--route-master #classes .wr-class-card .wr-vehicle-media,
.wr-page--route-master #classes .wr-class-card .wr-vehicle-media img,
.wr-page--route-master #booking .wr-booking-selected-card .wr-vehicle-media img,
.wr-page--route-master #booking .wr-class-grid--booking .wr-vehicle-media img{
  display:none!important;
  width:0!important;min-width:0!important;max-width:0!important;
  height:0!important;min-height:0!important;max-height:0!important;
  border:0!important;padding:0!important;margin:0!important;
}
.wr-page--route-master #booking .wr-booking-selected-card__body,
.wr-page--route-master #booking .wr-class-grid--booking .wr-class-body,
.wr-page--route-master #classes .wr-class-card .wr-class-body{padding:16px!important;display:grid!important;gap:10px!important;align-content:start!important}
.wr-page--route-master #booking .wr-booking-selected-card__copy small,
.wr-page--route-master #booking .wr-selected-class,
.wr-page--route-master #booking .wr-book-selected-note,
.wr-page--route-master #booking .wr-quote-box,
.wr-page--route-master #booking .wr-addon,
.wr-page--route-master #booking .wr-stop-choice,
.wr-page--route-master #booking .wr-summary-tile{
  background:#f7faf8!important;border:1px solid var(--w2-line)!important;color:var(--w2-text)!important;box-shadow:none!important;
}
.wr-page--route-master #booking .wr-class-copy h3,
.wr-page--route-master #classes .wr-class-copy h3,
.wr-page--route-master #booking .wr-booking-selected-card__copy strong{font-size:20px!important;line-height:1.1!important;color:var(--w2-text)!important}
.wr-page--route-master #booking .wr-class-model,
.wr-page--route-master #booking .wr-class-fitline,
.wr-page--route-master #classes .wr-class-model{font-size:13px!important;line-height:1.55!important;color:var(--w2-muted)!important}
.wr-page--route-master #booking .wr-price-box strong,
.wr-page--route-master #classes .wr-price-box strong,
.wr-page--route-master #booking .wr-price-box--booking strong{font-size:18px!important;color:var(--w2-accent)!important}
.wr-page--route-master #booking .wr-submit-bar{display:grid!important;grid-template-columns:minmax(0,1fr) 320px!important;gap:10px!important;align-items:stretch!important}
.wr-page--route-master #booking .wr-quote-box--submit{display:grid!important;gap:8px!important;align-content:center!important;background:#102119!important;border-color:#102119!important}
.wr-page--route-master #booking .wr-quote-box--submit *{color:#fff!important}
.wr-page--route-master #booking .wr-submit-actions{display:grid!important;gap:8px!important}
.wr-page--route-master #booking .wr-submit-actions .wr-btn{min-height:50px!important;border-radius:18px!important}
.wr-page--route-master #booking .wr-submit-actions .wr-btn--full{background:linear-gradient(180deg,#16a34a,#166534)!important;border-color:#166534!important;color:#fff!important;box-shadow:0 12px 24px rgba(22,163,74,.18)!important}
.wr-page--route-master .wr-faq-item{padding:0!important}
.wr-page--route-master .wr-faq-item summary{padding:16px 18px!important;font-size:17px!important;line-height:1.28!important;font-weight:900!important;color:var(--w2-text)!important}
.wr-page--route-master .wr-faq-item>div{padding:0 18px 16px!important;line-height:1.68!important;color:var(--w2-muted)!important}

/* Destinations / guides / fleet / cms */
.wi-card.wi-card--textonly .wi-card-body{min-height:0!important}
.wi-destinations-hub :where(.wi-card,.ws-route-card){height:100%!important}
.wp-cms article,
.wp-driver-apply section,
.wp-driver-apply aside > div{
  padding:20px!important;
}
.wp-cms :where(h1,h2,h3){color:var(--w2-text)!important}
.wp-cms :where(p,li){color:var(--w2-muted)!important;line-height:1.72!important}

/* Footer */
.ww-footer{background:linear-gradient(180deg,#f8fbf8,#f1f6f2 72%,#ecf2ee)!important;border-top:1px solid var(--w2-line)!important;color:var(--w2-text)!important}
.ww-footer-desc,.ww-footer-bottom{color:var(--w2-muted)!important}
.ww-footer-links a{color:var(--w2-text)!important}
.ww-footer-links a:hover{color:var(--w2-accent)!important}

/* Mobile */
@media (max-width:980px){
  .wr-page--route-master .wr-route-flow,
  .wr-page--route-master .wr-review-grid,
  .wr-page--route-master .wr-related-grid,
  .wr-page--route-master #reviews .wr-review-grid--slider,
  .wr-page--route-master .wr-seo-restore-links{grid-template-columns:1fr 1fr!important}
}
@media (max-width:760px){
  body :where(.ws-section,.wi-section,.t-section,.wr-section){margin-top:18px!important}
  body :where(.ws-section-head h2,.wi-section-head h2,.t-section h2,.wr-section-head h2,.wp-cms h2){font-size:clamp(22px,8vw,30px)!important}
  :where(.ws-card-body h3,.wi-card-title,.t-h3,.wr-related-link strong,.wr-step h3,.wr-detail-box strong){font-size:16px!important}
  :where(.ws-card-body p,.wi-card-desc,.t-summary,.wr-related-link span,.wr-step p,.wr-detail-box div,.wr-review p){font-size:12.5px!important;line-height:1.56!important}
  :where(.ws-hero,.wi-hero,.wr-hero,.t-hero){border-radius:24px!important}
  .wr-page--route-master .wr-hero{padding:18px!important}
  .wr-page--route-master .wr-hero h1{font-size:clamp(30px,9vw,42px)!important;max-width:none!important}
  .wr-page--route-master #booking .wr-submit-bar{grid-template-columns:1fr!important}
  .wr-page--route-master .wr-route-flow,
  .wr-page--route-master .wr-review-grid,
  .wr-page--route-master .wr-related-grid,
  .wr-page--route-master #reviews .wr-review-grid--slider,
  .wr-page--route-master .wr-seo-restore-links,
  .wr-page--route-master .wr-detail-grid--route-knowledge,
  .wr-page--route-master .wr-stop-grid{grid-template-columns:1fr!important}
  .wr-page--route-master #booking .wr-summary-tile{padding:12px!important}
  .wr-page--route-master #booking .wr-booking-summary{grid-template-columns:1fr!important}
}
