/*
Theme Name: WP Tours
Theme URI: https://example.com/wptours
Author: CeylonTravel
Author URI: https://example.com
Description: A block (Full Site Editing) theme for Sri Lanka tourism / travel-agency websites. Converted from the CeylonTravel static build. Hero slider, tour-package carousel, destination mosaic, transport fleet, reviews and enquiry forms. Pairs with the "WP Tours Core" companion plugin for Destinations, Packages and Reviews content types.
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wptours
Tags: full-site-editing, block-patterns, travel, tourism, custom-colors, custom-menu, featured-images, translation-ready
*/

/* =====================================================================
   Site styles (compiled from scss/style.scss). Enqueued as the main
   stylesheet by functions.php. Edit the SCSS source and recompile, or
   edit here directly.
   ===================================================================== */

/* ============================================================
   CeylonTravel — compiled from scss/style.scss
   ============================================================ */
/* ------------------------------------------------------------
   Brand colour: Shine Star gold (#d8ad02)
   Every button, accent and coloured shadow in this file reads
   these tokens, so change the colour here. Keep the matching
   swatches in theme.json (brand, brand-dark, brand-deep,
   brand-light) and its button/link styles in step.
   --brand            the gold: buttons, badges, icons, underlines,
                      focus rings, and text on dark backgrounds
   --brand-dark       button hover
   --brand-deep       small text on light backgrounds (#d8ad02 text
                      on the cream page is only ~2:1, this is ~4.9:1)
   --brand-deeper     hover colour for that text
   --brand-light      light end of the gold gradients
   --brand-rgb        the gold as r,g,b for rgba() button/badge glows
   --brand-shadow-rgb deep gold as r,g,b for card and panel shadows
   --on-brand         text on gold: dark ink (6.3:1; white is 2.1:1)
   Black shadows that keep controls readable over photos stay black.
   ------------------------------------------------------------ */
:root{--brand:#d8ad02;--brand-dark:#c09a02;--brand-deep:#836901;--brand-deeper:#604d01;--brand-light:#f4ca25;--brand-rgb:216,173,2;--brand-shadow-rgb:131,105,1;--on-brand:#123434}
*,*::before,*::after{box-sizing:border-box}
/* overflow-x:clip where supported: with hidden, a popup locking the page turns <body> into a scroll container and the sticky header jumps away. */
body{margin:0;background:#fbf7ef;font-family:'Inter',system-ui,-apple-system,sans-serif;color:#123434;overflow-x:hidden;overflow-x:clip}
img{display:block;max-width:100%}
a{color:var(--brand-deep);text-decoration:none}
a:hover{color:var(--brand-deeper)}
::selection{background:var(--brand);color:var(--on-brand)}
/* Thin scrollbars on the page and on anything that scrolls inside it. Chrome, Edge and Safari use the ::-webkit rules; they ignore those on an element with scrollbar-width or scrollbar-color set, so the standard properties are only for browsers without them (Firefox). */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
::-webkit-scrollbar-thumb{background:var(--brand-deep);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--brand-deeper)}
@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--brand-deep) transparent}}
.accent{color:var(--brand)}

.eyebrow{font-weight:700;font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
/* .eyebrow--coral keeps its old name (the Site Editor copy of the homepage and the plugin use it); it is the deep gold for light backgrounds */
.eyebrow--coral{color:var(--brand-deep)}
.eyebrow--gold{color:var(--brand)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:'Inter',sans-serif;font-weight:700;font-size:15px;padding:11px 22px;border-radius:30px;border:none;cursor:pointer;transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .2s}
.btn--primary{background:var(--brand);color:var(--on-brand);box-shadow:0 10px 24px -8px rgba(var(--brand-rgb),.7)}
.btn--primary:hover{color:var(--on-brand);background:var(--brand-dark);transform:translateY(-2px)}
/* .btn--dark keeps its name (the Site Editor copy of the homepage uses it) but is gold like every other button */
.btn--dark{background:var(--brand);color:var(--on-brand);padding:15px 30px;font-size:16px;box-shadow:0 10px 24px -8px rgba(var(--brand-rgb),.7)}
.btn--dark:hover{color:var(--on-brand);background:var(--brand-dark);transform:translateY(-2px)}
.btn--glass{background:rgba(255,255,255,.14);border:1px solid rgba(var(--brand-rgb),.65);color:#fff;backdrop-filter:blur(6px)}
.btn--glass:hover{color:#fff;background:rgba(var(--brand-rgb),.24);border-color:var(--brand);transform:translateY(-2px)}
.btn--lg{padding:16px 30px;font-size:16px}
.btn .play{width:26px;height:26px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.btn--arrow::after{content:"\2192";display:inline-block;transition:transform .25s ease}
.btn--arrow:hover::after{transform:translateX(5px)}

/* Nav */
.nav{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:100%;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px max(40px, calc((100% - 1440px) / 2));background:transparent;transition:background .35s,padding .35s,box-shadow .35s}
.nav.is-solid{background:#fbf7ef;padding:12px max(40px, calc((100% - 1440px) / 2));box-shadow:0 10px 30px -20px rgba(var(--brand-shadow-rgb),.5)}
.nav.is-solid .nav__brand,.nav.is-solid .nav__link{color:#123434}
.nav.is-solid .burger span{background:#123434}
.nav__brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px;letter-spacing:-.5px;color:#fff}
.nav__brand:hover{color:#fff}
.nav__logo{display:inline-flex;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand-light));align-items:center;justify-content:center;font-size:18px}
.nav__links{display:flex;align-items:center;gap:30px}
.nav__link{position:relative;color:#fff;font-weight:600;font-size:15px;transition:color .25s}
.nav__link::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--brand);border-radius:2px;transition:width .25s}
.nav__link:hover{color:var(--brand)}
.nav__link:hover::after{width:100%}
.nav__link.is-active{color:var(--brand)}
.nav__link.is-active::after{width:100%}
.nav.is-solid .nav__link.is-active,.nav--solid .nav__link.is-active{color:var(--brand-deep)}
.nav.is-solid .nav__link.is-active::after{background:var(--brand)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.burger span{width:26px;height:3px;background:#fff;border-radius:2px;transition:background .3s}

/* Drawer */
.drawer{position:fixed;top:0;right:0;bottom:0;width:78%;max-width:320px;background:#0c3b3c;z-index:200;transform:translateX(105%);transition:transform .4s cubic-bezier(.2,.8,.2,1);padding:80px 30px 30px;display:flex;flex-direction:column;gap:6px;box-shadow:-20px 0 60px rgba(0,0,0,.3)}
.drawer.is-open{transform:translateX(0)}
.drawer__close{position:absolute;top:24px;right:24px;background:none;border:none;color:#fff;font-size:30px;cursor:pointer;line-height:1}
.drawer__close:hover{color:var(--brand)}
.drawer__link{color:#fff;font-weight:700;font-size:20px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.drawer__link:hover{color:var(--brand)}
.drawer__link.is-active{color:var(--brand);border-bottom-color:var(--brand)}
.drawer__cta{margin-top:16px;justify-content:center;padding:14px;font-size:17px}
.drawer__backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:150;opacity:0;pointer-events:none;transition:opacity .3s}
.drawer__backdrop.is-open{opacity:1;pointer-events:auto}

/* Hero */
@keyframes kenburns{0%{transform:scale(1)}100%{transform:scale(1.12)}}
.hero{position:relative;height:100vh;min-height:620px;max-height:900px;background:#0c3b3c;margin:0 auto;max-width:100%}
.hero__viewport{position:absolute;inset:0;overflow:hidden}
.hero__track{display:flex;height:100%;width:400%;transition:transform .9s cubic-bezier(.65,0,.35,1)}
.hero__slide{width:25%;height:100%}
.hero__slide img{width:100%;height:100%;object-fit:cover}
.hero .kb{animation:kenburns 9s ease-out forwards}
.hero__overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,32,33,.82) 0%,rgba(6,32,33,.45) 45%,rgba(6,32,33,.1) 100%)}
.hero__content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 40px;max-width:640px;margin-left:max(0px, calc((100% - 1440px) / 2))}
.hero__title{font-weight:800;font-size:clamp(40px,6vw,74px);line-height:.98;color:#fff;margin:0 0 20px;letter-spacing:-1.5px;text-wrap:balance}
.hero__sub{font-size:19px;line-height:1.5;color:rgba(255,255,255,.85);margin:0 0 34px;max-width:500px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.hero__arrow{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:22px;cursor:pointer;backdrop-filter:blur(6px);z-index:5;transition:background .25s,border-color .25s,color .25s}
.hero__arrow:hover{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.hero__arrow--prev{left:24px}
.hero__arrow--next{right:24px}
.hero__dots{position:absolute;bottom:150px;left:max(40px, calc((100% - 1440px) / 2));display:flex;gap:10px;z-index:5}
.badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;background:rgba(var(--brand-rgb),.16);border:1px solid rgba(var(--brand-rgb),.5);color:var(--brand);padding:7px 16px;border-radius:30px;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:22px;backdrop-filter:blur(4px)}
.dot{width:20px;height:5px;border-radius:3px;border:none;cursor:pointer;background:rgba(255,255,255,.4);transition:background .3s,width .3s}
.dot.is-active{background:var(--brand);width:34px}

/* Trip Finder */
.finder{position:absolute;left:max(40px, calc((100% - 1440px) / 2));right:max(40px, calc((100% - 1440px) / 2));bottom:-46px;z-index:6;background:#fff;border-radius:20px;padding:18px;box-shadow:0 30px 60px -24px rgba(var(--brand-shadow-rgb),.45);display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.finder__field{flex:1 1 160px;min-width:140px}
.finder__field label{display:block;font-size:12px;font-weight:700;color:#7c8f8f;text-transform:uppercase;letter-spacing:1px;margin-bottom:7px}
.finder__input{display:flex;align-items:center;gap:8px;background:#f4f1ea;border-radius:12px;padding:4px 14px}
.finder__input span{flex:0 0 auto}
.finder__input select{border:none;background:none;outline:none;font-family:inherit;font-size:15px;font-weight:600;color:#123434;width:100%;padding:10px 0;cursor:pointer;-webkit-appearance:none;appearance:none}
.finder__btn{flex:0 0 auto;background:var(--brand);color:var(--on-brand);border:none;border-radius:14px;padding:14px 28px;font-family:'Inter',sans-serif;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 12px 26px -12px rgba(var(--brand-rgb),.7);transition:background .25s,transform .25s,box-shadow .25s}
.finder__btn:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(var(--brand-rgb),.8)}

/* Sections */
.section{max-width:100%;margin:0 auto;padding:90px max(40px, calc((100% - 1440px) / 2))}
.section__head{margin-bottom:46px}
.section__head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.section__head--center{text-align:center;max-width:620px;margin-left:auto;margin-right:auto}
.section__title{font-weight:800;font-size:clamp(30px,4vw,46px);margin:0;letter-spacing:-1px;line-height:1}
.section__title--light{color:#fff}
#packages{padding-top:110px}

/* Packages carousel */
.carousel{overflow-x:clip;overflow-y:visible;padding:30px 0 50px;margin:-30px 0 -50px}
.carousel__nav{display:flex;gap:10px}
.carousel__track{display:flex;gap:24px;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.round-btn{width:48px;height:48px;border-radius:50%;border:2px solid #dfd9cc;background:#fff;color:#0c3b3c;font-size:20px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s}
.round-btn:hover{background:var(--brand);color:var(--on-brand);border-color:var(--brand);transform:translateY(-2px);box-shadow:0 12px 24px -10px rgba(var(--brand-rgb),.8)}
.round-btn--primary{border:none;background:var(--brand);color:var(--on-brand);box-shadow:0 12px 24px -10px rgba(var(--brand-rgb),.8)}
.round-btn--primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:var(--on-brand)}
.pkg-card{flex:0 0 calc(25% - 18px);min-width:270px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 34px -24px rgba(var(--brand-shadow-rgb),.4);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.pkg-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -18px rgba(var(--brand-shadow-rgb),.4)}
.pkg-card__media{position:relative;height:210px}
.pkg-card__media img{width:100%;height:100%;object-fit:cover}
.pkg-card__days{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);color:#0c3b3c;font-weight:700;font-size:13px;padding:6px 12px;border-radius:20px}
.pkg-card__rating{position:absolute;top:14px;right:14px;background:#0c3b3c;color:var(--brand);font-weight:700;font-size:13px;padding:6px 12px;border-radius:20px}
.pkg-card__body{padding:20px}
.pkg-card__region{color:#7c8f8f;font-weight:700;font-size:12px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}
.pkg-card__title{font-weight:700;font-size:21px;margin:0 0 8px;letter-spacing:-.3px;line-height:1.1}
.pkg-card__desc{font-size:14px;color:#5c6e6e;line-height:1.5;margin:0 0 18px}
.pkg-card__foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #efe9dd;padding-top:16px}
.pkg-card__price-l{font-size:12px;color:#7c8f8f}
.pkg-card__price{font-weight:800;font-size:24px;color:var(--brand-deep)}
.pkg-card__link{display:inline-flex;align-items:center;gap:6px;background:#f4f1ea;color:#0c3b3c;font-weight:700;font-size:14px;padding:10px 18px;border-radius:22px;transition:background .25s,color .25s,transform .25s,box-shadow .25s}
.pkg-card__link::after{content:"\2192";display:inline-block;transition:transform .25s ease}
.pkg-card__link:hover{background:var(--brand);color:var(--on-brand);transform:translateY(-2px);box-shadow:0 10px 20px -8px rgba(var(--brand-rgb),.75)}
.pkg-card__link:hover::after{transform:translateX(5px)}
#transport .dest-card__link{background:#f4f1ea}
#transport .dest-card__link:hover{background:var(--brand)}

/* About */
.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about__media{position:relative}
.about__img{border-radius:26px;overflow:hidden;height:440px;box-shadow:0 30px 60px -30px rgba(var(--brand-shadow-rgb),.5)}
.about__img img{width:100%;height:100%;object-fit:cover}
.about__badge{position:absolute;bottom:-26px;right:-10px;background:var(--brand);color:var(--on-brand);border-radius:20px;padding:22px 26px;max-width:210px;box-shadow:0 20px 40px -18px rgba(var(--brand-rgb),.8)}
.about__badge-num{font-weight:800;font-size:38px;line-height:1}
.about__badge-txt{font-weight:600;font-size:14px;margin-top:2px}
.about__text{font-size:17px;line-height:1.65;color:#4a5c5c;margin:0 0 18px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 30px}
.stat__num{font-weight:800;font-size:34px;color:#0c3b3c;line-height:1}
.stat__label{font-size:14px;color:#7c8f8f;font-weight:600;margin-top:4px}

/* Destinations mosaic */
.destinations{background:#0c3b3c;max-width:none}
.destinations .section__head--center,.destinations .mosaic{max-width:100%;margin-left:auto;margin-right:auto}
.credit{font-size:12px;color:rgba(255,255,255,.45);margin-top:14px}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:16px}
.tile{position:relative;border-radius:20px;overflow:hidden;cursor:pointer;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.tile--xl{grid-column:span 2;grid-row:span 2}
.tile--wide{grid-column:span 2}
.tile img{width:100%;height:100%;object-fit:cover}
.tile::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 42%,rgba(6,32,33,.75))}
.tile:hover{transform:scale(1.04)}
.tile:hover .tile__label{transform:translateY(0);opacity:1}
.tile__label{position:absolute;bottom:16px;left:16px;z-index:1;color:#fff;transform:translateY(8px);opacity:.92;transition:.4s}
.tile__label h3{margin:0;font-weight:700;font-size:19px}
.tile__label span{font-size:13px;opacity:.85}
.tile--xl .tile__label{bottom:22px;left:22px}
.tile--xl .tile__label h3{font-size:28px}
.tile--xl .tile__label span{font-size:14px}
.tile--wide .tile__label{bottom:18px;left:20px}
.tile--wide .tile__label h3{font-size:23px}

/* Why us */
.why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.why-card{text-align:center;padding:32px 22px;background:#fff;border-radius:22px;box-shadow:0 14px 34px -24px rgba(var(--brand-shadow-rgb),.4)}
.why-card__icon{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 18px}
.why-card__icon--warm{background:linear-gradient(135deg,var(--brand),var(--brand-light))}
.why-card__icon--cool{background:linear-gradient(135deg,#0c3b3c,#2f7d7a)}
.why-card--photo{padding:0;overflow:hidden;text-align:left}
.why-card--photo .why-card__media{position:relative;height:150px}
.why-card--photo .why-card__media img{width:100%;height:100%;object-fit:cover}
.why-card--photo .why-card__body{padding:22px}
.why-card--photo h3{margin:0 0 8px}
.form-light{display:flex;flex-direction:column;gap:18px}
.form-light__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-light label{display:block;font-size:13px;font-weight:700;color:#0c3b3c;margin-bottom:7px}
.form-light input,.form-light select,.form-light textarea{width:100%;background:#f4f1ea;border:1px solid #e4ddcd;border-radius:12px;padding:13px 15px;color:#123434;font-family:inherit;font-size:15px;outline:none;box-sizing:border-box;transition:border-color .2s,background .2s,box-shadow .2s}
.form-light input:focus,.form-light select:focus,.form-light textarea:focus{border-color:var(--brand-deep);background:#fff;box-shadow:0 0 0 3px rgba(var(--brand-rgb),.25)}
.form-light textarea{resize:vertical}
.form-light select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237c8f8f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:38px}
@media(max-width:700px){.form-light__row{grid-template-columns:1fr}[data-bookgrid]{grid-template-columns:1fr!important}}
.why-card h3{font-weight:700;font-size:19px;margin:0 0 8px}
.why-card p{font-size:14px;color:#5c6e6e;line-height:1.55;margin:0}

/* Testimonials */
.testimonials{background:#f4f1ea;border-radius:30px;padding:60px 44px}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review-card{background:#fff;border-radius:22px;padding:28px;box-shadow:0 14px 34px -26px rgba(var(--brand-shadow-rgb),.4)}
.review-card__stars{color:var(--brand);font-size:18px;margin-bottom:14px}
.review-card__quote{font-size:15px;line-height:1.65;color:#374a4a;margin:0 0 22px;font-weight:500}
.review-card__author{display:flex;align-items:center;gap:12px}
.review-card__avatar{width:46px;height:46px;border-radius:50%;color:var(--on-brand);background:linear-gradient(135deg,var(--brand),var(--brand-light));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.review-card__name{font-weight:700;font-size:16px}
.review-card__from{font-size:13px;color:#7c8f8f}

/* Footer */
.footer{background:#0c3b3c;color:#dfeeee;padding:70px max(40px, calc((100% - 1440px) / 2)) 28px;max-width:100%;margin:0 auto}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1.6fr;gap:50px;margin-bottom:50px}
.footer__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer__grid--1{grid-template-columns:minmax(0,1fr)}
.footer__brand{color:#fff;margin-bottom:18px}
.footer__about{font-size:15px;line-height:1.65;color:#9fbaba;margin:0 0 24px;max-width:300px}
.footer__title{font-weight:700;font-size:18px;color:#fff;margin:0 0 20px}
.footer__links{display:flex;flex-direction:column;gap:12px}
.footer__links a{color:#9fbaba;font-size:15px}
.footer__links a:hover{color:var(--brand)}
.footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px;color:#7fa0a0}
.footer__legal{display:flex;gap:22px}
.footer__legal a{color:#7fa0a0}
.footer__legal a:hover{color:var(--brand)}
.socials{display:flex;gap:12px}
.social{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;transition:background .25s,transform .25s}
.social:hover{color:var(--on-brand);background:var(--brand);transform:translateY(-3px)}
.contact-form__row{display:flex;gap:12px;margin-bottom:12px}
.contact-form input,.contact-form textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:13px 15px;color:#fff;font-family:inherit;font-size:15px;outline:none}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,.5)}
.contact-form textarea{resize:vertical;margin-bottom:12px}
.footer-contact{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.footer-contact li{display:flex;gap:14px;align-items:flex-start}
.footer-contact .fc-icon{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:var(--brand);transition:background .25s,color .25s}
.footer-contact li:hover .fc-icon{background:var(--brand);color:var(--on-brand)}
.footer-contact .fc-icon svg{width:18px;height:18px}
.footer-contact .fc-label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.5);margin-bottom:3px}
.footer-contact a,.footer-contact span.fc-text{color:rgba(255,255,255,.85);font-size:15px;line-height:1.5;font-weight:500}
.footer-contact a:hover{color:var(--brand)}

/* Widgets in the footer. The theme's own widgets use the rules above; these
   make WordPress's other widgets (Text, Image, Search, Categories…) match. */
.footer__col .widget+.widget{margin-top:24px}
.footer__col .widget:not([class*="widget_wptours_"]){font-size:15px;line-height:1.65;color:#9fbaba}
.footer .widget:not([class*="widget_wptours_"]) a{color:inherit}
.footer .widget:not([class*="widget_wptours_"]) a:hover{color:var(--brand)}
.footer .widget:not([class*="widget_wptours_"]) p{margin:0 0 12px}
.footer .widget:not([class*="widget_wptours_"]) p:last-child{margin-bottom:0}
.footer .widget:not([class*="widget_wptours_"]) ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.footer .widget:not([class*="widget_wptours_"]) ul ul{margin-top:12px;padding-left:14px}
.footer .widget:not([class*="widget_wptours_"]) img{max-width:100%;height:auto;border-radius:12px}
.footer .widget:not([class*="widget_wptours_"]) table{width:100%;color:inherit}
.footer .widget input[type=search],.footer .widget input[type=text],.footer .widget select{box-sizing:border-box;width:100%;padding:11px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;color:#fff;font:inherit}
.footer .widget select option{background:#fff;color:#123434}
.footer .widget .search-form{display:flex;gap:8px}
.footer .widget .search-form label{flex:1;min-width:0}
.footer .widget .search-submit{padding:11px 18px;background:var(--brand);border:0;border-radius:12px;color:var(--on-brand);font:inherit;font-weight:700;cursor:pointer}

/* Promo banner */
.promo-wrap{padding-top:20px;padding-bottom:20px}
.promo{position:relative;max-width:1440px;margin:0 auto;border-radius:28px;overflow:hidden;background:#0c3b3c;min-height:340px;display:flex;align-items:center}
.promo__bg{position:absolute;inset:0;z-index:0}
.promo__bg image-slot{width:100%;height:100%}
.promo__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,30,32,.72) 0%,rgba(12,30,32,.55) 55%,rgba(12,30,32,.35) 100%);pointer-events:none}
.promo__badge{position:absolute;left:6%;top:50%;transform:translateY(-50%);z-index:3;width:150px;height:150px;background:var(--brand);color:var(--on-brand);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;clip-path:polygon(50% 0%,61% 12%,76% 6%,79% 22%,94% 24%,88% 39%,100% 50%,88% 61%,94% 76%,79% 78%,76% 94%,61% 88%,50% 100%,39% 88%,24% 94%,21% 78%,6% 76%,12% 61%,0% 50%,12% 39%,6% 24%,21% 22%,24% 6%,39% 12%);box-shadow:0 16px 34px -14px rgba(var(--brand-rgb),.7);animation:promoSpinBob 6s ease-in-out infinite}
.promo__badge-sm{font-size:13px;font-weight:700;letter-spacing:1px}
.promo__badge-lg{font-size:38px;font-weight:800;line-height:1}
.promo__plane{position:absolute;left:20%;bottom:8%;z-index:2;width:230px;max-width:34%;opacity:.9;pointer-events:none}
.promo__content{position:relative;z-index:3;flex:1;text-align:center;padding:44px 200px}
.promo__eyebrow{color:var(--brand);font-weight:700;font-size:15px;letter-spacing:1px;margin-bottom:10px}
.promo__title{color:#fff;font-weight:800;font-size:clamp(28px,4vw,46px);line-height:1.1;letter-spacing:-.5px;margin:0 0 26px;text-wrap:pretty}
.promo__btn{display:inline-flex;align-items:center;gap:14px;background:var(--brand);color:var(--on-brand);font-weight:700;font-size:17px;padding:14px 16px 14px 30px;border-radius:40px;box-shadow:0 14px 30px -12px rgba(var(--brand-rgb),.8);transition:background .25s,transform .25s}
.promo__btn:hover{background:var(--brand-dark);color:var(--on-brand);transform:translateY(-2px)}
.promo__btn-arrow{width:38px;height:38px;border-radius:50%;background:#fff;color:#0c3b3c;display:flex;align-items:center;justify-content:center;font-size:18px;transition:transform .25s}
.promo__btn:hover .promo__btn-arrow{transform:translateX(3px)}
.promo__traveler{position:absolute;right:5%;bottom:0;z-index:3;width:230px;height:300px;display:none}
.promo__traveler image-slot{width:100%;height:100%}
@keyframes promoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes promoSpinBob{0%,100%{transform:translateY(-50%) rotate(-6deg)}50%{transform:translateY(-58%) rotate(6deg)}}

/* ============ Subpages ============ */
.nav--solid{position:relative;left:auto;transform:none;margin:0 auto;background:#fbf7ef;padding:12px max(40px, calc((100% - 1440px) / 2));box-shadow:0 10px 30px -20px rgba(var(--brand-shadow-rgb),.5)}
.nav--solid .nav__brand,.nav--solid .nav__link{color:#123434}
.nav--solid .burger span{background:#123434}
/* Inner pages: WordPress wraps the nav in a <header> no taller than the nav, and
   a sticky element cannot leave its parent, so the <header> is what has to stick.
   For logged-in users the nav stops below the admin bar; at 600px and under the
   bar scrolls away with the page, so it needs no offset there. */
body:not(.home) header.wp-block-template-part{position:sticky;top:0;z-index:100}
@media(min-width:601px){
  body.admin-bar:not(.home) header.wp-block-template-part,body.admin-bar .nav--home{top:var(--wp-admin--admin-bar--height,32px)}
}
.subhero{position:relative;max-width:100%;margin:0 auto;height:420px;overflow:hidden;background:#0c3b3c}
.subhero img{width:100%;height:100%;object-fit:cover;filter:brightness(.72)}
.subhero__inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 max(40px, calc((100% - 1440px) / 2)) 46px;max-width:100%}
.subhero__eyebrow{color:var(--brand);font-weight:700;font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
.subhero__title{font-weight:800;font-size:clamp(34px,5vw,60px);letter-spacing:-1.5px;line-height:1;color:#fff;margin:0;text-wrap:balance}
.breadcrumb{max-width:100%;margin:0 auto;padding:22px max(40px, calc((100% - 1440px) / 2)) 0;font-size:14px;color:#7c8f8f;font-weight:600}
.breadcrumb a{color:#7c8f8f}
.breadcrumb a:hover{color:var(--brand-deep)}
.breadcrumb span{color:#123434}
.prose{max-width:760px}
.prose p{font-size:17px;line-height:1.75;color:#4a5c5c;margin:0 0 20px}
.prose h3{font-weight:800;font-size:26px;letter-spacing:-.5px;margin:36px 0 14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split__img{border-radius:24px;overflow:hidden;height:400px;box-shadow:0 30px 60px -30px rgba(var(--brand-shadow-rgb),.5)}
.split__img img{width:100%;height:100%;object-fit:cover}
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.dest-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 34px -24px rgba(var(--brand-shadow-rgb),.4);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.dest-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -18px rgba(var(--brand-shadow-rgb),.4)}
.dest-card__media{position:relative;height:210px}
.dest-card__media img{width:100%;height:100%;object-fit:cover}
.dest-card__tag{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);color:#0c3b3c;font-weight:700;font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:6px 12px;border-radius:20px}
.dest-card__body{padding:22px}
.dest-card__body h3{font-weight:700;font-size:22px;margin:0 0 8px;letter-spacing:-.3px}
.dest-card__body p{font-size:14px;color:#5c6e6e;line-height:1.55;margin:0 0 16px}
.dest-card__link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:#0c3b3c;background:#e7f0e8;padding:9px 16px;border-radius:999px;transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease}
.dest-card__link::after{content:"\2192";display:inline-block;transition:transform .25s ease}
.dest-card__link:hover{background:var(--brand);color:var(--on-brand);transform:translateY(-3px);box-shadow:0 16px 28px -10px rgba(var(--brand-rgb),.75)}
.dest-card__link:hover::after{transform:translateX(6px)}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:8px 0 4px}
.fact{background:#fff;border-radius:18px;padding:22px;box-shadow:0 14px 34px -26px rgba(var(--brand-shadow-rgb),.4)}
.fact__label{font-size:12px;font-weight:700;color:#7c8f8f;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}
.fact__val{font-weight:800;font-size:22px;color:#0c3b3c;letter-spacing:-.3px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery img{width:100%;height:220px;object-fit:cover;border-radius:16px}
.cta-band,.cta-area>.widget:not(.widget_wptours_cta){max-width:100%;margin:0 auto;padding:0 max(40px, calc((100% - 1440px) / 2)) 90px}
.cta-band__inner{background:linear-gradient(135deg,#0c3b3c,#2f7d7a);border-radius:28px;padding:52px 44px;text-align:center;color:#fff}
.cta-band__inner h2{font-weight:800;font-size:clamp(26px,3vw,38px);letter-spacing:-1px;margin:0 0 12px}
.cta-band__inner p{font-size:17px;color:rgba(255,255,255,.85);margin:0 0 26px}

/* Responsive */
@media(max-width:1100px){.hero__arrow{display:none}}
@media(max-width:900px){
  .nav__links{display:none}
  .burger{display:flex}
  .about{grid-template-columns:1fr;gap:60px}
  .mosaic{grid-template-columns:repeat(2,1fr)}
  .why__grid{grid-template-columns:repeat(2,1fr)}
  .reviews{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr;gap:40px}
  .pkg-card{flex:0 0 calc(50% - 12px)}
  .split{grid-template-columns:1fr;gap:36px}
  .dest-grid{grid-template-columns:repeat(2,1fr)}
  .fact-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .mosaic{grid-template-columns:1fr}
  .tile--xl,.tile--wide{grid-column:span 1;grid-row:span 1}
  .contact-form__row{flex-direction:column}
  .pkg-card{flex:0 0 100%}
  .section{padding:60px 20px}
  .hero__content,.finder{padding-left:20px;padding-right:20px}
  .promo{min-height:0}
  .promo__badge{width:96px;height:96px;left:auto;right:16px;top:16px;transform:none;animation:none}
  .promo__badge-lg{font-size:24px}
  .promo__traveler{display:none}
  .promo__plane{display:none}
  .promo__content{text-align:center;padding:32px 20px}
  .finder{left:20px;right:20px}
  .dest-grid{grid-template-columns:1fr}
  .fact-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .subhero__inner,.breadcrumb,.cta-band,.cta-area>.widget:not(.widget_wptours_cta){padding-left:20px;padding-right:20px}
}

/* ==========================================================================
   Brand logo — Shine Star Travels & Tours (assets/images/logo-shine-star.png)
   Transparent PNG with navy/green artwork, so it sits straight on the cream
   solid nav. Over the hero photo and on the dark footer it gets a cream badge
   in the solid-nav colour, so on scroll the badge melts into the bar.
   ========================================================================== */
.brand-logo{display:block;width:auto;height:46px;max-width:none}
.nav__brand--logo{flex-shrink:0;padding:0 10px;border-radius:14px;transition:padding .35s,background-color .35s,box-shadow .35s}
.nav:not(.is-solid):not(.nav--solid) .nav__brand--logo{padding:6px 10px;background:#fbf7ef;box-shadow:0 12px 30px -16px rgba(0,0,0,.6)}
.footer__brand--logo{display:inline-flex;padding:10px 16px;border-radius:14px;background:#fbf7ef}
.footer__brand--logo .brand-logo{height:56px}
@media(max-width:560px){
  .brand-logo{height:38px}
  .footer__brand--logo .brand-logo{height:48px}
}

/* ==========================================================================
   Hero tour finder hidden. The form markup is still on the home page
   (plugins/wptours-home/includes/render.php + patterns/home-hero.php); delete
   this block to bring it back.
   ========================================================================== */
.hero .finder{display:none}

/* ==========================================================================
   Hero slider: bullets on the right, arrows in the bottom-right corner
   - .hero__controls is an invisible layer over the whole hero that lets
     clicks through; only the bullets and arrows inside it take clicks.
   - The bullets sit in a vertical rail, centred on the right edge. From
     1101px the rail stays 52px wide (an arrow's width), so the bullets sit
     centred above the next arrow.
   - The prev/next arrows (shown from 1101px up, as before) sit side by side
     in the bottom-right corner, in line with the rail's right gutter. Their
     72px bottom offset matches the hero text's bottom padding, so they share
     a baseline with the Explore Tours / Watch Film buttons and stay above
     the fold on laptop screens.
   - The content block keeps clear of the fixed nav (top padding) and of the
     rail (right padding on narrow screens). The hero grows taller if the
     content ever needs more room, so nothing can overlap.
   - Arrows and bullets carry a soft shadow so they stay visible over bright
     photos (the overlay is lightest on the right).
   - Each slide is 100% wide and clips its own Ken Burns zoom, so the edge of
     a neighbouring photo never shows (theme.js steps the track by 100%).
   ========================================================================== */
.hero{height:auto;min-height:clamp(620px,100vh,900px);max-height:none}
.hero__content{position:relative;inset:auto;min-height:clamp(620px,100vh,900px);padding-top:128px;padding-bottom:72px}
.hero__track{width:100%}
.hero__slide{flex:0 0 100%;width:100%;overflow:hidden}
.hero__controls{position:absolute;z-index:5;inset:0;pointer-events:none}
.hero__controls .hero__dots{position:absolute;top:50%;bottom:auto;left:auto;right:max(40px, calc((100% - 1440px) / 2));transform:translateY(-50%);flex-direction:column;align-items:center;pointer-events:auto}
.hero__controls .hero__arrow{position:absolute;top:auto;bottom:72px;transform:none;pointer-events:auto;box-shadow:0 6px 18px -6px rgba(0,0,0,.5);text-shadow:0 1px 3px rgba(0,0,0,.45)}
.hero__controls .hero__arrow--next{left:auto;right:max(40px, calc((100% - 1440px) / 2))}
.hero__controls .hero__arrow--prev{left:auto;right:calc(max(40px, calc((100% - 1440px) / 2)) + 64px)}
@media(min-width:1101px){.hero__controls .hero__dots{width:52px}}
.hero__dots .dot{position:relative;width:5px;height:20px;box-shadow:0 1px 4px rgba(0,0,0,.4);transition:background .3s,height .3s}
.hero__dots .dot.is-active{width:5px;height:34px}
.hero__dots .dot::after{content:"";position:absolute;inset:-5px -10px}
@media(max-width:700px){
  .hero__content{padding-right:64px}
}
@media(max-width:560px){
  .hero__content{padding-top:112px;padding-right:40px}
  .hero__content .badge{font-size:12px;letter-spacing:1.2px;padding:7px 14px}
  .hero__controls .hero__dots{right:16px}
}
@media(max-width:360px){
  .hero__title{font-size:36px}
  .hero__content .badge{font-size:11px;letter-spacing:.8px;padding:6px 12px}
}

/* ==========================================================================
   Hero words: one block per set of words (WP Tours Home plugin)
   The blocks are stacked in the same spot, so the hero is always as tall as
   its longest text and nothing jumps when the words change. theme.js marks
   the current one; the rest can't be seen, clicked or reached by keyboard.
   ========================================================================== */
.hero__panels{display:grid}
.hero__panel{grid-area:1/1;display:flex;flex-direction:column;justify-content:center;min-width:0;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s}
.hero__panel.is-active{opacity:1;visibility:visible;transition:opacity .6s ease}
.hero.hero--single{cursor:auto}

/* ==========================================================================
   Home page: detailed (illustrated) logo
   Shown on the home page only, large at the top-left on a white card (the
   artwork has a white background). It sits outside the fixed nav, so it
   scrolls away with the hero; the small logo in the nav fades in once the nav
   turns solid on scroll. Other pages keep the small logo. The source file is
   555x555, so it stays sharp on retina screens up to about 275px.
   Size follows the screen height: 96-150px on phones/tablets, up to 200px
   on desktops.
   ========================================================================== */
body.home{--home-logo:clamp(96px,16vh,150px)}
@media(min-width:901px){body.home{--home-logo:clamp(120px,19vh,200px)}}
.home-logo-wrap{position:relative;z-index:50;height:0}
.home-logo{position:absolute;top:14px;left:max(40px, calc((100% - 1440px) / 2));padding:8px;background:#fff;border-radius:22px;box-shadow:0 24px 48px -22px rgba(0,0,0,.65)}
.home-logo img{display:block;width:var(--home-logo);height:var(--home-logo);max-width:none;object-fit:contain}
.nav--home .nav__brand--logo{transition:opacity .35s,visibility .35s,padding .35s,background-color .35s,box-shadow .35s}
.nav--home:not(.is-solid) .nav__brand--logo{opacity:0;visibility:hidden}
body.home .hero__content{padding-top:calc(var(--home-logo) + 62px)}
@media(max-width:560px){
  .home-logo{top:12px;left:20px;padding:6px;border-radius:18px}
  body.home .hero__content{padding-top:calc(var(--home-logo) + 50px)}
}

/* ==========================================================================
   Inner-page side gutters
   theme.json sets the root padding (40px left/right) that WordPress applies to
   the constrained <main> group on every inner template (Tours, Destinations,
   single tour/destination pages, pages, posts, search, 404), so content no
   longer runs edge to edge. On phones it steps down to 20px, matching the
   home page's .section gutters. (WordPress declares these variables on body.)
   ========================================================================== */
@media(max-width:560px){
  :root body{--wp--style--root--padding-left:20px;--wp--style--root--padding-right:20px}
}

/* Destination cards: the archive grid outputs the region tag inside
   .dest-card__body (not .dest-card__media), so the card itself must anchor
   the absolutely positioned tag. Otherwise every tag piles up in one spot. */
.dest-card{position:relative}

/* Pages built from home-style .section blocks (About uses the home patterns;
   Contact / Book a Trip / Transport use [wptours_form], which outputs a
   .section) already carry their own gutters. Let those sections span the
   padded <main> edge to edge so the gutters aren't doubled; they look exactly
   as before. (!important beats the constrained layout's auto margins.) */
.has-global-padding .section{max-width:none;margin-left:calc(var(--wp--style--root--padding-left) * -1) !important;margin-right:calc(var(--wp--style--root--padding-right) * -1) !important}

/* ==========================================================================
   Regular pages (About, Contact, Book a Trip, Transport...)
   - .page-intro: the page's Excerpt, shown under the breadcrumb by
     [wptours_page_intro], with the same gutters as the breadcrumb.
   - The page template's <main> already adds 64px above and 96px below the
     content, so the first/last home-style .section drops its own outer
     padding instead of doubling it. Spacing between sections is unchanged.
   ========================================================================== */
.page-intro{padding:0 max(40px, calc((100% - 1440px) / 2))}
.page-intro p{max-width:780px;margin:0;font-size:19px;line-height:1.65;color:#4a5c5c}
.has-global-padding .wp-block-post-content > .section:first-child{padding-top:0}
.has-global-padding .wp-block-post-content > .section:last-child{padding-bottom:0}
@media(max-width:560px){
  .page-intro{padding:0 20px}
  .page-intro p{font-size:17px}
}

/* ==========================================================================
   Contact Form 7 submit buttons (Contact, Book a Trip, Transport)
   The forms print <input type="submit" class="btn btn--primary btn--lg">
   inside .form-light, where the field rule (.form-light input) is more
   specific than .btn--primary and turned the buttons into sand boxes. Keep
   them gold and full width, like the theme's own fallback forms. Must stay
   after the .form-light rules (same specificity as .form-light input:focus).
   ========================================================================== */
.form-light input.btn--primary{width:100%;justify-content:center;background:var(--brand);color:var(--on-brand);border:none;border-radius:30px;padding:16px 30px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px -8px rgba(var(--brand-rgb),.7);transition:transform .2s,background .2s,box-shadow .2s}
.form-light input.btn--primary:hover{background:var(--brand-dark);transform:translateY(-2px)}
.form-light input.btn--primary:focus-visible{outline:2px solid var(--on-brand);outline-offset:3px}
/* CF7's (hidden) sending spinner wrapped onto its own line under the full-width
   button, leaving a blank gap: float it over the button's right end instead
   (the button is always the last thing in that paragraph, which can also hold
   the fields above it, so it is pinned to the bottom).
   Browsers without :has() keep the old layout. */
.form-light p:has(> .wpcf7-submit){position:relative}
.form-light p:has(> .wpcf7-submit) > .wpcf7-spinner{position:absolute;right:18px;bottom:14px;margin:0}

/* ==========================================================================
   Carousel touch and drag (hero slider + tour packages; see theme.js)
   - touch-action: pan-y leaves up/down swipes to the browser, so the page
     still scrolls, and hands sideways swipes to the script. Pinch-zoom
     keeps working.
   - Mouse users get a grab cursor (links and buttons keep the pointer).
     While dragging, text selection and the browser's own image dragging
     are switched off.
   ========================================================================== */
.hero,.carousel{touch-action:pan-y;touch-action:pan-y pinch-zoom}
.hero,.carousel__track{cursor:grab}
.hero.is-dragging,.hero.is-dragging *,.carousel.is-dragging,.carousel.is-dragging *{cursor:grabbing;-webkit-user-select:none;user-select:none}
.hero img,.carousel img{-webkit-user-drag:none;-webkit-touch-callout:none}
/* Pinch-zoomed: the browser pans sideways again (theme.js stops swiping). */
.is-pinch-zoomed .hero,.is-pinch-zoomed .carousel{touch-action:auto}
.is-pinch-zoomed .hero,.is-pinch-zoomed .carousel__track{cursor:auto}

/* ==========================================================================
   Hero pause / play button (theme.js adds it under the slide bars) and
   reduced motion: no autoplay (theme.js), no Ken Burns zoom, no spinning
   promo badge, near-instant slide changes.
   ========================================================================== */
.hero__pause{position:relative;flex:0 0 auto;width:30px;height:30px;margin-top:6px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.14);backdrop-filter:blur(6px);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.4);transition:background .25s,border-color .25s}
.hero__pause::before{content:"";position:absolute;left:50%;top:50%;width:9px;height:11px;transform:translate(-50%,-50%);box-sizing:border-box;border-left:3px solid #fff;border-right:3px solid #fff}
.hero__pause.is-paused::before{width:0;height:0;border-right:0;border-left:9px solid #fff;border-top:6px solid transparent;border-bottom:6px solid transparent;transform:translate(-35%,-50%)}
.hero__pause:hover{background:var(--brand);border-color:var(--brand)}
.hero__pause:hover::before{border-left-color:var(--on-brand);border-right-color:var(--on-brand)}
.hero__pause:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* ==========================================================================
   Contact page: "Find us" section ([wptours_map]) - office details on a
   white card next to a Google map; stacked on tablets and phones (card
   first). Details come from wptours_contact_details() in functions.php.
   ========================================================================== */
.map-section__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:stretch}
.map-card{display:flex;flex-direction:column;background:#fff;border-radius:24px;padding:34px;box-shadow:0 30px 60px -30px rgba(var(--brand-shadow-rgb),.4)}
.map-card .section__title{font-size:clamp(26px,3vw,36px);margin-bottom:26px}
.map-card__list{list-style:none;margin:0 0 30px;padding:0;display:flex;flex-direction:column;gap:18px}
.map-card__list li{display:flex;gap:14px;align-items:flex-start}
.map-card__icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(var(--brand-rgb),.16);color:var(--brand-deep)}
.map-card__icon svg{width:19px;height:19px}
.map-card__label{display:block;margin-bottom:3px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#7c8f8f}
.map-card__text{font-size:16px;font-weight:600;line-height:1.5;color:#123434;overflow-wrap:anywhere}
a.map-card__text:hover{color:var(--brand-deep)}
.map-card__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto}
.btn--outline{background:transparent;color:var(--on-brand);box-shadow:inset 0 0 0 2px var(--brand)}
.btn--outline:hover{background:var(--brand);color:var(--on-brand);transform:translateY(-2px)}
.map-frame{position:relative;min-height:440px;border-radius:24px;overflow:hidden;background:#ebe5d7;box-shadow:0 30px 60px -30px rgba(var(--brand-shadow-rgb),.5)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:900px){.map-section__grid{grid-template-columns:1fr}.map-frame{min-height:360px}}
@media(max-width:560px){.map-card{padding:26px 22px}.map-frame{min-height:300px;border-radius:20px}}
/* Contact block ([wptours_form type="contact"]): text top-aligned with the
   form card, quick WhatsApp / call buttons, and the phone number set large
   under them instead of a details list (the full details and the map are in
   "Find us" further down the page). */
.split--top{align-items:start}
.split--top .section__title{margin-bottom:16px}
.contact-quick{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
/* The phone number as a tap-to-call pill: a solid gold phone disc (concentric
   with the pill's rounded end) beside the number in heavy, evenly spaced
   figures, with the support hours under it. The number's size steps with the
   column width so it stays on one line from 320px phones up. */
.contact-hotline{display:flex;align-items:center;gap:16px;width:fit-content;max-width:100%;margin-top:20px;padding:14px 30px 14px 14px;border:1px solid rgba(var(--brand-rgb),.4);border-radius:999px;background:#fff;color:#123434;box-shadow:0 18px 36px -22px rgba(var(--brand-shadow-rgb),.55);transition:border-color .2s,box-shadow .2s}
.contact-hotline:hover{color:#123434;border-color:var(--brand);box-shadow:0 22px 40px -20px rgba(var(--brand-shadow-rgb),.65)}
.contact-hotline:focus-visible{outline:2px solid var(--on-brand);outline-offset:3px}
.contact-hotline__icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:var(--on-brand);transition:background .2s}
.contact-hotline:hover .contact-hotline__icon{background:var(--brand-dark)}
.contact-hotline__icon svg{width:24px;height:24px}
.contact-hotline__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.contact-hotline__number{font-size:clamp(24px,2.9vw,28px);font-weight:800;line-height:1.15;letter-spacing:.01em;word-spacing:.1em;font-variant-numeric:tabular-nums}
.contact-hotline__hours{font-size:15px;font-weight:600;line-height:1.3;color:var(--brand-deep)}
@media(max-width:900px){.contact-hotline__number{font-size:28px}}
@media(max-width:560px){
  .contact-hotline{gap:12px;padding:12px 22px 12px 12px}
  .contact-hotline__icon{width:44px;height:44px}
  .contact-hotline__icon svg{width:20px;height:20px}
  .contact-hotline__number{font-size:clamp(19px,calc(10vw - 13px),28px)}
}
/* Text for screen readers only (e.g. "opens in a new tab"). */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (prefers-reduced-motion:reduce){
  .hero .kb,.promo__badge{animation:none}
  .hero__track,.carousel__track{transition-duration:.01s}
  .hero__panel,.hero__panel.is-active{transition:none}
}
