/* Shared presentation only: no order, upload or editor state selectors. */
body.thm-site { font-family:var(--font); min-height:100vh; display:flex; flex-direction:column; }
.thm-site #main { flex:1; }
/* Display belongs to statements. Legacy display utilities on task text use the companion. */
.thm-site :is(h1,h2) { font-family:var(--font-display); font-weight:700; letter-spacing:-.045em; line-height:1.06; text-wrap:balance; }
.thm-site h1 { font-size:var(--type-title); font-weight:800; }
.thm-site h2 { font-size:var(--type-section); }
.thm-site h3 { font:700 22px/1.25 var(--font-body); letter-spacing:-.02em; }
.thm-site :is(.font-display,.font-condensed):not(h1):not(h2) { font-family:var(--font-body); }
.thm-site :is(h1,h2)>:is(span,strong) { font-family:inherit; font-weight:inherit; letter-spacing:inherit; }
.thm-site :is(p,dd,blockquote) { line-height:1.6; }
.thm-site :is(button,input,select,textarea) { font-family:var(--font-body); }
.thm-site a[href^="mailto:"],.thm-site .prose a { overflow-wrap:anywhere; }
.thm-site :is(button,.btn-primary,.btn-outline) { text-transform:none; font-family:var(--font-body); font-weight:700; }
.thm-site :is(.btn-primary,.btn-outline) { border-radius:9px; box-shadow:none; min-height:44px; letter-spacing:.035em; }
.thm-site .btn-primary:hover,.thm-site .btn-outline:hover { transform:none; }
.thm-site :is(input,select,textarea) { font-size:16px; }
.thm-site .wrap { width:calc(100% - 112px); max-width:1224px; margin-inline:auto; }
.thm-site .skip { position:fixed; left:12px; top:12px; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; z-index:100; }
.thm-site .skip:focus { width:auto; height:auto; clip-path:none; padding:12px; background:white; color:#0b1f3a; }
.thm-site .site-header,.thm-site .site-footer { background:#edf2f5; color:#0b1f3a; }
.thm-site .site-header { position:relative; z-index:20; border:0; }
.thm-site .nav-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:86px; }
.thm-site .site-header .wrap.nav-inner { width:calc(100% - 40px); max-width:none; }
.thm-site .brand { display:inline-flex; align-items:center; gap:12px; color:#0b1f3a; text-decoration:none; flex-shrink:0; }
/* Frame the supplied PNG's transparent margins without altering the artwork. */
.thm-site .brand-logo { display:block; width:250px; height:64px; max-width:none; object-fit:cover; object-position:center; }
.thm-site .brand-mark { position:relative; display:grid; place-items:center; width:35px; height:35px; border:1px solid #b82c28; border-radius:50%; }
.thm-site .brand-mark:before { content:''; position:static; width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:10px solid #bc302b; margin-left:3px; background:none; }
.thm-site .brand-mark:after { content:none; }
.thm-site .brand-name { font:600 21px/1.05 var(--font-display); letter-spacing:.012em; text-transform:uppercase; }
.thm-site .brand-name small { display:block; font:600 9px/1 var(--font); letter-spacing:.2em; margin-bottom:6px; }
.thm-site .main-nav { display:flex; align-items:center; gap:25px; }
.thm-site .main-nav>a { display:inline-flex; align-items:center; min-height:44px; font:700 13px/1.3 var(--font-body); letter-spacing:.025em; text-transform:uppercase; color:#0b1f3a; text-decoration:none; white-space:nowrap; }
.thm-site .main-nav>a:hover { color:#a72723; }
.thm-site .main-nav>a[aria-current] { text-decoration:underline; text-decoration-color:#bc302b; text-underline-offset:8px; }
.thm-site :is(.site-header,.site-footer) a:focus-visible,.thm-site .menu-toggle:focus-visible { outline:3px solid #0d6ead; outline-offset:4px; }
.thm-site .site-header .button { display:inline-flex; justify-content:space-between; align-items:center; gap:25px; padding:10px 18px; min-height:44px; border:1px solid transparent; border-radius:9px; background:#bc302b; color:white; font:700 14px/1.35 var(--font-body); letter-spacing:.015em; text-transform:none; }
.thm-site .site-header .button:hover { color:white; background:#a72723; }
.thm-site .site-header .button>span { font:400 22px/1 var(--font); }
.thm-site .menu-toggle { display:none; padding:11px 14px; min-height:44px; color:#0b1f3a; border:1px solid #97abba; border-radius:8px; background:transparent; font:700 13px/1.3 var(--font-body); letter-spacing:.025em; }
.thm-site .private-help { font:700 13px/1.4 var(--font-body); text-transform:none; min-height:44px; display:flex; align-items:center; }
.thm-site .site-footer { padding:42px 0; border-top:1px solid #c9d4de; }
.thm-site .footer-row { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.thm-site .footer-meta { color:#4e6478; text-align:right; font-size:14px; line-height:1.8; }
.thm-site .footer-meta>p { margin:4px 0; color:#4e6478; font-size:14px; }
.thm-site .footer-meta nav { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px 18px; font-size:12px; }
.thm-site .footer-meta a { color:#0b1f3a; text-decoration:none; }
.thm-site .footer-meta a:hover { text-decoration:underline; text-underline-offset:4px; }
.thm-site .design-credits { max-width:800px; padding-block:55px; }
.thm-site .design-credits h1 { font-size:46px; margin:30px 0 22px; }
.thm-site .design-credits h2 { font-size:26px; margin-bottom:10px; }
.thm-site .design-credits p { font-size:16px; line-height:1.8; color:#4e6478; }
.thm-site .design-credits ul { list-style:none; margin:20px 0; padding:0; }
.thm-site .design-credits li { padding:24px 0; border-bottom:1px solid #c5d0d9; }
.thm-site .design-credits a { color:#204f82; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1150px) {
 .thm-site .wrap { width:calc(100% - 64px); }
 .thm-site .main-nav { gap:18px; }
}
@media(max-width:980px) {
 .thm-site .nav-inner { flex-wrap:wrap; gap:0; }
 .thm-site .menu-toggle { display:block; }
 .thm-site .menu-toggle[aria-expanded=true] { background:#d7e5ef; }
 .thm-site .main-nav { display:none; flex-basis:100%; padding:14px 0 24px; gap:8px 24px; flex-wrap:wrap; }
 .thm-site .main-nav.open { display:flex; }
 .thm-site .main-nav .button { margin-left:auto; }
}
@media(max-width:650px) {
 .thm-site .wrap { width:calc(100% - 40px); }
 .thm-site .nav-inner { min-height:80px; }
 .thm-site .brand-logo { width:225px; height:58px; }
 .thm-site .brand-name { font-size:18px; }
 .thm-site .brand-mark { width:30px; height:30px; }
 .thm-site .main-nav { display:none; }
 .thm-site .main-nav.open { display:grid; grid-template-columns:1fr 1fr; }
 .thm-site .main-nav .button { grid-column:1/-1; width:100%; margin:6px 0 0; }
 .thm-site .footer-row { flex-direction:column; align-items:flex-start; gap:24px; }
 .thm-site .footer-meta { text-align:left; }
 .thm-site .footer-meta nav { justify-content:flex-start; }
 .thm-site .private-help { font-size:12px; max-width:80px; text-align:right; }
}
@media(max-width:360px) { .thm-site .wrap { width:calc(100% - 32px); } .thm-site .brand-name { font-size:16px; } .thm-site .brand-logo { width:190px; height:50px; } }
@media(max-width:650px) { .thm-site .site-header .wrap.nav-inner { width:calc(100% - 24px); } }

/* Older informational templates share the approved reading palette. Form handlers stay intact. */
body.thm-legacy-marketing {
 --thm-navy:237 242 245; --thm-dark:247 249 251; --thm-white:11 31 58;
 --thm-muted:64 88 109; --thm-border:180 198 213;
 background:#edf2f5; color:#0b1f3a;
}
.thm-legacy-marketing #main :is(p,li) { font-size:16px; line-height:1.8; }
.thm-legacy-marketing #main :is(h1,h2) { letter-spacing:-.045em; line-height:1.06; }
.thm-legacy-marketing #main h1 { font-size:var(--type-title); }
.thm-legacy-marketing #main h2 { font-size:var(--type-section); }
.thm-legacy-marketing #main h3 { font:700 22px/1.25 var(--font-body); letter-spacing:-.02em; }
.thm-legacy-marketing #main .prose :is(h2,h3,h4) { font-family:var(--font-body); font-weight:700; line-height:1.25; letter-spacing:-.025em; }
.thm-legacy-marketing #main .prose h2 { font-size:28px; }
.thm-legacy-marketing #main .prose :is(p,li) { font-size:17px; line-height:1.7; }
.thm-legacy-marketing #main :is(.text-xs,[class*="text-[11px]"],[class*="text-[10px]"]) { font-size:12px; letter-spacing:.04em; }
.thm-legacy-marketing #main :is([class*="text-thm-white/"],[class*="text-thm-muted/"]) { color:#40586d; }
.thm-legacy-marketing #main :is(.btn-primary,.bg-thm-red) { color:#fff; }
.thm-legacy-marketing #main .bg-thm-red [class*="text-thm-white"] { color:#fff; }
.thm-legacy-marketing #main .bg-thm-red [class*="text-thm-muted"] { color:#e1e9f0; }
.thm-legacy-marketing #main :is(.btn-primary,.btn-outline) { min-height:49px; border-radius:9px; letter-spacing:.035em; }
.thm-legacy-marketing #main :is(.rounded-md,.rounded-sm) { border-radius:10px; }
.thm-legacy-marketing #main [class*="tracking-"]:not(h1):not(h2):not(h3):not(.tabular-nums) { letter-spacing:.035em; }
.thm-legacy-marketing #main :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #0d6ead; outline-offset:4px; }
.thm-legacy-marketing .thm-contact label>span { font-size:14px; }
.thm-legacy-marketing #main :is(input,select,textarea) { font:400 16px/1.6 var(--font); color:#0b1f3a; }
.thm-legacy-marketing .prose { --tw-prose-body:#40586d; --tw-prose-headings:#0b1f3a; --tw-prose-links:#174e7a; --tw-prose-bold:#0b1f3a; }

/* Mobile order action: one price, one destination, safe-area room at the footer. */
.thm-mobile-order { display:none; }
.thm-site .thm-family-quote { margin:20px 0; padding:0 0 0 16px; border-left:3px solid currentColor; }
.thm-site .thm-family-quote blockquote { margin:0; font:400 16px/1.7 var(--font-body); }
.thm-site .thm-family-quote figcaption { margin-top:8px; font:600 13px/1.6 var(--font-body); }
.thm-site .thm-outside-reviews a, .thm-site .thm-editor-credit a { text-decoration:underline; text-underline-offset:3px; }
.thm-mobile-order[hidden] { display:none !important; }
@media (max-width:767px) {
  body.thm-has-order-bar { padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
  .thm-mobile-order { display:block; position:fixed; z-index:20; left:0; right:0; bottom:0; padding:12px 20px calc(12px + env(safe-area-inset-bottom, 0px)); border-top:1px solid #afc2d1; background:#edf2f5; box-shadow:0 -4px 24px #0b1f3a12; }
  .thm-site .thm-mobile-order[data-thm-mobile-order] .button { width:100%; min-height:52px; display:flex; justify-content:center; align-items:center; gap:12px; font:700 16px/1.3 var(--font-body); background:#bc302b; color:#fff; border-radius:8px; }
  .thm-site .thm-mobile-order[data-thm-mobile-order] .button:focus-visible { outline:3px solid #176a9d; outline-offset:3px; }
  .thm-site .thm-mobile-order[data-thm-mobile-order] .button :is(span,strong) { font:inherit; letter-spacing:inherit; }
  html:has(.thm-has-order-bar) { scroll-padding-bottom:100px; }
}

/* Long editorial titles and desktop navigation need room for the wider brand voice. */
@media(min-width:981px) and (max-width:1150px) {
 .thm-site .nav-inner { gap:18px; }
 .thm-site .main-nav { gap:14px; }
 .thm-site .main-nav>a:not(.button) { font-size:12px; letter-spacing:.01em; }
}
@media(max-width:480px) {
 .thm-site.single-thm_guide #main h1 { font-size:clamp(28px,8.75vw,40px); }
 .thm-site .design-credits h1 { font-size:32px; }
}

/* Align desktop header content with the hero's centered reading column. */
@media(min-width:981px) {
 .thm-site .site-header .wrap.nav-inner { width:calc(100% - 112px); max-width:1224px; }
 /* Align the visible mark rather than its faint outer alpha fringe:
    artwork begins at x=110 in the 1774px PNG, or 15.502px at 250px wide. */
 .thm-site .site-header .brand { margin-left:-15.502px; }
}
@media(min-width:981px) and (max-width:1150px) {
 .thm-site .site-header .wrap.nav-inner { width:calc(100% - 72px); }
}
