@import url('./design-tokens.css');
@import url('./site-utilities.css');
/* Shared public layout: v2, no legacy stylesheet or external dependencies. */
.site-shell { --z-base:0; --z-raised:10; --z-nav:1000; --z-overlay:1100; --z-modal:1200; --site-header-offset:120px; font-size:16px; line-height:1.6; }
.site-shell img { max-width:100%; height:auto; }
.site-shell .site-main { min-height:55vh; }
.site-tools-navigation { position:relative; }
.site-tools-navigation summary { cursor:pointer; padding:12px 6px; list-style:none; }
.site-tools-navigation summary::after { content:' ▾'; }
.site-tools-navigation > div { position:absolute; inset:auto auto auto 0; min-width:230px; z-index:30; padding:12px; border-radius:var(--radius-control); background:var(--navy-950); border:1px solid var(--muted-dark-2); }
.site-tools-navigation > div a { display:flex; align-items:center; min-height:44px; padding:8px 10px; }
.site-menu-overlay .site-tools-navigation > div { position:static; min-width:0; }
.site-menu-overlay .site-tools-navigation summary { min-height:44px; }
.site-intel-home { width:min(1248px,calc(100% - 32px)); margin:36px auto; }
.site-freetools .site-inner :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { background:rgb(var(--navy-950-rgb) / 40%); color:var(--text-on-dark); border-color:var(--muted-dark-2); color-scheme:dark; }
.site-freetools .site-inner :is(.text-slate-600,.text-slate-500) { color:var(--muted-dark); }
.site-freetools .site-inner :is(.text-teal-800,.text-teal-900) { color:var(--cyan-300); }
.site-freetools .site-inner .text-amber-800 { color:var(--warning-on-dark); }
.site-freetools .site-inner .bg-teal-50 { background:rgb(var(--cyan-300-rgb) / 8%); }
.site-freetools .site-inner .bg-amber-50 { background:rgb(var(--warning-rgb) / 12%); }
.site-freetools .site-inner .bg-slate-50 { background:rgb(var(--white-rgb) / 6%); }
.site-freetools .site-inner pre:is(.bg-surface-white,.bg-slate-50) { background:var(--white); color:var(--ink); }
.site-shell .site-banner-art .conds { width:100%; max-width:100%; }
.site-shell .site-catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:20px; }
.site-shell .site-contact-grid { display:grid; gap:32px; }
.site-shell .site-plain-form.bl-card { padding:28px; }
.site-shell .site-contact-info .bl-card { background:transparent; color:var(--white); border:0; padding:0; box-shadow:none; }
.site-shell .site-check-list { list-style:none; padding:0; }
.site-shell .site-check-list li { margin:10px 0; }
.site-shell .site-check-list li::before { content:'✓'; color:var(--sky-700); margin-right:12px; }
.site-shell .site-booking-requirements { line-height:1.6; }
.site-shell .site-booking-requirements a { text-decoration:underline; }
.site-shell .site-catalog-summary { margin:24px 0; }

.site-shell .site-headline .blue-text { color:var(--sky-700); }
@media(min-width:1024px) { .site-shell .site-contact-grid { grid-template-columns:1.1fr .9fr; } }
/* Design v2: public shell and reference layout. */
.site-shell { background:radial-gradient(1200px 700px at 80% 0,rgb(var(--cyan-500-rgb) / 35%),transparent 60%),radial-gradient(900px 600px at -10% 40%,rgb(var(--navy-900-rgb) / 90%),transparent 60%),var(--navy-950); color:var(--white); font-family:Inter,sans-serif; }
.site-shell h1,.site-shell h2,.site-shell h3,.site-shell h4 { font-family:'Space Grotesk',sans-serif; text-transform:none; letter-spacing:-.03em; line-height:1.08; color:inherit; font-weight:700; }
.site-shell .v2-header { position:sticky; top:0; z-index:var(--z-nav); isolation:isolate; padding:22px 24px 0; backdrop-filter:blur(14px); }
.site-shell .v2-header.is-scrolled { background:rgb(var(--navy-950-rgb) / 96%); }
@media (prefers-reduced-motion:no-preference) { .site-shell .v2-header { transition:background-color .2s ease; } }
.site-shell .glass { background:rgb(var(--white-rgb) / 6%); border:1px solid rgb(var(--white-rgb) / 12%); backdrop-filter:blur(14px); }
.site-shell .v2-nav { max-width:1200px; margin:auto; border-radius:18px; padding:12px 14px 12px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.site-shell .v2-header .v2-nav { background:rgb(var(--navy-950-rgb) / 65%); }
.site-shell .site-newsletter-link { color:var(--white); text-decoration:none; cursor:pointer; min-height:44px; }
.site-shell .site-newsletter-link:hover { border-color:var(--cyan-300); background:rgb(var(--white-rgb) / 10%); }
.site-shell .site-newsletter-icon { flex-shrink:0; display:grid; place-items:center; width:32px; height:32px; border-radius:var(--radius-pill); background:rgb(var(--cyan-500-rgb) / 15%); color:var(--cyan-300); }
.site-shell .site-newsletter-icon svg { width:20px; height:20px; }
.site-shell .v2-nav img { width:150px; height:auto; }
.site-shell .site-desktop-nav { display:flex; gap:28px; font-size:15px; }
.site-shell .site-desktop-nav a { color:var(--white); text-decoration:none; }
.site-shell .cta { font-family:Inter,sans-serif; font-weight:700; text-decoration:none; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 26px; font-size:16px; cursor:pointer; transition:transform .15s; }
.site-shell .cta:hover { transform:translateY(-2px); }
.site-shell .v2-nav-cta { background:var(--white); color:var(--navy-950); min-height:44px; font-size:14px; }
.site-shell .v2-home .g { font-family:'Space Grotesk',sans-serif; letter-spacing:-.03em; line-height:1.08; margin:0; font-weight:700; }
.site-shell .v2-home p { margin:0; }
.site-shell .grad { background:var(--gradient-text); background-clip:text; -webkit-background-clip:text; color:transparent; }
.site-shell .v2-home { width:100%; overflow:hidden; }
.site-shell [id] { scroll-margin-top:var(--site-header-offset); }
.site-shell .ring { position:absolute; left:50%; top:50%; width:520px; height:520px; border:2px solid var(--cyan-500); border-radius:50%; animation:site-ring 4s linear infinite; }
@keyframes site-ring { from { transform:translate(-50%,-50%) scale(.25); opacity:.9; } to { transform:translate(-50%,-50%) scale(1); opacity:0; } }
@keyframes float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes marq { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.site-shell input[type=range] { appearance:none; width:100%; height:8px; min-height:8px; margin:16px 0; border-radius:999px; background:var(--gradient-text); }
.site-shell input[type=range]::-webkit-slider-thumb { appearance:none; width:30px; height:30px; border-radius:50%; background:var(--white); border:6px solid var(--cyan-500); cursor:pointer; box-shadow:0 0 0 6px rgb(var(--cyan-500-rgb) / 25%); }
.site-shell input[type=range]::-moz-range-thumb { width:20px; height:20px; border-radius:50%; background:var(--white); border:6px solid var(--cyan-500); cursor:pointer; }
.site-shell .package-choice { background:transparent; border:0; color:var(--muted-dark); font-size:13px; min-height:44px; }
.site-shell .package-choice:focus-visible { outline:2px solid var(--cyan-300); outline-offset:3px; }
.site-shell .v2-footer { border-top:1px solid rgb(var(--white-rgb) / 10%); padding:34px 24px; font-size:14px; color:var(--muted-dark-2); }
.site-shell .v2-footer > div { max-width:1200px; margin:auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.site-shell .v2-footer img { width:120px; height:auto; }
.site-shell .v2-footer nav { display:flex; flex-wrap:wrap; gap:10px 22px; }
.site-shell .v2-footer a { color:var(--muted-dark); min-height:44px; display:inline-flex; align-items:center; }
.site-shell .site-inner { max-width:1200px; margin:auto; padding:60px 24px 90px; }
.site-subpage .site-auth-card { padding:36px; margin:0; }
.site-shell .site-inner > article { padding:32px; }
.site-shell .site-inner .sub-banner-con { padding:0 0 40px; background:none; margin:0; min-height:0; }
.site-shell .site-inner .sub-banner-con > img,.site-shell .site-banner-art { display:none; }
.site-shell .site-banner-row { display:block; }
.site-shell .site-banner-row > div { width:100%; max-width:none; padding:0; }
.site-shell .site-banner-row h1 { font-size:var(--fs-h2); color:var(--white); }
.site-shell .site-banner-row p { color:var(--muted-dark); }
.site-shell .site-banner-row .blue-text { color:var(--cyan-300); }
.site-shell .site-contact-info { color:var(--white); background:rgb(var(--white-rgb) / 6%); padding:28px; border-radius:24px; }
.site-shell .site-contact-info a { color:var(--cyan-300); }
.site-shell .site-content-section { max-width:1200px; margin:0 auto 48px; padding:0; }
.site-shell .site-inner .site-headline { font-size:var(--fs-h2); }
.site-shell .site-booking { background:transparent; }
.site-shell .bl-field { border-radius:14px; background:var(--white); color:var(--ink); border:1px solid var(--control-placeholder); padding:12px 14px; }
.site-shell .bl-button { border-radius:14px; padding:12px 24px; }
.site-shell :is(.bl-primary,.site-primary,.package-booking) { background:var(--cyan-500)!important; color:var(--white)!important; font-size:20px; font-weight:700; box-shadow:0 10px 40px rgb(var(--cyan-500-rgb) / 50%); }
.site-shell .bl-secondary { background:var(--white); color:var(--navy-950); }
.site-shell .bl-card .blue-text { color:var(--sky-700); }
.site-shell :where(a,button,input,textarea,select,summary,[tabindex]):focus-visible { outline:3px solid var(--cyan-300); outline-offset:3px; }
.site-shell .bl-card :focus-visible,.site-shell .site-auth-card :focus-visible { outline-color:var(--sky-700); }
.site-shell .v2-empty { max-width:1200px; margin:auto; padding:80px 24px; }
.site-shell .catalog-summary { text-align:center; color:var(--muted-dark); padding:0 24px 48px; }
@media (max-width:900px) {
 .site-shell .v2-home section:is(.site-u-391e9cd851,.site-u-5902e37979,.site-u-bcb52a41f9,.site-u-65b57c265e) { grid-template-columns:1fr!important; gap:32px!important; }
 .site-shell .v2-home div:is(.site-u-391e9cd851,.site-u-5902e37979,.site-u-bcb52a41f9,.site-u-65b57c265e) { grid-template-columns:1fr!important; gap:28px!important; padding:28px!important; }
 .site-shell .v2-home div:is(.site-u-480d62e0e8) { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 .site-shell .v2-home div:is(.site-u-b8857b4687) { grid-template-columns:repeat(2,minmax(0,1fr))!important; grid-auto-rows:auto!important; }
 .site-shell .v2-home div:is(.site-u-9588e2f1cb) { min-height:360px; }
 .site-shell .v2-home section { padding-top:64px!important; }
}
@media (max-width:600px) {
 .site-shell .v2-header { padding:16px 16px 0; }
 .site-shell .v2-nav { padding:12px; gap:10px; }
 .site-shell .v2-nav img { width:116px; }
 .site-shell .v2-nav-cta { padding:0 12px; font-size:12px; }
 .site-shell .v2-home section { padding-left:20px!important; padding-right:20px!important; }

 .site-shell .v2-home div:is(.site-u-c750d0dcac),.site-shell .v2-home div:is(.site-u-b8857b4687) { grid-template-columns:1fr!important; }
 .site-shell .v2-home div:is(.site-u-9588e2f1cb,.site-u-84bcea90a0,.site-u-d85eee74af,.site-u-e501d1ca8f,.site-u-eada04f09e) { grid-column:auto!important; grid-row:auto!important; }
 .site-shell .v2-home .site-type-84 { font-size:56px!important; }
 .site-shell .v2-home .site-type-64 { font-size:44px!important; }
 .site-shell .reach-visual { height:420px!important; }
 .site-shell .reach-visual > div:is(.site-u-f9f206d79b) { inset:40px 10px 120px!important; padding:20px!important; }
 .site-shell .reach-visual .site-type-44 { font-size:32px!important; }
 .site-shell .v2-home .cta { width:100%; }
 .site-shell .v2-home section > div:is(.site-u-391e9cd851,.site-u-9df89ce8c8) { padding:48px 24px!important; }
 .site-shell .site-inner { padding:40px 20px 64px; }

 .site-shell .site-auth-card { padding:24px; }
 .site-shell .site-inner > article { padding:24px; }
}
@media (prefers-reduced-motion:reduce) { .site-shell *, .site-shell *::before,.site-shell *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.site-shell .ring { transform:translate(-50%,-50%) scale(.8); }
.site-shell .v2-home .glass > span:is(.site-u-26dd0812a3,.site-u-ab72f0cbaa) { background:var(--sky-700)!important; }
.site-shell .site-inner .site-contact-info .bl-card { background:transparent; color:var(--white); border:0; border-radius:0; }
.site-shell .site-inner .site-contact-info .bl-card h2 { color:var(--white); }
.site-shell .site-inner .prose { overflow-wrap:anywhere; min-width:0; }
.site-shell .site-inner .prose table { display:block; max-width:100%; overflow-x:auto; }

.site-shell .site-main :is(h1,h2,h3) { overflow-wrap:anywhere; }
.site-shell .package-choice[aria-pressed=true] { color:var(--white); font-weight:700; text-decoration:underline; text-underline-offset:5px; }

.site-shell #reach + div { flex-wrap:wrap; gap:8px; }
.site-shell .package-choice { min-width:0; overflow-wrap:anywhere; }

/* Chat 30: public subpages share the home shell; every rule is scoped away from home. */

.site-subpage .site-inner { max-width:1248px; width:100%; color:var(--text-on-dark); }
.site-subpage .site-inner > article,
.site-subpage .site-auth-card,
.site-subpage .site-recipient-form,
.site-subpage .site-inner :is(.max-w-3xl,.max-w-4xl) { max-width:none; width:100%; }
.site-subpage .site-inner > article,
.site-subpage .site-inner .bl-card,
.site-subpage .site-auth-card,
.site-subpage .site-table-region,
.site-subpage .site-contact-info,
.site-subpage .site-booking label:is(.bg-surface-white,.bg-sky-100) {
 background:rgb(var(--white-rgb) / 6%); border:1px solid rgb(var(--white-rgb) / 12%);
 border-radius:24px; color:var(--text-on-dark); box-shadow:none; backdrop-filter:blur(14px);
}
.site-subpage .site-inner :is(h1,h2,h3,h4,h5,h6,strong,legend,label) { color:var(--white); }
.site-subpage .site-inner .blue-text { color:var(--white); }
.site-subpage .site-inner :is(.text-muted-light,.text-gray-500,.text-gray-600) { color:var(--muted-dark); }
.site-subpage .site-inner a:not(.bl-button) { color:var(--cyan-300); text-decoration:underline; text-underline-offset:4px; }
.site-subpage .site-inner :is(.bl-secondary,.bl-button-secondary,.bl-ghost,.bl-button-ghost) {
 background:rgb(var(--white-rgb) / 6%); border-color:rgb(var(--white-rgb) / 28%); color:var(--white);
}
.site-subpage .site-inner .bl-field {
 background:rgb(var(--navy-950-rgb) / 40%); color:var(--text-on-dark); border-color:var(--muted-dark-2);
 color-scheme:dark;
}
.site-subpage .site-inner .bl-field::placeholder { color:var(--muted-dark); opacity:1; }
.site-subpage .site-inner option { background:var(--navy-950); color:var(--text-on-dark); }
.site-subpage .site-inner input:is([type=checkbox],[type=radio]) { background-color:rgb(var(--navy-950-rgb) / 40%); border-color:var(--cyan-300); accent-color:var(--cyan-500); }
.site-subpage .site-inner :is(.text-red-600,.text-red-700,.text-red-800,.bl-field-error) { color:var(--danger-on-dark); }
.site-subpage .site-inner :focus-visible { outline-color:var(--cyan-300); }
.site-subpage .site-alert { background:rgb(var(--cyan-300-rgb) / 8%); border-color:rgb(var(--cyan-300-rgb) / 45%); color:var(--text-on-dark); }
.site-subpage .site-alert-warning { background:rgb(var(--warning-rgb) / 12%); border-color:rgb(var(--warning-rgb) / 55%); color:var(--warning-on-dark); }
.site-subpage .site-alert-danger { background:rgb(var(--danger-rgb) / 12%); border-color:rgb(var(--danger-rgb) / 55%); color:var(--danger-on-dark); }
.site-subpage .site-alert-success { background:rgb(var(--success-rgb) / 10%); border-color:rgb(var(--success-rgb) / 50%); color:var(--success-on-dark); }
.site-subpage .prose { --tw-prose-body:var(--text-on-dark); --tw-prose-headings:var(--white); --tw-prose-links:var(--cyan-300); --tw-prose-bold:var(--white); --tw-prose-counters:var(--muted-dark); --tw-prose-bullets:var(--cyan-300); --tw-prose-hr:rgb(var(--white-rgb) / 12%); --tw-prose-quotes:var(--text-on-dark); --tw-prose-quote-borders:var(--cyan-300); --tw-prose-code:var(--text-on-dark); --tw-prose-th-borders:rgb(var(--white-rgb) / 24%); --tw-prose-td-borders:rgb(var(--white-rgb) / 12%); color:var(--text-on-dark); line-height:1.75; }
.site-subpage .prose :is(h2,h3) { margin-top:1.5em; margin-bottom:.65em; }
.site-subpage .prose h3 { line-height:1.25; }
.site-subpage .prose :is(p,ul,ol) { margin-top:1em; margin-bottom:1em; }
.site-subpage .prose :is(th,td) { color:var(--text-on-dark); border-color:rgb(var(--white-rgb) / 12%); }
.site-subpage .site-card-plain { background:transparent; padding:0; border:0; box-shadow:none; }
.site-subpage .site-faq { padding:24px; }
.site-shell .site-faq summary { color:var(--white); }
.site-shell .site-faq-indicator { color:var(--cyan-300); }
.site-shell .site-faq-answer { color:var(--text-on-dark); line-height:1.75; }
.site-shell .site-faq-answer a { text-decoration:underline; }
.site-shell .site-faq-answer :is(ul,ol) { padding-left:24px; }
.site-shell .site-faq-answer ul { list-style:disc; }
.site-shell .site-faq-answer ol { list-style:decimal; }
.site-shell .site-faq { border-radius:18px; padding:22px 26px; background:rgb(var(--white-rgb) / 6%); border:1px solid rgb(var(--white-rgb) / 12%); backdrop-filter:blur(14px); }
.site-shell .ring,.site-shell .reach-visual,.site-shell .site-banner-art,.site-shell .sub-banner-con > img,.site-shell .site-main [aria-hidden=true] { pointer-events:none; }
.site-shell .site-banner-row > :first-child { min-width:0; }
.site-shell .site-banner-row h1:not(:has(> .blue-text,> .grad)) { max-width:none; }
.site-subpage .site-faq p { color:var(--text-on-dark); line-height:1.75; }
.site-subpage .site-table-region { margin-top:24px; }
.site-subpage .site-table-region table { margin:0; width:100%; table-layout:fixed; border-collapse:collapse; }
.site-subpage .site-table-region caption { padding:20px 16px; text-align:left; color:var(--white); caption-side:top; }
.site-subpage .site-table-region :is(th,td) { color:var(--text-on-dark); border-color:rgb(var(--white-rgb) / 12%); vertical-align:top; overflow-wrap:anywhere; word-break:normal; }
.site-subpage .site-table-region thead { background:rgb(var(--white-rgb) / 6%); }
.site-subpage .site-table-region thead th { color:var(--white); }
.site-cell-label { display:none; }
@media(max-width:600px) {
 .site-subpage .site-inner { padding-left:16px; padding-right:16px; }
 .site-subpage .site-table-stacked table,
 .site-subpage .site-table-stacked tbody { display:block; width:100%; }
 .site-subpage .site-table-stacked thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .site-subpage .site-table-stacked caption { display:block; }
 .site-subpage .site-table-stacked tbody tr { display:block; padding:12px 4px; border-top:1px solid rgb(var(--white-rgb) / 12%); }
 .site-subpage .site-table-stacked tbody :is(th,td) { display:block; width:auto; padding:8px 12px; border:0; text-align:left; }
 .site-subpage .site-table-stacked .site-cell-label { display:block; color:var(--muted-dark); font-size:14px; font-weight:600; margin-bottom:4px; }
}

.site-subpage .site-inner :is(.bg-surface-white,.bg-sky-100) { background:rgb(var(--white-rgb) / 6%); color:var(--text-on-dark); border-color:rgb(var(--white-rgb) / 12%); }

.site-subpage .site-check-list li::before { color:var(--cyan-300); }
.site-subpage .site-booking label:has(input[type=radio]:checked),

.site-subpage .site-inner :is(h5,h6) { font-family:"Space Grotesk",sans-serif; text-transform:none; }

/* Central configurator cards; large white button text meets AA on cyan-500. */
.site-shell .v2-home .cta.package-booking { background:var(--cyan-500)!important; color:var(--white); font-size:20px; font-weight:700; }
.site-shell .site-extra-card { border-radius:24px; padding:24px 28px; color:var(--white); text-decoration:none; display:grid; grid-template-rows:20px 64px 42px auto; gap:8px; height:100%; }
.site-shell .site-extra-card h3 { font-size:24px; line-height:1.3; margin:0; }
.site-shell .site-extra-eyebrow,.site-shell .site-extra-description { color:var(--muted-dark); font-size:14px; }
.site-shell .site-extra-price { font-size:30px; line-height:1.4; }
.site-shell a.site-extra-card:focus-visible { outline:2px solid var(--cyan-300); outline-offset:4px; }

.site-shell .site-extra-grid { grid-auto-rows:1fr; }

/* Decorative campaign delivery: fixed tile geometry, compositor-only motion. */
.site-shell .site-campaign-preview { grid-row:span 2; min-height:360px; }
.site-shell .site-dispatch-art { position:relative; flex:1; min-height:0; margin:6px 0; }
.site-shell .site-dispatch-art svg { position:absolute; inset:0; display:block; width:100%; height:100%; overflow:hidden; }
.site-shell .site-dispatch-source { fill:rgb(var(--white-rgb) / 6%); stroke:rgb(var(--white-rgb) / 12%); }
.site-shell .site-dispatch-envelope { fill:none; stroke:var(--white); stroke-width:2; }
.site-shell .site-dispatch-muted { fill:rgb(var(--white-rgb) / 25%); }
.site-shell .site-dispatch-lit,.site-shell .site-dispatch-flight { opacity:0; }
.site-shell [data-motion-mode=static] .site-dispatch-lit[data-static-lit] { opacity:1; }
.site-shell .site-dispatch-halo { fill:var(--cyan-300); opacity:.3; }
.site-shell .site-dispatch-bright { fill:var(--white); filter:drop-shadow(0 0 3px var(--cyan-300)); }
.site-shell .site-dispatch-flight { fill:var(--white); stroke:var(--cyan-300); stroke-width:.6; }
.site-shell .site-dispatch-flight path { fill:none; }
.site-shell .site-dispatch-track { height:10px; border-radius:999px; background:rgb(var(--white-rgb) / 20%); overflow:hidden; }
.site-shell [data-dispatch-bar] { height:100%; background:var(--white); transform:scaleX(1); transform-origin:left; border-radius:inherit; }
.site-shell .site-dispatch-status-line { display:flex; justify-content:space-between; align-items:center; gap:12px; font-weight:600; line-height:1.4; }
.site-shell [data-dispatch-label] { display:block; }
.site-shell [data-dispatch-percent] { flex-shrink:0; }
.site-shell .site-dispatch-chip { background:rgb(var(--white-rgb) / 15%); border-radius:999px; padding:5px 10px; }
@media(max-width:600px) { .site-shell .site-campaign-preview { grid-row:auto; } }

/* Contact company details stay compact and independent of the form height. */
.site-subpage .site-contact-grid { align-items:start; }
.site-subpage .site-contact-info { align-self:start; display:grid; gap:16px; height:auto; }
.site-subpage .site-contact-info > img { width:156px; height:auto; }
.site-subpage .site-contact-info h2 { font-size:24px; line-height:1.2; margin:0; }
.site-subpage .site-contact-info address { margin-top:16px; display:grid; gap:16px; }
.site-subpage .site-contact-info address > p { margin:0; }
.site-subpage .site-contact-info > p,
.site-subpage .site-contact-info > div { margin-top:0; }
.site-subpage .site-contact-info .site-card-plain > a { margin-top:16px; }
@media(min-width:1024px) { .site-subpage .site-contact-info { position:sticky; top:24px; } }

/* Shared website hero type scale and collision-free chart footer. */
.site-shell { --site-hero-title-size:var(--fs-h1); }
.site-shell .v2-home .site-hero-title { font-size:var(--site-hero-title-size); }
.site-shell .site-hero-title > span { display:block; }
@media(max-width:600px) { .site-shell .v2-home .site-hero-title { letter-spacing:-.072em; } }
.site-shell .reach-visual-footer { position:absolute; left:0; right:0; bottom:10px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.site-shell .reach-price-card [x-text=price] { white-space:nowrap; }
.site-shell .reach-price-card { flex-shrink:0; }
.site-shell .reach-suppression-card { min-width:0; }
.site-shell .reach-suppression-card > svg { flex-shrink:0; }
@media(min-width:1200px) { .site-shell .reach-suppression-card { flex-shrink:0; } .site-shell .reach-suppression-card > span:last-child { white-space:nowrap; font-size:var(--fs-13)!important; } }

@media(max-width:600px) {
 .site-shell .reach-visual-footer > div { padding:12px 10px!important; min-width:0; }
 .site-shell .reach-price-card .g { font-size:24px!important; }
 .site-shell .reach-suppression-card { gap:6px!important; }
 .site-shell .reach-suppression-card > span:last-child { font-size:12px!important; }
}

/* Central public typography; section titles and subpage H1 share a scale. */
.site-shell { --fs-h1:clamp(38px,calc(31.84858px + 1.577287vw),48px); --fs-h2:30px; --fs-h3:24px; --fs-cta:32px; --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-15:15px; --fs-16:16px; --fs-18:18px; --fs-19:19px; --fs-20:20px; --fs-22:22px; --fs-26:26px; --fs-28:28px; --fs-30:30px; --fs-32:32px; --fs-34:34px; --fs-44:44px; --fs-64:64px; --fs-84:84px; }
@media(min-width:601px) { .site-shell { --fs-h2:34px; --fs-cta:38px; } }
@media(min-width:1280px) { .site-shell { --fs-h1:59px; --fs-h2:39px; --fs-cta:44px; } }
.site-shell .site-type-12 { font-size:var(--fs-12); }
.site-shell .site-type-13 { font-size:var(--fs-13); }
.site-shell .site-type-14 { font-size:var(--fs-14); }
.site-shell .site-type-15 { font-size:var(--fs-15); }
.site-shell .site-type-16 { font-size:var(--fs-16); }
.site-shell .site-type-18 { font-size:var(--fs-18); }
.site-shell .site-type-19 { font-size:var(--fs-19); }
.site-shell .site-type-20 { font-size:var(--fs-20); }
.site-shell .site-type-22 { font-size:var(--fs-22); }
.site-shell .site-type-24 { font-size:var(--fs-h3); }
.site-shell .site-type-26 { font-size:var(--fs-26); }
.site-shell .site-type-28 { font-size:var(--fs-28); }
.site-shell .site-type-30 { font-size:var(--fs-30); }
.site-shell .site-type-32 { font-size:var(--fs-32); }
.site-shell .site-type-34 { font-size:var(--fs-34); }
.site-shell .site-type-44 { font-size:var(--fs-44); }
.site-shell .site-type-64 { font-size:var(--fs-64); }
.site-shell .site-type-84 { font-size:var(--fs-84); }
.site-shell .site-main :is(h1,h2,.site-heading) { font-size:var(--fs-h2); line-height:1.1; }
.site-shell .site-main .site-hero-title { font-size:var(--fs-h1); line-height:1.08; }
.site-shell .site-main .site-cta-heading { font-size:var(--fs-cta); line-height:1.1; }
.site-shell .site-main .site-contact-info h2 { font-size:var(--fs-h3); line-height:1.2; }
/* Keep a highlighted second phrase on its own line without changing the text. */
.site-shell { --site-split-heading-width:960px; }
.site-shell .site-main :is(h1,h2) > :is(.grad,.blue-text) { display:block; width:fit-content; max-width:100%; }
.site-shell .v2-home h2:has(> .grad) { max-width:var(--site-split-heading-width); }

.site-shell .site-shop-measurement { margin-top:16px; border-radius:28px; }
.site-shell .site-measurement-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:20px 0 0; }
.site-shell .site-measurement-grid h4 { margin:0 0 8px; line-height:1.25; }
.site-shell .site-measurement-grid p { color:var(--muted-dark); line-height:1.6; }
@media(max-width:600px) { .site-shell .site-measurement-grid { grid-template-columns:1fr; } }

/* Shared website booking stepper. */
.site-shell .site-stepper { display:flex; flex-wrap:nowrap; gap:10px; max-width:100%; overflow-x:auto; padding:4px 2px 12px; list-style:none; }
.site-shell .site-stepper-item { position:relative; flex:none; display:flex; align-items:center; gap:8px; white-space:nowrap; border-radius:14px; border:1px solid rgb(var(--white-rgb) / 12%); background:rgb(var(--white-rgb) / 6%); padding:10px 14px; color:var(--muted-dark); font-size:14px; }
.site-shell .site-stepper-item[aria-current=step] { background:var(--cyan-500); color:var(--white); font-size:20px; font-weight:700; }
.site-shell .site-stepper-item[data-step-completed] { color:var(--text-on-dark); }
.site-shell .site-step-check { color:var(--cyan-300); font-weight:700; }
.site-shell .site-step-summary { color:var(--muted-dark); margin:0 0 8px; }
.site-shell .site-stepper:focus-visible { outline:3px solid var(--cyan-300); outline-offset:3px; }
.site-shell .site-booking :is(input[type=radio],input[type=checkbox]) { accent-color:var(--cyan-500); }

.site-shell .site-booking :is(.bl-field,fieldset) { min-width:0; max-width:100%; }
.site-shell .site-booking .grid > * { min-width:0; }
.site-shell .site-inner .bl-button { max-width:100%; white-space:normal; text-align:center; }

/* Shared navigation sits above all page stacking contexts; dialog uses the browser top layer. */
.site-shell .site-main { position:relative; z-index:var(--z-base); }
.site-shell .reach-visual .fl { z-index:var(--z-raised); }
.site-shell .z-50[role=dialog] { z-index:var(--z-modal); }
.site-shell .site-desktop-nav,.site-shell .v2-nav-cta { white-space:nowrap; flex-shrink:0; }
.site-shell .site-menu-trigger { display:none; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 8px; color:var(--white); background:transparent; border:0; border-radius:14px; cursor:pointer; font-weight:600; }
.site-shell .site-menu-overlay { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; color:var(--white); background:transparent; z-index:var(--z-overlay); overscroll-behavior:contain; }
.site-shell .site-menu-overlay::backdrop { background:rgb(var(--navy-950-rgb) / 96%); backdrop-filter:blur(14px); }
.site-shell .site-menu-panel { margin-left:auto; width:min(440px,calc(100% - 32px)); min-height:100%; padding:32px 24px; background:linear-gradient(rgb(var(--white-rgb) / 6%),rgb(var(--white-rgb) / 6%)),rgb(var(--navy-950-rgb) / 96%); border-left:1px solid rgb(var(--white-rgb) / 12%); }
.site-shell .site-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.site-shell .site-menu-heading h2 { font-size:32px; margin:0; }
.site-shell .site-menu-close { display:flex; align-items:center; justify-content:center; width:48px; height:48px; border:1px solid rgb(var(--white-rgb) / 12%); border-radius:14px; color:var(--white); background:rgb(var(--white-rgb) / 6%); cursor:pointer; }
.site-shell .site-menu-panel nav { display:flex; flex-direction:column; gap:8px; }
.site-shell .site-menu-panel nav a { display:flex; align-items:center; min-height:56px; padding:8px 12px; border-radius:14px; color:var(--white); font-size:24px; font-weight:600; text-decoration:none; }
.site-shell .site-menu-panel nav a:hover { background:rgb(var(--white-rgb) / 6%); }
.site-shell .site-menu-booking { width:100%; min-height:56px; margin-top:32px; }
@media(max-width:1199px) { .site-shell .site-desktop-nav { display:none; } .site-shell .site-menu-trigger { display:inline-flex; } }
@media(min-width:901px) and (max-width:1100px) { .site-shell .v2-home #top { grid-template-columns:1fr!important; gap:32px!important; } }

/* Central native radio/checkbox cards; :checked controls visuals without JavaScript. */
.site-shell .booking-choice-grid,.site-shell .booking-extras-grid { display:grid; gap:20px; grid-template-columns:1fr; }
.site-shell .booking-included { color:var(--muted-dark); margin:0 0 24px; }
.site-shell .bl-choice-card { position:relative; display:flex; min-width:0; min-height:320px; border:2px solid rgb(var(--white-rgb) / 12%); border-radius:24px; background:rgb(var(--white-rgb) / 6%); color:var(--white); cursor:pointer; transition:transform .15s,border-color .15s; }
.site-shell .bl-choice-input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; z-index:var(--z-raised); cursor:inherit; }
.site-shell .bl-choice-content { position:relative; display:flex; flex-direction:column; width:100%; padding:64px 20px 24px; border-radius:22px; gap:16px; }
.site-shell .bl-choice-title { font-family:'Space Grotesk',sans-serif; font-size:24px; line-height:1.2; font-weight:700; }
.site-shell .bl-choice-price { display:flex; align-items:baseline; gap:6px; font-family:'Space Grotesk',sans-serif; font-size:36px; line-height:1.1; font-weight:700; white-space:nowrap; }
.site-shell .bl-choice-price small { font:400 14px/1.6 Inter,sans-serif; color:var(--muted-dark); }
.site-shell .bl-choice-copy { color:var(--muted-dark); font-size:16px; line-height:1.6; }
.site-shell .bl-choice-markers { position:absolute; top:16px; right:16px; display:flex; align-items:center; gap:8px; }
.site-shell .bl-choice-recommended { padding:4px 12px; border-radius:999px; font-size:20px; line-height:1.2; font-weight:700; background:var(--navy-950); color:var(--cyan-300); }
.site-shell .bl-choice-check { display:none; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:var(--cyan-300); color:var(--navy-950); }
.site-shell .bl-choice-card:has(.bl-choice-input:checked) { background:var(--gradient-primary); border-color:var(--cyan-300); box-shadow:0 0 24px color-mix(in srgb,var(--cyan-500) 25%,transparent); }
.site-shell .bl-choice-card:has(.bl-choice-input:checked) .bl-choice-content { background:color-mix(in srgb,var(--navy-950) 25%,transparent); }
.site-shell .bl-choice-card:has(.bl-choice-input:checked) :is(.bl-choice-copy,.bl-choice-price small) { color:var(--white); }
.site-shell .bl-choice-card:has(.bl-choice-input:checked) .bl-choice-recommended { background:var(--cyan-500); color:var(--white); }
.site-shell .bl-choice-card:has(.bl-choice-input:checked) .bl-choice-check { display:flex; }
.site-shell .bl-choice-card:has(.bl-choice-input:focus-visible) { outline:3px solid var(--cyan-300); outline-offset:4px; }
.site-shell .bl-choice-card:not(:has(.bl-choice-input:disabled)):hover { transform:translateY(-2px); border-color:var(--cyan-300); }
.site-shell .bl-choice-card:has(.bl-choice-input:disabled) { cursor:not-allowed; color:var(--muted-dark); }
.site-shell .bl-choice-card:has(.bl-choice-input[aria-invalid=true]) { border-color:var(--danger); }
@media(min-width:601px) { .site-shell .booking-choice-grid,.site-shell .booking-extras-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1200px) { .site-shell .booking-choice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }

.site-shell .bl-choice-details { display:flex; flex-direction:column; gap:16px; }

.site-booking .site-alert-danger { background:color-mix(in srgb,var(--danger) 12%,transparent); border-color:var(--danger); color:var(--white); }

/* Document-specific long-text typography. */
.site-shell.site-subpage .site-inner .prose-legal h2 { font-size:26px; line-height:1.3; margin-top:1.5em; }
.site-shell.site-subpage .site-inner .prose-legal h3 { font-size:21px; line-height:1.4; }
.site-shell.site-subpage .site-inner .legal-version-line { margin:16px 0 32px; font-size:13px; line-height:1.6; color:var(--muted-dark-2); }
.site-shell.site-subpage .site-inner .legal-version-line a { color:inherit; text-decoration:underline; display:inline-flex; min-height:44px; align-items:center; }
.site-shell details > summary.list-none::-webkit-details-marker { display:none; }

/* Wrapped text links retain a continuous clickable box, including their center. */
.site-shell .site-main p a,.site-shell .site-legal li > a { display:inline-block; }
.site-shell .site-desktop-nav a:hover { color:var(--cyan-300); background:rgb(var(--white-rgb) / 6%); border-radius:var(--radius-control); }
.site-shell .v2-footer a:hover { text-decoration:underline; color:var(--cyan-300); }
.site-shell .v2-home { --site-section-space:calc(var(--spacing) * 16); }
.site-shell .v2-home .site-section-start { padding-top:var(--site-section-space)!important; }
.site-shell .v2-home section.site-anniversary { width: calc(100% - var(--spacing) * 12); max-width: calc(1200px - var(--spacing) * 12); display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 3fr); align-items: center; gap: 36px; padding: 36px!important; margin: var(--site-section-space) auto 0; border-radius: 28px; }
.site-anniversary-art { position: relative; text-align: center; }
.site-anniversary-number { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(100px, 12vw, 160px); letter-spacing: -.06em; line-height: 1.1; background: linear-gradient(90deg, var(--cyan-500), var(--cyan-300)); background-clip: text; color: transparent; }
.site-anniversary-sparks { position: absolute; inset: 0; width: 100%; height: 100%; }
.site-anniversary-icon { display: inline-block; width: 32px; height: 32px; vertical-align: middle; }
.site-shell .v2-home .site-anniversary-copy p { color: var(--muted-dark); font-size: 18px; line-height: 1.6; margin: 16px 0 24px; }
.site-anniversary-copy .cta { color: var(--white); }
@media (max-width: 600px) {
 .site-shell .v2-home { --site-section-space:calc(var(--spacing) * 12); }
 .site-shell .v2-home section.site-anniversary { width: calc(100% - var(--spacing) * 10); grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px!important; }
 .site-anniversary-art { width: 180px; margin: auto; }
 .site-anniversary-copy .cta { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: no-preference) {
 .site-anniversary.is-visible .site-anniversary-sparks { animation: anniversary-sparks 900ms ease-out 1; }
 @keyframes anniversary-sparks { from { opacity: 0; transform: scale(.7) rotate(-8deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
}
