:root{
  --wf-bg:#f5f8fc;
  --wf-surface:#ffffff;
  --wf-surface-soft:#f8fbff;
  --wf-stroke:#dfe7f1;
  --wf-stroke-strong:#ced9e7;
  --wf-text:#102238;
  --wf-muted:#607089;
  --wf-accent:#165ec9;
  --wf-accent-2:#0f64dd;
  --wf-success:#166534;
  --wf-shadow-sm:0 10px 22px rgba(15,23,42,.05);
  --wf-shadow-md:0 18px 42px rgba(15,23,42,.08);
  --wf-radius-xl:28px;
  --wf-radius-lg:22px;
  --wf-radius-md:18px;
}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f7faff 0%,#f5f8fc 100%);color:var(--wf-text);text-rendering:optimizeLegibility}
a{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease}
img{image-rendering:auto}
::selection{background:rgba(22,94,201,.14);color:#0f172a}

/* universal public shells */
.wi-shell,.whm-shell,.ws-shell,.wr-page,.wfleet-shell,.wi-destination-shell{max-width:1248px;margin-left:auto;margin-right:auto}
.wi-btn,.wi-btn2,.whm-btn,.whm-btn--ghost,.wr-btn,.ww-footer-cta-btn,.ww-footer-cta-btn2,
.wr-quote-box,.wr-v60-cta,.wr-v60-cta--solid,.wr-card-action,.wr-card-cta{
  border-radius:999px !important;
}
.wi-btn,.whm-btn,.wr-btn,.wi-searchbox__submit,.ww-search-btn{
  box-shadow:0 14px 28px rgba(22,94,201,.18);
}
.wi-btn:hover,.whm-btn:hover,.wr-btn:hover,.wi-searchbox__submit:hover,.ww-search-btn:hover,
.wi-btn2:hover,.whm-btn--ghost:hover,.wr-btn--ghost:hover{
  transform:translateY(-1px);
  text-decoration:none;
}

/* header */
.ww-header-wrap{background:rgba(248,251,255,.86) !important;border-bottom-color:rgba(223,231,241,.9) !important;box-shadow:0 12px 28px rgba(15,23,42,.04) !important}
.ww-brand img{border-radius:16px !important;box-shadow:0 14px 28px rgba(15,23,42,.14) !important}
.ww-brand-name{font-size:18px !important}
.ww-brand-tag{max-width:380px !important}
.ww-nav a,.ww-search-toggle,.ww-lang-toggle,.ww-help-link,.ww-book-btn{backdrop-filter:blur(10px)}
.ww-book-btn{padding-inline:16px !important}
.ww-search-wrap{padding-top:2px}
.ww-search-shell{border-radius:26px !important;box-shadow:var(--wf-shadow-md) !important}
.ww-search input{font-size:15px !important}
.ww-search-drop{border-radius:22px !important;border-color:var(--wf-stroke) !important}
.ww-search-item.is-active,.ww-search-item:hover{background:#f6faff}
.ww-search-main mark,.wi-searchbox__hl{background:#e8f1ff;color:#0f4fb3;padding:0 .18em;border-radius:.35em}

/* home */
.wp-home-v4 .whm-shell{gap:28px !important}
.wp-home-v4 .whm-section{margin-top:28px !important}
.wp-home-v4 .whm-hero{padding:24px !important;border-radius:30px !important;box-shadow:0 24px 54px rgba(15,23,42,.10) !important}
.wp-home-v4 .whm-copy{gap:14px !important}
.wp-home-v4 .whm-copy h1{max-width:11ch !important;font-size:clamp(42px,5.6vw,68px) !important;letter-spacing:-.055em !important}
.wp-home-v4 .whm-copy p{max-width:62ch !important;color:#53657c !important}
.wp-home-v4 .whm-actions{gap:10px !important;align-items:center}
.wp-home-v4 .whm-pills{margin-top:14px !important}
.wp-home-v4 .whm-pills span,.wp-home-v4 .whm-route-chips a,.wp-home-v4 .whm-list a em,.wp-home-v4 .whm-tags span{
  border-color:var(--wf-stroke) !important;
}
.wp-home-v4 .whm-metric,.wp-home-v4 .whm-list,.wp-home-v4 .whm-card,.wp-home-v4 .whm-step,.wp-home-v4 .whm-quote,.wp-home-v4 .whm-about,.wp-home-v4 .whm-faqbox{
  box-shadow:var(--wf-shadow-md) !important;
  border-color:var(--wf-stroke) !important;
}
.wp-home-v4 .whm-card__media{background:linear-gradient(180deg,#eef4fb,#f8fbff) !important}
.wp-home-v4 .whm-card h3{font-size:22px !important}
.wp-home-v4 .whm-head{margin-bottom:12px !important}
.wp-home-v4 .whm-head h2{font-size:clamp(28px,3.2vw,38px) !important;letter-spacing:-.045em !important}
.wp-home-v4 .whm-head p,.wp-home-v4 .whm-card p,.wp-home-v4 .whm-quote p,.wp-home-v4 .whm-about p,.wp-home-v4 .whm-value span{color:#5b6c82 !important}
.wp-home-v4 .whm-cta{border-radius:30px !important;box-shadow:0 28px 56px rgba(15,23,42,.18) !important}

/* search pages */
.ws-shell{display:grid;gap:18px !important}
.ws-hero,.ws-section,.ws-convert,.ws-route-card,.ws-link-card,.ws-gallery-card,.ws-review-card,.ws-card,.wi-searchbox--page{
  border-radius:24px !important;
  box-shadow:var(--wf-shadow-md) !important;
  border-color:var(--wf-stroke) !important;
}
.ws-hero{padding:22px !important;background:radial-gradient(circle at 100% 0, rgba(22,94,201,.10), transparent 30%),linear-gradient(180deg,#fff,#f8fbff) !important}
.ws-hero h1{font-size:clamp(34px,4.6vw,54px) !important;letter-spacing:-.05em !important;max-width:12ch}
.ws-hero p,.ws-section-head p,.ws-route-card p,.ws-link-card p,.ws-review-card p{color:#58697f !important}
.ws-link-cloud a{border-radius:999px !important;border-color:var(--wf-stroke) !important;background:#fff !important}
.ws-convert{background:linear-gradient(135deg,#102238,#173961) !important}
.ws-convert h2,.ws-convert p{color:#fff !important}

/* destination / entity pages */
.wi-hero{padding:24px 0 12px !important}
.wi-hero h1,.wi-entity-hero h1,.wi-guide-hero h1{font-size:clamp(34px,4.8vw,58px) !important;line-height:1.02 !important;letter-spacing:-.05em !important;max-width:12ch}
.wi-hero p,.wi-entity-hero p,.wi-guide-hero p,.wi-section p,.wi-card p,.wi-note,.wi-muted{color:#58697f !important}
.wi-card,.wi-panel,.wi-section,.wi-assist,.wi-guide-card,.wi-destination-card,.wi-place-card,.wi-related-card,.wi-links a,.wi-entity-card,.wi-quick-card,
.wi-comparison-card,.wi-cluster-card,.wi-route-card,.wi-summary-card,.ws-card{
  border-radius:24px !important;
  border-color:var(--wf-stroke) !important;
  box-shadow:var(--wf-shadow-md) !important;
  overflow:hidden;
}
.wi-links a{background:#fff !important}
.wi-card img,.wi-guide-card img,.wi-destination-card img,.wi-place-card img{background:#eef4fb}

/* route pages */
.wr-page{padding-top:12px !important;padding-bottom:48px !important}
.wr-main{gap:14px !important}
.wr-hero,.wr-section,.wr-booking-sticky,.wr-compare-wrap,.wr-review,.wr-related-link,.wr-class-card,.wr-book-optional,.wr-quality-item,.wr-mini-card,.wr-stat{
  border-radius:24px !important;
}
.wr-hero,.wr-section,.wr-booking-sticky,.wr-compare-wrap,.wr-class-card,.wr-review,.wr-related-link,.wr-book-optional,.wr-quality-item,.wr-mini-card,.wr-stat,.wr-booking-selected-card{
  border-color:var(--wf-stroke) !important;
  box-shadow:var(--wf-shadow-md) !important;
}
.wr-hero{padding:20px !important;background:radial-gradient(circle at 100% 0, rgba(22,94,201,.09), transparent 28%),radial-gradient(circle at 0 100%, rgba(22,163,74,.07), transparent 30%),linear-gradient(180deg,#fff,#f8fbff) !important}
.wr-hero-grid{gap:16px !important}
.wr-hero-copy h1{font-size:clamp(34px,5vw,56px) !important;max-width:11ch !important;letter-spacing:-.055em !important}
.wr-hero-tagline{font-size:15px !important;line-height:1.68 !important;max-width:56ch !important;color:#51647c !important}
.wr-hero-routefacts span,.wr-hero-strip span,.wr-service-strip span,.wi-trust-strip span,.wr-chip-row span,.wr-filter-chip,.wr-class-pill,.wr-meta-row span,.wr-variant,.wr-book-steps span,.wr-book-selected-note,.wr-selected-class,.wr-hero-proof div,.wr-hero-summaries div,.wr-review-tags span{
  background:#fff !important;
  border:1px solid var(--wf-stroke) !important;
  color:#203248 !important;
}
.wr-hero-price,.wr-price-box strong{color:#165ec9 !important}
.wr-section-head h2{font-size:clamp(26px,3vw,34px) !important;letter-spacing:-.045em !important}
.wr-section-head p,.wr-review p,.wr-review-note,.wr-list,.wr-list li,.wr-bestfor,.wr-class-sub,.wr-form-note,.wr-hero-micro,.wr-hero-meta,.wr-book-head p,.wr-route-flow-copy p,.wr-payment-note{color:#58697f !important}
.wr-book-head{margin-bottom:10px !important}
.wr-book-head h2{font-size:30px !important;letter-spacing:-.04em !important}
#booking{border-radius:26px !important;box-shadow:0 24px 56px rgba(15,23,42,.12) !important;border:1px solid var(--wf-stroke) !important;background:linear-gradient(180deg,#fff,#fbfdff) !important}
#booking .wr-form-section{border-radius:22px !important;border:1px solid #e7eef6 !important;background:#fcfdff !important;box-shadow:none !important}
#booking .wr-form-section--contact{display:grid !important;gap:10px !important}
#booking .wb-email-row{order:-1}
#booking #wr_email_field input,#booking #wr_phone_field input,#booking .wb-phone-select,#booking input[type="date"],#booking input[type="time"],#booking input[type="text"],#booking input[type="email"],#booking input[type="number"],#booking textarea,#booking select{
  border-radius:16px !important;
  border-color:#dbe5ef !important;
  background:#fff !important;
}
#booking label{font-weight:900 !important;color:#334155 !important}
#booking .wb-section-title{font-size:16px !important;letter-spacing:-.02em !important}
#booking .wr-booking-selected-card,#booking .wr-v60-card--selected{background:linear-gradient(180deg,#f9fdf9,#ffffff) !important;border-color:#cfe8d5 !important;box-shadow:0 18px 40px rgba(22,163,74,.08) !important}
#booking .wr-booking-selected-card__copy small:before{background:rgba(22,163,74,.10) !important;border-color:rgba(22,163,74,.18) !important;color:#166534 !important}
#booking .wr-v60-card--alt{background:#fff !important}
#booking .wr-v60-card--alt .wr-v60-cta,#booking .wr-v60-card--alt .wr-v60-cta--solid{background:#fff !important;border:1px solid #dbe7f3 !important;color:#165ec9 !important;box-shadow:none !important}
#booking .wr-v60-card--selected .wr-v60-cta--solid{background:linear-gradient(180deg,#16a34a,#166534) !important;border-color:#166534 !important;box-shadow:0 14px 26px rgba(22,163,74,.18) !important}
#booking .wr-submit-bar{gap:10px !important}
#booking .wr-quote-box--submit{border-radius:18px !important;background:#0f172a !important;color:#fff !important;border:1px solid rgba(255,255,255,.08) !important;box-shadow:0 18px 42px rgba(15,23,42,.16) !important}
#booking .wr-quote-box--submit small,#booking .wr-quote-box--submit span{color:rgba(241,245,249,.82) !important}
#booking .wr-quote-box--submit #wr_quote_text{color:#fff !important}
#booking .wr-book-optional>summary{border-radius:18px !important;background:#fff !important;border:1px solid #dbe5ef !important}
#booking .wr-addons--booking .wr-addon{border-radius:18px !important;border-color:#dbe5ef !important;background:#fff !important}
#booking .wr-addons--booking .wr-addon:hover{border-color:#c8d7e8 !important;background:#fbfdff !important}
#booking .wr-booking-summary .wr-summary-tile{border-radius:18px !important;background:#fff !important;border:1px solid #dbe5ef !important}
#booking .wb-phone-preview,#booking .wb-email-preview,#booking #wr_phone_preview,#booking #wr_email_preview,#booking #wr_contact_pref_hint{color:#667085 !important;font-weight:800 !important}
.wr-detail-box details,.wr-book-optional{background:#fff !important}
.wr-review{background:linear-gradient(180deg,#fff,#fcfdff) !important}
.wr-review h3{font-size:20px !important;letter-spacing:-.03em !important}
.wr-related-link h3,.wr-class-card h3{font-size:20px !important;letter-spacing:-.03em !important}
.wr-related-link span,.wr-class-card p,.wr-mini-card p,.wr-quality-item p{color:#58697f !important}
.wr-section details{border-radius:18px !important;border:1px solid #e4ebf4 !important;background:#fff !important}
.wr-section details+details{margin-top:10px}
.wr-section summary{font-weight:900 !important;color:#102238 !important;padding:16px 18px !important}
.wr-section details[open] summary{border-bottom:1px solid #e9eff6}
.wr-section details > div,.wr-section details > p,.wr-section details > .wr-faq-answer{padding:0 18px 16px !important}

/* smaller pages */
.wfleet-hero,.wfleet-cta,.wfleet-card,.wi-form-shell,.wb-success,.wb-assist{
  border-radius:24px !important;
  border-color:var(--wf-stroke) !important;
  box-shadow:var(--wf-shadow-md) !important;
}

/* responsive tightening */
@media (max-width:980px){
  .wp-home-v4 .whm-hero{padding:20px !important}
  .ww-brand-tag{max-width:220px !important}
}
@media (max-width:760px){
  .wp-home-v4 .whm-shell{gap:22px !important}
  .wp-home-v4 .whm-section{margin-top:22px !important}
  .wp-home-v4 .whm-hero{padding:18px !important;border-radius:24px !important}
  .wp-home-v4 .whm-copy h1{font-size:clamp(34px,11vw,48px) !important}
  .ws-hero{padding:18px !important}
  .ws-hero h1,.wi-hero h1,.wi-entity-hero h1,.wi-guide-hero h1,.wr-hero-copy h1{font-size:clamp(28px,10vw,40px) !important;max-width:none !important}
  .wr-hero{padding:16px !important}
  #booking{padding:14px !important;border-radius:22px !important}
  #booking .wr-submit-bar{position:sticky !important;bottom:8px !important;z-index:6 !important;background:rgba(248,250,252,.94) !important;backdrop-filter:blur(10px);padding:10px !important;border:1px solid var(--wf-stroke) !important;border-radius:20px !important;box-shadow:0 18px 38px rgba(15,23,42,.10) !important}
  #booking .wb-email-row{order:0}
}
@media (max-width:640px){
  .ww-search-helper{padding-left:2px !important}
  .wp-home-v4 .whm-card,.wp-home-v4 .whm-step,.wp-home-v4 .whm-quote,.wp-home-v4 .whm-about,.wp-home-v4 .whm-faqbox,.ws-section,.ws-hero,.wi-card,.wr-section,.wr-review,.wr-class-card{border-radius:20px !important}
  #booking .wr-form-section{padding:12px !important}
}
