*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  html { scroll-behavior: smooth; scroll-padding-top: 7.75rem; -webkit-text-size-adjust: 100%; }
  body {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; font-size: 1.0625rem; line-height: 1.72;
}
  h1, h2, h3, h4 {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); font-weight: 400; letter-spacing: -0.012em; line-height: 1.1;
}
  h5, h6 {
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-weight: 700;
}
  a { text-underline-offset: 3px; }
  :focus-visible { outline: 2px solid #559CF6; outline-offset: 3px; }
  /* On the blue button and on dark bands a blue ring disappears: use the pale one. */
  .btn-primary:focus-visible, .site-header :focus-visible, .mobile-cta-bar :focus-visible, .sec-dark :focus-visible, .sec-charcoal :focus-visible, .hero :focus-visible, .site-footer :focus-visible { outline-color: #C5E1FC; }
  .bg-brand-accent :focus-visible { outline-color: #000; }
  ::-moz-selection { background: #C5E1FC; color: #000; }
  ::selection { background: #C5E1FC; color: #000; }
  img, video { max-width: 100%; height: auto; }
  summary::-webkit-details-marker { display: none; }
  [hidden] { display: none !important; }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  }
.container-wdc {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
@media (min-width: 1024px) {

  .container-wdc {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.container-wdc { max-width: 1280px; }
/* ---------- type ---------- */
.display-xl {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif; font-weight: 400; font-size: clamp(2.6rem, 6.6vw, 5.4rem); line-height: 1.02; letter-spacing: -0.02em;
}
.display-lg {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif; font-weight: 400; font-size: clamp(2.2rem, 4.8vw, 3.9rem); line-height: 1.06; letter-spacing: -0.018em;
}
.section-title {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif; font-weight: 400; font-size: clamp(1.85rem, 3.4vw, 2.9rem); line-height: 1.1; letter-spacing: -0.015em;
}
.card-title {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif; font-weight: 400; font-size: 1.35rem; line-height: 1.22; letter-spacing: -0.005em;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1)); font-size: 0.74rem; letter-spacing: 0.2em;
}
.eyebrow::before { content: ""; display: inline-block; width: 26px; height: 1px; background: currentColor; }
.eyebrow--light {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.eyebrow--dark {
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
/* Article date line: plain wrapping text, each date kept with its label (not flex columns). */
.article-meta { display: block; line-height: 1.9; }
.article-meta::before { vertical-align: middle; margin-right: .75rem; }
.article-meta__keep { white-space: nowrap; }
@media (max-width: 639.98px) { .article-meta { letter-spacing: .1em; } .article-meta__line { display: block; } .article-meta__sep { display: none; } }
.lede {
  --tw-text-opacity: 1;
  color: rgb(74 78 85 / var(--tw-text-opacity, 1)); font-size: clamp(1.06rem, 1.4vw, 1.22rem); line-height: 1.68; font-weight: 400;
}
.text-on-dark { color: rgba(255,255,255,0.8); }
.placeholder-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-width: 1px;
  border-style: dashed;
  border-color: rgb(251 191 36 / 0.8);
  background-color: rgb(252 211 77 / 0.1);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.sec-dark .placeholder-tag, .sec-charcoal .placeholder-tag, .hero .placeholder-tag {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
/* ---------- buttons ---------- */
.\!btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-weight: 600;
  text-decoration-line: none;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-weight: 600;
  text-decoration-line: none;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.\!btn { padding: 0.95rem 1.6rem !important; font-size: 0.98rem !important; line-height: 1.2 !important; border: 1px solid transparent !important; border-radius: 0 !important; min-height: 3.1rem !important; letter-spacing: .01em !important; }
.btn { padding: 0.95rem 1.6rem; font-size: 0.98rem; line-height: 1.2; border: 1px solid transparent; border-radius: 0; min-height: 3.1rem; letter-spacing: .01em; }
.\!btn svg { width: .95rem !important; height: .95rem !important; flex-shrink: 0 !important; transition: transform .2s ease !important; }
.btn svg { width: .95rem; height: .95rem; flex-shrink: 0; transition: transform .2s ease; }
.\!btn:hover svg { transform: translate(2px, -2px) !important; }
.btn:hover svg { transform: translate(2px, -2px); }
.btn-primary :focus-visible { outline-color: #000; }
.btn-primary .btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-primary {
  --tw-border-opacity: 1;
  border-color: rgb(85 156 246 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(85 156 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.btn-primary:hover {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(197 225 252 / var(--tw-bg-opacity, 1));
}
.btn-sky {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(197 225 252 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.btn-sky:hover {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.btn-dark {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-dark:hover {
  --tw-border-opacity: 1;
  border-color: rgb(25 25 25 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
}
.btn-outline-light {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  background-color: transparent;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-outline-light:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.btn-outline-dark {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
  background-color: transparent;
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.bg-brand-accent .btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
}
.link-arrow svg { width: .9rem; height: .9rem; transition: transform .2s ease; }
.link-arrow:hover svg { transform: translateX(3px); }
.sec-dark .link-arrow, .sec-charcoal .link-arrow {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
/* ---------- sections ---------- */
.section { padding-block: clamp(4.25rem, 8vw, 7.5rem); }
.section-sm { padding-block: clamp(3rem, 5vw, 4.5rem); }
.sec-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.sec-light {
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 241 / var(--tw-bg-opacity, 1));
}
.sec-dark {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.sec-charcoal {
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.sec-dark h1, .sec-dark h2, .sec-dark h3, .sec-dark h4,
  .sec-charcoal h1, .sec-charcoal h2, .sec-charcoal h3, .sec-charcoal h4 {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.sec-dark .lede, .sec-charcoal .lede { color: rgba(255,255,255,.74); }
.sec-dark .eyebrow, .sec-charcoal .eyebrow {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.rule-top { border-top: 1px solid rgba(255,255,255,.16); }
/* ---------- header ---------- */
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 60; transition: background-color .3s ease, box-shadow .3s ease; }
/* Not clipped while open, so the Translate menu can drop below the bar; clipped only as it collapses. */
.topbar {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  font-size: 13px;
  color: rgb(255 255 255 / 0.8); position: relative; z-index: 2; max-height: 40px; transition: max-height .3s ease, opacity .3s ease; border-bottom: 1px solid rgba(255,255,255,.1);
}
.topbar a {
  color: rgb(255 255 255 / 0.8);
  text-decoration-line: none;
}
.topbar a:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.navbar { transition: background-color .3s ease, box-shadow .3s ease; }
.site-header[data-scrolled] .topbar { max-height: 0; opacity: 0; overflow: hidden; }
.site-header[data-overlay="true"]:not([data-scrolled]):not([data-menu-open]) .navbar { background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 100%); }
.site-header[data-overlay="false"] .navbar,
  .site-header[data-scrolled] .navbar,
  .site-header[data-menu-open] .navbar { background: rgba(0,0,0,.94); backdrop-filter: blur(8px); box-shadow: 0 1px 0 rgba(255,255,255,.1); }
.site-logo { height: 34px; width: auto; max-width: 100%; }
@media (min-width: 1024px) { .site-logo { height: 44px; } }
.nav-primary-desktop > li { position: relative; }
.nav-primary-desktop .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none; font-size: 0.95rem; font-weight: 400; padding: 0.5rem 0.1rem; background: none; border: 0; cursor: pointer; white-space: nowrap; position: relative;
}
.nav-primary-desktop .nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: #C5E1FC; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav-primary-desktop > li:hover > .nav-link::after,
  .nav-primary-desktop > li[data-open="true"] > .nav-link::after,
  .nav-primary-desktop > li.current-menu-item > .nav-link::after,
  .nav-primary-desktop > li.current-menu-ancestor > .nav-link::after { transform: scaleX(1); }
.nav-primary-desktop > li.current-menu-item > .nav-link, .nav-primary-desktop > li.current-menu-ancestor > .nav-link { color: #C5E1FC; }
.mega-caret { transition: transform .2s ease; }
.nav-primary-desktop > li[data-open="true"] .mega-caret { transform: rotate(180deg); }
.mega-panel { position: absolute; top: calc(100% + 18px); left: -1.25rem; min-width: 300px; --tw-bg-opacity: 1; background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); border: 1px solid rgba(255,255,255,.14); box-shadow: 0 24px 48px -16px rgba(0,0,0,.7); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 70; }
/* Opens on hover after a short pause (so crossing the nav does not flash it) or on click/keyboard via data-open.
     No :focus-within rule: a clicked trigger keeps focus and would pin the panel open over the page. */
.has-mega:hover > .mega-panel { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: .14s; }
.has-mega[data-open="true"] > .mega-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.has-mega[data-closed="true"] > .mega-panel { opacity: 0 !important; visibility: hidden !important; transition-delay: 0s !important; }
.mega-close {
  position: absolute;
  right: 0.25rem;
  top: 0.25rem;
  z-index: 10;
  display: inline-flex;
  height: 2rem;
  width: 2rem;
  align-items: center;
  justify-content: center;
  color: rgb(255 255 255 / 0.8);
}
.mega-close:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.mega-close { background: rgba(0,0,0,.6); border: 0; }
.mega-region li a small, .submenu-list a small {
  margin-left: 0.25rem;
  font-size: 11px;
  font-weight: 400;
  color: rgb(255 255 255 / 0.45);
}
.has-mega::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 22px; }
.mega-panel--wide { min-width: 580px; }
/* Short screens: the panel scrolls inside itself, so every row stays reachable. */
.mega-panel { max-height: calc(100vh - 160px); max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain; }
.nav-primary-desktop > li.has-mega--regions { position: static; }
.navbar > .container-wdc { position: relative; }
.nav-primary-desktop { position: static; }
.mega-panel--regions { left: 50%; width: min(1000px, calc(100vw - 4rem)); margin-left: calc(min(1000px, calc(100vw - 4rem)) / -2); }
.mega-regions { display: grid; grid-template-columns: 1.15fr 1.15fr .85fr .85fr; gap: 1.5rem; padding: 1.5rem; }
.mega-region-head {
  position: relative;
  margin-bottom: 0.75rem;
  display: block;
  overflow: hidden;
  text-decoration-line: none; height: 120px;
}
.mega-region-head img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover; transition: transform .35s ease;
}
.mega-region-head::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.05) 60%); }
.mega-region-head span {
  position: absolute;
  bottom: 0.625rem;
  left: 0.75rem;
  z-index: 10;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  font-size: 1.05rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.mega-region-head:hover img { transform: scale(1.04); }
.mega-region ul > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.mega-region li a {
  display: block;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.93rem;
  color: rgb(255 255 255 / 0.8);
  text-decoration-line: none;
}
.mega-region li a:hover, .mega-region li a[aria-current="page"] { color: #C5E1FC; }
.mega-grid {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.mega-panel--wide .mega-grid { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: row; -moz-column-gap: .25rem; column-gap: .25rem; }
.mega-grid a {
  display: flex;
  flex-direction: column;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.95rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
}
.mega-grid a:hover, .mega-grid a[aria-current="page"] { background: rgba(255,255,255,.06); color: #C5E1FC; }
.mega-grid a small {
  margin-top: 0.125rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  line-height: 1.375;
  color: rgb(255 255 255 / 0.55);
}
.mega-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
  text-decoration-line: none; border-top: 1px solid rgba(255,255,255,.12);
}
.mega-foot:hover :focus-visible { outline-color: #000; }
.mega-foot:hover .btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.mega-foot:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(85 156 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 13px;
  color: rgb(255 255 255 / 0.8);
  text-decoration-line: none;
}
.lang-switch:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.translate {
  position: relative;
}
.translate-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 13px;
  color: rgb(255 255 255 / 0.8);
}
.translate-toggle:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.translate-toggle { min-height: 40px; }
.translate-menu {
  position: absolute;
  right: 0px;
  top: 100%;
  z-index: 70;
  width: 12rem;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.15);
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); max-height: calc(100vh - 60px); max-height: calc(100dvh - 60px); overflow-y: auto; overscroll-behavior: contain;
}
.translate-menu button {
  display: block;
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  text-align: left;
  font-size: 15px;
  color: rgb(255 255 255 / 0.85);
}
.translate-menu button:hover {
  background-color: rgb(255 255 255 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.translate-menu button:focus-visible {
  background-color: rgb(255 255 255 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); outline: 2px solid #C5E1FC; outline-offset: -2px;
}
.translate-note {
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 11px;
  line-height: 1.375;
  color: rgb(255 255 255 / 0.5); border-top: 1px solid rgba(255,255,255,.12);
}
/* --drawer-h is the space left under the header, measured when the menu opens (main.js); the
     bottom padding keeps the last rows clear of the fixed bar and the chat button. */
.mobile-drawer {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); border-top: 1px solid rgba(255,255,255,.12); max-height: var(--drawer-h, calc(100dvh - 112px)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: 6rem;
}
html:has(.site-header[data-menu-open]) .mobile-cta-bar, html:has(.site-header[data-menu-open]) aside.ty-chat { display: none; }
.nav-primary-mobile > li { border-bottom: 1px solid rgba(255,255,255,.12); }
.nav-primary-mobile > li > a, .nav-primary-mobile .submenu-toggle {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  font-size: 1.15rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none; background: none; border: 0;
}
.nav-primary-mobile .submenu-toggle svg { transition: transform .2s ease; }
.nav-primary-mobile .submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.submenu-list {
  padding-bottom: 0.75rem;
}
.submenu-list a {
  display: block;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1rem;
  color: rgb(255 255 255 / 0.8);
  text-decoration-line: none; border-left: 1px solid rgba(197,225,252,.5);
}
.submenu-list .submenu-foot a {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.submenu-list .submenu-group > a {
  border-left-width: 0px;
  padding-left: 0px;
  padding-top: 0.75rem;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.nav-primary-mobile .submenu-toggle--sub {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  padding-left: 1rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.5rem;
  color: rgb(255 255 255 / 0.85); border-left: 1px solid rgba(197,225,252,.5);
}
.submenu-group > ul {
  padding-bottom: 0.5rem;
  padding-left: 1rem;
}
.submenu-list .submenu-group ul a {
  padding-left: 1rem;
}
/* ---------- hero ---------- */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hero-media {
  position: absolute;
  inset: 0px;
  z-index: -10;
}
.hero-media img, .hero-media video {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover; -o-object-position: 70% 50%; object-position: 70% 50%;
}
.hero-shade {
  position: absolute;
  inset: 0px;
  z-index: -10; background: linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 48%, rgba(0,0,0,.15) 100%), linear-gradient(0deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 45%);
}
.hero-inner { padding-top: calc(112px + clamp(3rem, 8vw, 6rem)); padding-bottom: clamp(3.25rem, 6vw, 5.5rem); }
.hero--home .hero-inner { min-height: min(100svh, 900px); display: flex; flex-direction: column; justify-content: flex-end; }
.hero h1 {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hero-sub { color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.5vw, 1.3rem); line-height: 1.62; font-weight: 300; }
.hero-meta {
  margin-top: 3rem;
  display: grid;
  gap: 1rem;
  padding-top: 1.5rem;
  color: rgb(255 255 255 / 0.85);
}
@media (min-width: 640px) {

  .hero-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.hero-meta { border-top: 1px solid rgba(255,255,255,.28); font-size: .98rem; }
.hero-meta a {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
}
.hero-meta a:hover {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.hero-plain { background: #000; }
.hero-plain::after { content: ""; position: absolute; inset: auto -12% -45% auto; width: 62%; aspect-ratio: 1; background: radial-gradient(closest-side, rgba(85,156,246,.18), rgba(85,156,246,0)); z-index: -1; }
.breadcrumb {
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(255 255 255 / 0.65);
}
.breadcrumb a {
  color: rgb(255 255 255 / 0.75);
  text-decoration-line: none;
}
.breadcrumb a:hover {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
/* ---------- tiles (destinations) ---------- */
.tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
  text-decoration-line: none; aspect-ratio: 4 / 5;
}
.tile img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover; opacity: .72; transition: transform .7s ease, opacity .3s ease;
}
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.92) 8%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.1) 100%); }
.tile:hover img { transform: scale(1.05); opacity: .85; }
.tile-title {
  position: relative;
  z-index: 10;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); font-size: clamp(1.3rem, 1.8vw, 1.65rem); line-height: 1.12;
}
/* Text stops short of the + control in the corner. */
.tile-title { padding-right: 3.5rem; }
.tile-desc {
  position: relative;
  z-index: 10;
  margin-top: 0.5rem;
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.375;
  color: rgb(255 255 255 / 0.8); padding-right: 3.5rem;
}
.tile-plus {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 10;
  display: inline-flex;
  height: 2.5rem;
  width: 2.5rem;
  align-items: center;
  justify-content: center;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.7);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); transition: all .2s ease;
}
.tile:hover .tile-plus {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.tile--charcoal {
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
}
/* ---------- area list (destination rail) ---------- */
.area-list {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.area-list-img {
  position: absolute;
  inset: 0px;
  z-index: -10;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.6;
}
.area-list-rail {
  background-color: rgb(0 0 0 / 0.8);
  --tw-backdrop-blur: blur(2px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.area-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
}
@media (min-width: 1024px) {

  .area-item {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.area-item { border-bottom: 1px solid rgba(255,255,255,.14); transition: background-color .2s ease; }
.area-item:hover, .area-item:focus-visible { background: rgba(85,156,246,.16); }
.area-item-title {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); font-size: clamp(1.35rem, 2.3vw, 2rem); line-height: 1.05;
}
.area-item-desc {
  margin-top: 0.375rem;
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(255 255 255 / 0.7);
}
.area-item-badge {
  margin-left: 0.75rem;
  display: inline-block;
  --tw-translate-y: -3px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-width: 1px;
  border-color: rgb(197 225 252 / 0.6);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  vertical-align: middle;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
/* ---------- cards ---------- */
.card {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.75rem;
  text-decoration-line: none; border: 1px solid #E3E3E3; transition: border-color .2s ease, transform .2s ease, background-color .2s ease;
}
.sec-white .card {
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 241 / var(--tw-bg-opacity, 1)); border-color: transparent;
}
a.card:hover { border-color: #559CF6; transform: translateY(-2px); }
.sec-dark .card, .sec-charcoal .card {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); background: transparent; border-color: rgba(255,255,255,.2);
}
.sec-dark .card { background: #0B0B0C; }
.sec-dark .card .card-title, .sec-charcoal .card .card-title {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.sec-dark .card p, .sec-charcoal .card p, .sec-dark .card li, .sec-charcoal .card li { color: rgba(255,255,255,.72); }
.sec-dark a.card:hover, .sec-charcoal a.card:hover { border-color: #C5E1FC; background: rgba(255,255,255,.03); }
.card-eyebrow {
  margin-bottom: 0.75rem;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
}
.sec-dark .card-eyebrow, .sec-charcoal .card-eyebrow {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.card-icon {
  margin-bottom: 1.25rem;
  height: 3rem;
  width: 3rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.card-photo {
  margin-left: -1.75rem;
  margin-right: -1.75rem;
  margin-top: -1.75rem;
  margin-bottom: 1.5rem;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
}
.card-photo img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.card-photo--mono {
  display: flex;
  align-items: center;
  justify-content: center; border-bottom: 1px solid rgba(255,255,255,.12);
}
.card-photo--mono span {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  font-size: 3.75rem;
  line-height: 1;
  color: rgb(255 255 255 / 0.3);
}
.card-note {
  margin-top: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.lang-flags {
  display: flex;
  flex-wrap: wrap;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  row-gap: 0.5rem;
  font-size: 0.85rem;
  color: rgb(255 255 255 / 0.7);
}
.lang-flags li {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.lang-flags img {
  height: 13px;
  width: 19px;
  flex-shrink: 0;
  -o-object-fit: cover;
     object-fit: cover; outline: 1px solid rgba(255,255,255,.25);
}
.lang-label {
  margin-bottom: 0.5rem;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgb(255 255 255 / 0.5);
}
.lang-flags--chips .lang-flags {
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.lang-flags--chips .lang-flags li {
  gap: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem; border: 1px solid rgba(255,255,255,.3);
}
.cta-note {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(255 255 255 / 0.65);
}
.case-figures {
  margin-top: 1.5rem;
  display: grid;
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  row-gap: 1rem;
  border-top-width: 1px;
  border-color: rgb(255 255 255 / 0.15);
  padding-top: 1.5rem;
}
@media (min-width: 640px) {

  .case-figures {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {

  .case-figures {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Labels wrap to different heights; the amounts still line up along the bottom of each row. */
.case-figures > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.case-figures dt {
  font-size: 0.9rem;
  line-height: 1.375;
  color: rgb(255 255 255 / 0.6);
}
.case-figures dd {
  margin-top: 0.25rem;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  font-size: 1.5rem;
  line-height: 2rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.quiz-steps {
  margin-bottom: 1.5rem;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.375rem;
}
.quiz-steps li {
  border-top-width: 2px;
  border-color: rgb(255 255 255 / 0.15);
  padding-top: 0.5rem;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 1.25;
  letter-spacing: 0.08em;
  color: rgb(255 255 255 / 0.55);
}
.quiz-steps li[data-state="done"] {
  --tw-border-opacity: 1;
  border-color: rgb(85 156 246 / var(--tw-border-opacity, 1));
  color: rgb(255 255 255 / 0.7);
}
.quiz-steps li[data-state="now"] {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.quiz-steps li span {
  display: none;
}
@media (min-width: 640px) {

  .quiz-steps li span {
    display: inline;
  }
}
.quiz-why {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.625;
  color: rgb(255 255 255 / 0.6);
}
.quiz-paths {
  margin-top: 1.75rem;
  display: grid;
  gap: 0.75rem;
}
.quiz-path {
  padding: 1.25rem; border: 1px solid rgba(255,255,255,.2);
}
.quiz-path--main { border-color: #559CF6; background: rgba(85,156,246,.08); }
.quiz-path h4 {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 1.75rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.quiz-path p {
  margin-top: 0.375rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.625;
  color: rgb(255 255 255 / 0.65);
}
.sec-white .card-icon, .sec-light .card-icon { filter: invert(1); }
/* ---------- steps ---------- */
.step {
  position: relative;
  padding-top: 1.5rem; border-top: 1px solid #111214;
}
.step-num {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1)); font-size: 2.6rem; line-height: 1;
}
.sec-dark .step, .sec-charcoal .step { border-color: rgba(255,255,255,.35); }
.sec-dark .step-num, .sec-charcoal .step-num {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
/* ---------- testimonials / reviews ---------- */
.quote-card {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 2rem; border: 1px solid #E3E3E3;
}
.sec-dark .quote-card, .sec-charcoal .quote-card { background: transparent; border-color: rgba(255,255,255,.2); }
.quote-mark {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(85 156 246 / var(--tw-text-opacity, 1)); font-size: 4rem; line-height: .6; height: 2rem;
}
.quote-text {
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); font-size: 1.06rem; line-height: 1.7;
}
.sec-dark .quote-text, .sec-charcoal .quote-text { color: rgba(255,255,255,.88); }
.quote-author {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1)); font-size: 1rem;
}
.sec-dark .quote-author, .sec-charcoal .quote-author {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  padding: 2rem;
}
@media (min-width: 640px) {

  .empty-state {
    padding: 2.5rem;
  }
}
.empty-state { border: 1px dashed rgba(255,255,255,.3); }
.sec-white .empty-state, .sec-light .empty-state { border-color: rgba(0,0,0,.25); }
/* ---------- faq ---------- */
.faq-item { border-bottom: 1px solid #E3E3E3; }
.sec-dark .faq-item, .sec-charcoal .faq-item { border-color: rgba(255,255,255,.16); }
.faq-item summary {
  display: flex;
  cursor: pointer;
  list-style-type: none;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1)); font-size: 1.2rem; line-height: 1.4;
}
.sec-dark .faq-item summary, .sec-charcoal .faq-item summary {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.faq-item summary:hover {
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
}
.sec-dark .faq-item summary:hover {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.faq-icon {
  position: relative;
  margin-top: 0.25rem;
  height: 1.5rem;
  width: 1.5rem;
  flex-shrink: 0; border: 1px solid currentColor;
}
.faq-icon::before, .faq-icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .2s ease; }
.faq-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-item[open] .faq-icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq-answer {
  padding-bottom: 1.75rem;
  padding-right: 3rem;
  --tw-text-opacity: 1;
  color: rgb(74 78 85 / var(--tw-text-opacity, 1));
}
.sec-dark .faq-answer, .sec-charcoal .faq-answer { color: rgba(255,255,255,.74); }
/* ---------- prose ---------- */
.prose-opt {
  --tw-text-opacity: 1;
  color: rgb(74 78 85 / var(--tw-text-opacity, 1)); font-size: 1.07rem; line-height: 1.8;
}
.prose-opt > * + * { margin-top: 1.1em; }
.prose-opt h2 {
  margin-top: 3rem;
  margin-bottom: 1rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); font-size: clamp(1.5rem, 2.6vw, 2.05rem);
}
.prose-opt h3 {
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); font-size: 1.35rem;
}
.prose-opt h4 {
  margin-top: 1.75rem;
  margin-bottom: 0.5rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); font-size: 1.08rem; letter-spacing: 0;
}
.prose-opt a {
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
}
.prose-opt strong {
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.prose-opt ul > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.prose-opt ul {
  padding-left: 0px;
}
.prose-opt ul > li {
  position: relative;
  padding-left: 1.75rem;
}
.prose-opt ul > li::before { content: ""; position: absolute; left: 0; top: .82em; width: 12px; height: 1px; background: #559CF6; }
.prose-opt ol {
  list-style-type: decimal;
}
.prose-opt ol > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.prose-opt ol {
  padding-left: 1.5rem;
}
.prose-opt blockquote {
  border-left-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(85 156 246 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 241 / var(--tw-bg-opacity, 1));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.prose-opt img {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.prose-opt table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.95rem;
}
.prose-opt th, .prose-opt td {
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(227 227 227 / var(--tw-border-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  vertical-align: top;
}
.prose-opt th {
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.prose-opt .note {
  border-left-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.95rem;
  --tw-text-opacity: 1;
  color: rgb(38 40 44 / var(--tw-text-opacity, 1));
}
.sec-dark .prose-opt, .sec-charcoal .prose-opt { color: rgba(255,255,255,.8); }
.sec-dark .prose-opt h2, .sec-dark .prose-opt h3, .sec-dark .prose-opt h4, .sec-dark .prose-opt strong,
  .sec-charcoal .prose-opt h2, .sec-charcoal .prose-opt h3, .sec-charcoal .prose-opt h4, .sec-charcoal .prose-opt strong {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.sec-dark .prose-opt a, .sec-charcoal .prose-opt a {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.sec-dark .prose-opt th, .sec-dark .prose-opt td, .sec-charcoal .prose-opt th, .sec-charcoal .prose-opt td { border-color: rgba(255,255,255,.16); }
.sec-dark .prose-opt th, .sec-charcoal .prose-opt th {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
/* ---------- checklist ---------- */
.check-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.check-box {
  margin-top: 0.125rem;
  display: inline-flex;
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(85 156 246 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
}
.sec-dark .check-box, .sec-charcoal .check-box {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
/* ---------- country facts ---------- */
.facts-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}
.facts-table th {
  width: 34%;
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-right: 1.5rem;
  vertical-align: top;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.facts-table td {
  padding-top: 1rem;
  padding-bottom: 1rem;
  vertical-align: top;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.facts-table tr { border-bottom: 1px solid #E3E3E3; }
.sec-dark .facts-table th, .sec-charcoal .facts-table th { color: rgba(255,255,255,.55); }
.sec-dark .facts-table td, .sec-charcoal .facts-table td { color: rgba(255,255,255,.9); }
.sec-dark .facts-table tr, .sec-charcoal .facts-table tr { border-color: rgba(255,255,255,.14); }
/* ---------- offer ladder ---------- */
.tier {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 2rem;
}
@media (min-width: 640px) {

  .tier {
    padding: 2.5rem;
  }
}
.tier { border: 1px solid rgba(255,255,255,.22); }
.tier--featured { border-color: #559CF6; background: linear-gradient(180deg, rgba(85,156,246,.12), rgba(85,156,246,0) 60%); }
.tier-step {
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.tier-price {
  margin-top: 1.5rem;
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); font-size: clamp(2.4rem, 4vw, 3.2rem); line-height: 1;
}
.tier-price small {
  margin-left: 0.25rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: rgb(255 255 255 / 0.6);
}
.tier-credit {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(255 255 255 / 0.65); border-top: 1px solid rgba(255,255,255,.14);
}
/* ---------- form ---------- */
.form-card {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
@media (min-width: 640px) {

  .form-card {
    padding: 2.25rem;
  }
}
.form-card--dark {
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); border: 1px solid rgba(255,255,255,.16);
}
.field-label {
  margin-bottom: 0.375rem;
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.form-card--dark .field-label {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.field-label .req {
  font-weight: 400;
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
}
.field {
  width: 100%;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(227 227 227 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.field::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.field::placeholder {
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.field { border-radius: 0; min-height: 3rem; }
.field:focus {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
  outline: 2px solid transparent;
  outline-offset: 2px; box-shadow: 0 0 0 3px rgba(85,156,246,.45);
}
.form-card--dark .field, .calc .field, .quiz .field {
  border-color: rgb(255 255 255 / 0.25);
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.form-card--dark .field::-moz-placeholder, .calc .field::-moz-placeholder, .quiz .field::-moz-placeholder {
  color: rgb(255 255 255 / 0.4);
}
.form-card--dark .field::placeholder, .calc .field::placeholder, .quiz .field::placeholder {
  color: rgb(255 255 255 / 0.4);
}
.form-card--dark .field:focus, .calc .field:focus, .quiz .field:focus {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
}
.choice {
  position: relative;
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  gap: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(227 227 227 / var(--tw-border-opacity, 1));
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); min-height: 2.75rem;
}
.choice:has(input:checked) {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.choice input {
  height: 1rem;
  width: 1rem;
  accent-color: #559CF6;
}
/* ---------- calculator + quiz ---------- */
.calc, .quiz {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.calc-panel {
  padding: 1.5rem;
}
@media (min-width: 640px) {

  .calc-panel {
    padding: 2rem;
  }
}
.calc-panel { border: 1px solid rgba(255,255,255,.16); background: #0B0B0C; }
.calc-label {
  margin-bottom: 0.5rem;
  display: block;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgb(255 255 255 / 0.6);
}
.quiz-progress {
  height: 3px;
  width: 100%;
  background-color: rgb(255 255 255 / 0.1);
}
.quiz-progress > i :focus-visible { outline-color: #000; }
.quiz-progress > i .btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.quiz-progress > i {
  display: block;
  height: 100%;
  --tw-bg-opacity: 1;
  background-color: rgb(85 156 246 / var(--tw-bg-opacity, 1)); transition: width .3s ease;
}
.quiz-option {
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 1rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  text-align: left;
  color: rgb(255 255 255 / 0.9); border: 1px solid rgba(255,255,255,.2); background: transparent; cursor: pointer; transition: all .15s ease;
}
.quiz-option:hover, .quiz-option:focus-visible { border-color: #C5E1FC; background: rgba(255,255,255,.03); }
.quiz-option[aria-pressed="true"] { border-color: #559CF6; background: rgba(85,156,246,.12); }
.quiz-option-key {
  margin-top: 0.125rem;
  display: inline-flex;
  height: 1.5rem;
  width: 1.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  color: rgb(255 255 255 / 0.7); border: 1px solid rgba(255,255,255,.3);
}
/* ---------- founder ---------- */
.founder-photo {
  position: relative;
  display: flex;
  aspect-ratio: 4/5;
  width: 100%;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1)); border: 1px solid rgba(255,255,255,.16);
}
.founder-photo img {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.founder-mono {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
  color: rgb(255 255 255 / 0.85); font-size: clamp(4rem, 9vw, 7rem); letter-spacing: -0.04em;
}
.fact-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1)); border: 1px solid rgba(0,0,0,.3);
}
.sec-dark .fact-chip, .sec-charcoal .fact-chip {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)); border-color: rgba(255,255,255,.3);
}
/* ---------- footer ---------- */
.site-footer {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  color: rgb(255 255 255 / 0.7); border-top: 1px solid rgba(255,255,255,.12);
}
.site-footer h3 {
  margin-bottom: 1rem;
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgb(255 255 255 / 0.9);
}
.site-footer a:not(.btn) {
  color: rgb(255 255 255 / 0.7);
  text-decoration-line: none;
}
.site-footer a:not(.btn):hover {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.footer-bar {
  color: rgb(255 255 255 / 0.6); border-top: 1px solid rgba(255,255,255,.12);
}
.footer-bar a {
  color: rgb(255 255 255 / 0.7);
  text-decoration-line: none;
}
.footer-bar a:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
/* Below 1024px a fixed bar sits at the bottom: the legal links stay clear of it. */
@media (max-width: 1023.98px) { .footer-bar { padding-bottom: calc(60px + env(safe-area-inset-bottom)); } }
/* ---------- mobile sticky bar ---------- */
.mobile-cta-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: grid; grid-template-columns: 1fr; box-shadow: 0 -8px 24px -12px rgba(0,0,0,.6); padding-bottom: env(safe-area-inset-bottom); background: #000; border-top: 1px solid rgba(255,255,255,.14); transform: translateY(110%); transition: transform .3s ease; }
.mobile-cta-bar.is-visible { transform: none; }
.mobile-cta-bar a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none; font-size: .98rem;
}
.mobile-cta-bar__call {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.mobile-cta-bar__book :focus-visible { outline-color: #000; }
.mobile-cta-bar__book .btn-outline-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.mobile-cta-bar__book {
  --tw-bg-opacity: 1;
  background-color: rgb(85 156 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1 !important;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important;
}
@media (max-width: 1023px) { body { padding-bottom: 60px; } }
/* ---------- posts ---------- */
.post-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  text-decoration-line: none; background: #0B0B0C; border: 1px solid rgba(255,255,255,.14); transition: border-color .2s ease, transform .2s ease;
}
.post-card h3 {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.post-card p { color: rgba(255,255,255,.72); }
.post-card .link-arrow {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.post-card:hover { transform: translateY(-2px); border-color: rgba(197,225,252,.7); }
.post-card-img {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
}
.post-card-img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 1024px) {
    .post-grid--lead > :first-child { grid-column: 1 / -1; flex-direction: row; }
    .post-grid--lead > :first-child .post-card-img { width: 50%; flex-shrink: 0; aspect-ratio: 16 / 9; }
    .post-grid--lead > :first-child > :not(.post-card-img) { align-self: center; }
    .post-grid--lead > :first-child h3 { font-size: 1.75rem; line-height: 1.2; }
  }
.nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.nav-links .page-numbers {
  display: inline-flex;
  height: 2.75rem;
  min-width: 2.75rem;
  align-items: center;
  justify-content: center;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none; border: 1px solid rgba(255,255,255,.2);
}
.nav-links .page-numbers.current, .nav-links .page-numbers:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
/* ---------- reveal ---------- */
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
[data-reveal].is-revealed { opacity: 1; transform: none; }
.no-js [data-reveal] { opacity: 1; transform: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.\!sticky {
  position: sticky !important;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.-bottom-4 {
  bottom: -1rem;
}
.-left-4 {
  left: -1rem;
}
.-right-4 {
  right: -1rem;
}
.-top-4 {
  top: -1rem;
}
.bottom-2\.5 {
  bottom: 0.625rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.right-0 {
  right: 0px;
}
.right-1 {
  right: 0.25rem;
}
.right-6 {
  right: 1.5rem;
}
.top-1 {
  top: 0.25rem;
}
.top-4 {
  top: 1rem;
}
.top-full {
  top: 100%;
}
.isolate {
  isolation: isolate;
}
.-z-10 {
  z-index: -10;
}
.z-10 {
  z-index: 10;
}
.z-\[70\] {
  z-index: 70;
}
.-mx-7 {
  margin-left: -1.75rem;
  margin-right: -1.75rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.\!mb-0 {
  margin-bottom: 0px !important;
}
.\!mt-1 {
  margin-top: 0.25rem !important;
}
.\!mt-2 {
  margin-top: 0.5rem !important;
}
.\!mt-3 {
  margin-top: 0.75rem !important;
}
.-mt-7 {
  margin-top: -1.75rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-3 {
  margin-left: 0.75rem;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-14 {
  margin-top: 3.5rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-7 {
  margin-top: 1.75rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-9 {
  margin-top: 2.25rem;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.aspect-\[16\/10\] {
  aspect-ratio: 16/10;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-\[4\/5\] {
  aspect-ratio: 4/5;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-4 {
  height: 1rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-\[13px\] {
  height: 13px;
}
.h-\[3px\] {
  height: 3px;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-10 {
  max-height: 2.5rem;
}
.\!min-h-0 {
  min-height: 0px !important;
}
.min-h-\[320px\] {
  min-height: 320px;
}
.min-h-\[420px\] {
  min-height: 420px;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-3 {
  width: 0.75rem;
}
.w-4 {
  width: 1rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-6 {
  width: 1.5rem;
}
.w-7 {
  width: 1.75rem;
}
.w-8 {
  width: 2rem;
}
.w-\[19px\] {
  width: 19px;
}
.w-\[34\%\] {
  width: 34%;
}
.w-auto {
  width: auto;
}
.w-full {
  width: 100%;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-\[2\.75rem\] {
  min-width: 2.75rem;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-\[640px\] {
  max-width: 640px;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-prose {
  max-width: 68ch;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.border-collapse {
  border-collapse: collapse;
}
.translate-y-\[-3px\] {
  --tw-translate-y: -3px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-pointer {
  cursor: pointer;
}
.resize {
  resize: both;
}
.list-decimal {
  list-style-type: decimal;
}
.list-none {
  list-style-type: none;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-center {
  align-items: center;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-12 {
  gap: 3rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-x-10 {
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-x-6 {
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
.gap-x-8 {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-4 {
  row-gap: 1rem;
}
.gap-y-5 {
  row-gap: 1.25rem;
}
.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-black\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(0 0 0 / 0.1);
}
.divide-white\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.1);
}
.overflow-hidden {
  overflow: hidden;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-wrap {
  text-wrap: wrap;
}
.text-balance {
  text-wrap: balance;
}
.border {
  border-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l-0 {
  border-left-width: 0px;
}
.border-l-2 {
  border-left-width: 2px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-2 {
  border-top-width: 2px;
}
.\!border-solid {
  border-style: solid !important;
}
.border-dashed {
  border-style: dashed;
}
.\!border-brand-sky\/50 {
  border-color: rgb(197 225 252 / 0.5) !important;
}
.border-amber-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}
.border-amber-400\/80 {
  border-color: rgb(251 191 36 / 0.8);
}
.border-black\/10 {
  border-color: rgb(0 0 0 / 0.1);
}
.border-black\/20 {
  border-color: rgb(0 0 0 / 0.2);
}
.border-brand-accent {
  --tw-border-opacity: 1;
  border-color: rgb(85 156 246 / var(--tw-border-opacity, 1));
}
.border-brand-black {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
}
.border-brand-line {
  --tw-border-opacity: 1;
  border-color: rgb(227 227 227 / var(--tw-border-opacity, 1));
}
.border-brand-sky {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
}
.border-brand-sky\/60 {
  border-color: rgb(197 225 252 / 0.6);
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}
.border-white\/25 {
  border-color: rgb(255 255 255 / 0.25);
}
.border-white\/70 {
  border-color: rgb(255 255 255 / 0.7);
}
.\!bg-transparent {
  background-color: transparent !important;
}
.bg-amber-300\/10 {
  background-color: rgb(252 211 77 / 0.1);
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}
.bg-brand-accent {
  --tw-bg-opacity: 1;
  background-color: rgb(85 156 246 / var(--tw-bg-opacity, 1));
}
.bg-brand-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-brand-charcoal {
  --tw-bg-opacity: 1;
  background-color: rgb(25 25 25 / var(--tw-bg-opacity, 1));
}
.bg-brand-light {
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 241 / var(--tw-bg-opacity, 1));
}
.bg-brand-sky {
  --tw-bg-opacity: 1;
  background-color: rgb(197 225 252 / var(--tw-bg-opacity, 1));
}
.bg-transparent {
  background-color: transparent;
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.object-top {
  -o-object-position: top;
     object-position: top;
}
.p-6 {
  padding: 1.5rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-8 {
  padding: 2rem;
}
.\!px-5 {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}
.\!py-2\.5 {
  padding-top: 0.625rem !important;
  padding-bottom: 0.625rem !important;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-10 {
  padding-bottom: 2.5rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-7 {
  padding-bottom: 1.75rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-0 {
  padding-left: 0px;
}
.pl-4 {
  padding-left: 1rem;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-\[clamp\(4rem\2c 8vw\2c 7rem\)\] {
  padding-top: clamp(4rem, 8vw, 7rem);
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.font-display {
  font-family: Questrial, Mulish, ui-sans-serif, system-ui, Helvetica, Arial, sans-serif;
}
.font-sans {
  font-family: Mulish, Avenir Next, Avenir, ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif;
}
.\!text-\[1\.5rem\] {
  font-size: 1.5rem !important;
}
.\!text-\[1\.6rem\] {
  font-size: 1.6rem !important;
}
.\!text-\[1\.75rem\] {
  font-size: 1.75rem !important;
}
.\!text-\[1rem\] {
  font-size: 1rem !important;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-\[0\.85rem\] {
  font-size: 0.85rem;
}
.text-\[0\.93rem\] {
  font-size: 0.93rem;
}
.text-\[0\.95rem\] {
  font-size: 0.95rem;
}
.text-\[0\.96rem\] {
  font-size: 0.96rem;
}
.text-\[0\.97rem\] {
  font-size: 0.97rem;
}
.text-\[0\.98rem\] {
  font-size: 0.98rem;
}
.text-\[0\.9rem\] {
  font-size: 0.9rem;
}
.text-\[1\.05rem\] {
  font-size: 1.05rem;
}
.text-\[1\.15rem\] {
  font-size: 1.15rem;
}
.text-\[1\.2rem\] {
  font-size: 1.2rem;
}
.text-\[1\.6rem\] {
  font-size: 1.6rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[15px\] {
  font-size: 15px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-extrabold {
  font-weight: 800;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[0\.08em\] {
  letter-spacing: 0.08em;
}
.tracking-\[0\.16em\] {
  letter-spacing: 0.16em;
}
.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.\!text-brand-black {
  --tw-text-opacity: 1 !important;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important;
}
.\!text-brand-black\/75 {
  color: rgb(0 0 0 / 0.75) !important;
}
.\!text-brand-sky {
  --tw-text-opacity: 1 !important;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1)) !important;
}
.\!text-white {
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}
.text-brand-accent-800 {
  --tw-text-opacity: 1;
  color: rgb(31 95 184 / var(--tw-text-opacity, 1));
}
.text-brand-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-brand-black\/80 {
  color: rgb(0 0 0 / 0.8);
}
.text-brand-ink {
  --tw-text-opacity: 1;
  color: rgb(17 18 20 / var(--tw-text-opacity, 1));
}
.text-brand-ink-400 {
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.text-brand-ink-500 {
  --tw-text-opacity: 1;
  color: rgb(74 78 85 / var(--tw-text-opacity, 1));
}
.text-brand-sky {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}
.text-white\/45 {
  color: rgb(255 255 255 / 0.45);
}
.text-white\/50 {
  color: rgb(255 255 255 / 0.5);
}
.text-white\/55 {
  color: rgb(255 255 255 / 0.55);
}
.text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}
.text-white\/65 {
  color: rgb(255 255 255 / 0.65);
}
.text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}
.text-white\/75 {
  color: rgb(255 255 255 / 0.75);
}
.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
.text-white\/85 {
  color: rgb(255 255 255 / 0.85);
}
.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
.underline {
  text-decoration-line: underline;
}
.no-underline {
  text-decoration-line: none;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-80 {
  opacity: 0.8;
}
.opacity-90 {
  opacity: 0.9;
}
.\!shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline {
  outline-style: solid;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-\[2px\] {
  --tw-backdrop-blur: blur(2px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter {
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.text-balance { text-wrap: balance; }
.tabular-nums { font-variant-numeric: tabular-nums; }

/* Retain geometry while the closed native dock yields to booking controls. */
aside.ty-chat.opt-sales-yield { visibility: hidden; pointer-events: none; }

/* =============================================================================
   One Percent Tax — design system
   Identity carried over from onepercent.tax: Questrial headings in normal case,
   light sans body, black and charcoal bands divided by thin white rules,
   square outline buttons, and a single blue for the step that matters.
   ========================================================================== */

/* Google website translator: keep its banner and hover tooltips out of the layout. */
.goog-te-banner-frame, .skiptranslate iframe, #goog-gt-tt, .goog-te-balloon-frame, .VIpgJd-ZVi9od-ORHb-OEVmcd, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf { display: none !important; }
body { top: 0 !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
/* Right-to-left languages (Arabic, Farsi): Google marks <html> but leaves the layout left-to-right. */
html.translated-rtl body { direction: rtl; }
html.translated-rtl .notranslate, html.translated-rtl cost-of-staying-calculator { direction: ltr; unicode-bidi: isolate; }
html.translated-rtl .translate-menu { direction: ltr; right: auto; left: 0; }

/* ---------- cost-of-staying calculator (the client's custom element) ----------
   Light DOM around <cost-of-staying-calculator>: a short crawlable heading above,
   the lead strip below. The element styles itself inside its shadow root. */
.cos { padding-bottom: clamp(3rem, 6vw, 5rem); }
.cos-intro { padding-top: 2.5rem; padding-bottom: 1.25rem; max-width: 1044px; }
/* The header is fixed and floats over the first section. */
.cos--hero .cos-intro { padding-top: calc(104px + clamp(1rem, 2.5vw, 2rem)); }
.cos-intro .eyebrow { margin-bottom: .75rem; }
.cos-title { font-family: Questrial, system-ui, sans-serif; font-weight: 400; color: #fff; font-size: clamp(1.85rem, 4vw, 3.1rem); line-height: 1.08; letter-spacing: -0.018em; }
.cos-lede { margin-top: .75rem; max-width: 46rem; color: rgba(255,255,255,.74); font-size: clamp(.98rem, 1.2vw, 1.1rem); line-height: 1.55; }
/* Once a tax system is chosen the tool shows its own path heading; ours steps aside. */
.cos--started .cos-title, .cos--started .cos-lede { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cos--started .cos-intro { padding-bottom: .75rem; }
.cos--started .cos-intro .eyebrow { margin-bottom: 0; }
.cos-element { display: block; width: 100%; }
.cos-element:not(:defined) { min-height: 220px; }
.cos-lead { max-width: 1044px; margin-top: 2rem; }
.cos-lead__form { display: grid; gap: 1.25rem 2.5rem; padding: 1.5rem; border: 1px solid rgba(255,255,255,.16); background: #0B0B0C; }
.cos-lead__title { font-family: Questrial, system-ui, sans-serif; font-weight: 400; color: #fff; font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.15; }
.cos-lead__text { margin-top: .5rem; color: rgba(255,255,255,.72); font-size: .97rem; line-height: 1.55; }
.cos-lead__fields { display: grid; gap: 1rem; align-items: end; }
.cos-lead__note { color: rgba(255,255,255,.5); font-size: .8rem; }
@media (min-width: 640px) { .cos-lead__fields { grid-template-columns: 1fr 1fr auto; } .cos-lead__form { padding: 2rem; } }
@media (min-width: 1024px) { .cos-lead__form { grid-template-columns: 1fr 1.5fr; align-items: center; } .cos-lead__note { grid-column: 1 / -1; } }
/* The tool has its own fixed bottom bar: on this page the theme's mobile bar
   stays away, and the chat pill and the page bottom make room while it shows. */
body:has(.cos) .mobile-cta-bar { display: none; }
@media (max-width: 1023px) { body:has(.cos) { padding-bottom: 0; } }
html.cos-sticky-up body { padding-bottom: calc(var(--cos-sticky-h, 76px) + 8px); }
html.cos-sticky-up aside.ty-chat { --tely-sales-bottom-offset: var(--cos-sticky-h, 76px); }
.placeholder\:text-brand-ink-400::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.placeholder\:text-brand-ink-400::placeholder {
  --tw-text-opacity: 1;
  color: rgb(110 115 123 / var(--tw-text-opacity, 1));
}
.hover\:border-brand-sky:hover {
  --tw-border-opacity: 1;
  border-color: rgb(197 225 252 / var(--tw-border-opacity, 1));
}
.hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}
.hover\:text-brand-sky:hover {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.focus\:fixed:focus {
  position: fixed;
}
.focus\:left-2:focus {
  left: 0.5rem;
}
.focus\:top-2:focus {
  top: 0.5rem;
}
.focus\:z-\[100\]:focus {
  z-index: 100;
}
.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:text-brand-sky {
  --tw-text-opacity: 1;
  color: rgb(197 225 252 / var(--tw-text-opacity, 1));
}
@media (min-width: 640px) {

  .sm\:inline {
    display: inline;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:flex-wrap {
    flex-wrap: wrap;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:justify-between {
    justify-content: space-between;
  }

  .sm\:divide-y-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
  }

  .sm\:border-l {
    border-left-width: 1px;
  }

  .sm\:border-black\/10 {
    border-color: rgb(0 0 0 / 0.1);
  }

  .sm\:border-white\/10 {
    border-color: rgb(255 255 255 / 0.1);
  }

  .sm\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:text-\[1\.9rem\] {
    font-size: 1.9rem;
  }

  .first\:sm\:border-l-0:first-child {
    border-left-width: 0px;
  }

  .first\:sm\:pl-0:first-child {
    padding-left: 0px;
  }
}
@media (min-width: 768px) {

  .md\:inline {
    display: inline;
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {

  .lg\:sticky {
    position: sticky;
  }

  .lg\:top-28 {
    top: 7rem;
  }

  .lg\:order-1 {
    order: 1;
  }

  .lg\:order-2 {
    order: 2;
  }

  .lg\:mb-12 {
    margin-bottom: 3rem;
  }

  .lg\:ml-auto {
    margin-left: auto;
  }

  .lg\:block {
    display: block;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:flex-shrink-0 {
    flex-shrink: 0;
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[0\.75fr_1\.25fr\] {
    grid-template-columns: 0.75fr 1.25fr;
  }

  .lg\:grid-cols-\[0\.85fr_1\.15fr\] {
    grid-template-columns: 0.85fr 1.15fr;
  }

  .lg\:grid-cols-\[0\.8fr_1\.2fr\] {
    grid-template-columns: 0.8fr 1.2fr;
  }

  .lg\:grid-cols-\[0\.9fr_1\.1fr\] {
    grid-template-columns: 0.9fr 1.1fr;
  }

  .lg\:grid-cols-\[1\.15fr_0\.85fr\] {
    grid-template-columns: 1.15fr 0.85fr;
  }

  .lg\:grid-cols-\[1\.3fr_1fr_1fr_1fr_1fr\] {
    grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_340px\] {
    grid-template-columns: minmax(0,1fr) 340px;
  }

  .lg\:grid-cols-\[minmax\(0\2c 460px\)_1fr\] {
    grid-template-columns: minmax(0,460px) 1fr;
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:items-end {
    align-items: flex-end;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:justify-between {
    justify-content: space-between;
  }

  .lg\:gap-16 {
    gap: 4rem;
  }

  .lg\:gap-20 {
    gap: 5rem;
  }

  .lg\:gap-6 {
    gap: 1.5rem;
  }

  .lg\:self-start {
    align-self: flex-start;
  }

  .lg\:px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .lg\:py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .lg\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .lg\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .lg\:py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .lg\:py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .lg\:pt-4 {
    padding-top: 1rem;
  }
}
@media (min-width: 1280px) {

  .xl\:flex {
    display: flex;
  }

  .xl\:hidden {
    display: none;
  }
}
@media (min-width: 1536px) {

  .\32xl\:gap-8 {
    gap: 2rem;
  }
}
.\[\&_a\]\:underline a {
  text-decoration-line: underline;
}
.\[\&_a\]\:underline-offset-2 a {
  text-underline-offset: 2px;
}
/*
 * Cost of Staying calculator page: light-DOM rules around the client's
 * <cost-of-staying-calculator> element. Everything is scoped to a page that
 * contains the calculator block ([data-cos]); the element's own shadow DOM is
 * styled only through scripts/build-calculator.mjs.
 */

/* ---------- fixed layers ---------- */

/* When the tool moves focus to a field or scrolls one of its own parts into
   view, the target stays clear of the tool's bottom bar (the top is already
   kept clear of the fixed site header by the site-wide scroll-padding-top). */
html.cos-sticky-up:has([data-cos]) { scroll-padding-bottom: calc(var(--cos-sticky-h, 104px) + 16px); }

/* The closed chat is a message box as wide as a phone screen (560px on desktop),
   floating over the tool's buttons, fields and headings. On this page it is
   a small round button only (the chat icon and its arrow): tapping it opens the
   chat, whose message box then comes back. The teaser card stays away here, and
   the empty strip beside the button takes no taps. The open chat is untouched. */
body:has([data-cos]) aside.ty-chat:has(> .ty-chat-panel[hidden]) { pointer-events: none; width: auto; }
body:has([data-cos]) aside.ty-chat:has(> .ty-chat-panel[hidden]) > * { pointer-events: auto; }
body:has([data-cos]) aside.ty-chat:has(> .ty-chat-panel[hidden]) .ty-chat-bar { margin-left: auto; width: max-content; }
body:has([data-cos]) aside.ty-chat:has(> .ty-chat-panel[hidden]) .ty-chat-bar-input,
body:has([data-cos]) aside.ty-chat .ty-chat-tease { display: none !important; }

/* Phones and tablets: the tool's bar spans the screen and the chat button sits
   just above its right end (tailwind.css lifts it by the bar's height).
   Desktop: the bar is a 560px button in the middle of the screen, so the closed
   chat button goes to the corner beside it instead of above it. */
@media (min-width: 1024px) {
  body:has([data-cos]) aside.ty-chat:has(> .ty-chat-panel[hidden]) { left: auto; right: 24px; bottom: 24px; width: auto; transform: none; }
}

/* ---------- print ---------- */

/* "Print my result": the calculator alone, on white paper margins. The tool
   prints its own header (brand, scenario line, date), the inputs, the results
   and its disclaimers; nothing of the site around it is printed. */
@media print {
  body:has([data-cos]) { background: #fff !important; padding: 0 !important; margin: 0 !important; }
  body:has([data-cos]) > :not(main):not(script):not(style),
  body:has([data-cos]) main > :not(:has([data-cos])):not([data-cos]),
  body:has([data-cos]) .site-header,
  body:has([data-cos]) .site-footer,
  body:has([data-cos]) .mobile-cta-bar,
  body:has([data-cos]) [class^="ty-chat"],
  body:has([data-cos]) [class*=" ty-chat"],
  body:has([data-cos]) .cos-lead,
  body:has([data-cos]) [data-cos] noscript { display: none !important; }

  body:has([data-cos]) main,
  body:has([data-cos]) [data-cos] { display: block !important; margin: 0 !important; padding: 0 !important; background: none !important; }

  /* Our heading above the tool: once a tax system is chosen the tool prints
     its own title, so ours is dropped; before that it prints in black. */
  body:has([data-cos]) .cos--started .cos-intro { display: none !important; }
  body:has([data-cos]) .cos-intro { padding: 0 0 12px !important; max-width: none !important; }
  body:has([data-cos]) .cos-intro,
  body:has([data-cos]) .cos-intro * { color: #000 !important; }

  /* The element sets its own height in pixels for the screen layout. */
  body:has([data-cos]) cost-of-staying-calculator { height: auto !important; }
}
