/* Soft dark surfaces, visible borders and readable text. Light mode is optional. */
.visa-section-toggle{display:block;min-height:44px;margin-bottom:12px;font-weight:600}.visa-section-toggle:focus-visible{outline:2px solid var(--link);outline-offset:3px}
:root{color-scheme:dark;--ink:#e4ebe3;--muted:#b8c6bd;--paper:#182521;--line:#4b6057;--green:#bcd19f;--lime:#c9d9af;--white:#24342e;--panel:#24342e;--surface:#20302a;--input:#1c2a25;--button-bg:#bcd19f;--button-text:#1c2a21;--hover:#d4e4bc;--link:#c6dbae;--notice:#2c3e30;--notice-line:#687d5b;--error:#432d2c;--error-text:#ffd7cf;--error-line:#aa786d;--danger:#ffc4b7;--hero-sky:#344943;--hero-sky-alt:#536458;--hero-card:#20332eef;--badge:#34473c;--badge-good:#304b39;--badge-good-text:#d1edc9;--badge-wait:#4a4230;--badge-wait-text:#f5e2b0;--badge-closed:#453733;--badge-closed-text:#f3d1c6}
:root[data-theme=light]{color-scheme:light;--ink:#173b36;--muted:#52655b;--paper:#f8f7f2;--line:#b9c8bd;--green:#224e43;--lime:#d7e6a3;--white:#fff;--panel:#fff;--surface:#eef0e6;--input:#fff;--button-bg:#224e43;--button-text:#fff;--hover:#356657;--link:#28583b;--notice:#ecf0dc;--notice-line:#a9bd8d;--error:#fff0e8;--error-text:#82372d;--error-line:#cb9587;--danger:#983b30;--hero-sky:#ecd8b3;--hero-sky-alt:#9dc4b6;--hero-card:#f7f5e7ed;--badge:#e4eade;--badge-good:#dfedda;--badge-good-text:#285b31;--badge-wait:#f6edcf;--badge-wait-text:#715619;--badge-closed:#f2e5e0;--badge-closed-text:#713e32}
body{font-size:16px;line-height:1.65}a:hover{color:var(--link)}small{font-size:13px}label{font-size:14px}input,select,textarea{background:var(--input);color:var(--ink);border-color:var(--line);font-size:16px;min-height:46px}input:focus,textarea:focus,select:focus{outline:2px solid var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:4px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.button{background:var(--button-bg);color:var(--button-text);border-color:var(--button-bg);font-size:14px;min-height:46px}.button:hover{background:var(--hover);color:var(--button-text)}.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.button.cream{background:var(--button-bg);color:var(--button-text)}.link{min-height:44px}.header{height:auto;min-height:94px;padding-top:18px;padding-bottom:18px}nav{flex-wrap:wrap;justify-content:flex-end;gap:16px;font-size:14px}.theme-toggle{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:30px;padding:9px 14px;min-height:44px;font-size:12px}.theme-toggle:hover{border-color:var(--green)}.hero-copy h1 em,.steps span{color:var(--green)}.hero-copy>p:not(.eyebrow){font-size:16px}.hero-note p,.hero-note small,.text-link{font-size:14px}.dot{background:var(--green)}.hero-art{background:linear-gradient(160deg,var(--hero-sky),var(--hero-sky) 45%,var(--hero-sky-alt) 46%)}.art-card{background:var(--hero-card)}.art-card small,.compass{color:var(--muted)}.art-card small{font-size:12px}.service-card,.panel,.metrics>div,.metrics>a{background:var(--panel);border-color:var(--line)}.service-card:hover{color:var(--ink);border-color:var(--green)}.service-card p,.service-card strong,.steps p,.sidebar a{font-size:14px}..service-icon{background:linear-gradient(145deg,var(--surface),var(--panel));color:inherit;box-shadow:0 2px 10px rgba(0,0,0,.15)}.process,.sidebar,th{background:var(--surface)}.sidebar a.active{background:var(--button-bg);color:var(--button-text)}.cta{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.cta .eyebrow{color:var(--green)}th{color:var(--muted);font-size:12px}td{font-size:14px}tr:hover td{background:var(--surface)}.notice{background:var(--notice);border-color:var(--notice-line);color:var(--ink)}.notice.error{background:var(--error);border-color:var(--error-line);color:var(--error-text)}.badge{background:var(--badge);color:var(--ink);font-size:12px}.badge.confirmed,.badge.verified,.badge.accepted,.badge.booked,.badge.enabled,.badge.complete{background:var(--badge-good);color:var(--badge-good-text)}.badge.pending,.badge.new,.badge.offered,.badge.quoted,.badge.draft,.badge.incomplete{background:var(--badge-wait);color:var(--badge-wait-text)}.badge.rejected,.badge.cancelled,.badge.withdrawn,.badge.closed,.badge.disabled{background:var(--badge-closed);color:var(--badge-closed-text)}.danger{color:var(--danger)}dl{font-size:15px;grid-template-columns:minmax(130px,180px) minmax(0,1fr)}.large-symbol{color:var(--green)}.visa-section>form{margin-top:12px}.visa-section summary{padding:12px 0;color:var(--link)}.visa-section details[open]>summary{margin-bottom:15px}.visa-section .section-heading{align-items:center;flex-direction:row}.visa-section .section-heading h2{margin:0}.save-hint{font-size:13px;color:var(--muted)}.visa-progress{display:flex;align-items:center;gap:20px;margin:25px 0}.visa-progress progress{width:70%;height:12px;accent-color:var(--green)}.visa-progress span{font-size:13px;color:var(--muted)}.access-code{font-family:Consolas,monospace;font-size:14px}.guest-receipt{border-color:var(--notice-line)}.guest-receipt h2{font-size:27px}.checkbox input{min-height:16px}.panel summary{font-size:15px}:root:not([data-theme=light]) .hero-art .sun{background:#9fa885}:root:not([data-theme=light]) .mountain.far{background:linear-gradient(130deg,#51685a,#6d7962)}:root:not([data-theme=light]) .mountain.near{background:linear-gradient(140deg,#334e43,#768567)}:root:not([data-theme=light]) .sea{background:repeating-linear-gradient(177deg,#416c65 0,#416c65 22px,#527b70 24px,#527b70 26px)}:root:not([data-theme=light]) .island{background:#304d3a}
@media(max-width:720px){nav{justify-content:flex-start;font-size:13px}.hero-copy h1{font-size:43px}.service-card p,.service-card strong{font-size:14px}.service-card p{min-height:80px}.metrics strong{font-size:25px}.filter{gap:12px}.visa-progress{gap:12px}.visa-progress progress{width:50%}.visa-section .section-heading{align-items:flex-start;gap:12px}.visa-section .section-heading h2{font-size:25px}.page-heading h1{font-size:36px}.service-card>small{font-size:12px}.header .brand{white-space:normal}dl{grid-template-columns:110px minmax(0,1fr)}}
@media print{body{background:white;color:#111}.panel,.service-card,.metrics>div{background:white;color:#111}.theme-toggle,.guest-receipt{display:none}}

.visa-extras{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1rem}.detail-value{white-space:pre-wrap;overflow-wrap:anywhere}.visa-extras h4{overflow-wrap:anywhere}

.visa-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.visa-section-nav a{padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:13px}.visa-section{scroll-margin-top:20px}

.visa-step-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.visa-step-list a{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:8px;height:100%;overflow-wrap:anywhere}.visa-step-list a[aria-current=step]{border:2px solid var(--link);background:var(--surface)}.step-number{flex-shrink:0;font-weight:700}.visa-step-list strong{display:block;font-size:14px}.visa-step-list small{display:block;color:var(--muted);margin-top:4px}.visa-back-steps{display:inline-block;margin-top:18px;padding:10px 0}.visa-step-overview{scroll-margin-top:20px}@media(max-width:900px){.visa-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.visa-step-list{grid-template-columns:1fr}}

/* Shared navigation and comfortable reading. */
body{font-size:16px;line-height:1.65}p{line-height:1.7}input,select,textarea{font-size:16px;line-height:1.5}a,button,input,select,textarea,summary{scroll-margin-top:24px}:focus-visible{outline:2px solid var(--link);outline-offset:4px}a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}.skip-link{position:absolute;left:16px;top:-120px;z-index:1000;background:var(--panel);padding:14px;border:2px solid var(--link)}.skip-link:focus{top:12px}.nav-menu-toggle{display:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 18px}.location-nav{justify-content:flex-start;padding:16px 5%;font-size:14px;gap:10px}.browse-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.browse-grid ul{padding-left:20px}.browse-grid li a{display:inline-block;padding:8px 0;min-height:44px}.header{gap:18px;flex-wrap:wrap}#primary-navigation{flex:1;min-width:0}.header .brand{flex-shrink:0}footer a{min-height:44px;display:inline-flex;align-items:center}.browse-grid p{overflow-wrap:anywhere}
@media(max-width:900px){.navigation-ready .nav-menu-toggle{display:block;margin-left:auto}.navigation-ready #primary-navigation{display:none}.navigation-ready #primary-navigation.menu-open{display:flex;flex-basis:100%;justify-content:flex-start;align-items:center;gap:12px}#primary-navigation a{padding:8px 6px;min-height:44px}.browse-grid{grid-template-columns:1fr}.location-nav{padding:14px 5%;flex-wrap:wrap}.header{min-height:76px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.concise-help{max-width:1100px;margin:auto}.concise-help details{padding:16px 0;border-bottom:1px solid var(--line)}.concise-help summary{min-height:44px;display:list-item}.hero{padding-top:40px;padding-bottom:40px}.hero-art{max-height:420px}.hero-note a{text-decoration:underline}@media(max-width:720px){.hero-art{height:260px}.hero-copy h1{font-size:40px}}

.record-item h3,.record-preview p,.record-preview label{overflow-wrap:anywhere}

.chat-widget{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:95;width:min(380px,calc(100vw - 32px));background:var(--panel,#fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:0;max-height:min(520px,85vh);overflow:hidden;display:flex;flex-direction:column}
.chat-widget>summary.chat-widget-summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;min-height:52px;padding:12px 16px;font-weight:600;color:#fff;background:var(--green,#224e43);border-radius:16px}
.chat-widget>summary::-webkit-details-marker{display:none}
.chat-widget[open]>summary{border-radius:16px 16px 0 0}
.chat-widget:not([open]){width:auto;border-radius:999px}
.chat-widget:not([open]) .chat-widget-summary{border-radius:999px;padding:12px 18px}
.chat-widget-body{padding:14px 16px 16px;overflow:auto;max-height:min(460px,75vh)}
.chat-widget-title{margin:0 0 8px}
.chat-log{max-height:240px;overflow:auto;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.chat-message{padding:10px 12px;border:1px solid var(--line);border-radius:12px;white-space:pre-wrap;font-size:14px}
.chat-message.admin{background:var(--surface,#f3f6f2);align-self:flex-start;max-width:92%}
.chat-message.client{background:#e8f5e9;align-self:flex-end;max-width:92%}
.chat-message-body{margin-top:4px}
.chat-message-time{display:block;margin-top:6px;opacity:.65;font-size:11px}
.chat-feedback{font-size:13px;overflow-wrap:anywhere;min-height:1.2em}
.chat-panel textarea{width:100%}
.chat-widget-icon{font-size:1.25rem;line-height:1}
@media(max-width:720px){
  .chat-widget{left:12px;right:auto;bottom:calc(80px + env(safe-area-inset-bottom))}
}
[data-chat-inbox] a,[data-chat-inbox] p{overflow-wrap:anywhere}
@media print{.chat-widget{display:none}}

.chat-attachments{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.chat-file-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--green,#224e43);text-decoration:underline}
.chat-form input[type=file]{font-size:13px;max-width:100%}

.chat-files-panel table td{vertical-align:middle}
.chat-download-btn{display:inline-block;margin-top:6px;white-space:nowrap}
.chat-attachments .chat-download-btn{font-size:13px;padding:6px 12px}

.notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 5px;margin-left:6px;border-radius:999px;background:#c62828;color:#fff;font-size:11px;font-weight:700;line-height:1}
.nav-notifications{position:relative}
.payment-timeline{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.payment-timeline-item{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}
.payment-timeline-item.status-verified{border-color:#2e7d32;background:rgba(46,125,50,.06)}
.payment-timeline-item.status-pending{border-color:#f9a825;background:rgba(249,168,37,.08)}
.payment-timeline-item.status-rejected{border-color:#c62828;background:rgba(198,40,40,.06)}
.unread-notice{border-left:4px solid var(--green,#224e43)}

/* ========== Stacked contact FABs (WhatsApp → Messenger → Live Chat) ========== */
.fab-stack {
  position: fixed;
  bottom: calc(20px + env(safe-area-inset-bottom));
  z-index: 100;
  display: flex;
  flex-direction: column-reverse; /* bottom icon is lowest */
  gap: 12px;
  align-items: flex-end;
}
.fab-stack-right { right: 20px; left: auto; }
.fab-stack-left  { left: 20px; right: auto; align-items: flex-start; }

.fab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(0,0,0,.28);
  color: #fff;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.fab-btn:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(0,0,0,.35); }
.fab-btn svg { display: block; }

.fab-whatsapp { background: #25D366; }
.fab-messenger { background: #0084FF; }
.fab-livechat { background: var(--green, #224e43); width: auto; min-width: 56px; padding: 0 16px; border-radius: 28px; gap: 8px; }

/* Live chat widget positioned inside the stack */
.fab-stack .chat-widget {
  position: static;
  left: auto; right: auto; bottom: auto;
  width: auto;
  box-shadow: none;
  border: none;
  background: transparent;
}
.fab-stack .chat-widget:not([open]) { width: auto; }
.fab-stack .chat-widget[open] {
  width: min(380px, calc(100vw - 40px));
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0,0,0,.22);
}
.fab-stack .chat-widget[open] > .chat-widget-summary {
  border-radius: 16px 16px 0 0;
}
.fab-stack .chat-widget-summary.fab-btn {
  /* inherits fab-btn look when closed */
}
.fab-stack .chat-widget[open] .chat-widget-summary.fab-btn {
  width: 100%;
  border-radius: 16px 16px 0 0;
  height: auto;
  min-height: 52px;
}

/* Hide legacy single WhatsApp fab if present */
.whatsapp-fab { display: none !important; }

/* ========== Admin dashboard readability enhancements ========== */
.admin-shell {
  --admin-sidebar-bg: var(--paper);
  --admin-sidebar-text: var(--ink);
}
.admin-shell .sidebar {
  background: var(--admin-sidebar-bg);
  color: var(--admin-sidebar-text);
  border-right: 1px solid var(--line);
}
.admin-shell .sidebar a {
  color: var(--muted);
  border-radius: 8px;
  padding: 10px 14px;
  margin: 2px 8px;
  display: block;
  transition: background .12s, color .12s;
}
.admin-shell .sidebar a:hover,
.admin-shell .sidebar a.active {
  background: var(--surface);
  color: var(--ink);
  font-weight: 600;
}
.admin-shell .sidebar .eyebrow {
  color: var(--muted);
  letter-spacing: .08em;
  font-size: 11px;
  padding: 16px 14px 8px;
  margin: 0 8px;
}
.admin-main {
  background: var(--paper);
  color: var(--ink);
}
.admin-main .panel,
.admin-main .stat-card,
.admin-main .metrics a {
  background: var(--panel);
  border-color: var(--line);
  color: var(--ink);
}
.admin-main table th {
  background: var(--surface);
  color: var(--muted);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.admin-main table td {
  border-color: var(--line);
  color: var(--ink);
}
.admin-main .page-heading h1 {
  color: var(--ink);
  font-size: 1.75rem;
}
.admin-main .page-heading .eyebrow {
  color: var(--muted);
}
.admin-main .button {
  min-height: 42px;
}
.admin-main input,
.admin-main select,
.admin-main textarea {
  background: var(--input);
  color: var(--ink);
  border-color: var(--line);
}
.admin-main .notice {
  border-radius: 10px;
}

/* High-contrast focus rings for accessibility */
.admin-shell a:focus-visible,
.admin-shell button:focus-visible,
.admin-shell input:focus-visible,
.admin-shell select:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .fab-stack { bottom: calc(16px + env(safe-area-inset-bottom)); }
  .fab-stack-right { right: 14px; }
  .fab-stack-left { left: 14px; }
  .fab-btn { width: 52px; height: 52px; }
  .fab-livechat { padding: 0 14px; }
}
@media print {
  .fab-stack { display: none !important; }
}

/* Admin sidebar dark mode toggle */
.admin-sidebar-footer {
  margin-top: auto;
  padding: 16px 12px 20px;
  border-top: 1px solid var(--line);
}
.admin-theme-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.admin-theme-toggle:hover {
  background: var(--panel);
  border-color: var(--green);
  color: var(--green);
}
.admin-theme-toggle:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.admin-shell .sidebar {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* —— Localization switcher (Expedia-style) —— */
.locale-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid var(--line, #465c4e);
  color: inherit;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}
.locale-trigger:hover,
.locale-trigger[aria-expanded="true"] {
  border-color: var(--green, #bfd29a);
}
.locale-flag { font-size: 14px; line-height: 1; }
.locale-summary { letter-spacing: .02em; }

.locale-dialog {
  border: 1px solid var(--line, #465c4e);
  border-radius: 12px;
  padding: 0;
  max-width: 420px;
  width: calc(100% - 2rem);
  background: var(--panel, #20332c);
  color: var(--ink, #edf1e5);
  box-shadow: 0 16px 48px rgba(0,0,0,.35);
}
.locale-dialog::backdrop {
  background: rgba(0,0,0,.45);
}
.locale-form { padding: 20px 22px 22px; }
.locale-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.locale-dialog-head h2 {
  margin: 0;
  font-size: 1.25rem;
  letter-spacing: -0.5px;
}
.locale-close {
  font-size: 1.5rem;
  line-height: 1;
  padding: 0 4px;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}
.locale-field {
  display: block;
  margin: 14px 0;
  font-size: 13px;
  color: var(--muted);
}
.locale-field span { display: block; margin-bottom: 6px; }
.locale-field select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--line, #465c4e);
  background: var(--surface, #243b32);
  color: var(--ink, #edf1e5);
  font: inherit;
}
.locale-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}
.locale-note { font-size: 12px; margin-top: 8px; }
body[dir="rtl"] .header { direction: rtl; }
body[dir="rtl"] .locale-actions { flex-direction: row-reverse; }
@media (max-width: 720px) {
  .locale-summary { display: none; }
  .locale-trigger { padding: 8px 10px; }
}

/* —— B2C / B2B hybrid commerce switcher —— */
.commerce-switch {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--line, #465c4e);
  border-radius: 999px;
  overflow: hidden;
  font-size: 12px;
}
.commerce-switch-form {
  display: inline-flex;
  margin: 0;
  padding: 0;
}
.commerce-opt {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 5px 12px;
  border: 0;
  background: transparent;
  color: var(--muted, #bbc8b6);
  cursor: pointer;
  text-decoration: none;
  line-height: 1.15;
  font: inherit;
  min-width: 4.5rem;
}
.commerce-opt small {
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .85;
}
.commerce-opt.is-active {
  background: var(--green, #bfd29a);
  color: var(--button-text, #173b36);
  font-weight: 600;
}
.commerce-opt.is-static { cursor: default; }
.commerce-b2b-link:hover { color: var(--ink, #edf1e5); }

.commerce-b2b-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  padding: 10px 5%;
  background: var(--surface, #243b32);
  border-bottom: 1px solid var(--line, #465c4e);
  font-size: 13px;
  color: var(--ink, #edf1e5);
}
.commerce-b2b-banner strong {
  color: var(--green, #bfd29a);
  font-weight: 600;
}
.product-tag.wholesale-tag,
.sale-tag.wholesale-tag {
  background: var(--green, #bfd29a);
  color: var(--button-text, #173b36);
}
@media (max-width: 720px) {
  .commerce-opt { min-width: 3.5rem; padding: 5px 8px; }
}
