*, ::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: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, 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: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Consolas, 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;
    /* Offset anchor jumps so the sticky header doesn't cover section titles. */
    scroll-padding-top: 5rem;
  }
  @media (min-width: 1024px) {
    html { scroll-padding-top: 6.5rem; }
  }
  body {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  font-family: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(58 63 73 / var(--tw-text-opacity, 1));
}
  /* Headings inherit color from their parent so the same H1 renders correctly
     on dark hero backgrounds (white) and light body sections (brand-ink-soft).
     Font-weight and font-family are set; color stays inherited. */
  /* Night Suite: editorial serif display (Instrument Serif), regular weight only.
     The face ships a single weight; font-semibold would synthesise a fake bold. */
  h1, h2, h3, h4 {
  font-family: Instrument Serif, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400; color: inherit;
}
  h1 { letter-spacing: -0.015em; }
  h2 { letter-spacing: -0.014em; }
  h3 { letter-spacing: -0.01em; }
  /* md2 signature: roman + italic mix inside a single serif headline. <em> stays
     the same family/weight/size, only switching to italic. */
  h1 em, h2 em, h3 em, h4 em { font-style: italic; font-weight: inherit; color: inherit; }

  /* Smooth tabular numerals for price rendering */
  .tabular-nums { font-variant-numeric: tabular-nums; }

  /* Body prose measure — readable line length (~65ch). Applies inside .prose blocks
     that do not opt out via .prose--wide. */
  .prose :where(p, ul, ol, blockquote):not(:where([class~="not-prose"] *)) {
    max-width: 65ch;
  }
  .prose.prose--wide :where(p, ul, ol, blockquote) { max-width: none; }

  /* Vertical rhythm: theme's .prose ships without @tailwindcss/typography, so
     paragraph and list margins need explicit rules — otherwise multi-paragraph
     rich_text bodies render as a single dense block. */
  .prose :where(p, ul, ol, blockquote):not(:where([class~="not-prose"] *)) {
    margin: 1em 0;
  }
  .prose > :where(p, ul, ol, blockquote, h2, h3, h4):first-child { margin-top: 0; }
  .prose > :where(p, ul, ol, blockquote):last-child { margin-bottom: 0; }
  .prose :where(ul, ol):not(:where([class~="not-prose"] *)) { padding-left: 1.5em; }
  .prose :where(ul):not(:where([class~="not-prose"] *)) { list-style: disc; }
  .prose :where(ol):not(:where([class~="not-prose"] *)) { list-style: decimal; }
  .prose :where(li):not(:where([class~="not-prose"] *)) { margin: 0.4em 0; }
  .prose :where(h2):not(:where([class~="not-prose"] *)) {
    margin-top: 1.6em;
    margin-bottom: 0.6em;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
  }
  .prose :where(h3):not(:where([class~="not-prose"] *)) {
    margin-top: 1.4em;
    margin-bottom: 0.5em;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
  }
.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}
@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .container {
    max-width: 1024px;
    padding-right: 2rem;
    padding-left: 2rem;
  }
}
@media (min-width: 1200px) {

  .container {
    max-width: 1200px;
  }
}
@media (min-width: 1320px) {

  .container {
    max-width: 1320px;
  }
}
.container-lvs {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 1024px) {

  .container-lvs {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
/* Buttons */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(201 8 17 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 16px 40px -16px rgba(229, 9, 21, 0.34);
  --tw-shadow-colored: 0 16px 40px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.btn-primary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-primary:focus-visible {
  --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(4px + 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);
  --tw-ring-color: rgb(229 9 21 / 0.3);
}
/* Secondary CTA — outline on LIGHT surfaces (heroes are now light): teal border
     + teal label, fills teal on hover. WCAG AA on white. */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  border-width: 1px;
  border-color: rgb(229 9 21 / 0.6);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-secondary:hover {
  --tw-border-opacity: 1;
  border-color: rgb(229 9 21 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-secondary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-secondary:focus-visible {
  --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(4px + 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);
  --tw-ring-color: rgb(229 9 21 / 0.25);
}
/* Outline CTA for light-background sections (rich_text callouts, etc.) */
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.375rem;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(229 9 21 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-outline:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
}
.btn-outline:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-outline:focus-visible {
  --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(4px + 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);
  --tw-ring-color: rgb(229 9 21 / 0.25);
}
.btn-outline .arrow {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
    display: inline-block;
}
.btn-outline:hover .arrow,
  .btn-outline:focus-visible .arrow {
    transform: translateX(4px);
  }
/* Inline prose links inside FAQ answers: readable without a persistent
     underline (which competes with the button-style CTA at the end of the
     answer), but with a clear hover affordance. */
.faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)) {
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-size: 0% 1px;
    background-position: 0 100%;
    transition: background-size 250ms ease, color 150ms ease;
}
.faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)):hover,
  .faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)):focus-visible {
    background-size: 100% 1px;
    color: #22303F;
  }
/* Wrapper lifted out of a prose <p> so the outline CTA sits with clear
     vertical breathing room instead of hugging the paragraph above it. */
.cta-row {
  margin-top: 1.5rem;
}
@media (min-width: 1024px) {

  .cta-row {
    margin-top: 2rem;
  }
}
.cta-row + .cta-row {
  margin-top: 0.75rem;
}
/* Section rhythm */
.section {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 640px) {

  .section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
@media (min-width: 1024px) {

  .section {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}
.section-tight {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 640px) {

  .section-tight {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
}
@media (min-width: 1024px) {

  .section-tight {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
/* When two same-tone sections stack (e.g. multiple FAQ groups), collapse the
     inner gap so visitors don't feel the "hall of groups" effect. Apply via
     PHP on second-onward occurrences of the same block type. */
.section-stack { padding-top: 0 !important; }
.section-stack:has(+ .section-stack) { padding-bottom: 1.5rem !important; }
.section:has(+ .section-stack), .section-tight:has(+ .section-stack) { padding-bottom: 1.5rem !important; }
/* Real PNG logo has dark artwork on a transparent background. In the
     dark-teal site header we invert it to white via filter so we can reuse
     a single asset everywhere. Footer / light surfaces use it as-is. */
.logo-on-dark {
    filter: brightness(0) invert(1);
  }
/* ---------- Site header: fixed overlay → cream backdrop on scroll ---------- */
.site-header {
    position: sticky; top: 0; z-index: 50;
    background: #FBF8F2;
    border-bottom: 1px solid #DED5C5;
    transition: background .35s ease, border-color .35s ease, box-shadow .35s ease, color .25s ease;
  }
/* Home: overlay the full-bleed hero (transparent), so it must be fixed, not sticky. */
.site-header[data-overlay="true"] {
    position: fixed; left: 0; right: 0;
  }
/* Scrolled (any page): translucent cream backdrop with blur. */
.site-header[data-scrolled] {
    background: rgba(251, 248, 242, 0.82);
    backdrop-filter: saturate(180%) blur(12px);
    border-bottom-color: rgba(42, 38, 32, 0.08);
    box-shadow: 0 8px 28px -20px rgba(42, 38, 32, 0.55);
  }
/* Overlay (home): transparent with light type over the hero photo, until scrolled. */
.site-header[data-overlay="true"]:not([data-scrolled]) {
    background: transparent;
    border-bottom-color: transparent;
    box-shadow: none;
  }
/* Logo renders monochrome ink on the solid/scrolled header (the full-colour teal
     clashes with the warm md2 palette); inverts to white over the hero photo. */
.site-logo { filter: brightness(0) saturate(100%) invert(11%) sepia(58%) saturate(2200%) hue-rotate(208deg) brightness(93%) contrast(101%); }
.site-header[data-overlay="true"]:not([data-scrolled]) .site-logo {
    filter: brightness(0) invert(1);
  }
.site-header[data-overlay="true"]:not([data-scrolled]) .nav-primary-desktop > li > .nav-link,
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-action="call-now"],
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-action="call-now"] svg,
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-menu-toggle],
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-menu-toggle] svg {
    color: #ffffff;
  }
.site-header[data-overlay="true"]:not([data-scrolled]) [data-primary-nav-row] > span[aria-hidden] {
    background-color: rgba(255, 255, 255, 0.3);
  }
/* Nav hover/active underline turns white over the transparent hero header. */
.site-header[data-overlay="true"]:not([data-scrolled]) .nav-primary-desktop .nav-link::after {
    background: #ffffff;
  }
/* Header CTA — the one solid red button on every page. The client's brief is
     that the form is one obvious click away from anywhere, so this is a filled
     button in their own red, not an outline, and it stays red over the hero. */
.header-cta {
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #E50915;
    border-radius: 0.5rem;
    background: #E50915;
    padding: 0.7rem 1.4rem;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.01em;
    color: #fff;
    white-space: nowrap;
    box-shadow: 0 10px 24px -12px rgba(229, 9, 21, 0.7);
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
  }
.header-cta:hover,
  .header-cta:focus-visible { background: #C10712; border-color: #C10712; color: #fff; transform: translateY(-1px); }
.header-cta--sm { padding: 0.5rem 0.9rem; font-size: 0.85rem; }
/* Hero-sized primary button. */
.btn-xl { padding: 1.05rem 2.1rem; font-size: 1.0625rem; }
/* The enquiry form's card: same card in the hero, beside the price line and
     in the enquiry section, so the form is recognisable wherever it appears. */
.lvs-form-card {
    background: #fff;
    border-top: 4px solid #E50915;
    border-radius: 0.5rem;
    padding: 1.5rem;
    box-shadow: 0 1px 0 rgba(11, 14, 20, 0.04), 0 28px 60px -28px rgba(11, 14, 20, 0.45);
    scroll-margin-top: 6.5rem;
  }
@media (min-width: 640px) { .lvs-form-card { padding: 2rem; } }
/* Eyebrow tags */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.eyebrow::before {
    content: '';
    display: block;
    height: 1px;
    width: 1.5rem;
    background-color: rgb(229 9 21 / 0.6);
  }
/* Heroes are LIGHT now, so the "on-dark" eyebrow resolves to the same teal as the
     standard eyebrow (kept as a class so existing markup needs no churn). */
.eyebrow.eyebrow-on-dark {
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.eyebrow.eyebrow-on-dark::before {
  background-color: rgb(229 9 21 / 0.6);
}
.eyebrow.eyebrow-plain::before { content: none; }
/* =====================================================================
     LuxuryVIPSuites HOME TYPE SCALE  (single source of truth — premium-minimal)
     ---------------------------------------------------------------------
     The home was cluttered by ~9 competing type treatments (bold serif at
     many sizes for titles, stats, card titles, locations, org names …).
     This collapses everything onto ONE disciplined scale, modelled on the
     approved editorial method rows + Function/md2 references:

       DISPLAY SERIF (Fraunces) — LIGHT (400). Section H2 + editorial rows
         ONLY. Never bold. Italic <em> for the roman/italic mix.
       EYEBROW — italic Fraunces, calm gray. The ONE eyebrow style. No more
         uppercase-tracked label variant on the home.
       SUB-ITEM / CARD / LOCATION / ORG TITLES — clean SANS, medium (500).
         (Biggest declutter: stops every card from shouting in bold serif.)
       STAT NUMBERS — light serif (400), smaller, never bold.
       META LABEL — small calm sans (not uppercase-tracked). Used for stat
         labels, leagues, roles, testimonial attributions.
       BODY — one sans size ≥16px, warm-dark, relaxed line-height.
       LINK — one underlined text-link (.rc-textlink).
     ===================================================================== */
/* Section header (eyebrow + h2 + intro) */
.section-header {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.5rem;
  max-width: 42rem;
}
.section-header > :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));
}
.section-header {
  text-align: center;
}
@media (min-width: 1024px) {

  .section-header {
    margin-bottom: 4rem;
  }
}
.section-header--left {
  margin-left: 0px;
  margin-right: 0px;
  text-align: left;
}
/* Section H2 — LIGHT display serif (was font-bold). */
.section-title {
  font-family: Instrument Serif, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400;
  line-height: 1.12;
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
    letter-spacing: -0.012em;
    /* Fluid scale: 1.875rem (30px) on small screens → 2.5rem (40px) on xl */
    font-size: clamp(1.875rem, 1.35rem + 1.8vw, 2.5rem);
}
.section-title--xl {
    /* Fluid scale: 2.25rem (36px) → 3rem (48px) */
    font-size: clamp(2.25rem, 1.6rem + 2.1vw, 3rem);
  }
.section-intro {
  line-height: 1.625;
  color: rgb(58 63 73 / 0.9);
    font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
}
/* The ONE eyebrow style on the home: calm italic serif. */
.rc-eyebrow {
  font-family: Instrument Serif, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-style: italic;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
    font-size: clamp(1.0625rem, 0.98rem + 0.4vw, 1.25rem);
}
/* Sub-item / card / location / org title — clean SANS, medium weight.
     This is the core declutter: NOT bold serif. */
.rc-card-title {
  font-family: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  font-weight: 500;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
    letter-spacing: -0.006em;
    font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
}
/* Card / body copy — one readable sans size, warm-dark. */
.rc-card-body {
  font-family: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  line-height: 1.625;
  color: rgb(58 63 73 / 0.9);
    font-size: 1rem;
}
/* Calm meta label — replaces every uppercase-tracked label on the home. */
.rc-meta {
  font-family: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
    font-size: 0.875rem;
    letter-spacing: 0;
}
/* Stat figure — light display serif, never bold. */
.rc-stat {
  font-family: Instrument Serif, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
    letter-spacing: -0.01em;
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem);
}
/* Decorative accents */
.accent-bar {
  height: 0.25rem;
  width: 3rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
}
/* Hero-specific background layers.
     LIGHT hero: soft white/teal wash + DARK ink text. The class name keeps the
     historical "ink" for markup stability, but the surface is now light. A subtle
     bottom border anchors it against the next section. */
/* Inner-page hero: clean flat cream — same canvas language as the home's
     alternating sections. No teal grid, no corner glow, no decorative washes. */
.hero-ink {
  position: relative;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(250 248 245 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
}
/* Legacy "soft" section — now resolves to the flat warm cream canvas so it
     stays inside the home's cream/white language (no taupe, no wash). */
.section-soft {
  position: relative;
  --tw-bg-opacity: 1;
  background-color: rgb(250 248 245 / var(--tw-bg-opacity, 1));
}
.section-soft > * { position: relative; }
/* Card base styles */
.card-surface {
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(221 213 200 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 1px 2px 0 rgba(11, 14, 20, 0.04);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.card-surface-hover {
  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: 300ms;
}
.card-surface-hover:hover {
  --tw-translate-y: -0.125rem;
  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-color: rgb(229 9 21 / 0.3);
  --tw-shadow: 0 12px 32px -16px rgba(11, 14, 20, 0.18);
  --tw-shadow-colored: 0 12px 32px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
/* ---------- Resource "book" card ---------- */
/* A portrait book with spine, stacked pages, and a tilt-open 3D hover.
     Used via feature_grid with `variant: 'book'` on /resources-library. */
.book-card {
    perspective: 1600px;
    perspective-origin: 60% 40%;
    /* Keep the tilted cover from being clipped by the parent grid gap. */
    padding-bottom: 4px;
  }
.book {
    position: relative;
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
    aspect-ratio: 5 / 7;       /* Book cover proportions. */
    transform-style: preserve-3d;
    transition: transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }
.book-card:hover .book { transform: translateY(-4px); }
.book__cover {
    position: absolute;
    inset: 0;
    border-radius: 3px 12px 12px 3px;   /* Slightly rounded outer corner. */
    background: #2A2620;
    overflow: hidden;
    transform-origin: left center;
    transform: rotateY(-2deg);
    transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1),
                box-shadow 500ms ease;
    box-shadow:
      2px 4px 10px rgba(17, 41, 43, 0.18),
      6px 12px 30px rgba(17, 41, 43, 0.25),
      inset -1px 0 0 rgba(255, 255, 255, 0.05);
    z-index: 2;
  }
.book-card:hover .book__cover,
  .book-card:focus-visible .book__cover {
    transform: rotateY(-34deg);
    box-shadow:
      4px 8px 16px rgba(17, 41, 43, 0.22),
      14px 22px 44px rgba(17, 41, 43, 0.32),
      inset -1px 0 0 rgba(255, 255, 255, 0.06);
  }
.book__cover-img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
.book__cover-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%; height: 100%;
    padding: 1.25rem;
    text-align: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 1rem;
    background: linear-gradient(145deg, #2A2620 0%, #2C3A4D 100%);
  }
/* Darker inner ridge along the spine (left edge) of the cover. */
.book__spine {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 10px;
    background:
      linear-gradient(to right,
        rgba(0, 0, 0, 0.35) 0%,
        rgba(0, 0, 0, 0.14) 45%,
        rgba(255, 255, 255, 0.05) 80%,
        rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
  }
/* Stacked page edges sticking out under/right of the cover. */
.book__pages {
    position: absolute;
    top: 4px; right: -5px; bottom: 4px;
    width: 6px;
    background:
      repeating-linear-gradient(
        to bottom,
        #ffffff 0 1px,
        #e3e9f0 1px 2px
      );
    border-radius: 0 3px 3px 0;
    box-shadow: 1px 0 2px rgba(17, 41, 43, 0.15);
    z-index: 1;
  }
/* Back page peeking from behind the cover when it tilts open. */
.book__back {
    position: absolute;
    inset: 0;
    border-radius: 3px 12px 12px 3px;
    background:
      linear-gradient(135deg, #f4f7fb 0%, #e6eef8 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2C3A4D;
    font-weight: 700;
    letter-spacing: 0.14em;
    font-size: 0.75rem;
    text-transform: uppercase;
    z-index: 1;
    box-shadow: inset 2px 0 4px rgba(17, 41, 43, 0.1);
  }
/* Compact book thumbnail used in the resource hero (dark background). */
.hero-book {
    width: 140px;
    aspect-ratio: 5 / 7;
    perspective: 1200px;
  }
.hero-book__cover {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 2px 10px 10px 2px;
    overflow: hidden;
    transform: rotateY(-8deg);
    transform-origin: left center;
    background: #ffffff;
    box-shadow:
      4px 8px 20px rgba(0, 0, 0, 0.25),
      12px 20px 40px rgba(0, 0, 0, 0.35),
      inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  }
.hero-book__cover-img {
    width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; display: block;
  }
.hero-book__spine {
    position: absolute; left: 0; top: 0; bottom: 0; width: 8px;
    background: linear-gradient(to right, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.14) 60%, rgba(0,0,0,0) 100%);
    pointer-events: none;
  }
.hero-book__pages {
    position: absolute; top: 3px; right: -4px; bottom: 3px; width: 5px;
    background: repeating-linear-gradient(to bottom, #ffffff 0 1px, #d4dde8 1px 2px);
    border-radius: 0 2px 2px 0;
    box-shadow: 1px 0 2px rgba(0, 0, 0, 0.25);
  }
/* Scroll-reveal used by the book cards and other [data-reveal] elements. */
[data-reveal] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
[data-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
  }
@media (prefers-reduced-motion: reduce) {
    .book,
    .book__cover,
    [data-reveal] {
      transition: none !important;
    }
    .book-card:hover .book__cover,
    .book-card:focus-visible .book__cover {
      transform: rotateY(-2deg); /* stay at rest */
    }
    [data-reveal] { opacity: 1; transform: none; }
  }
/* Icon badges */
.icon-badge {
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(253 236 238 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.icon-badge-lg {
  display: inline-flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(253 236 238 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.icon-badge-dark {
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
}
/* Check bullet */
.check-bullet {
  display: inline-flex;
  height: 1.25rem;
  width: 1.25rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(248 242 223 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(168 135 31 / var(--tw-text-opacity, 1));
}
.check-bullet svg { width: 12px; height: 12px; stroke-width: 3; }
/* Numbered marker for process steps — teal brand fill, white number (AA). */
.step-number {
  display: inline-flex;
  height: 3rem;
  width: 3rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-image: linear-gradient(135deg, #151A24 0%, #0B0E14 60%, #070A0F 100%);
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
}
/* Divider wedge used between dark hero and light section */
.hero-wedge {
    position: relative;
  }
/* ---------- Sticky mobile call/book bar ---------- */
.mobile-cta-bar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 45;
    display: flex;
    gap: 0.625rem;
    align-items: stretch;
    padding: 0.625rem 0.875rem calc(0.625rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(12px);
    border-top: 1px solid #DED5C5;
    box-shadow: 0 -8px 24px -12px rgba(17, 41, 43, 0.25);
  }
.mobile-cta-bar__call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    min-width: 5.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.625rem;
    border: 1.5px solid #2C3A4D;
    color: #2C3A4D;
    font-weight: 600;
    font-size: 0.9375rem;
    background: #fff;
  }
.mobile-cta-bar__call:active { background: #F6F1E8; }
/* The Call button is a <details>: its sheet lists both phone lines. */
.mobile-cta-bar__phones { position: relative; flex: 0 0 auto; display: flex; }
.mobile-cta-bar__phones > summary { list-style: none; cursor: pointer; height: 100%; }
.mobile-cta-bar__phones > summary::-webkit-details-marker { display: none; }
.mobile-cta-bar__sheet {
    position: absolute;
    left: 0; bottom: calc(100% + 0.75rem);
    width: min(17rem, calc(100vw - 1.75rem));
    background: #fff;
    border: 1px solid #DDD5C8;
    border-radius: 0.75rem;
    box-shadow: 0 18px 40px -18px rgba(11, 14, 20, 0.45);
    overflow: hidden;
  }
.mobile-cta-bar__sheet a {
    display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
    padding: 0.95rem 1rem;
    color: #0B0E14;
  }
.mobile-cta-bar__sheet a + a { border-top: 1px solid #DDD5C8; }
.mobile-cta-bar__sheet span { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
.mobile-cta-bar__sheet strong { font-size: 1.125rem; font-weight: 600; }
.mobile-cta-bar__book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    padding: 0.75rem 1rem;
    border-radius: 0.625rem;
    background: #E50915;
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    box-shadow: 0 8px 20px -8px rgba(229, 9, 21, 0.55);
  }
.mobile-cta-bar__book:active { background: #C10712; }
/* The chat bar steps aside on phones while the quote form is on screen
     (main.js sets the class). An open conversation is never hidden. */
@media (max-width: 1023px) {
    body.lvs-form-in-view .ty-chat:not(:has(.ty-chat-panel:not([hidden]))) { display: none; }
    /* The open call sheet sits where the chat bar is; the bar yields to it. */
    body:has([data-call-menu][open]) .ty-chat:not(:has(.ty-chat-panel:not([hidden]))) { display: none; }
  }
/* Reserve space so the bar never hides the last footer row on mobile. */
@media (max-width: 1023px) {
    body { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px)); }
  }
/* ---------------------------------------------------------------------
     Editorial numbered rows (md2 "Our Principles") — extreme whitespace,
     alternating large visual, serif numeral + roman/italic heading, an
     underlined text link. Zero chrome: hairline rules + space only.
  --------------------------------------------------------------------- */
.rc-editorial {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
@media (min-width: 640px) {

  .rc-editorial {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}
@media (min-width: 1024px) {

  .rc-editorial {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
}
.rc-editorial__head {
  margin-bottom: 4rem;
}
@media (min-width: 1024px) {

  .rc-editorial__head {
    margin-bottom: 7rem;
  }
}
.rc-editorial__rows {
  margin: 0px;
  list-style-type: none;
  padding: 0px;
}
.rc-row {
  display: grid;
  align-items: center;
  row-gap: 2.5rem;
}
@media (min-width: 1024px) {

  .rc-row {
    -moz-column-gap: 5rem;
         column-gap: 5rem;
  }
}
.rc-row {
    grid-template-columns: 1fr;
  }
@media (min-width: 1024px) {
    .rc-row { grid-template-columns: 1fr 1fr; }
  }
/* Generous breathing room between rows + a single hairline divider. */
.rc-row + .rc-row {
  margin-top: 6rem;
  padding-top: 6rem;
}
@media (min-width: 1024px) {

  .rc-row + .rc-row {
    margin-top: 10rem;
    padding-top: 10rem;
  }
}
.rc-row + .rc-row {
    border-top: 1px solid #DDD5C8;
  }
/* Visual column. Alternate which side the visual sits on. */
.rc-row__visual {
  order: -9999;
}
@media (min-width: 1024px) {
    .rc-row--reverse .rc-row__visual { order: 2; }
    .rc-row--reverse .rc-row__copy   { order: 1; }
  }
.rc-row__photo {
  height: auto;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
    aspect-ratio: 4 / 5;
}
.rc-row__anim {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
/* Copy column. */
.rc-row__num {
  margin-bottom: 1.5rem;
  display: block;
  line-height: 1;
  color: rgb(107 114 128 / 0.55);
}
@media (min-width: 1024px) {

  .rc-row__num {
    margin-bottom: 2rem;
  }
}
.rc-row__num {
    font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem);
    font-feature-settings: "tnum";
  }
.rc-row__title {
  font-weight: 400;
  line-height: 1.12;
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
    font-size: clamp(1.875rem, 1.3rem + 2.2vw, 3rem);
}
.rc-row__title em {
  font-style: italic;
}
.rc-row__body {
  margin-top: 1.5rem;
  max-width: 28rem;
  line-height: 1.625;
  color: rgb(58 63 73 / 0.85);
    font-size: clamp(1rem, 0.96rem + 0.25vw, 1.125rem);
}
/* Quiet underlined text link — the only CTA style allowed in content. */
.rc-textlink {
  margin-top: 2rem;
  display: inline-block;
  font-weight: 500;
  letter-spacing: 0.025em;
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
    font-size: 0.9375rem;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
    text-decoration-color: #6B7280;
    transition: text-decoration-color 200ms ease, color 200ms ease;
}
.rc-textlink:hover { text-decoration-color: currentColor; }
/* When the whole card is the anchor, the textlink renders as a <span>; let the
     parent group's hover drive the underline so it still reads as a link. */
.group:hover .rc-textlink--static { text-decoration-color: currentColor; }
.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;
}
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.-right-16 {
  right: -4rem;
}
.-top-16 {
  top: -4rem;
}
.-top-3 {
  top: -0.75rem;
}
.-top-32 {
  top: -8rem;
}
.bottom-0 {
  bottom: 0px;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.right-0 {
  right: 0px;
}
.right-10 {
  right: 2.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.top-0 {
  top: 0px;
}
.top-4 {
  top: 1rem;
}
.isolate {
  isolation: isolate;
}
.-z-10 {
  z-index: -10;
}
.z-10 {
  z-index: 10;
}
.order-first {
  order: -9999;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-4 {
  grid-column: span 4 / span 4;
}
.col-span-8 {
  grid-column: span 8 / span 8;
}
.m-0 {
  margin: 0px;
}
.mx-0 {
  margin-left: 0px;
  margin-right: 0px;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.my-7 {
  margin-top: 1.75rem;
  margin-bottom: 1.75rem;
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-10 {
  margin-top: -2.5rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-14 {
  margin-bottom: 3.5rem;
}
.mb-16 {
  margin-bottom: 4rem;
}
.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;
}
.mb-7 {
  margin-bottom: 1.75rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.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-16 {
  margin-top: 4rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-2\.5 {
  margin-top: 0.625rem;
}
.mt-24 {
  margin-top: 6rem;
}
.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-\[16\/9\] {
  aspect-ratio: 16/9;
}
.aspect-\[3\/4\] {
  aspect-ratio: 3/4;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-\[5\/3\] {
  aspect-ratio: 5/3;
}
.aspect-video {
  aspect-ratio: 16 / 9;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-2 {
  height: 0.5rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-4 {
  height: 1rem;
}
.h-40 {
  height: 10rem;
}
.h-5 {
  height: 1.25rem;
}
.h-56 {
  height: 14rem;
}
.h-6 {
  height: 1.5rem;
}
.h-64 {
  height: 16rem;
}
.h-7 {
  height: 1.75rem;
}
.h-80 {
  height: 20rem;
}
.h-9 {
  height: 2.25rem;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-\[70vh\] {
  max-height: 70vh;
}
.max-h-full {
  max-height: 100%;
}
.min-h-\[2\.5rem\] {
  min-height: 2.5rem;
}
.min-h-\[78vh\] {
  min-height: 78vh;
}
.min-h-screen {
  min-height: 100vh;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-2 {
  width: 0.5rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-5 {
  width: 1.25rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-64 {
  width: 16rem;
}
.w-7 {
  width: 1.75rem;
}
.w-80 {
  width: 20rem;
}
.w-9 {
  width: 2.25rem;
}
.w-auto {
  width: auto;
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-\[12rem\] {
  min-width: 12rem;
}
.min-w-\[46rem\] {
  min-width: 46rem;
}
.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-6xl {
  max-width: 72rem;
}
.max-w-\[1200px\] {
  max-width: 1200px;
}
.max-w-\[14ch\] {
  max-width: 14ch;
}
.max-w-\[200px\] {
  max-width: 200px;
}
.max-w-\[440px\] {
  max-width: 440px;
}
.max-w-\[620px\] {
  max-width: 620px;
}
.max-w-\[640px\] {
  max-width: 640px;
}
.max-w-\[68ch\] {
  max-width: 68ch;
}
.max-w-\[80\%\] {
  max-width: 80%;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-none {
  max-width: none;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.border-collapse {
  border-collapse: collapse;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  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;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.scroll-mt-24 {
  scroll-margin-top: 6rem;
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-\[1fr_auto\] {
  grid-template-columns: 1fr auto;
}
.grid-cols-\[auto\2c 1fr\] {
  grid-template-columns: auto 1fr;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.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-2\.5 {
  gap: 0.625rem;
}
.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-12 {
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
.gap-x-16 {
  -moz-column-gap: 4rem;
       column-gap: 4rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.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-1\.5 {
  row-gap: 0.375rem;
}
.gap-y-10 {
  row-gap: 2.5rem;
}
.gap-y-12 {
  row-gap: 3rem;
}
.gap-y-14 {
  row-gap: 3.5rem;
}
.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;
}
.gap-y-8 {
  row-gap: 2rem;
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-10 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.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-20 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(5rem * 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-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * 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));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * 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-brand-muted-200 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(221 213 200 / var(--tw-divide-opacity, 1));
}
.divide-brand-navy-line > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(42 49 62 / var(--tw-divide-opacity, 1));
}
.divide-white\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.1);
}
.self-start {
  align-self: flex-start;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-balance {
  text-wrap: balance;
}
.break-words {
  overflow-wrap: break-word;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-\[1\.5rem\] {
  border-radius: 1.5rem;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.375rem;
}
.rounded-md {
  border-radius: 0.25rem;
}
.rounded-xl {
  border-radius: 0.5rem;
}
.border {
  border-width: 1px;
}
.border-0 {
  border-width: 0px;
}
.border-2 {
  border-width: 2px;
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l-2 {
  border-left-width: 2px;
}
.border-t {
  border-top-width: 1px;
}
.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-brand-accent {
  --tw-border-opacity: 1;
  border-color: rgb(201 162 39 / var(--tw-border-opacity, 1));
}
.border-brand-accent\/40 {
  border-color: rgb(201 162 39 / 0.4);
}
.border-brand-ink\/15 {
  border-color: rgb(18 22 31 / 0.15);
}
.border-brand-ink\/30 {
  border-color: rgb(18 22 31 / 0.3);
}
.border-brand-ink\/40 {
  border-color: rgb(18 22 31 / 0.4);
}
.border-brand-muted {
  --tw-border-opacity: 1;
  border-color: rgb(239 234 225 / var(--tw-border-opacity, 1));
}
.border-brand-muted-200 {
  --tw-border-opacity: 1;
  border-color: rgb(221 213 200 / var(--tw-border-opacity, 1));
}
.border-brand-muted-300 {
  --tw-border-opacity: 1;
  border-color: rgb(201 191 175 / var(--tw-border-opacity, 1));
}
.border-brand-navy-700 {
  --tw-border-opacity: 1;
  border-color: rgb(21 26 36 / var(--tw-border-opacity, 1));
}
.border-brand-navy-line {
  --tw-border-opacity: 1;
  border-color: rgb(42 49 62 / var(--tw-border-opacity, 1));
}
.border-brand-primary {
  --tw-border-opacity: 1;
  border-color: rgb(229 9 21 / var(--tw-border-opacity, 1));
}
.border-brand-primary-200 {
  --tw-border-opacity: 1;
  border-color: rgb(244 154 161 / var(--tw-border-opacity, 1));
}
.border-brand-primary\/60 {
  border-color: rgb(229 9 21 / 0.6);
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/40 {
  border-color: rgb(255 255 255 / 0.4);
}
.border-white\/50 {
  border-color: rgb(255 255 255 / 0.5);
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 39 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 242 223 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent\/20 {
  background-color: rgb(201 162 39 / 0.2);
}
.bg-brand-bg {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-brand-cream {
  --tw-bg-opacity: 1;
  background-color: rgb(250 248 245 / var(--tw-bg-opacity, 1));
}
.bg-brand-highlight {
  --tw-bg-opacity: 1;
  background-color: rgb(180 154 120 / var(--tw-bg-opacity, 1));
}
.bg-brand-ink {
  --tw-bg-opacity: 1;
  background-color: rgb(18 22 31 / var(--tw-bg-opacity, 1));
}
.bg-brand-ink\/30 {
  background-color: rgb(18 22 31 / 0.3);
}
.bg-brand-ink\/40 {
  background-color: rgb(18 22 31 / 0.4);
}
.bg-brand-ink\/70 {
  background-color: rgb(18 22 31 / 0.7);
}
.bg-brand-muted {
  --tw-bg-opacity: 1;
  background-color: rgb(239 234 225 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(221 213 200 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(201 191 175 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted\/40 {
  background-color: rgb(239 234 225 / 0.4);
}
.bg-brand-muted\/60 {
  background-color: rgb(239 234 225 / 0.6);
}
.bg-brand-navy {
  --tw-bg-opacity: 1;
  background-color: rgb(11 14 20 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 236 238 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary\/10 {
  background-color: rgb(229 9 21 / 0.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);
}
.bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
.bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/25 {
  background-color: rgb(255 255 255 / 0.25);
}
.bg-white\/5 {
  background-color: rgb(255 255 255 / 0.05);
}
.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.bg-hero-light {
  background-image: radial-gradient(ellipse 70% 60% at 88% -10%, rgba(201, 162, 39, 0.10) 0%, rgba(201, 162, 39, 0) 60%), linear-gradient(180deg, #FAF8F5 0%, #FFFFFF 70%);
}
.bg-primary-band {
  background-image: linear-gradient(135deg, #151A24 0%, #0B0E14 60%, #070A0F 100%);
}
.bg-primary-mesh {
  background-image: radial-gradient(60% 80% at 10% 0%, rgba(201, 162, 39, 0.06) 0%, rgba(201, 162, 39, 0) 70%), radial-gradient(40% 60% at 100% 100%, rgba(180, 154, 120, 0.07) 0%, rgba(180, 154, 120, 0) 70%);
}
.from-brand-ink\/70 {
  --tw-gradient-from: rgb(18 22 31 / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(18 22 31 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-navy\/50 {
  --tw-gradient-from: rgb(11 14 20 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(11 14 20 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-primary-50 {
  --tw-gradient-from: #FDECEE var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(253 236 238 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-primary\/40 {
  --tw-gradient-from: rgb(229 9 21 / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(229 9 21 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-transparent {
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-brand-navy\/15 {
  --tw-gradient-to: rgb(11 14 20 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(11 14 20 / 0.15) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/25 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.25) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-brand-navy\/80 {
  --tw-gradient-to: rgb(11 14 20 / 0.8) var(--tw-gradient-to-position);
}
.to-brand-primary\/10 {
  --tw-gradient-to: rgb(229 9 21 / 0.1) var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-white {
  --tw-gradient-to: #fff var(--tw-gradient-to-position);
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.object-top {
  -o-object-position: top;
     object-position: top;
}
.p-0 {
  padding: 0px;
}
.p-10 {
  padding: 2.5rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-8 {
  padding: 2rem;
}
.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.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;
}
.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.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-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.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-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.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-7 {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-9 {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}
.pb-0\.5 {
  padding-bottom: 0.125rem;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-16 {
  padding-bottom: 4rem;
}
.pb-24 {
  padding-bottom: 6rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-7 {
  padding-bottom: 1.75rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-6 {
  padding-left: 1.5rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-10 {
  padding-top: 2.5rem;
}
.pt-12 {
  padding-top: 3rem;
}
.pt-14 {
  padding-top: 3.5rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-24 {
  padding-top: 6rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-32 {
  padding-top: 8rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-8 {
  padding-top: 2rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-top {
  vertical-align: top;
}
.font-heading {
  font-family: Instrument Serif, ui-serif, Georgia, Cambria, Times New Roman, serif;
}
.font-mono {
  font-family: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.font-sans {
  font-family: Europa, Inter Tight, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-\[0\.75rem\] {
  font-size: 0.75rem;
}
.text-\[0\.95rem\] {
  font-size: 0.95rem;
}
.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-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.italic {
  font-style: italic;
}
.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-\[1\.05\] {
  line-height: 1.05;
}
.leading-\[1\.06\] {
  line-height: 1.06;
}
.leading-\[1\.08\] {
  line-height: 1.08;
}
.leading-\[1\.12\] {
  line-height: 1.12;
}
.leading-\[1\.1\] {
  line-height: 1.1;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[-0\.015em\] {
  letter-spacing: -0.015em;
}
.tracking-\[-0\.02em\] {
  letter-spacing: -0.02em;
}
.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}
.tracking-\[0\.14em\] {
  letter-spacing: 0.14em;
}
.tracking-\[0\.16em\] {
  letter-spacing: 0.16em;
}
.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
.tracking-\[0\.1em\] {
  letter-spacing: 0.1em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-\[\#F2682C\] {
  --tw-text-opacity: 1;
  color: rgb(242 104 44 / var(--tw-text-opacity, 1));
}
.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-brand-accent {
  --tw-text-opacity: 1;
  color: rgb(201 162 39 / var(--tw-text-opacity, 1));
}
.text-brand-accent-600 {
  --tw-text-opacity: 1;
  color: rgb(168 135 31 / var(--tw-text-opacity, 1));
}
.text-brand-accent-700 {
  --tw-text-opacity: 1;
  color: rgb(133 107 24 / var(--tw-text-opacity, 1));
}
.text-brand-highlight {
  --tw-text-opacity: 1;
  color: rgb(180 154 120 / var(--tw-text-opacity, 1));
}
.text-brand-ink {
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
}
.text-brand-ink-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-brand-ink-500\/55 {
  color: rgb(107 114 128 / 0.55);
}
.text-brand-ink-500\/70 {
  color: rgb(107 114 128 / 0.7);
}
.text-brand-ink-600 {
  --tw-text-opacity: 1;
  color: rgb(47 53 66 / var(--tw-text-opacity, 1));
}
.text-brand-ink-700 {
  --tw-text-opacity: 1;
  color: rgb(37 43 56 / var(--tw-text-opacity, 1));
}
.text-brand-ink-soft {
  --tw-text-opacity: 1;
  color: rgb(58 63 73 / var(--tw-text-opacity, 1));
}
.text-brand-ink-soft\/70 {
  color: rgb(58 63 73 / 0.7);
}
.text-brand-ink-soft\/75 {
  color: rgb(58 63 73 / 0.75);
}
.text-brand-ink-soft\/80 {
  color: rgb(58 63 73 / 0.8);
}
.text-brand-ink-soft\/85 {
  color: rgb(58 63 73 / 0.85);
}
.text-brand-ink-soft\/90 {
  color: rgb(58 63 73 / 0.9);
}
.text-brand-ink\/45 {
  color: rgb(18 22 31 / 0.45);
}
.text-brand-ink\/50 {
  color: rgb(18 22 31 / 0.5);
}
.text-brand-ink\/55 {
  color: rgb(18 22 31 / 0.55);
}
.text-brand-ink\/60 {
  color: rgb(18 22 31 / 0.6);
}
.text-brand-ink\/70 {
  color: rgb(18 22 31 / 0.7);
}
.text-brand-ink\/75 {
  color: rgb(18 22 31 / 0.75);
}
.text-brand-primary {
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / 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\/30 {
  color: rgb(255 255 255 / 0.3);
}
.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;
}
.decoration-brand-muted-300 {
  text-decoration-color: #C9BFAF;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.underline-offset-4 {
  text-underline-offset: 4px;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.shadow-brand {
  --tw-shadow: 0 2px 8px -4px rgba(11, 14, 20, 0.10);
  --tw-shadow-colored: 0 2px 8px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-lg {
  --tw-shadow: 0 12px 32px -16px rgba(11, 14, 20, 0.18);
  --tw-shadow-colored: 0 12px 32px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary {
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary-lg {
  --tw-shadow: 0 16px 40px -16px rgba(229, 9, 21, 0.34);
  --tw-shadow-colored: 0 16px 40px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-sm {
  --tw-shadow: 0 1px 2px 0 rgba(11, 14, 20, 0.04);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary {
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
}
.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);
}
.ring-1 {
  --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(1px + 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);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.ring-brand-muted-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(221 213 200 / var(--tw-ring-opacity, 1));
}
.ring-white\/15 {
  --tw-ring-color: rgb(255 255 255 / 0.15);
}
.ring-white\/20 {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}
.ring-white\/25 {
  --tw-ring-color: rgb(255 255 255 / 0.25);
}
.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);
}
.blur-2xl {
  --tw-blur: blur(40px);
  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);
}
.blur-3xl {
  --tw-blur: blur(64px);
  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);
}
.grayscale {
  --tw-grayscale: grayscale(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);
}
.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);
}
.sepia {
  --tw-sepia: sepia(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-sm {
  --tw-backdrop-blur: blur(4px);
  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-all {
  transition-property: all;
  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;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-150 {
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
/* Subtle animated dot highlight used on CTAs */
@keyframes lvs-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.6; }
  }
.dot-live {
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 39 / var(--tw-bg-opacity, 1));
    animation: lvs-pulse 2.2s ease-in-out infinite;
}
/* Clamp card copy to 3 lines without needing the @tailwindcss/line-clamp
     plugin. Graceful fallback in browsers without line-clamp support. */
.line-clamp-3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
.\[overflow-wrap\:break-word\] {
  overflow-wrap: break-word;
}

/* Europa — the client's own face, self-hosted. Lifted from luxuryvipsuites.com,
   where it has been served since 2019. Keeping it is the one real piece of brand
   continuity the old site had. */
@font-face {
  font-family: 'Europa';
  src: url('../fonts/Europa-Light.woff2') format('woff2'),
       url('../fonts/Europa-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Europa';
  src: url('../fonts/Europa-Regular.woff') format('woff');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- Article prose (single blog posts) ------------------------------
   Explicit styling for `the_content()` output because we don't ship the
   @tailwindcss/typography plugin. Tuned for long-form reading at ~68ch. */
.article-prose {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #1F2937;
}
@media (min-width: 1024px) {
  .article-prose { font-size: 1.125rem; }
}
.article-prose > * + * { margin-top: 1.25em; }
.article-prose p { margin: 1.1em 0; }
.article-prose h2 {
  font-size: clamp(1.5rem, 1.2rem + 0.9vw, 1.875rem);
  font-weight: 700;
  color: #2A2620;
  margin-top: 2em;
  margin-bottom: 0.6em;
  line-height: 1.25;
  letter-spacing: -0.018em;
  scroll-margin-top: 6rem;
}
.article-prose h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #2A2620;
  margin-top: 1.6em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}
.article-prose h4 { font-size: 1.0625rem; font-weight: 700; color: #2A2620; margin-top: 1.4em; }
.article-prose strong { color: #2A2620; font-weight: 600; }
.article-prose a {
  color: #2C3A4D;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 150ms ease;
}
.article-prose a:hover { color: #22303F; }
.article-prose ul, .article-prose ol {
  margin: 1.1em 0;
  padding-left: 1.4em;
}
.article-prose ul { list-style: none; padding-left: 0; }
.article-prose ul > li {
  position: relative;
  padding-left: 1.65em;
  margin: 0.45em 0;
}
.article-prose ul > li::before {
  content: '';
  position: absolute;
  left: 0.1em;
  top: 0.7em;
  width: 0.5em;
  height: 0.5em;
  border-radius: 9999px;
  background: #2C3A4D;
}
.article-prose ol { list-style: decimal; }
.article-prose ol > li::marker { color: #2C3A4D; font-weight: 700; }
.article-prose ol > li { margin: 0.45em 0; padding-left: 0.4em; }
.article-prose blockquote {
  margin: 1.6em 0;
  padding: 0.6em 1.25em;
  border-left: 3px solid #2C3A4D;
  background: #F4F6F6;
  border-radius: 0 0.75rem 0.75rem 0;
  font-style: italic;
  color: #22303F;
}
.article-prose blockquote p { margin: 0.4em 0; }
.article-prose code {
  background: #F4F6F6;
  color: #2A2620;
  padding: 0.1em 0.4em;
  border-radius: 0.3em;
  font-size: 0.92em;
}
.article-prose pre {
  background: #2A2620;
  color: #F4F6F6;
  padding: 1em 1.25em;
  border-radius: 0.75rem;
  overflow-x: auto;
  font-size: 0.92em;
  line-height: 1.55;
}
.article-prose pre code { background: transparent; color: inherit; padding: 0; }
.article-prose img {
  border-radius: 0.75rem;
  margin: 1.6em auto;
  max-width: 100%;
  height: auto;
  box-shadow: 0 10px 30px -10px rgba(17, 41, 43, 0.18);
}
.article-prose hr {
  border: 0;
  border-top: 1px solid #DED5C5;
  margin: 2.2em 0;
}
.article-prose > :first-child { margin-top: 0; }

/* ---------- TOC sidebar ---------------------------------------------------- */
.toc-sidebar .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid #DED5C5;
}
.toc-sidebar .toc-list li { display: block; }
.toc-sidebar .toc-list a {
  position: relative;
  display: flex;
  gap: 0.75rem;
  padding: 0.55rem 0 0.55rem 1rem;
  margin-left: -2px;
  border-left: 2px solid transparent;
  color: #1F2937;
  font-size: 0.875rem;
  line-height: 1.45;
  transition: color 150ms ease, border-color 150ms ease, background 150ms ease;
}
.toc-sidebar .toc-list a:hover {
  color: #2C3A4D;
  border-left-color: #DED5C5;
}
.toc-sidebar .toc-list a.is-active {
  color: #2C3A4D;
  border-left-color: #2C3A4D;
  font-weight: 600;
}
.toc-sidebar .toc-num {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #7E8F90;
  padding-top: 0.1em;
  font-variant-numeric: tabular-nums;
}
.toc-sidebar .toc-list a:hover .toc-num,
.toc-sidebar .toc-list a.is-active .toc-num { color: #2C3A4D; }

/* ---------- Pagination (blog index + archive) ------------------------------ */
.pagination .nav-links,
nav.pagination .nav-links {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap;
  justify-content: center;
}
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.75rem;
  border-radius: 0.625rem;
  border: 1px solid #DED5C5;
  background: #FFFFFF;
  color: #22303F;
  font-weight: 600;
  font-size: 0.9375rem;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}
.pagination .page-numbers:hover {
  border-color: #2C3A4D;
  color: #2C3A4D;
  box-shadow: 0 6px 16px -8px rgba(44, 58, 77, 0.4);
}
.pagination .page-numbers.current {
  background: #2C3A4D;
  border-color: #2C3A4D;
  color: #FFFFFF;
  box-shadow: 0 6px 16px -8px rgba(44, 58, 77, 0.55);
}
.pagination .page-numbers.dots {
  border: none;
  background: transparent;
  color: #7E8F90;
  cursor: default;
}
.pagination .page-numbers.dots:hover { box-shadow: none; }

/* Primary-nav styling (desktop + mobile) and current-page indicator. */
/* Mega panels anchor to the site header, not the individual trigger <li>,
   so the panel stays centered on the page regardless of where "Services"
   sits inside the nav and never drifts off-screen. */
/* NB: header position / background / scroll states live in the .site-header
   block (components layer). Don't re-declare position/z-index here. */
.nav-primary-desktop { position: static; }
.nav-primary-desktop > li { position: static; }
.nav-primary-desktop .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  color: #4A443A; /* brand-ink-600 — dark nav text on the light header */
  transition: color 0.2s ease;
  /* Button reset — top-level mega triggers are <button> elements. */
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  line-height: inherit;
}
.nav-primary-desktop button.nav-link { -webkit-appearance: none; -moz-appearance: none; appearance: none; }
.nav-primary-desktop .nav-link:hover,
.nav-primary-desktop .nav-link:focus-visible {
  color: #2C3A4D; /* teal on hover */
  outline: none;
}
.nav-primary-desktop .nav-link:focus-visible {
  box-shadow: 0 0 0 2px rgba(44, 58, 77, 0.4);
  border-radius: 4px;
}
/* Active underline, animates in */
.nav-primary-desktop .nav-link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: #2C3A4D;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}
.nav-primary-desktop .nav-link:hover::after,
.nav-primary-desktop .current-menu-item > .nav-link::after,
.nav-primary-desktop .current-menu-ancestor > .nav-link::after,
.nav-primary-desktop .has-mega[data-open="true"] > .nav-link::after {
  transform: scaleX(1);
}
.nav-primary-desktop .current-menu-item > .nav-link,
.nav-primary-desktop .current-menu-ancestor > .nav-link,
.nav-primary-desktop .has-mega[data-open="true"] > .nav-link { color: #2C3A4D; }

/* ---------- Mega dropdowns (desktop, click-to-open) ---------- */
.nav-primary-desktop .has-mega .mega-caret {
  opacity: 0.75;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.nav-primary-desktop .has-mega[data-open="true"] .mega-caret {
  transform: rotate(180deg);
  opacity: 1;
}

.nav-primary-desktop .mega-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  /* Clamp the panel to the site container width (1200px max, 1rem gutter on each
     side), so its edges line up with other page content instead of floating
     at an arbitrary width under the trigger. */
  width: min(900px, calc(100vw - 2rem));
  max-width: 1136px;
  /* Panel sits flush against the nav row — no gap between the trigger and
     the dropdown. A tiny translateY is used purely for the fade-in animation. */
  transform: translateX(-50%) translateY(4px);
  background: #ffffff;
  color: #2A2620;
  border-radius: 16px;
  box-shadow: 0 24px 60px -18px rgba(17, 41, 43, 0.35),
              0 8px 24px -12px rgba(17, 41, 43, 0.18);
  padding: 0.75rem;
  margin-top: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 50;
}
.nav-primary-desktop .has-mega[data-open="true"] .mega-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.nav-primary-desktop .mega-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* Rows auto-size to the tallest cell, so wrapping labels don't break row
     rhythm between columns. Tight gap — the item padding + hover rect does
     the visual spacing work. */
  grid-auto-rows: minmax(44px, auto);
  gap: 2px;
}
.nav-primary-desktop .mega-grid > li { margin: 0; display: flex; }
.nav-primary-desktop .mega-grid a {
  position: static;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  padding: 0.625rem 0.875rem;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.35;
  color: #22303F;
  font-weight: 500;
  white-space: normal;
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-primary-desktop .mega-grid a::after { content: none; }
.nav-primary-desktop .mega-grid a:hover,
.nav-primary-desktop .mega-grid a:focus-visible {
  background: #F6F1E8;
  color: #2C3A4D;
  outline: none;
  box-shadow: none;
}

/* Dropdown footer — the one way into the parent landing page. */
.nav-primary-desktop .mega-foot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0.625rem 0.5rem 0.25rem;
  padding: 0.5rem 0.875rem;
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #2C3A4D;
  text-decoration: none;
  transition: gap 0.2s ease, background 0.15s ease, color 0.15s ease;
}
.nav-primary-desktop .mega-foot:hover,
.nav-primary-desktop .mega-foot:focus-visible {
  background: #F6F1E8;
  color: #22303F;
  outline: none;
  gap: 10px;
}
.nav-primary-desktop .mega-foot::after { content: none; }

/* Suites mega: six directions, one column each, most-searched first. */
.nav-primary-desktop .mega-panel--suites {
  width: min(1136px, calc(100vw - 2rem));
  padding: 1.5rem 1.5rem 0.75rem;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
}
/* Anchor the wide panel to the header row, not to the trigger. */
.nav-primary-desktop .has-mega--suites { position: static; }
.nav-primary-desktop .has-mega[data-open="true"] .mega-panel--suites { transform: translateX(-50%) translateY(0); }
.nav-primary-desktop .mega-cols {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.25rem;
}
.nav-primary-desktop .mega-col-head {
  font-family: 'Instrument Serif', serif;
  font-size: 1.25rem;
  line-height: 1.2;
  color: #0B0E14;
  padding: 0 0.5rem 0.5rem;
  border-bottom: 1px solid #DDD5C8;
  margin-bottom: 0.375rem;
}
.nav-primary-desktop .mega-col ul { margin: 0; padding: 0; list-style: none; }
.nav-primary-desktop .mega-col li a {
  display: flex;
  flex-direction: column;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  color: #22303F;
  transition: background 0.15s ease;
}
.nav-primary-desktop .mega-col li a::after { content: none; }
.nav-primary-desktop .mega-col li a:hover,
.nav-primary-desktop .mega-col li a:focus-visible { background: #F6F1E8; outline: none; }
.nav-primary-desktop .mega-item-label { font-size: 0.8125rem; font-weight: 600; line-height: 1.3; }
.nav-primary-desktop .mega-item-sub { font-size: 0.6875rem; color: #6B6258; line-height: 1.3; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-primary-desktop .mega-col-all {
  display: inline-block;
  margin: 0.5rem 0.5rem 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #E50915;
}
.nav-primary-desktop .mega-col-all::after { content: none; }
.nav-primary-desktop .mega-suites-foot {
  display: flex;
  gap: 1.5rem;
  margin-top: 1rem;
  padding: 0.75rem 0.5rem 0.25rem;
  border-top: 1px solid #DDD5C8;
  font-size: 0.8125rem;
  font-weight: 600;
}
.nav-primary-desktop .mega-suites-foot a { color: #22303F; }
.nav-primary-desktop .mega-suites-foot a:first-child { color: #E50915; margin-right: auto; }
.nav-primary-desktop .mega-suites-foot a::after { content: none; }

/* Mobile drawer — light surface, dark ink links. */
.nav-primary-mobile a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0.25rem;
  color: #4A443A;
  min-height: 48px; /* tap target */
}
.nav-primary-mobile a:hover { color: #2C3A4D; }
.nav-primary-mobile a::after {
  content: '›';
  color: rgba(17, 41, 43, 0.3);
  font-size: 1.25rem;
  line-height: 1;
  padding-left: 0.75rem;
}
.nav-primary-mobile .current-menu-item > a {
  color: #2C3A4D;
  font-weight: 600;
}
.nav-primary-mobile .current-menu-item > a::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 18px;
  margin-right: 0.75rem;
  background: #2C3A4D;
  border-radius: 2px;
}

/* Mobile: parent submenu trigger is a full-width button that toggles the list. */
.nav-primary-mobile .submenu-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 0.25rem;
  color: #4A443A;
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 500;
  text-align: left;
  min-height: 48px;
  cursor: pointer;
  border-radius: 8px;
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-primary-mobile .submenu-toggle:hover,
.nav-primary-mobile .submenu-toggle:focus-visible {
  color: #2C3A4D;
  background: rgba(44, 58, 77, 0.06);
  outline: none;
}
.nav-primary-mobile .submenu-toggle svg {
  flex-shrink: 0;
  color: rgba(17, 41, 43, 0.5);
  transition: transform 0.2s ease, color 0.15s ease;
}
.nav-primary-mobile .submenu-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
  color: #2C3A4D;
}
.nav-primary-mobile .submenu-list {
  list-style: none;
  margin: 0;
  padding: 0 0 0.5rem 0.75rem;
  border-left: 2px solid rgba(17, 41, 43, 0.1);
  margin-left: 0.25rem;
}
.nav-primary-mobile .submenu-list > li { border: none; }
.nav-primary-mobile .submenu-list a {
  padding: 0.625rem 0.5rem;
  font-size: 0.9375rem;
  color: #6B6353;
  min-height: 40px;
}
.nav-primary-mobile .submenu-list a::after { content: none; }
.nav-primary-mobile .submenu-list a:hover { color: #2C3A4D; }
.nav-primary-mobile .submenu-list .submenu-foot {
  margin-top: 0.25rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(17, 41, 43, 0.1);
}
.nav-primary-mobile .submenu-list .submenu-foot a {
  color: #5E7257;
  font-weight: 600;
}
.nav-primary-mobile .submenu-list .submenu-foot a:hover { color: #2C3A4D; }

/* Global: sharpen focus-visible across all links that don't opt out */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #2C3A4D;
  outline-offset: 2px;
  border-radius: 4px;
}
/* Skip elements that already style their own rings */
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
[data-menu-toggle]:focus-visible,
.nav-primary-desktop a:focus-visible {
  outline: none;
}

/* ---------- Gallery lightbox ---------- */
.lightbox-dialog {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
}
.lightbox-dialog::backdrop {
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(4px);
}
.lightbox-dialog[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox-figure {
  margin: 0;
  padding: 1.5rem;
  max-width: min(96vw, 1400px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lightbox-figure img {
  max-width: 100%;
  max-height: 78vh;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
  background: #1a1a1a;
}
.lightbox-figure figcaption {
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.875rem;
  text-align: center;
  max-width: 56ch;
  line-height: 1.5;
}
.lightbox-figure figcaption[hidden] { display: none; }
.lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #2A2620;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  border: 0;
  cursor: pointer;
  transition: background 0.15s ease;
}
.lightbox-close:hover { background: #ffffff; }
.lightbox-close:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* ---- Contextual hero animations (rc-anim) -------------------------------- */
@keyframes rc-spin     { to { transform: rotate(360deg); } }
@keyframes rc-spin-rev { to { transform: rotate(-360deg); } }
@keyframes rc-plasma   { to { transform: scaleY(1); } }
@keyframes rc-drop     { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 72% { opacity: 1; } 100% { transform: translateY(-128px); opacity: 0; } }
@keyframes rc-breathe  { 0%,100% { opacity: .35; } 50% { opacity: .75; } }

[data-rc-anim] .rc-spin, [data-rc-anim] .rc-spin-2 { transform-box: fill-box; transform-origin: center; }
[data-rc-anim] .rc-plasma { transform-box: fill-box; transform-origin: bottom; transform: scaleY(0); }
[data-rc-anim] .rc-drop   { opacity: 0; }
[data-rc-anim] .rc-glow   { opacity: .35; }

.rc-anim--run .rc-spin   { animation: rc-spin 26s linear infinite; }
.rc-anim--run .rc-spin-2 { animation: rc-spin-rev 38s linear infinite; }
.rc-anim--run .rc-plasma { animation: rc-plasma 2.6s cubic-bezier(.2,.8,.2,1) forwards; }
.rc-anim--run .rc-drop   { animation: rc-drop 5.2s ease-in-out 2.4s infinite; }
.rc-anim--run .rc-glow   { animation: rc-breathe 9s ease-in-out infinite; }

/* Reduced motion / static: fully-resolved, no movement. */
.rc-anim--static .rc-spin, .rc-anim--static .rc-spin-2,
.rc-anim--static .rc-drop, .rc-anim--static .rc-glow { animation: none !important; }
.rc-anim--static .rc-plasma { animation: none !important; transform: scaleY(1); }
.rc-anim--static .rc-drop { opacity: 0; }

/* ---- rc-anim: generic scene accents (waves / orbit / node / glyph) -------- */
@keyframes rc-wave  { 0% { transform: scale(.4); opacity: 0; } 18% { opacity: .4; } 100% { transform: scale(2.5); opacity: 0; } }
@keyframes rc-node  { 0%,100% { opacity: .35; transform: scale(.75); } 50% { opacity: .85; transform: scale(1.08); } }
@keyframes rc-glyph { 0%,100% { opacity: .62; } 50% { opacity: .82; } }

[data-rc-anim] .rc-wave  { transform-box: fill-box; transform-origin: center; opacity: 0; }
[data-rc-anim] .rc-node  { transform-box: fill-box; transform-origin: center; }
[data-rc-anim] .rc-glyph { opacity: .9; }

.rc-anim--run .rc-wave   { animation: rc-wave 6s ease-out infinite; }
.rc-anim--run .rc-wave-2 { animation-delay: 2s; }
.rc-anim--run .rc-wave-3 { animation-delay: 4s; }
.rc-anim--run .rc-node   { animation: rc-node 4.2s ease-in-out infinite; }
.rc-anim--run .rc-glyph  { animation: rc-glyph 8s ease-in-out infinite; }

.rc-anim--static .rc-wave, .rc-anim--static .rc-node, .rc-anim--static .rc-glyph { animation: none !important; }
.rc-anim--static .rc-wave  { opacity: .22; transform: scale(1.35); }
.rc-anim--static .rc-glyph { opacity: .7; }

/* ---------- Soft animated image placeholder (interim, premium-minimal) ----------
   A large panel with a slow warm wash + faint breathing rings, revealed on scroll.
   Stands in for photography until real imagery is generated. Markup: rc_image_placeholder(). */
.rc-imgph {
  position: relative; overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #F2ECE0;
  border: 1px solid rgba(42, 38, 32, 0.08);
}
.rc-imgph__wash, .rc-imgph__ring { position: absolute; inset: 0; pointer-events: none; }
.rc-imgph__wash {
  background:
    radial-gradient(42% 38% at 30% 28%, rgba(94, 114, 87, 0.16) 0%, rgba(94, 114, 87, 0) 70%),
    radial-gradient(46% 42% at 74% 74%, rgba(180, 154, 120, 0.20) 0%, rgba(180, 154, 120, 0) 72%);
  animation: rc-ph-drift 18s ease-in-out infinite alternate;
}
.rc-imgph__ring { display: flex; align-items: center; justify-content: center; }
.rc-imgph__ring::before, .rc-imgph__ring::after {
  content: ''; position: absolute; border-radius: 9999px;
  width: 46%; aspect-ratio: 1; border: 1px solid rgba(42, 38, 32, 0.10);
  animation: rc-ph-breathe 6.5s ease-in-out infinite;
}
.rc-imgph__ring::after { width: 68%; border-color: rgba(42, 38, 32, 0.06); animation-delay: 1.3s; }
.rc-imgph__cap {
  position: absolute; left: 0; right: 0; bottom: 1.25rem; text-align: center;
  font-family: ui-monospace, 'Geist Mono', monospace; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: rgba(42, 38, 32, 0.42);
}
.rc-imgph[data-reveal] { opacity: 0; transform: scale(0.985); }
.rc-imgph.is-revealed { opacity: 1; transform: none; transition: opacity 1s ease, transform 1.2s cubic-bezier(.2, .8, .2, 1); }
@keyframes rc-ph-drift   { 0% { transform: translate3d(0,0,0) scale(1); } 100% { transform: translate3d(-4%,3%,0) scale(1.06); } }
@keyframes rc-ph-breathe { 0%,100% { opacity: .5; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } }
@media (prefers-reduced-motion: reduce) {
  .rc-imgph__wash, .rc-imgph__ring::before, .rc-imgph__ring::after { animation: none; }
}

/* ---------- Hero video slider: cross-fading full-bleed clips ---------- */
.hero-slide {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  transition: opacity 1.2s ease;
  pointer-events: none;
}
.hero-slide.is-active { opacity: 1; }

/* ---------- Video stories: lite YouTube facade ---------- */
.yt-facade {
  position: relative; display: block; width: 100%;
  aspect-ratio: 16 / 9; overflow: hidden; border-radius: 1rem;
  background: #2A2620; cursor: pointer; border: 0; padding: 0;
}
.yt-facade img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transition: transform .5s ease, opacity .3s ease; }
.yt-facade:hover img { transform: scale(1.03); opacity: .9; }
.yt-facade__play {
  position: absolute; inset: 0; margin: auto; width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(251, 248, 242, 0.92); color: #2A2620; border-radius: 9999px;
  transition: transform .25s ease, background .25s ease;
}
.yt-facade:hover .yt-facade__play { transform: scale(1.06); background: #fff; }
.yt-facade iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Mobile drawer: opening it locks page scroll on <html> (main.js), so the
   drawer itself must scroll. Cap it to the viewport below the sticky header --
   otherwise a long expanded submenu list runs past the screen and its bottom
   items become unreachable on phones. */
[data-mobile-menu] {
  max-height: calc(100vh - 4.5rem);
  max-height: calc(100dvh - 4.5rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* ---------------------------------------------------------------------------
 * LuxuryVIPSuites — components added on top of the inherited library.
 * ------------------------------------------------------------------------- */

/* Sticky enquiry rail on venue pages. Follows the reader down the page but
   stops short of the footer, so the disclaimer is never covered. */
.lvs-rail {
  position: sticky;
  top: 6.5rem;
  align-self: start;
}

/* Hero slide timing. Clips are generated at 5s and the rotation interval is
   5000ms, so each clip plays through exactly once and never restarts mid-shot —
   the loop-restart flicker the RegenCore build has at 3.042s clips / 3500ms. */
.hero-slide { transition: opacity 1.2s ease; }

/* Illustrative-data marker. Deliberately visible rather than a footnote: these
   are placeholder figures and nobody should mistake them for a quote. */
.lvs-illustrative {
  border-left: 2px solid #C9A227;
  background: #F8F2DF;
}

/* Tables carry numbers here, so lock the figures to a monospaced advance. */
table td, table th { font-variant-numeric: tabular-nums; }

/* Sortable headers get an affordance without a JS-only cursor change. */
[data-sort-key] { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
[data-sort-key][aria-sort]::after { content: ' ↑'; opacity: .5; }
[data-sort-key][aria-sort="descending"]::after { content: ' ↓'; }
.placeholder\:text-brand-ink-500\/50::-moz-placeholder {
  color: rgb(107 114 128 / 0.5);
}
.placeholder\:text-brand-ink-500\/50::placeholder {
  color: rgb(107 114 128 / 0.5);
}
.placeholder\:text-brand-ink-500\/60::-moz-placeholder {
  color: rgb(107 114 128 / 0.6);
}
.placeholder\:text-brand-ink-500\/60::placeholder {
  color: rgb(107 114 128 / 0.6);
}
.placeholder\:text-brand-ink-soft\/50::-moz-placeholder {
  color: rgb(58 63 73 / 0.5);
}
.placeholder\:text-brand-ink-soft\/50::placeholder {
  color: rgb(58 63 73 / 0.5);
}
.hover\:h-2:hover {
  height: 0.5rem;
}
.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  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));
}
.hover\:scale-\[1\.03\]:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  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));
}
.hover\:scale-\[1\.06\]:hover {
  --tw-scale-x: 1.06;
  --tw-scale-y: 1.06;
  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));
}
.hover\:gap-2\.5:hover {
  gap: 0.625rem;
}
.hover\:border-brand-ink:hover {
  --tw-border-opacity: 1;
  border-color: rgb(18 22 31 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-primary:hover {
  --tw-border-opacity: 1;
  border-color: rgb(229 9 21 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-primary\/30:hover {
  border-color: rgb(229 9 21 / 0.3);
}
.hover\:border-white:hover {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.hover\:border-white\/40:hover {
  border-color: rgb(255 255 255 / 0.4);
}
.hover\:bg-brand-accent-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(168 135 31 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-highlight:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(180 154 120 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(253 236 238 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(201 8 17 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.hover\:text-brand-accent:hover {
  --tw-text-opacity: 1;
  color: rgb(201 162 39 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-navy:hover {
  --tw-text-opacity: 1;
  color: rgb(11 14 20 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-primary:hover {
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-primary-600:hover {
  --tw-text-opacity: 1;
  color: rgb(201 8 17 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-primary-700:hover {
  --tw-text-opacity: 1;
  color: rgb(184 7 16 / var(--tw-text-opacity, 1));
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
.hover\:no-underline:hover {
  text-decoration-line: none;
}
.hover\:decoration-brand-primary:hover {
  text-decoration-color: #E50915;
}
.hover\:opacity-100:hover {
  opacity: 1;
}
.hover\:shadow-brand:hover {
  --tw-shadow: 0 2px 8px -4px rgba(11, 14, 20, 0.10);
  --tw-shadow-colored: 0 2px 8px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-lg:hover {
  --tw-shadow: 0 12px 32px -16px rgba(11, 14, 20, 0.18);
  --tw-shadow-colored: 0 12px 32px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary:hover {
  --tw-shadow: 0 8px 24px -12px rgba(229, 9, 21, 0.40);
  --tw-shadow-colored: 0 8px 24px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary-lg:hover {
  --tw-shadow: 0 16px 40px -16px rgba(229, 9, 21, 0.34);
  --tw-shadow-colored: 0 16px 40px -16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgba(11, 14, 20, 0.04);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary:hover {
  --tw-shadow-color: #E50915;
  --tw-shadow: var(--tw-shadow-colored);
}
.hover\:ring-white:hover {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.hover\:grayscale-0:hover {
  --tw-grayscale: grayscale(0);
  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);
}
.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.focus\:absolute:focus {
  position: absolute;
}
.focus\:left-2:focus {
  left: 0.5rem;
}
.focus\:top-2:focus {
  top: 0.5rem;
}
.focus\:border-brand-primary:focus {
  --tw-border-opacity: 1;
  border-color: rgb(229 9 21 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-0:focus {
  --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(0px + 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);
}
.focus\:ring-2:focus {
  --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(2px + 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);
}
.focus\:ring-brand-primary:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(229 9 21 / var(--tw-ring-opacity, 1));
}
.focus\:ring-brand-primary\/20:focus {
  --tw-ring-color: rgb(229 9 21 / 0.2);
}
.focus\:ring-brand-primary\/30:focus {
  --tw-ring-color: rgb(229 9 21 / 0.3);
}
.focus\:ring-white\/70:focus {
  --tw-ring-color: rgb(255 255 255 / 0.7);
}
.focus\:ring-white\/80:focus {
  --tw-ring-color: rgb(255 255 255 / 0.8);
}
.focus-visible\:ring-2:focus-visible {
  --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(2px + 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);
}
.focus-visible\:ring-4:focus-visible {
  --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(4px + 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);
}
.focus-visible\:ring-brand-accent:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(201 162 39 / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-brand-primary:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(229 9 21 / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-brand-primary\/25:focus-visible {
  --tw-ring-color: rgb(229 9 21 / 0.25);
}
.focus-visible\:ring-brand-primary\/30:focus-visible {
  --tw-ring-color: rgb(229 9 21 / 0.3);
}
.focus-visible\:ring-brand-primary\/40:focus-visible {
  --tw-ring-color: rgb(229 9 21 / 0.4);
}
.focus-visible\:ring-brand-primary\/50:focus-visible {
  --tw-ring-color: rgb(229 9 21 / 0.5);
}
.focus-visible\:ring-white\/30:focus-visible {
  --tw-ring-color: rgb(255 255 255 / 0.3);
}
.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}
.group[open] .group-open\:rotate-180 {
  --tw-rotate: 180deg;
  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\:translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  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\: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-\[1\.03\] {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  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\:bg-brand-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(229 9 21 / var(--tw-bg-opacity, 1));
}
.group:hover .group-hover\:text-brand-accent {
  --tw-text-opacity: 1;
  color: rgb(201 162 39 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-brand-ink {
  --tw-text-opacity: 1;
  color: rgb(18 22 31 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-brand-primary {
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
@media (min-width: 640px) {

  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .sm\:block {
    display: block;
  }

  .sm\:flex {
    display: flex;
  }

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

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

  .sm\:grid-cols-\[1\.4fr_1fr_auto\] {
    grid-template-columns: 1.4fr 1fr auto;
  }

  .sm\:grid-cols-\[1\.6fr_1fr_auto\] {
    grid-template-columns: 1.6fr 1fr auto;
  }

  .sm\:grid-cols-\[10rem_1fr_auto\] {
    grid-template-columns: 10rem 1fr auto;
  }

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

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

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:gap-x-10 {
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }

  .sm\:gap-y-14 {
    row-gap: 3.5rem;
  }

  .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\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

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

  .sm\:py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

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

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

  .sm\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .sm\:pl-8 {
    padding-left: 2rem;
  }

  .sm\:text-right {
    text-align: right;
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 768px) {

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

  .lg\:sticky {
    position: sticky;
  }

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

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

  .lg\:order-last {
    order: 9999;
  }

  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }

  .lg\:col-span-5 {
    grid-column: span 5 / span 5;
  }

  .lg\:col-span-7 {
    grid-column: span 7 / span 7;
  }

  .lg\:col-span-8 {
    grid-column: span 8 / span 8;
  }

  .lg\:-my-4 {
    margin-top: -1rem;
    margin-bottom: -1rem;
  }

  .lg\:-mt-16 {
    margin-top: -4rem;
  }

  .lg\:mb-10 {
    margin-bottom: 2.5rem;
  }

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

  .lg\:mb-14 {
    margin-bottom: 3.5rem;
  }

  .lg\:mb-16 {
    margin-bottom: 4rem;
  }

  .lg\:mt-12 {
    margin-top: 3rem;
  }

  .lg\:mt-16 {
    margin-top: 4rem;
  }

  .lg\:mt-20 {
    margin-top: 5rem;
  }

  .lg\:mt-40 {
    margin-top: 10rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:grid {
    display: grid;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:aspect-\[4\/3\] {
    aspect-ratio: 4/3;
  }

  .lg\:aspect-auto {
    aspect-ratio: auto;
  }

  .lg\:h-12 {
    height: 3rem;
  }

  .lg\:h-14 {
    height: 3.5rem;
  }

  .lg\:h-48 {
    height: 12rem;
  }

  .lg\:h-auto {
    height: auto;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-48 {
    width: 12rem;
  }

  .lg\:scale-\[1\.03\] {
    --tw-scale-x: 1.03;
    --tw-scale-y: 1.03;
    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));
  }

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

  .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\.85fr_1\.15fr\] {
    grid-template-columns: 0.85fr 1.15fr;
  }

  .lg\:grid-cols-\[1\.05fr_1fr\] {
    grid-template-columns: 1.05fr 1fr;
  }

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

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

  .lg\:grid-cols-\[1\.1fr_1fr\] {
    grid-template-columns: 1.1fr 1fr;
  }

  .lg\:grid-cols-\[1\.4fr_1fr_1fr_1\.2fr\] {
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  }

  .lg\:grid-cols-\[14rem_1fr_auto\] {
    grid-template-columns: 14rem 1fr auto;
  }

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

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

  .lg\:grid-cols-\[1fr_1\.4fr\] {
    grid-template-columns: 1fr 1.4fr;
  }

  .lg\:grid-cols-\[1fr_30rem\] {
    grid-template-columns: 1fr 30rem;
  }

  .lg\:grid-cols-\[3rem_1fr_15rem\] {
    grid-template-columns: 3rem 1fr 15rem;
  }

  .lg\:grid-cols-\[auto_1fr\] {
    grid-template-columns: auto 1fr;
  }

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

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

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

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:gap-10 {
    gap: 2.5rem;
  }

  .lg\:gap-14 {
    gap: 3.5rem;
  }

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

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

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

  .lg\:space-y-14 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(3.5rem * var(--tw-space-y-reverse));
  }

  .lg\:space-y-28 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(7rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(7rem * var(--tw-space-y-reverse));
  }

  .lg\:justify-self-end {
    justify-self: end;
  }

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

  .lg\:border-brand-muted-200 {
    --tw-border-opacity: 1;
    border-color: rgb(221 213 200 / var(--tw-border-opacity, 1));
  }

  .lg\:border-brand-navy-line {
    --tw-border-opacity: 1;
    border-color: rgb(42 49 62 / var(--tw-border-opacity, 1));
  }

  .lg\:p-10 {
    padding: 2.5rem;
  }

  .lg\:p-14 {
    padding: 3.5rem;
  }

  .lg\:p-6 {
    padding: 1.5rem;
  }

  .lg\:p-7 {
    padding: 1.75rem;
  }

  .lg\:p-8 {
    padding: 2rem;
  }

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

  .lg\:py-11 {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
  }

  .lg\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

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

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

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

  .lg\:py-32 {
    padding-top: 8rem;
    padding-bottom: 8rem;
  }

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

  .lg\:py-7 {
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
  }

  .lg\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

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

  .lg\:pb-28 {
    padding-bottom: 7rem;
  }

  .lg\:pb-8 {
    padding-bottom: 2rem;
  }

  .lg\:pl-10 {
    padding-left: 2.5rem;
  }

  .lg\:pl-8 {
    padding-left: 2rem;
  }

  .lg\:pt-12 {
    padding-top: 3rem;
  }

  .lg\:pt-14 {
    padding-top: 3.5rem;
  }

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

  .lg\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .lg\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .lg\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .lg\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .lg\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }

  .lg\:text-\[1\.35rem\] {
    font-size: 1.35rem;
  }

  .lg\:text-\[1\.65rem\] {
    font-size: 1.65rem;
  }

  .lg\:text-\[1\.75rem\] {
    font-size: 1.75rem;
  }

  .lg\:text-\[2\.5rem\] {
    font-size: 2.5rem;
  }

  .lg\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .lg\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 1280px) {

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

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

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

  .xl\:gap-7 {
    gap: 1.75rem;
  }
}
.\[\&_a\:hover\]\:text-white a:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.\[\&_a\]\:text-brand-primary a {
  --tw-text-opacity: 1;
  color: rgb(229 9 21 / var(--tw-text-opacity, 1));
}
.\[\&_a\]\:underline a {
  text-decoration-line: underline;
}
.\[\&_a\]\:transition a {
  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;
}

