/* source: font-system.css */
/* The document head owns the single Google Fonts request. Do not import it
   again from a CSS bundle: that previously requested a second weight set and
   delayed font discovery. Roamnessa uses two fonts: Oxanium for signature moments,
   Funnel Sans for every functional and supporting interface element. */
body,
body button,
body input,
body select,
body textarea,
body summary,
body * {
  font-family: 'Funnel Sans', Arial, sans-serif !important;
}

body h1,
body .brand,
body .mark,
body .hero h1,
body .optimizer-copy h1,
body .destination-hero h1 {
  font-family: Oxanium, Arial, sans-serif !important;
  font-weight: 700 !important;
}

/* Keep the two signature marketing lines expressive without turning the rest
   of the UI into a multi-font system. */
body .hero h1 em,
body .how h2 em {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-style: italic;
  font-weight: 400 !important;
  letter-spacing: -0.045em;
}

/* source: trust-pages.css */
/* Referral recovery is a small invitation, not a dense account form. */
.referral-card{max-width:620px;padding:34px;background:linear-gradient(135deg,var(--color-paper) 0%,var(--color-cream) 100%);box-shadow:0 16px 36px color-mix(in srgb,var(--color-ink-900) 5%,transparent)}
.referral-kicker{margin:0!important;color:var(--color-moss-600)!important;font:500 10px 'Funnel Sans',monospace!important;letter-spacing:.14em;text-transform:uppercase}
.referral-card h2{margin:10px 0 8px;font-size:clamp(27px,4vw,37px);letter-spacing:-.055em}
.referral-card>p:not(.referral-kicker):not(.referral-detail){max-width:505px;margin:0;color:var(--color-text-muted);font-size:14px;line-height:1.65}
.referral-form{display:grid;grid-template-columns:1fr;gap:12px;margin-top:25px;padding:16px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:13px}
.referral-form label{display:block;font-size:11px;font-weight:800;color:var(--color-text-muted)}
.referral-form label span{display:block;margin:0 0 7px}
.referral-form .referral-input-shell{display:flex!important;align-items:center;gap:9px;height:48px;margin:0!important;border:1px solid var(--color-border);border-radius:10px;background:var(--color-cream);padding:0 12px;box-shadow:inset 0 1px 0 var(--color-paper),0 1px 2px color-mix(in srgb,var(--color-ink-900) 3%,transparent);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.referral-input-shell:focus-within{border-color:var(--color-leaf-400);background:var(--color-paper);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-lime-signal) 40%,transparent)}
.referral-input-shell b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--color-border);color:var(--color-forest-700);font:800 12px 'Funnel Sans',monospace}
.referral-form input{width:100%;height:100%;border:0;border-radius:0;background:transparent;padding:0;font:600 13px Funnel Sans;color:var(--ink);outline:0}
.referral-form input::placeholder{color:var(--color-leaf-400)}
.referral-form button{height:45px;margin:0!important;justify-self:start;white-space:nowrap;border-radius:9px}
.referral-detail{margin:14px 0 0!important;padding-left:12px;border-left:3px solid var(--color-lime-signal);color:var(--color-text-muted)!important;font-size:12px!important;line-height:1.55!important}
.referral-detail{margin:16px 0 0!important;padding-top:15px;border-top:1px solid var(--color-cream);color:var(--color-text-muted)!important;font-size:11px;line-height:1.55}
@media(max-width:560px){.referral-card{padding:24px}.referral-form button{width:100%}}

/* Keep the language control reachable at the bottom of every public help page. */
.trust-footer{max-width:920px;margin:0 auto;padding:22px 24px 38px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.trust-footer-links{display:flex;flex-wrap:wrap;gap:16px}.trust-footer-links a{font-size:13px;font-weight:800;text-decoration:none}.trust-footer .language-menu{position:relative}.trust-footer .language-options{top:auto;bottom:43px}.trust-footer .language-menu summary{font-family:Funnel Sans,Arial,sans-serif}

/* Phone support pages: reflow the language picker instead of letting it cover help tabs. */
@media(max-width:650px){
  header:not(.roamnessa-site-header){padding-top:16px!important;padding-bottom:18px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;gap:14px 10px!important}
  header:not(.roamnessa-site-header) .brand{grid-column:1;grid-row:1}
  header:not(.roamnessa-site-header) nav{grid-column:1/-1;grid-row:2;gap:10px 14px!important;width:100%}
  header:not(.roamnessa-site-header) .language-menu{grid-column:2;grid-row:1;justify-self:end}
  header:not(.roamnessa-site-header):has(.language-menu[open]) nav{grid-row:3}
  header:not(.roamnessa-site-header) .language-menu[open]{grid-column:1/-1;grid-row:2;justify-self:stretch}
  header:not(.roamnessa-site-header) .language-menu[open] summary{width:max-content;margin-left:auto}
  header:not(.roamnessa-site-header) .language-menu[open] .language-options{position:static;width:100%;margin-top:8px;box-shadow:none}
}

:root{--ink:var(--color-ink-900);--cream:var(--color-cream);--paper:var(--color-paper);--orange:var(--color-coral-500);--lime:var(--color-lime-signal);--green:var(--color-forest-700);--line:var(--color-border)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Funnel Sans,Arial,sans-serif}header:not(.roamnessa-site-header),main{max-width:920px;margin:auto;padding-left:24px;padding-right:24px}header:not(.roamnessa-site-header){height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}header:not(.roamnessa-site-header) .brand{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-style:italic;font-weight:800;letter-spacing:-.8px;color:var(--ink);text-decoration:none}header:not(.roamnessa-site-header) .brand-mark{width:27px;height:27px;object-fit:contain}nav{display:flex;gap:16px;flex-wrap:wrap}nav a,.back{font-size:13px;color:var(--ink);font-weight:700;text-decoration:none}.back{display:inline-block;margin-top:34px}.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--color-text-muted);margin-top:38px}h1{font-size:clamp(40px,7vw,66px);letter-spacing:-.06em;margin:10px 0}.intro{font-size:18px;line-height:1.6;color:var(--color-text-muted);max-width:700px}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:26px;margin:24px 0 48px}.card+ .card{margin-top:-24px}h2{font-size:21px;margin:18px 0 8px}p,li{line-height:1.65;color:var(--color-text-muted)}a{color:var(--color-forest-700)}.checker label,.device-lookup label{display:block;font-size:13px;font-weight:700;margin-top:16px}.checker select,.device-lookup select,.device-lookup input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid var(--line);border-radius:7px;background:var(--color-paper);font:inherit}.checker button,.button{display:inline-block;margin-top:18px;border:0;border-radius:7px;background:var(--green);color:var(--color-paper);padding:11px 15px;text-decoration:none;font-weight:800}.result{font-weight:700}.translation-note{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;font-weight:700}.eid-guide{overflow:hidden}.guide-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.guide-heading h2{font-size:31px;letter-spacing:-.05em;margin:5px 0}.guide-heading p{max-width:560px;margin:0}.guide-kicker{font:500 10px 'Funnel Sans',monospace!important;letter-spacing:.14em;color:var(--color-text-muted)!important}.eid-badge{display:grid;place-items:center;flex:none;width:68px;height:68px;border-radius:50%;background:var(--lime);color:var(--green);font:800 11px/1.12 'Funnel Sans',monospace;text-align:center}.eid-steps{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:25px}.eid-step{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:18px;background:var(--color-cream);border:1px solid var(--color-cream);border-radius:13px}.eid-step>span{font:700 11px 'Funnel Sans',monospace;color:var(--color-moss-600);padding-top:3px}.eid-step h3{font-size:15px;margin:0 0 6px}.eid-step p{font-size:12px;margin:0}.dial-code{display:flex;gap:7px;margin-top:15px}.dial-code b{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:var(--color-paper);border:1px solid var(--color-border);font:700 15px 'Funnel Sans',monospace}.eid-screen{margin-top:15px;background:var(--color-ink-900);border-radius:10px;padding:12px;color:var(--color-paper)}.eid-screen span{display:block;font:700 10px 'Funnel Sans',monospace;letter-spacing:.1em;color:var(--color-lime-signal)}.eid-screen i{display:block;width:100%;height:7px;margin:9px 0;background:repeating-linear-gradient(90deg,var(--color-cream) 0 2px,transparent 2px 5px)}.eid-screen em{font:700 10px Funnel Sans;font-style:normal}.eid-note{display:flex;gap:9px;margin-top:14px;padding:13px 15px;border-left:3px solid var(--orange);background:var(--color-cream);font-size:12px;line-height:1.55;color:var(--color-text-muted)}.eid-note strong{color:var(--color-coral-500);white-space:nowrap}.compatibility-notes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:17px 0 4px}.compatibility-notes>div{border-top:1px solid var(--color-cream);padding-top:12px}.compatibility-notes b{font-size:13px}.compatibility-notes p{font-size:12px;margin:4px 0 0}.device-lookup{position:relative}.device-model-suggestions{position:absolute;z-index:4;left:26px;right:26px;background:var(--color-paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 12px 25px color-mix(in srgb,var(--color-ink-900) 13%,transparent)}.device-model-suggestions button{display:block;width:100%;margin:0;padding:10px 12px;border:0;background:var(--color-paper);text-align:left;font:600 13px Funnel Sans;color:var(--ink)}.device-model-suggestions button:hover{background:var(--color-cream)}@media(max-width:650px){header:not(.roamnessa-site-header){height:auto;padding-top:20px;padding-bottom:20px;align-items:flex-start;gap:18px;flex-direction:column}nav{gap:12px}.guide-heading{gap:16px}.eid-steps,.compatibility-notes{grid-template-columns:1fr}.eid-note{display:block}.eid-note strong{display:block;margin-bottom:4px}main>.eyebrow,main>h1,main>.intro{text-align:center}main>.intro{margin-left:auto;margin-right:auto}}
/* Keep long compatibility results usable on short screens. */
.device-model-suggestions{max-height:min(360px,calc(100dvh - 210px));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}

/* A model lookup is a short form: use one deliberate vertical rhythm instead
   of inheriting unrelated paragraph and label margins. */
.device-lookup{display:grid;gap:var(--space-4);position:relative}.device-lookup>*{margin:0!important}.device-lookup-field{position:relative;display:grid;gap:var(--space-2)}.device-lookup-field label{margin:0!important}.device-lookup-field input,.device-lookup-field select{margin:0!important}.device-lookup>.result:empty{display:none}.device-lookup>.eid-note{margin:0!important}.device-model-suggestions{top:calc(100% + var(--space-1));left:0;right:0}

/* Public trust/help cards follow the documented Card -> card relationship.
   A single top gap avoids legacy bottom-margin and margin-collapse asymmetry. */
main>.card{margin:var(--space-5) 0 0}
main>.card+.card{margin-top:var(--space-5)}

/* source: locale.css */
.nav-actions{display:flex;align-items:center;gap:8px}.language-menu,.currency-menu{position:relative}.language-menu summary,.currency-menu summary{cursor:pointer;list-style:none;border:1px solid var(--ink);border-radius:30px;padding:9px 12px;background:var(--paper);font:700 12px Funnel Sans}.language-menu summary::-webkit-details-marker,.currency-menu summary::-webkit-details-marker{display:none}.language-menu:not([open]) .language-options,.currency-menu:not([open]) .currency-options{display:none}.language-options,.currency-options{position:absolute;right:0;top:43px;z-index:20;display:grid;grid-template-columns:repeat(2,minmax(88px,1fr));gap:2px;width:205px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 30px color-mix(in srgb,var(--color-ink-900) 13%,transparent)}.language-options a,.currency-options button{padding:8px;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left;font:700 12px Funnel Sans}.language-options a{font-size:12px!important}.language-options a:hover,.currency-options button:hover,.currency-options button[aria-current="true"]{background:var(--color-cream)}.footer-controls{display:flex;align-items:center;gap:8px}.footer .language-options,.footer .currency-options{display:grid;grid-template-columns:repeat(2,minmax(88px,1fr));gap:2px}.footer-controls .language-options,.footer-controls .currency-options{top:auto;bottom:43px}.hero>.hero-art{z-index:0}.hero>:not(.hero-art){position:relative;z-index:1}@media(max-width:800px){.nav-actions .support{display:inline-block}.language-menu summary,.currency-menu summary{padding:8px 10px}.footer-controls{margin-top:18px}}

/* source: trust-locale.css */
/* Shared typography and menu treatment for the help centre and storefront. */
body{font-family:Funnel Sans,Arial,sans-serif}
.eyebrow{font-family:"Funnel Sans",monospace;font-weight:500}
header .brand{font-family:Funnel Sans,Arial,sans-serif;font-weight:800}
header .language-menu{margin-left:4px;flex:0 0 auto}
header .language-menu summary{font-family:Funnel Sans,Arial,sans-serif;color:var(--ink);background:var(--paper)}
header .language-options{font-family:Funnel Sans,Arial,sans-serif}
header .language-options a{font-weight:700;color:var(--ink);text-decoration:none}
@media(max-width:650px){header .language-menu{align-self:flex-end;margin-top:-58px}.language-options{right:0;left:auto}}
/* On Support, let visitors scan FAQs before choosing to contact us. */
main:has(.support-faq){display:flex;flex-direction:column}
main:has(.support-faq)>.back{order:1}
main:has(.support-faq)>.support-faq{order:2}
main:has(.support-faq)>.support-faq{padding-bottom:20px}
main:has(.support-faq)>.eyebrow{order:3;margin-top:4px}
main:has(.support-faq)>h1{order:4}
main:has(.support-faq)>.intro{order:5}
main:has(.support-faq)>.card{order:6}

/* source: faq.css */
.faq{padding-top:30px;padding-bottom:76px}.faq-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.faq-intro h2{font-size:clamp(38px,5vw,58px);margin:14px 0 0}.faq-intro p{max-width:315px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.faq-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.faq-group{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:20px}.faq-group h3{margin:0 0 13px;font-size:17px;letter-spacing:-.03em}.faq-group details{border-top:1px solid var(--color-cream);padding:0}.faq-group summary{position:relative;cursor:pointer;list-style:none;padding:15px 27px 15px 0;font:700 13px Funnel Sans;color:var(--ink)}.faq-group summary::-webkit-details-marker{display:none}.faq-group summary:after{content:'+';position:absolute;right:2px;top:11px;color:var(--orange);font-size:21px;font-weight:400}.faq-group details[open] summary:after{content:'−'}.faq-group details p{margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.7}.faq-group details a{color:var(--green);font-weight:800}@media(max-width:760px){.faq{padding-top:10px;padding-bottom:56px}.faq-intro{display:block;margin-bottom:25px}.faq-intro p{margin-top:15px}.faq-groups{grid-template-columns:1fr}.faq-group{padding:17px}}

/* source: rtl.css */
html[dir="rtl"] .hero-art{left:-110px;right:auto}html[dir="rtl"] .language-options{left:0;right:auto}html[dir="rtl"] .search-icon{padding-left:var(--space-3);padding-right:var(--space-4)}html[dir="rtl"] .section-intro,html[dir="rtl"] .finder-top,html[dir="rtl"] .footer{direction:rtl}@media(max-width:800px){html[dir="rtl"] .hero-art{left:-150px;right:auto}}

/* source: about-founder.css */
.founder-story{max-width:760px;margin:40px 0 72px;padding:clamp(26px,5vw,54px);background:linear-gradient(135deg,var(--color-paper) 0%,var(--color-cream) 100%)}
.founder-kicker{margin:0 0 12px;color:var(--color-moss-600);font:800 12px/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}
.founder-story h2{max-width:620px;margin:0 0 28px;font-size:clamp(34px,5vw,58px);line-height:1;letter-spacing:-.06em}
.founder-story>p:not(.founder-kicker):not(.founder-signoff):not(.founder-role){max-width:650px;margin:0 0 19px;color:var(--color-text-muted);font-size:16px;line-height:1.75}
.founder-closing{margin-bottom:0!important}.founder-signature{display:block;width:min(100%,220px);height:auto;margin:0 0 4px;mix-blend-mode:multiply}
.founder-role{margin:0;color:var(--color-text-muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:760px){.founder-story{margin:28px 0 48px}.founder-story>p:not(.founder-kicker):not(.founder-signoff):not(.founder-role){font-size:15px}}

/* source: support-bot.css */
/* Canonical support assistant component. */
.support-bot-toggle {
  position: fixed;
  right: var(--space-5);
  bottom: var(--space-5);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-full);
  background: var(--color-forest-700);
  color: var(--color-paper);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--color-ink-900) 22%, transparent);
  font: 800 13px/1 var(--font-body, "Funnel Sans"), Arial, sans-serif;
  cursor: pointer;
  transition: width 220ms ease, padding 220ms ease;
}

.support-bot-toggle:hover,
.support-bot-toggle:focus-visible {
  justify-content: flex-start;
  width: 176px;
  padding-inline: var(--space-4);
  outline: none;
}

.support-bot-logo {
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--color-forest-700);
  font-size: 15px;
  object-fit: contain;
}

.support-bot-toggle:not(:hover):not(:focus-visible) .support-bot-logo,
.support-bot-toggle.is-nudging .support-bot-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.support-bot-label {
  width: 0;
  margin-left: 0;
  overflow: hidden;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 160ms ease, width 220ms ease;
}

.support-bot-toggle:hover .support-bot-label,
.support-bot-toggle:focus-visible .support-bot-label {
  width: 114px;
  margin-left: var(--space-2);
  opacity: 1;
}

.support-bot-toggle.is-nudging {
  justify-content: center;
  width: 52px;
  padding: 0;
  overflow: hidden;
  animation: supportBotBounce 900ms ease-in-out infinite;
  transition: none;
}

.support-bot-toggle.is-nudging .support-bot-label {
  width: 0;
  margin-left: 0;
  opacity: 0;
}

.support-bot {
  position: fixed;
  right: var(--space-5);
  bottom: 84px;
  z-index: 1000;
  width: min(370px, calc(100vw - 32px));
  overflow: hidden;
  border: 1px solid var(--color-leaf-400);
  border-radius: var(--radius-surface);
  background: var(--color-paper);
  box-shadow: 0 18px 40px color-mix(in srgb, var(--color-ink-900) 15%, transparent);
}

.support-bot[hidden] {
  display: none;
}

.support-bot-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-forest-700);
  color: var(--color-paper);
}

.support-bot-header strong {
  display: block;
  font-size: 16px;
}

.support-bot-header p {
  margin: var(--space-1) 0 0;
  color: var(--color-citron-100);
  font-size: 11px;
  line-height: 1.5;
}

.support-bot-close {
  border: 0;
  background: transparent;
  color: var(--color-paper);
  font-size: 20px;
  cursor: pointer;
}

.support-bot-messages {
  height: 220px;
  padding: var(--space-4);
  overflow: auto;
  background: var(--color-paper);
}

.support-bot-message {
  max-width: 100%;
  margin: 0 0 var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-button);
  background: var(--color-cream);
  color: var(--color-ink-900);
  font-size: 12px;
  line-height: 1.55;
}

.support-bot-message.user {
  margin-left: auto;
  border-color: var(--color-leaf-400);
  background: var(--color-citron-100);
}

.support-bot-action {
  display: block;
  width: max-content;
  margin-top: var(--space-2);
  color: var(--color-forest-700);
  font-weight: 800;
  text-decoration: underline;
}

.support-bot-topics {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: 0 var(--space-3) var(--space-3);
  background: var(--color-paper);
}

.support-bot-topics button {
  padding: 6px var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-paper);
  color: var(--color-forest-700);
  font: 700 10px/1 var(--font-body, "Funnel Sans"), Arial, sans-serif;
  cursor: pointer;
}

.support-bot-note {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--color-border);
  background: var(--color-paper);
  color: var(--color-text-muted);
  font-size: 10px;
  line-height: 1.45;
}

.support-bot-form {
  display: flex;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--color-border);
  background: var(--color-paper);
}

.support-bot-form input {
  min-width: 0;
  flex: 1;
  padding: var(--space-3);
  border: 1px solid var(--color-leaf-400);
  border-radius: var(--radius-button);
  background: var(--color-paper);
  color: var(--color-ink-900);
  font: 500 12px/1.4 var(--font-body, "Funnel Sans"), Arial, sans-serif;
}

.support-bot-form button {
  padding-inline: var(--space-3);
  border: 0;
  border-radius: var(--radius-button);
  background: var(--color-forest-700);
  color: var(--color-paper);
  font: 800 12px/1 var(--font-body, "Funnel Sans"), Arial, sans-serif;
  cursor: pointer;
}

.support-bot-form button:hover,
.support-bot-form button:focus-visible {
  background: var(--color-ink-900);
}

.support-bot-nudge {
  display: none !important;
}

.support-bot-mobile-nudge {
  position: fixed;
  right: var(--space-5);
  bottom: 84px;
  z-index: 1001;
  padding: 7px 10px;
  border: 1px solid var(--color-lime-signal);
  border-radius: var(--radius-full);
  background: var(--color-cream);
  color: var(--color-ink-900);
  font: 800 11px/1 var(--font-body, "Funnel Sans"), Arial, sans-serif;
  animation: supportBotNudgeIn 200ms ease-out both;
}

@keyframes supportBotBounce {
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(-8px); }
}

@keyframes supportBotNudgeIn {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

.support-bot-mobile-nudge::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: -5px;
  width: 9px;
  height: 9px;
  border-right: 1px solid var(--color-lime-signal);
  border-bottom: 1px solid var(--color-lime-signal);
  background: var(--color-cream);
  transform: rotate(45deg);
}

@media (max-width: 600px) {
  .support-bot-toggle {
    right: var(--space-3);
    bottom: var(--space-3);
  }

  .support-bot {
    right: var(--space-3);
    bottom: 77px;
  }

  .support-bot-form input {
    font-size: 16px;
  }

  .support-bot-mobile-nudge {
    right: var(--space-3);
    bottom: 76px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .support-bot-toggle.is-nudging,
  .support-bot-mobile-nudge {
    animation: none;
  }
}

/* source: support-ticket.css */
.support-ticket{scroll-margin-top:24px}.support-ticket h2{margin-top:7px}.support-ticket-form{display:grid;gap:14px;margin-top:20px}.support-ticket-form label{display:grid;gap:7px;color:var(--color-forest-700);font-size:12px;font-weight:800}.support-ticket-form input,.support-ticket-form select,.support-ticket-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--color-paper);font:500 14px Funnel Sans,Arial,sans-serif;color:var(--ink);padding:11px}.support-ticket-form textarea{min-height:130px;resize:vertical}.support-ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.support-ticket-turnstile{min-height:65px}.support-ticket-form button{justify-self:start;border:0;border-radius:8px;background:var(--green);color:var(--color-paper);cursor:pointer;font:800 13px Funnel Sans,Arial,sans-serif;padding:13px 17px}.support-ticket-note{margin:0;color:var(--color-text-muted);font-size:11px;line-height:1.55}.support-ticket-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;pointer-events:none!important}.support-ticket-success{border:1px solid var(--color-border);border-radius:9px;background:var(--color-cream);color:var(--color-forest-700)!important;font-size:13px;font-weight:700;padding:11px 12px}@media(max-width:650px){.support-ticket-grid{grid-template-columns:1fr}.support-ticket-form input,.support-ticket-form select,.support-ticket-form textarea{font-size:16px}}

/* source: support-ticket-confirmation.css */
.support-ticket-confirmation {
  position: relative;
  overflow: hidden;
  min-height: 300px;
  padding: 48px 42px !important;
  background: linear-gradient(135deg,  0%, var(--color-forest-700) 100%) !important;
  color: var(--color-paper);
}
.support-ticket-confirmation::after {
  content: '';
  position: absolute;
  width: 270px;
  height: 270px;
  right: -95px;
  top: -125px;
  border: 1px solid color-mix(in srgb,var(--color-lime-signal) 44%,transparent);
  border-radius: 50%;
  box-shadow: 0 0 0 26px color-mix(in srgb,var(--color-lime-signal) 8%,transparent), 0 0 0 53px color-mix(in srgb,var(--color-lime-signal) 5%,transparent);
}
.support-ticket-confirmation .section-label,
.support-ticket-confirmation h2,
.support-ticket-confirmation p { position: relative; z-index: 1; }
.support-ticket-confirmation .section-label { color: var(--color-lime-signal); }
.support-ticket-confirmation h2 { max-width: 540px; margin: 12px 0; color: var(--color-paper); font-size: clamp(31px, 5vw, 48px); letter-spacing: -.055em; }
.support-ticket-confirmation p:not(.section-label) { max-width: 550px; color: var(--color-cream); font-size: 16px; line-height: 1.65; }
.support-ticket-success-mark { position: relative; z-index: 1; display: grid; width: 48px; height: 48px; margin-bottom: 28px; place-items: center; border-radius: 50%; background: var(--color-lime-signal); color:var(--color-forest-700); font-size: 24px; }
.support-ticket-return { position: relative; z-index: 1; display: inline-flex; margin-top: 16px; padding: 12px 16px; border: 1px solid var(--color-lime-signal); border-radius: 999px; color: var(--color-paper); font: 800 13px Funnel Sans, Arial, sans-serif; text-decoration: none; }
.support-ticket-return:hover { background: var(--color-lime-signal); color:var(--color-forest-700); }
@media(max-width:650px){.support-ticket-confirmation{min-height:0;padding:35px 26px!important}.support-ticket-confirmation h2{font-size:34px}.support-ticket-confirmation p:not(.section-label){font-size:15px}}

/* source: design-system.css */
/* Roamnessa's canonical shared UI foundation. Load once per page bundle. */
*,*::before,*::after{box-sizing:border-box}
body{background:var(--color-cream);color:var(--color-ink-900);font-family:"Funnel Sans",Arial,sans-serif}
button{appearance:none;border:0;background:transparent;padding:0;font:inherit}
input,select,textarea{font:inherit}
button,a,input,select,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-field);background:var(--color-paper);color:var(--color-ink-900);padding:10px 12px}
input:not([type="checkbox"]):not([type="radio"])::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:.72}
input:not([type="checkbox"]):not([type="radio"]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-leaf-400);outline-offset:2px;border-color:var(--color-forest-700)}
label{color:var(--color-ink-900);font-weight:700}
form>label+label{margin-top:var(--space-4)}
:where(.card,.trip-card,.review-submit-card,.destination-content-grid>article,.regional-option,.summary,.item,.analytics-consent,.support-bot){border-radius:var(--radius-surface)}
:where(.plan-card,.regional-card,.destination-plan,.region-plan-card){border-radius:var(--radius-plan)}
:where(.plan-card-utility,.destination-tag,.review-badge,.utility-label){border-radius:var(--radius-label)}
:where(.button,.summary button,.optimize-btn,.destination-buy,.review-submit-card button,.analytics-consent button){min-height:44px;border-radius:var(--radius-button);font-family:"Funnel Sans",Arial,sans-serif;font-weight:800}
:where(.button,.summary button,.destination-buy,.review-submit-card button){background:var(--color-forest-700);color:var(--color-paper)}
:where(.button,.summary button,.destination-buy,.review-submit-card button):hover{background:var(--color-moss-600)}
:where(.search-box button,.optimize-btn){background:var(--color-coral-500);color:var(--color-paper)}
:where(.search-box button,.optimize-btn):hover{background:var(--color-moss-600)}
:where(.card,.trip-card,.review-submit-card,.destination-content-grid>article,.regional-option,.summary){border-color:var(--color-border)}
.eyebrow,.section-label,.kicker{font-family:"Funnel Sans",Arial,sans-serif;letter-spacing:.13em}
@media(max-width:760px){input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px;font-size:16px}.card,.trip-card,.review-submit-card,.destination-content-grid>article,.regional-option,.summary{padding:var(--space-5)}}

/* Shared brand mark */
.brand{display:inline-flex;align-items:center;gap:var(--brand-wordmark-gap)}.brand-mark,.brand>span{background:transparent!important}.brand img.brand-mark{width:var(--brand-mark-size);height:var(--brand-mark-size);flex:0 0 var(--brand-mark-size);object-fit:contain;background:transparent!important;border-radius:50%!important;margin:0}

/* Radius system */
/* Roamnessa radius system: functional UI stays precise; editorial surfaces stay calm. */
:root {
  --radius-label: 2px;
  --radius-image: 4px;
  --radius-field: 6px;
  --radius-button: 8px;
  --radius-plan: 10px;
  --radius-surface: 12px;
  /* Reserved for tracks, toggles, and genuinely circular controls only. */
  --radius-full: 999px;
}

/* Actions and form controls */
button, .button, .support, .select-plan, .trip-buy, .continue,
.cart-header-badge, .currency-selector, .calculator-language-menu summary {
  border-radius: var(--radius-button);
}

.support-ticket-return {
  border-radius: var(--radius-button);
}

input:not([type="checkbox"]):not([type="radio"]), select, textarea,
.duration-filter, .route-filter, .data-range-filter, .hotspot-filter,
.regional-country-filter, .region-phone-number-filter, .region-details-hint,
.filter, .catalog-controls button, .mobile-menu-trigger {
  border-radius: var(--radius-field);
}

/* Dense product choices */
.plan-card, .regional-card, .plan, .item, .recommendation,
.country-best-choice, .filter-best-choice, .mobile-plan-refinements,
.mobile-plan-disclosure summary, .mobile-plan-disclosure-content,
.eid-step, .compact-card-group {
  border-radius: var(--radius-plan);
}

/* General surfaces and dialogs */
.finder, .trip-card, .card, .summary, .cta, .plan-details-dialog,
.account-service-modal, .support-ticket, .referral-form, .review-card,
.review-submit-card, .toast, .calculator-language-options,
.device-model-suggestions {
  border-radius: var(--radius-surface);
}

/* Labels are deliberately almost square rather than pill-shaped. */
.plan-tag, .calling-plan-badge, .review-badge, .optimizer-lowest-price,
.region-plan-badges .calling-plan-badge, .data-price-per-gb,
.country-best-choice > span, .filter-best-choice > span {
  border-radius: var(--radius-label);
}

/* Keep circles only for things that are inherently circular. */
.avatar, .brand-mark, .eyebrow::before, .eyebrow i, .globe, .orbit,
.plan-details-close, .mobile-site-menu-header button, .toggle, .toggle::before,
.cart-header-badge b, .search-trip-help-plus, .eid-badge, .dial-code b {
  border-radius: 50%;
}

/* Photography and data-heavy content should not inherit card softness. */
main img:not(.brand-mark), .destination-hero img, .destination-guide img,
.story-image, .photo, table {
  border-radius: var(--radius-image);
}

/*
 * Public component mappings
 *
 * Some page-local declarations are more specific than shared primitives.
 * Keep their component categories explicit here so a component stylesheet
 * cannot quietly reintroduce the old 13–24px "everything rounded"
 * treatment.
 */

/* Trust and compatibility */
.eid-screen,
.referral-form {
  border-radius: var(--radius-plan);
}

.referral-input-shell {
  border-radius: var(--radius-field);
}

.referral-form button {
  border-radius: var(--radius-button);
}

/* Regional catalog controls */
.region-phone-number-filter,
.region-details-hint,
.region-phone-number-filter input {
  border-radius: var(--radius-field);
}

/* Destination catalog */
.destination-facts > div,
.destination-plan,
.destination-filter-empty,
.destination-filter-best,
.destination-plan-dialog dl div,
.destination-mobile-disclosure summary,
.destination-mobile-disclosure-content,
.destination-mobile-disclosure-content .destination-filter-tabs button,
.destination-mobile-disclosure-content .destination-filter-check {
  border-radius: var(--radius-plan);
}

.destination-content-grid > article,
.regional-option,
.destination-filter-panel,
.destination-plan-dialog,
.destination-language-menu .language-options {
  border-radius: var(--radius-surface);
}

.destination-buy,
.destination-help a,
.destination-filter-best button,
.destination-language-menu summary,
.destination-language-menu .language-options a {
  border-radius: var(--radius-button);
}

.destination-tag,
.destination-filter-check input {
  border-radius: var(--radius-label);
}

.destination-filter-tabs button,
.destination-filter-select,
.destination-filter-select select,
.destination-filter-check {
  border-radius: var(--radius-field);
}

/* Standalone reviews and referral surfaces */
.review-score,
.referral-form button {
  border-radius: var(--radius-button);
}

.reviews-footer details div {
  border-radius: var(--radius-surface);
}

/* Color system */
/*
 * Roamnessa colour system
 *
 * The five supplied greens are the only green family used by the product.
 * Coral is the single warm signal: it is for primary actions and important
 * exceptions, never for routine metadata or decorative badges.
 */
:root {
  /* Brand palette */
  --color-ink-900: #132a13;
  --color-forest-700: #31572c;
  --color-moss-600: #4f772d;
  --color-leaf-400: #90a955;
  --color-citron-100: #ecf39e;
  --color-lime-signal: #c7ed56;
  /* The shared action coral pairs with white at WCAG AA for normal text. */
  --color-coral-500: #cd432e;

  /* Neutrals and semantic aliases */
  --color-paper: #fffdf8;
  --color-cream: #f5f2e9;
  --color-text: var(--color-ink-900);
  --color-text-muted: #455744;
  --color-text-subtle: var(--color-forest-700);
  --color-border: #c9d5b8;
  --color-border-strong: var(--color-leaf-400);
  --color-surface: var(--color-paper);
  --color-surface-muted: var(--color-cream);
  --color-surface-highlight: color-mix(in srgb, var(--color-citron-100) 48%, var(--color-paper));
  --color-surface-positive: color-mix(in srgb, var(--color-leaf-400) 18%, var(--color-paper));
  --color-surface-coral: color-mix(in srgb, var(--color-coral-500) 14%, var(--color-paper));
  --color-focus-ring: color-mix(in srgb, var(--color-citron-100) 76%, transparent);

  /* Backward-compatible aliases. New component CSS must use the names above. */
  --ink: var(--color-ink-900);
  --green: var(--color-forest-700);
  --green-mid: var(--color-moss-600);
  --lime-strong: var(--color-leaf-400);
  --lime: var(--color-citron-100);
  --cream: var(--color-cream);
  --paper: var(--color-paper);
  --muted: var(--color-text-muted);
  --line: var(--color-border);
  --orange: var(--color-coral-500);
}

body { background: var(--color-cream); color: var(--color-text); }

/* Shared component language. These are intentionally semantic rather than
   page-specific so every route uses the same palette. */
a { color: var(--color-forest-700); }
hr, .divider { border-color: var(--color-border); }

/* The announcement carries two distinct messages: the brand promise in paper
   white and the offer in lime. Keep this contrast even when the locale swaps
   the words inside the span. */
.announcement { background: var(--color-ink-900); color: var(--color-paper); }
.announcement span { color: var(--color-lime-signal); }
/* Text-mark fallbacks can use a green surface. The SVG mark supplies its own
   circular surface and must not inherit a rounded-square background. */
.brand-mark:not(img), .brand > span { background: var(--color-forest-700) !important; }
img.brand-mark {
  aspect-ratio: 1;
  border-radius: 50% !important;
  background: transparent !important;
}

.filter.active, .optimizer, .estimate, .support-bot-toggle, .support-bot-header {
  background: var(--color-forest-700);
}
.optimizer h2 em, .optimizer-steps span { color: var(--color-citron-100); }
.light { color: var(--color-citron-100); }

/* Coral is the warm directional signal for destination-finding moments.
   Paper text on this darker coral meets WCAG AA for normal text (4.73:1). */
.search-box button, .cta button {
  background: var(--color-coral-500) !important;
  color: var(--color-paper) !important;
}

/* Suggestions live inside the search box in the DOM, but they are choices—not
   primary actions. Keep the list calm; only the active row gets a pale tint. */
.search-box .suggestions .search-result {
  background: var(--color-paper) !important;
  color: var(--color-ink-900) !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--color-border);
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}
.search-box .suggestions .search-result:last-child { border-bottom: 0; }
.search-box .suggestions .search-result:hover,
.search-box .suggestions .search-result:focus-visible,
.search-box .suggestions .search-result.keyboard-active {
  background: var(--color-surface-highlight) !important;
}

/* Coral actions are directional, not three-dimensional. Keep the same calm
   surface treatment as the destination search action—no dark keyline or
   raised slab effect. Keyboard focus remains visible through accessibility.css. */
.cta button {
  min-height: 56px;
  padding-inline: var(--space-5);
  border: 0 !important;
  border-radius: var(--radius-button);
  box-shadow: none;
  cursor: pointer;
  transition: filter 160ms ease;
}
.cta button:hover { transform: none; box-shadow: none; filter: brightness(.97); }
.cta button:active { transform: none; box-shadow: none; }
h1 em, h2 em { color: var(--color-coral-500); }
/* The hero's emphasized second line is a deliberate editorial moment. */
.hero h1 em { color: var(--color-coral-500); }

/* Highlighted states are quiet green surfaces, never red or floating pills. */
.coral, .lime, .recommendation, .country-best-choice, .filter-best-choice,
.trip-recommended, .profile.active, .profiles button.active {
  background: var(--color-surface-highlight) !important;
  color: var(--color-ink-900) !important;
  border-color: var(--color-leaf-400) !important;
}
.cart-preview-checkout { background: var(--color-citron-100) !important; color: var(--color-ink-900) !important; }

.data-filter-calculator-link, .regional-data-calculator-link, .multi-data-calculator-link,
.destination-guide-link, .support-bot-action, .package-review-actions a {
  color: var(--color-forest-700);
}

/* One accessible focus treatment on every route. */
:where(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid var(--color-focus-ring) !important;
  outline-offset: 2px;
}

/* Shared surfaces: pages may arrange these differently, but they do not get
   their own palette. This intentionally covers the storefront, destinations,
   regional plans, cart, calculator, optimizer, account, and trust pages. */
.finder, .trip-card, .setup, .estimate, .explain, .card, .summary,
.plan-card, .plan, .item, .regional-card, .regional-option, .destination-plan,
.package-review, .review-card, .review-submit-card, .support-ticket,
.account-service-modal, .plan-details-dialog, .destination-plan-dialog,
.bulk-savings-dialog, .calculator-country-suggestions, .device-model-suggestions,
.cart-preview, .support-bot {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text);
}

.trip-card, .setup, .estimate, .explain, .card, .summary, .review-submit-card,
.regional-option, .destination-facts > div, .verified-reviews,
.support-bot-message, .destination-filter-best {
  background: var(--color-surface-highlight);
  border-color: var(--color-border-strong);
}

input, select, textarea, .destination-filter-select, .destination-filter-check,
.destination-filter-tabs button, .language-menu summary, .currency-menu summary,
.calculator-language-menu summary {
  background: var(--color-paper);
  border-color: var(--color-border);
  color: var(--color-text);
}

.plan-card:hover, .plan:hover, .item:hover, .regional-card:hover,
.destination-plan:hover, .destination-plan:focus-within,
.item[data-cart-plan-details]:hover, .plan-card[data-clickable-plan]:hover {
  background: var(--color-surface-highlight);
  border-color: var(--color-leaf-400);
}

/* Routine purchase, planning, and support actions remain forest green so
   coral stays scarce and the action hierarchy is immediately readable. */
.destination-buy, .select-plan, .trip-buy, .continue, .bulk-savings-action,
.home-link, .support-ticket-return, .optimize-btn, .support-bot-form button,
.summary button, .button, .primary {
  background: var(--color-forest-700) !important;
  color: var(--color-paper) !important;
  border:1px solid var(--color-forest-700)!important;
}

/* Supporting text, dividers and utility metadata use a single quiet green. */
.plan-card p, .plan p, .item p, .regional-card p, .destination-plan p,
.destination-plan-data span, .destination-filter-prompt, .destination-filter-select,
.destination-filter-check, .pricing-note, .popular, .support-bot-note,
.destination-facts span {
  color: var(--color-text-muted);
}

.destination-filter-empty, .not-found-message, .regional-notice {
  background: var(--color-surface-coral);
  border-color: var(--color-coral-500);
  color: var(--color-ink-900);
}
.package-review-stars { color: var(--color-coral-500); }

/* Spacing system */
/*
 * Roamnessa spacing: plans compress; editorial and travel content breathe.
 * Use only these tokens for component margin, padding, gap, and scroll-margin.
 * Plans use --space-1 through --space-6; editorial sections may use --space-7
 * through --space-10. Do not introduce ad-hoc spacing values.
 */
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 18px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 44px;
  --space-8: 60px;
  --space-9: 84px;
  --space-10: 116px;
}

/* Relationship rules */
.brand, .active-country, .trust div, .eyebrow, .section-label,
.destination-filter-select, .destination-filter-check { gap: var(--space-2); }
.active-country small, .destination-facts strong, .profiles span,
.friend-code > span { margin-top: var(--space-1); }
.plan-card h3, .plan h2, .destination-plan h2, .item h2 { margin-bottom: var(--space-3); }
.hero-copy, .section-intro p, .intro, .destination-hero > p:not(.eyebrow),
.section-heading > p { margin-top: var(--space-4); }
.hero-copy + .search-box, .intro + .layout, .intro + .calculator,
.destination-hero > p:not(.eyebrow) + .destination-facts { margin-top: var(--space-6); }

/* Product interfaces use the compact end of the scale. */
.plan-grid, .plans, .destination-plans, .items { gap: var(--space-5); }
.plan-card, .plan, .destination-plan, .item { padding: var(--space-5); }
.plan-card .data, .plan .data { margin-top: var(--space-4); }
.plan-details, .trip-buy-row, .plan-card-badges, .region-plan-badges { gap: var(--space-2); }
.finder, .trip-card, .setup, .estimate, .explain, .card, .summary { padding: var(--space-5); }

/* Storytelling sections use the generous end of the scale. */
.hero { padding-top: var(--space-10); padding-bottom: var(--space-9); }
.plans-section, .how { padding-top: var(--space-9); padding-bottom: var(--space-9); }
.optimizer { padding-top: var(--space-9); padding-bottom: var(--space-9); }
.destination-hero { padding-top: var(--space-8); padding-bottom: var(--space-8); }
.destination-section, .destination-help { padding-top: var(--space-8); padding-bottom: var(--space-8); }
.cta { margin-bottom: var(--space-8); padding: var(--space-7) var(--space-8); }

/*
 * Public page mapping
 *
 * These mappings give every page one spacing rhythm without changing the meaning of
 * absolute positioning (for example, a dialog close button or popover).
 */

/* Compact plan and regional interfaces: 4–32px only. */
.plan-card h3,
.plan h2,
.destination-plan h2 {
  margin: 0 0 var(--space-3);
}

.plan-card .data,
.plan .data,
.destination-plan-data {
  margin-top: var(--space-4);
}

.plan-bottom,
.destination-plan-action {
  margin-top: var(--space-4);
}

.filters,
.regional-filters,
.destination-filter-panel {
  gap: var(--space-2);
  margin-bottom: var(--space-5);
}

.validity-group-heading {
  margin-top: var(--space-2);
  /* Keep the validity label visually connected to its plans without letting
     the first card touch the label. */
  margin-bottom: var(--space-3);
  padding-top: var(--space-2);
}

.validity-group-cards,
.regional-grid {
  gap: var(--space-5);
}

/* Compatibility and referral pages. */
.card,
.referral-form,
.eid-step,
.eid-screen,
.device-model-suggestions {
  padding: var(--space-5);
}

.eid-steps,
.compatibility-notes,
.referral-form,
.support-ticket-form {
  gap: var(--space-3);
}

.guide-heading,
.trust-footer {
  gap: var(--space-5);
}

/* Destination, reviews, and calculator surfaces use the same hierarchy. */
.destination-facts,
.destination-content-grid,
.reviews-list,
.calculator,
.account-service-grid {
  gap: var(--space-5);
}

.destination-content-grid > article,
.destination-filter-panel,
.destination-filter-empty,
.destination-filter-best,
.review-card,
.review-submit-card,
.setup,
.estimate,
.explain,
.account-service-modal {
  padding: var(--space-5);
}

.review-card h3,
.destination-content-grid h2,
.setup h2 {
  margin-bottom: var(--space-3);
}

.review-meta,
.destination-plan-dialog dl,
.recommendation,
.screen-time-note {
  margin-top: var(--space-4);
}

@media (max-width: 800px) {
  .hero { padding-top: var(--space-8); padding-bottom: var(--space-7); }
  .plans-section, .how, .optimizer { padding-top: var(--space-8); padding-bottom: var(--space-8); }
  .destination-hero, .destination-section, .destination-help { padding-top: var(--space-7); padding-bottom: var(--space-7); }
  /* The homepage footer supplies the closing section gap on phones. Keeping
     the CTA's desktop margin here would double that space. */
  main#main-content > .cta { margin-bottom: 0; }
  .plan-grid, .plans, .destination-plans, .items { gap: var(--space-4); }
  .plan-card, .plan, .destination-plan, .item, .finder, .trip-card,
  .setup, .estimate, .explain, .card, .summary { padding: var(--space-5); }

}

/* Horizontal clipping belongs to the canonical page foundation. Unlike
   overflow:hidden, clip does not create a Safari scroll container. */
html,
body {
  overflow-x: clip;
}

/* Shared action geometry and destination-search treatment */
.select-plan,.optimize-btn,#ctaSearch,.search-box button{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;font-size:12px!important;line-height:1.1}.select-plan{padding:8px 10px!important}.optimize-btn{font-size:12px!important}.select-plan span,.optimize-btn span,#ctaSearch span,.search-box button span{font-size:15px!important;line-height:1;margin-left:0!important}.plan-card{position:relative}.plan-card .more{display:none!important}.plan-card .provider{position:absolute;top:17px;right:17px;margin:0;background:var(--color-cream);border-radius:5px;padding:5px 7px;color:var(--color-text-muted);font-size:9px;font-weight:700}

/* Country search is one calm surface: no field within a field, and no
   heavy green keyline around the coral action. */
.search-box input{border:0!important;border-radius:0!important;box-shadow:none!important}
#ctaSearch,.search-box button{border:0!important;border-radius:10px!important;background:var(--color-coral-500)!important;color:var(--color-paper)!important;box-shadow:none!important;transition:filter .16s ease}#ctaSearch:hover,.search-box button:hover{filter:brightness(.97);box-shadow:none!important;transform:none!important}#ctaSearch:active,.search-box button:active,.search-box button.is-submitted{box-shadow:none!important;transform:none!important}

/* Contrast-critical component refinements */
.popular,
.pricing-note {
  color: var(--color-text-muted) !important;
}

/* source: site-footer.css */
/* One public footer contract: brand, locale/currency controls, then utility links.
   Page styles may set surrounding space, but not a competing footer layout. */
.roamnessa-site-footer {
  box-sizing: border-box;
  direction: ltr;
  width: min(1180px, calc(100% - 56px));
  margin: var(--space-8) auto 0;
  padding: var(--space-6) 0 var(--space-7);
  border-top: 1px solid var(--color-border);
  display: grid;
  /* The locale controls belong in the visual space between the brand and
     the link group—not at the mathematical center of the viewport. */
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-5);
}

.roamnessa-site-footer .brand {
  display: inline-flex;
  align-items: center;
  gap: var(--brand-wordmark-gap);
  width: max-content;
  color: var(--color-ink-900);
  font: 800 italic 17px/1 "Funnel Sans", Arial, sans-serif;
  letter-spacing: -.8px;
  text-decoration: none;
}

.roamnessa-site-footer .brand-mark { width: var(--brand-mark-size); height: var(--brand-mark-size); flex: 0 0 var(--brand-mark-size); object-fit: contain; margin: 0; }
.roamnessa-site-footer .footer-controls { justify-self: center; display: flex; gap: 12px; }
.roamnessa-site-footer .footer-links { justify-self: end; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 24px; }
.roamnessa-site-footer .footer-links a {
  color: var(--color-ink-900);
  font: 700 13px/1.3 "Funnel Sans", Arial, sans-serif;
  text-decoration: none;
}
.roamnessa-site-footer .footer-links a:hover,
.roamnessa-site-footer .footer-links a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 760px) {
  .roamnessa-site-footer {
    width: min(100% - 36px, 520px);
    margin-top: var(--space-6);
    grid-template-columns: 1fr;
    justify-items: center;
    gap: var(--space-5);
    padding: var(--space-6) 0;
  }
  .roamnessa-site-footer .footer-controls,
  .roamnessa-site-footer .footer-links { justify-self: center; }
  /* Safari can paint an outline around the open <details> box instead of the
     rounded summary. A shadow keeps the keyboard focus ring on the pill. */
  .roamnessa-site-footer .footer-controls summary:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px var(--color-focus-ring) !important;
  }
  .roamnessa-site-footer .footer-controls .language-options {
    right: auto;
    left: 50%;
    width: min(205px, calc(100vw - 32px));
    transform: translateX(-50%);
  }
  .roamnessa-site-footer .footer-links { justify-content: center; gap: 14px 20px; }
}
