/* Shared appearance and motion. No external animation dependencies. */
html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}
body{transition:background-color .3s,color .3s}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:42px;padding:8px 13px;border:1px solid #8a9eab70;border-radius:24px;background:#0c303a;color:#fff;font:600 12px system-ui;cursor:pointer;flex-shrink:0}
.theme-toggle:hover{border-color:#ff8b2b;background:#18434c}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #ed9028;outline-offset:4px}
.public-site{background-image:linear-gradient(125deg,#021216,#0b3038,#211c30,#082a30);background-size:350% 350%;animation:page-colors 24s ease infinite}
@keyframes page-colors{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes fan-enter{from{opacity:0;transform:scale(.8) translate(25px,25px)}to{opacity:1;transform:none}}
.public-site :where(.travel-card,.destination-card,.review-card,.team-card,.category-strip>a),.admin-layout :where(.panel,.stat-card,.media-card){transition:transform .25s,box-shadow .25s,border-color .25s}
@media(hover:hover){.public-site :where(.travel-card,.destination-card,.review-card,.team-card,.category-strip>a):hover,.admin-layout :where(.stat-card,.media-card):hover{transform:translateY(-5px);box-shadow:0 14px 32px #0003;border-color:#f78a38}.travel-card img,.destination-card img,.gallery-item img{transition:transform .5s}.travel-card:hover img,.destination-card:hover img,.gallery-item:hover img{transform:scale(1.035)}.btn:hover{box-shadow:0 7px 18px #ea762426}.nav-item:hover{transform:translateX(3px)}}
.reveal-ready{opacity:0;transform:translateY(18px)}.reveal-ready.reveal-in{opacity:1;transform:none;transition:opacity .55s ease,transform .55s ease}
/* Light public theme; photographic banners retain white text. */
html[data-theme=light] .public-site{--sea:#f3faf8;--sea-deep:#f6f8f3;--sea-card:#fff;--text:#15363c;--muted:#46636a;--line:#c5d9d7;background-image:linear-gradient(125deg,#fff7eb,#e9f7f4,#f1ecfa,#fff4e5)}
html[data-theme=light] .public-site :where(.public-nav,.site-footer){background:#f7fbf7ed;color:#15363c}
html[data-theme=light] .public-site :where(.travel-card,.review-card,.team-card,.category-strip>a,.mission-grid article,.contact-card,.inquiry-panel,.faq){background:#fff;color:#15363c;border-color:#cbddda}
html[data-theme=light] .public-site :where(.eyebrow,.public-nav a,.footer-grid a,.footer-bottom,.card-meta,.faq summary){color:#31565d}
html[data-theme=light] .public-site :where(input,select,textarea){background:#fff;color:#193d43;border-color:#b3cdca}
html[data-theme=light] .public-site :where(.btn-outline,.btn-light){background:#f9fffd;color:#214c52;border-color:#789f9d}
html[data-theme=light] .public-site .btn-orange{color:#fff}
html[data-theme=light] .public-site :where(.travel-hero,.closing-banner,.destination-card){--text:#fff;--muted:#ecf4f4;color:white}
html[data-theme=light] .public-site :where(.travel-hero,.closing-banner,.destination-card) :where(h1,h2,h3,p,.eyebrow){color:#fff}
html[data-theme=light] .public-site .travel-hero .btn-outline{background:#09272da8;color:#fff}
html[data-theme=light] .theme-toggle{background:#fff9ee;color:#20494e}
/* Dashboard dark mode covers operational forms, tables and page editors. */
html[data-theme=dark] body:not(.public-site){--ink:#e5f0f4;--muted:#a7becb;--line:#29434f;background:#101f29;color:#e5f0f4}
html[data-theme=dark] .admin-layout{background:linear-gradient(125deg,#10202b,#15323a,#262336);background-size:350% 350%;animation:page-colors 24s ease infinite}
html[data-theme=dark] :where(.admin-header,.admin-content .panel,.stat-card,.media-card,.preview-panel,.account-menu>div,.driver-trip-card){background:#192e3b;color:#e5f0f4;border-color:#314b58}
html[data-theme=dark] .admin-layout :where(h1,h2,h3,h4,label,strong,.details dd,.media-card>a){color:#e5f0f4}
html[data-theme=dark] .admin-layout :where(p,small,.breadcrumb,.nav-section,.admin-bottom){color:#adc2cc}
html[data-theme=dark] .admin-layout :where(input,select,textarea){background:#10232e;color:#eef7fa;border-color:#42606e}
html[data-theme=dark] .admin-layout :where(.btn-light,.editor-tabs,.block-row,.header-search,.empty-image,.asset-preview){background:#213b49;color:#e6f1f5;border-color:#385664}
html[data-theme=dark] .admin-layout :where(th,.data-table th){background:#122733;color:#c7dbe5}
html[data-theme=dark] .admin-layout :where(td,.data-table td,.usage-row){border-color:#314b58}
html[data-theme=dark] .admin-layout :where(.table-scroll,.detail-grid){color:#deedf3}
html[data-theme=light] .admin-layout{background:linear-gradient(125deg,#f3f8fd,#edf7f3,#f8f1eb);background-size:350% 350%;animation:page-colors 24s ease infinite}
/* Quarter-circle mobile navigation inspired by the supplied reference. */
.fan-launch,.mobile-fan{display:none}.fan-is-open{overflow:hidden}
@media(max-width:1000px){
 .fan-ready .public-nav #publicNavigation{display:none!important}.fan-ready .public-menu-toggle{display:none!important}
 .public-site .public-nav{align-items:center;gap:12px}.public-site .site-footer{padding-bottom:110px}
 .fan-ready .fan-launch{display:flex;position:fixed;z-index:80;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:60px;height:60px;border:1px solid #ffb15b;border-radius:50%;background:linear-gradient(135deg,#ff982b,#ef571a);color:#fff;box-shadow:0 6px 24px #0005;align-items:center;justify-content:center;flex-direction:column;font-size:23px;cursor:pointer}.fan-launch span{font:600 10px system-ui}
 .mobile-fan[open]{display:block;position:fixed;inset:auto 0 0 auto;margin:0;width:min(360px,100vw);height:400px;max-width:100vw;max-height:95dvh;padding:0;border:0;border-radius:100% 0 0 0;overflow:hidden;background:linear-gradient(145deg,#375dcb,#9a63bb,#f48268,#ffac36);background-size:220% 220%;color:#fff;box-shadow:-12px -12px 60px #0003;transform-origin:bottom right;animation:fan-enter .25s ease-out,page-colors 9s ease infinite}
 .mobile-fan::backdrop{background:#00151d80;backdrop-filter:blur(3px)}
 .fan-link{position:absolute;width:86px;min-height:54px;display:flex;align-items:center;flex-direction:column;gap:5px;text-align:center;color:#fff!important;font:600 11px/1.2 system-ui;text-decoration:none;text-shadow:0 1px 4px #241339}
 .fan-link span{display:grid;place-items:center;width:36px;height:36px;background:#fff;border-radius:50%;color:#754987;font-size:21px;box-shadow:0 3px 10px #30235430;text-shadow:none;transition:transform .2s}
 .fan-link:hover span,.fan-link:focus-visible span{transform:scale(1.12);background:#fff4d9}
 .fan-1{left:4%;bottom:25px}.fan-2{left:12%;bottom:145px}.fan-3{right:28%;bottom:253px}.fan-4{right:1%;bottom:313px}.fan-5{right:28%;bottom:30px}.fan-6{right:22%;bottom:140px}.fan-7{right:1%;bottom:222px}
 .fan-close{position:absolute;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:60px;height:60px;display:grid;place-items:center;background:#071b22;border:1px solid #ffffff60;border-radius:50%;color:white;font-size:40px;cursor:pointer}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}}
html[data-theme=light] .public-site :where(.public-form-card,.status-card,.success-card,.login-card,.summary-box,.payment-instructions,.article-card,.contact-cards>a,.contact-cards>div,.filter-pills>a){background:#fff;color:#15363c;border-color:#cbddda}
html[data-theme=light] .public-site .login-page{background:transparent}
html[data-theme=light] .public-site input:not([type=checkbox]):not([type=hidden]),html[data-theme=light] .public-site select,html[data-theme=light] .public-site textarea,html[data-theme=light] .public-site option{background:#fff;color:#193d43;border-color:#b3cdca;color-scheme:light}
html[data-theme=light] .public-site .contact-visual :where(h3,p){color:#fff}
html[data-theme=light] .public-site .filter-pills>a.selected{background:#d65a08;color:#fff}
@media(max-width:1000px){.public-site .mobile-fan>.fan-close{top:auto;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:60px;height:60px;font-size:40px;border:1px solid #ffffff60}.public-site .mobile-fan::backdrop{background:#00151d80}}
[hidden]{display:none!important}.app-install-page{max-width:1000px}.app-install-page h1{font-size:clamp(35px,6vw,64px)}.app-install-page .button-row{display:flex;gap:14px;flex-wrap:wrap;margin:25px 0}.app-install-page .mission-grid{margin-top:35px}.app-login-link{text-align:center;margin:20px}.staff-app-link{font-size:12px;white-space:nowrap}.admin-header .header-right{gap:12px}@media(max-width:600px){.staff-app-link{max-width:48px;white-space:normal;font-size:10px}.admin-header .header-right{gap:8px}.admin-header .theme-toggle{padding-inline:8px}}
.save-error-summary{padding:20px;margin:0 0 24px;border:2px solid #d7583e;background:#fff1e9;color:#6f2616;border-radius:10px}.save-error-summary h3,.save-error-summary p,.save-error-summary a{color:#6f2616!important}.save-error-summary ul{margin:10px 0;padding-left:22px}.save-error-summary a{text-decoration:underline}.floating-whatsapp{position:fixed;right:22px;bottom:24px;z-index:75;display:flex;align-items:center;gap:9px;min-width:56px;min-height:56px;padding:12px 17px;background:#087d43;color:#fff!important;border:1px solid #b1ffd5;border-radius:32px;box-shadow:0 6px 22px #001a1740;font:600 13px system-ui;text-decoration:none;transition:transform .2s,box-shadow .2s}.floating-whatsapp:hover{transform:translateY(-3px);box-shadow:0 10px 26px #001a1755;background:#066335}.fan-is-open .floating-whatsapp{visibility:hidden}@media(max-width:1000px){.floating-whatsapp{right:auto;left:18px;bottom:calc(18px + env(safe-area-inset-bottom));padding:12px}.floating-whatsapp span{display:none}}@media(prefers-reduced-motion:reduce){.floating-whatsapp:hover{transform:none}}
.service-detail{max-width:950px}.service-detail h1{font-size:clamp(32px,5vw,58px)}.service-cover{display:block;width:100%;max-height:470px;object-fit:cover;border-radius:16px;margin:26px 0}.trip-planner{padding:28px;max-width:850px;margin:30px auto}.trip-planner>.field{margin:20px 0}.trip-planner>.field>label{display:block;margin-bottom:8px;font-weight:650}.trip-planner input[type=checkbox]{width:auto;margin-right:8px}.trip-planner .field>div{display:grid;gap:8px}.trip-planner textarea{width:100%}

.mail-message{overflow-wrap:anywhere;max-width:100%;line-height:1.7}.mail-message p{white-space:pre-wrap}.admin-content> .panel{margin-bottom:20px}

/* Keep navigation visible while reading long pages. */
.public-site .public-nav{position:sticky;top:0;z-index:70}
.public-site{scroll-padding-top:130px}
.public-site [id]{scroll-margin-top:130px}

.public-site{padding-top:var(--public-header-height,122px)}
.public-site .public-nav{position:fixed;inset:0 0 auto 0;width:100%;z-index:70;box-shadow:0 3px 18px #0002}
.public-site [id]{scroll-margin-top:calc(var(--public-header-height,122px) + 16px)}
@media(max-width:600px){.public-site{--public-header-height:100px}}
.public-site #dailyVoucher{position:fixed;inset:0;margin:auto;width:min(480px,calc(100vw - 28px));height:fit-content;padding:35px 26px;border-radius:20px;background:linear-gradient(135deg,#07353e,#102938);text-align:center;box-shadow:0 20px 80px #0008}.public-site #dailyVoucher h2{font-size:30px;color:white}.public-site #dailyVoucher p{font-size:13px;color:#e2eef0}.public-site #dailyVoucher [data-voucher-clock]{font:700 38px monospace;color:#ffb354;margin:20px 0;animation:voucher-pulse 1.5s ease-in-out infinite}@keyframes voucher-pulse{50%{transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.public-site #dailyVoucher [data-voucher-clock]{animation:none}}

.document-editor fieldset{border:1px solid #7194a366;border-radius:16px;padding:22px;margin:25px 0}.document-editor legend{padding:0 10px;font-weight:700}.document-editor textarea{min-height:90px;height:110px;width:100%}.document-editor label,.document-editor small{display:block}.document-editor input[type=checkbox]{width:22px;height:22px}.document-editor .form-grid{gap:22px}.document-editor select,.document-editor input:not([type=checkbox]){max-width:100%;width:100%;min-height:44px}
