/* Home visual refresh. Load after style.css; deliberately scoped to its body class. */
html:has(> body.visual-refresh.paused) { scroll-behavior: auto; }
.visual-refresh {
  --blue: #142c35;
  --blue-dark: #24434d;
  --ink: #142c35;
  --muted: #53616a;
  --paper: #f7f4ed;
  --wash: #efe9dd;
  --border: #d3cbbd;
  --gold: #e8bc72;
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.visual-refresh .hero-art-frame,
.visual-refresh .hero-art-frame::after,
.visual-refresh .floating-note { animation: none !important; }
.visual-refresh [hidden],
.visual-refresh .mobile-nav[hidden] { display: none !important; }
.visual-refresh .reveal,
.visual-refresh .reveal.visible { opacity: 1; transform: none; transition: none; }
.visual-refresh.motion-ready .reveal { transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.visual-refresh.motion-ready .reveal:not(.visible) { opacity: 0; transform: translateY(18px); }
.visual-refresh.motion-ready .reveal.visible { opacity: 1; transform: translateY(0); }
.visual-refresh.motion-ready .hero-copy { animation: pl-copy-enter .7s cubic-bezier(.2,.7,.2,1) both; }
.visual-refresh.motion-ready .hero-visual { animation: pl-panel-enter .85s cubic-bezier(.2,.7,.2,1) .09s backwards; }
.visual-refresh .shell { max-width: 1280px; padding-left: 48px; padding-right: 48px; }
.visual-refresh main > section[id],
.visual-refresh details[id] { scroll-margin-top: 12px; }
.visual-refresh :is(a, button, input, select, summary):focus-visible {
  outline: 3px solid #8a5b13;
  outline-offset: 5px;
}
.visual-refresh .skip-link { background: #fff; color: var(--ink); }
.visual-refresh .preview-note {
  background: var(--ink);
  color: #fff8e9;
  padding: 10px 20px;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: .02em;
}
.visual-refresh .status-dot { display: inline-block; width: 6px; height: 6px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--gold); }
.visual-refresh .status-separator { padding: 0 8px; color: #a6b5b4; }
.visual-refresh .header {
  background: #f7f4edf5;
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(16px);
  padding: 16px max(48px, calc((100vw - 1184px) / 2));
  gap: 28px;
}
.visual-refresh .brand { font-size: 15px; line-height: 1.35; letter-spacing: .045em; gap: 11px; }
.visual-refresh .brand-logo { width: 52px; height: 52px; }
.visual-refresh .brand-bottom { font-size: 10px; letter-spacing: .12em; color: #66533a; }
.visual-refresh .header nav { gap: 28px; font-size: 14px; font-weight: 500; }
.visual-refresh .header nav a { padding: 10px 0; }
.visual-refresh .menu-toggle { min-width: 44px; min-height: 44px; padding: 8px; }
.visual-refresh .mobile-nav { background: var(--paper); top: 85px; border-color: var(--border); padding: 15px 32px; }
.visual-refresh .mobile-nav a { min-height: 44px; display: flex; align-items: center; font-size: 16px; }
.visual-refresh .button {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--ink);
  min-height: 52px;
  padding: 16px 23px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  gap: 22px;
  box-shadow: none;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.visual-refresh .button:hover {
  background: #f0c987;
  border-color: #f0c987;
  color: var(--ink);
  transform: none;
  box-shadow: 0 4px 16px #142c3510;
}
.visual-refresh .button-small { min-height: 46px; padding: 12px 18px; font-size: 14px; }
.visual-refresh .button:disabled { opacity: .6; transform: none; }
.visual-refresh .eyebrow {
  color: #71552d;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .095em;
  line-height: 1.5;
  margin-bottom: 20px;
}
.visual-refresh h2 {
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--ink);
  font-size: clamp(38px, 3.7vw, 50px);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -.045em;
}
.visual-refresh h3 { letter-spacing: -.025em; }
.visual-refresh .serif { font-family: Georgia, 'Times New Roman', serif; letter-spacing: -.035em; font-style: italic; }
.visual-refresh .hero {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 64px;
  padding-top: 64px;
  padding-bottom: 64px;
  min-height: auto;
  overflow: visible;
  align-items: center;
}
.visual-refresh .hero-copy { min-width: 0; padding: 0; }
.visual-refresh .hero .eyebrow { font-size: 12px; white-space: normal; max-width: none; gap: 10px; margin-bottom: 24px; }
.visual-refresh .line { width: 24px; flex: 0 0 24px; background: #997541; }
.visual-refresh .hero h1 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 76px;
  font-weight: 400;
  line-height: .99;
  letter-spacing: -.055em;
  color: var(--ink);
}
.visual-refresh .hero h1 .blue-word { color: var(--ink); }
.visual-refresh .hero h1 .serif {
  display: block;
  font-size: 32px;
  line-height: 1.25;
  font-style: italic;
  letter-spacing: -.035em;
  white-space: normal;
  margin-top: 18px;
  color: #52605e;
}
.visual-refresh .hero-description { font-size: 17px; line-height: 1.75; max-width: 52ch; color: var(--muted); margin: 24px 0 28px; }
.visual-refresh .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; }
.visual-refresh .hero-cta { font-size: 15px; padding: 17px 24px; }
.visual-refresh .hero-secondary { font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #8b7760; padding: 12px 0; }
.visual-refresh .hero-assurances { display: flex; flex-wrap: wrap; gap: 9px 18px; padding: 0; margin: 23px 0 0; list-style: none; color: var(--muted); font-size: 13px; line-height: 1.5; }
.visual-refresh .hero-assurances > * { display: inline-flex; align-items: center; gap: 6px; }
.visual-refresh .hero-assurances svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--ink); }
.visual-refresh .microcopy { font-size: 13px; color: var(--muted); margin-top: 16px; }
.visual-refresh .hero-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 100%;
  height: 510px;
  margin: 0;
  padding: 24px 26px 20px;
  background: var(--ink);
  border: 1px solid #26434a;
  border-radius: 200px 200px 24px 24px;
  overflow: hidden;
  perspective: none;
  box-shadow: none;
  transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .25s ease, box-shadow .25s ease;
  isolation: isolate;
}
.visual-refresh .hero-visual::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at var(--glow-x, 50%) var(--glow-y, 26%), #e8bc721c, transparent 58%); pointer-events: none; }
.visual-refresh .hero-visual::after { content: ''; position: absolute; inset: 12px; z-index: -1; border: 1px solid #e8bc7221; border-radius: inherit; pointer-events: none; }
.visual-refresh .emblem-label { position: relative; z-index: 1; color: #efd09c; font-size: 13px; letter-spacing: .12em; line-height: 1.4; text-align: center; margin: 2px 0 12px; }
.visual-refresh .hero-art-frame {
  position: static;
  inset: auto;
  width: 270px;
  height: 270px;
  max-width: 100%;
  flex: 0 0 auto;
  transform: none;
  transform-style: flat;
  filter: none;
}
.visual-refresh .hero-art-frame::after { content: none; }
.visual-refresh .hero-art-frame img { width: 270px; height: 270px; max-width: 100%; max-height: 100%; object-fit: contain; aspect-ratio: 1; border-radius: 50%; mix-blend-mode: normal; clip-path: circle(49.1% at 50% 50%); }
.visual-refresh .hero-panel-copy { text-align: center; margin-top: 15px; max-width: 33ch; }
.visual-refresh .hero-panel-copy .hero-panel-title { font: 400 28px/1.2 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; color: #fff9ed; margin: 0; }
.visual-refresh .hero-panel-copy p:not(.hero-panel-title) { color: #d0d9d6; font-size: 14px; line-height: 1.6; margin-top: 9px; }
.visual-refresh .hero-panel-route { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px; width: 100%; margin-top: 14px; padding-top: 14px; border-top: 1px solid #ffffff2b; color: #efd09c; font-size: 13px; line-height: 1.5; }
.visual-refresh .hero-panel-route > * { white-space: nowrap; }
.visual-refresh .hero-panel-route i { font-style: normal; color: #9fbbb5; }
.visual-refresh .visual-wash { display: none; }
.visual-refresh .support-band {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  width: calc(100% - 96px);
  max-width: 1184px;
  margin: 0 auto 32px;
  padding: 26px 30px;
  border: 1px solid #d7c8ac;
  border-radius: 10px;
  background: #efe8d9;
}
.visual-refresh .support-icon { display: grid; place-items: center; width: 48px; height: 48px; color: var(--ink); background: #e5d4b5; border-radius: 50%; }
.visual-refresh .support-icon svg { width: 26px; height: 26px; }
.visual-refresh .support-copy { min-width: 0; }
.visual-refresh .support-copy .eyebrow { margin: 0 0 7px; font-size: 13px; }
.visual-refresh .support-copy h2 { font: 400 25px/1.25 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.visual-refresh .support-copy p { color: #4c585d; font-size: 15px; line-height: 1.65; max-width: 72ch; margin-top: 8px; }
.visual-refresh .support-link { display: inline-flex; align-items: center; gap: 16px; border: 1px solid #8a7c66; border-radius: 6px; padding: 12px 17px; min-height: 48px; font-size: 14px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.visual-refresh .support-link:hover { background: #e5dac6; }
.visual-refresh .trust-strip { grid-template-columns: 1fr 1fr 1.15fr 1.15fr; gap: 24px; border-top: 0; padding-top: 17px; padding-bottom: 26px; }
.visual-refresh .trust-strip > div { gap: 13px; }
.visual-refresh .trust-strip strong { font-family: Georgia, 'Times New Roman', serif; font-size: 31px; letter-spacing: -.045em; color: var(--ink); }
.visual-refresh .trust-strip span { font-size: 13px; color: var(--muted); line-height: 1.5; }
.visual-refresh .trust-strip > p { display: block; font-size: 13px; padding-left: 20px; line-height: 1.6; }
.visual-refresh .section { padding-top: 80px; padding-bottom: 80px; }
.visual-refresh .section-heading { text-align: left; margin-bottom: 40px; max-width: 760px; }
.visual-refresh .section-heading .eyebrow { margin-bottom: 18px; }
.visual-refresh .section-heading > p:last-child { font-size: 16px; line-height: 1.75; margin-top: 22px; color: var(--muted); }
.visual-refresh .plan-grid { max-width: none; gap: 26px; align-items: stretch; }
.visual-refresh .plan,
.visual-refresh .plan.individual { background: #fffefa; border: 1px solid #b7beb9; border-radius: 12px; box-shadow: none; padding: 34px; transform: none; transition: border-color .18s, box-shadow .18s; }
.visual-refresh .plan:hover { transform: none; border-color: #60736f; box-shadow: 0 6px 20px #142c3508; }
.visual-refresh .plan-heading { margin-bottom: 21px; gap: 16px; align-items: center; }
.visual-refresh .plan-symbol { color: #6d5839; font-size: 27px; }
.visual-refresh .badge,
.visual-refresh .blue-badge { font-size: 13px; letter-spacing: .02em; line-height: 1.45; font-weight: 600; color: #4a5d60; background: #edf0e9; padding: 7px 10px; border-radius: 4px; }
.visual-refresh .plan h3 { font: 400 32px/1.2 Georgia, 'Times New Roman', serif; letter-spacing: -.035em; }
.visual-refresh .plan-intro { font-size: 16px; min-height: 79px; max-width: 42ch; line-height: 1.65; margin: 13px 0 24px; color: var(--muted); }
.visual-refresh .price-line { gap: 18px; align-items: center; }
.visual-refresh .price-line strong { font: 400 54px/1.1 Georgia, 'Times New Roman', serif; letter-spacing: -.05em; color: var(--ink); }
.visual-refresh .price-line span { font-size: 13px; color: var(--muted); }
.visual-refresh .plan-rule { background: #d5d8ce; margin: 26px 0 22px; }
.visual-refresh .plan ul { font-size: 16px; gap: 13px; line-height: 1.6; margin-bottom: 28px; flex-grow: 1; }
.visual-refresh .plan li { padding-left: 25px; }
.visual-refresh .plan li::before { color: #3f655b; }
.visual-refresh .plan .button,
.visual-refresh .plan .button.secondary { background: var(--ink); border-color: var(--ink); color: #fff; font-size: 15px; padding: 16px 21px; }
.visual-refresh .plan .button:hover,
.visual-refresh .plan .button.secondary:hover { background: #24434d; border-color: #24434d; color: #fff; }
.visual-refresh .subtle-link { color: #40535b; font-size: 13px; line-height: 1.65; margin-top: 17px; }
.visual-refresh .plan-footnote { font-size: 13px; line-height: 1.7; color: var(--muted); margin-top: 18px; }
.visual-refresh .pricing-benefit { margin: 25px 0 0; text-align: center; font-size: 15px; color: #44575a; line-height: 1.7; }
.visual-refresh .pricing-benefit a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
.visual-refresh .additional { max-width: none; border-color: #cbc5b7; background: #eeeade; border-radius: 10px; padding: 27px 30px; margin-top: 28px; gap: 24px; }
.visual-refresh .additional-icon { color: #6d5839; }
.visual-refresh .additional .eyebrow { font-size: 13px; letter-spacing: .045em; margin-bottom: 9px; }
.visual-refresh .additional h3 { font-size: 22px; }
.visual-refresh .additional p { font-size: 15px; line-height: 1.65; max-width: 64ch; color: var(--muted); }
.visual-refresh .additional-price { gap: 10px; }
.visual-refresh .additional-price strong { font-size: 25px; }
.visual-refresh .additional-price small,
.visual-refresh .additional-price a { font-size: 13px; }
.visual-refresh .fine-print { max-width: none; text-align: left; color: var(--muted); font-size: 13px; line-height: 1.8; margin-top: 21px; }
.visual-refresh .process-section { background: #ebece4; border-color: #d4d8cd; }
.visual-refresh .process-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 80px; }
.visual-refresh .process-heading { top: 120px; }
.visual-refresh .process-heading > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.75; max-width: 39ch; }
.visual-refresh .text-link { font-size: 15px; color: var(--ink); border-color: #8d7957; gap: 18px; line-height: 1.65; }
.visual-refresh .process-progress { display: none; }
.visual-refresh .process-step { gap: 23px; padding-bottom: 38px; }
.visual-refresh .process-step::before { border-color: #bbc8bd; }
.visual-refresh .step-number,
.visual-refresh .process-step.active .step-number { width: 44px; height: 44px; color: var(--ink); background: #fffdf5; border-color: #aebfb2; font-size: 14px; }
.visual-refresh .process-step h3 { font-size: 23px; line-height: 1.35; margin: 6px 0 12px; }
.visual-refresh .process-step p { font-size: 16px; line-height: 1.75; color: var(--muted); }
.visual-refresh .step-tag { font-size: 13px; color: #3f5b50; background: #dbe4d7; margin-top: 15px; padding: 6px 10px; }
.visual-refresh .security-section { background: #fffefa; border-bottom: 1px solid #deddd2; }
.visual-refresh .security-heading { max-width: 760px; margin-bottom: 38px; }
.visual-refresh .security-heading > svg,
.visual-refresh .security-icon { display: block; width: 44px; height: 44px; color: #5b6b5e; margin-bottom: 18px; }
.visual-refresh .security-icon svg { width: 100%; height: 100%; }
.visual-refresh .security-mark { width: 44px; height: 44px; color: #5b6b5e; margin-bottom: 18px; }
.visual-refresh .security-mark svg { display: block; width: 100%; height: 100%; }
.visual-refresh .security-heading .eyebrow { margin-bottom: 16px; }
.visual-refresh .security-heading h2 { max-width: 24ch; }
.visual-refresh .security-heading > p:not(.eyebrow) { margin-top: 20px; max-width: 65ch; font-size: 16px; color: var(--muted); line-height: 1.75; }
.visual-refresh .security-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #c2c9bd; padding-top: 28px; }
.visual-refresh .security-grid article { padding: 0 28px; border-left: 1px solid #d9ddd2; min-width: 0; }
.visual-refresh .security-grid article:first-child { padding-left: 0; border-left: 0; }
.visual-refresh .security-grid article:last-child { padding-right: 0; }
.visual-refresh .security-number { display: inline-block; font: 600 12px/1.6 var(--sans); letter-spacing: .065em; color: #53616a; margin-bottom: 15px; }
.visual-refresh .security-grid h3 { font-size: 20px; line-height: 1.4; letter-spacing: -.02em; margin-bottom: 12px; }
.visual-refresh .security-grid p { font-size: 15px; line-height: 1.75; color: var(--muted); }
.visual-refresh .security-grid a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.visual-refresh .security-detail { display: inline-block; margin-top: 16px; font-size: 14px; line-height: 1.6; padding: 6px 0; }
.visual-refresh .legal-context {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 65px;
  width: calc(100% - 96px);
  max-width: 1184px;
  margin-top: 70px;
  margin-bottom: 70px;
  padding: 42px;
  border: 1px solid #d8d0c1;
  border-radius: 12px;
  background: #f1ede3;
}
.visual-refresh .date-label { color: #6a522e; font-size: 13px; letter-spacing: .055em; }
.visual-refresh .context-copy .large-copy { font-size: 23px; line-height: 1.6; color: var(--ink); }
.visual-refresh .large-copy b { font-weight: 600; }
.visual-refresh .context-copy > p:not(.large-copy) { font-size: 16px; line-height: 1.75; color: var(--muted); margin: 18px 0 22px; }
.visual-refresh .reservation-wrap { background: var(--ink); color: #fff9ed; }
.visual-refresh .reservation-wrap::before { content: none; }
.visual-refresh .reservation { gap: 80px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.visual-refresh .reservation h2 { font-size: 50px; color: #fff9ed; }
.visual-refresh .reservation .eyebrow { color: #efd09c; }
.visual-refresh .reservation-copy > p:not(.eyebrow) { font-size: 16px; color: #d0d9d6; line-height: 1.8; max-width: 42ch; }
.visual-refresh .reservation-promises { gap: 21px; }
.visual-refresh .reservation-promises span { width: 32px; height: 32px; font-size: 13px; color: #efd09c; border-color: #82918d; }
.visual-refresh .reservation-promises p { font-size: 15px; line-height: 1.7; color: #d0d9d6; }
.visual-refresh .reservation-promises b { color: #fff9ed; font-weight: 600; font-size: 16px; }
.visual-refresh .cost-benefit-note { background: #ffffff09; border: 1px solid #ffffff36; border-radius: 8px; padding: 17px 18px; margin-top: 28px; color: #e1e7df; font-size: 14px; line-height: 1.7; }
.visual-refresh .cost-benefit-note p { font-size: 14px; line-height: 1.7; color: #e1e7df; }
.visual-refresh .cost-benefit-note a { color: #f4d49f; text-decoration: underline; text-underline-offset: 4px; }
.visual-refresh .reservation-card { background: #fffefa; border: 1px solid #ece8de; border-radius: 12px; padding: 34px; box-shadow: none; min-width: 0; }
.visual-refresh .reservation-card .eyebrow { color: #71552d; }
.visual-refresh .card-top { font-size: 13px; letter-spacing: .035em; color: var(--muted); gap: 16px; padding-bottom: 17px; margin-bottom: 24px; }
.visual-refresh .reservation-card h3 { color: var(--ink); font: 400 30px/1.25 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.visual-refresh label:not(.check) { font-size: 14px; font-weight: 500; color: #40535b; }
.visual-refresh select,
.visual-refresh input:not([type=checkbox]) { min-height: 48px; border: 1px solid #9eaaa6; background: #fff; color: var(--ink); font-size: 16px; line-height: 1.4; padding: 13px 12px; border-radius: 5px; }
.visual-refresh select { padding-right: 28px; max-width: 100%; }
.visual-refresh .selection-summary { font-size: 14px; color: var(--muted); min-height: 0; margin-top: 12px; }
.visual-refresh .reservation-amount { border-color: var(--border); font-size: 16px; padding: 23px 0; }
.visual-refresh .reservation-amount span > small,
.visual-refresh .reservation-amount strong > small { font-size: 13px; color: var(--muted); }
.visual-refresh .reservation-amount strong { color: var(--ink); font: 400 48px/1 Georgia, 'Times New Roman', serif; letter-spacing: -.04em; }
.visual-refresh .balance { color: var(--muted); font-size: 14px; gap: 20px; margin: 13px 0; align-items: baseline; }
.visual-refresh .balance b { font-weight: 600; color: var(--ink); }
.visual-refresh .reservation-card .button { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.visual-refresh .reservation-card .button:hover { background: #f0c987; border-color: #f0c987; }
.visual-refresh .card-disclaimer { font-size: 13px; color: var(--muted); line-height: 1.75; }
.visual-refresh .reservation-card .subtle-link { font-size: 13px; color: #40535b; }
.visual-refresh .reservation-card .cost-benefit-note { background: #f0eadc; border-color: #d5c9af; color: #40535b; font-size: 14px; padding: 15px; margin-top: 22px; }
.visual-refresh .reservation-card .cost-benefit-note a { color: #624823; }
.visual-refresh .reservation-wrap :is(a, button):focus-visible,
.visual-refresh .closing :is(a, button):focus-visible { outline-color: #f4d49f; }
.visual-refresh .reservation-card :is(a, button, input, select):focus-visible { outline-color: #8a5b13; }
.visual-refresh .faq { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 70px; }
.visual-refresh .faq > div > p:not(.eyebrow) { font-size: 16px; line-height: 1.75; color: var(--muted); }
.visual-refresh .questions { min-width: 0; }
.visual-refresh .questions details { border-color: #c7c9be; padding: 22px 0; }
.visual-refresh .questions details:first-child { padding-top: 0; }
.visual-refresh .questions summary { font-size: 17px; font-weight: 600; gap: 20px; min-height: 44px; }
.visual-refresh .questions summary::after { flex: 0 0 18px; font-size: 25px; }
.visual-refresh .questions details p { font-size: 16px; line-height: 1.8; color: var(--muted); margin-top: 16px; }
.visual-refresh .closing { background: var(--ink); padding: 74px 0 88px; }
.visual-refresh .closing .eyebrow { font-size: 13px; color: #efd09c; }
.visual-refresh .closing h2 { color: #fff9ed; font-size: clamp(44px, 5vw, 64px); line-height: 1.13; }
.visual-refresh .closing .button { margin-top: 30px; }
.visual-refresh .closing .white-button { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.visual-refresh .closing .white-button:hover { background: #f0c987; border-color: #f0c987; }
.visual-refresh .closing-type { color: #ffffff06; bottom: -45px; font-size: clamp(90px, 13vw, 180px); }
.visual-refresh .footer-main { align-items: center; padding-top: 44px; gap: 35px; }
.visual-refresh .footer-main p { color: var(--muted); font-size: 14px; line-height: 1.7; }
.visual-refresh .footer-links { font-size: 14px; color: #40535b; gap: 24px; flex-wrap: wrap; padding: 30px 0; border-color: var(--border); }
.visual-refresh .footer-links a { text-decoration: underline; text-underline-offset: 4px; }
.visual-refresh .footer-bottom { font-size: 13px; color: var(--muted); align-items: center; padding: 22px 0 30px; }
.visual-refresh .motion-toggle { font-size: 13px; color: var(--muted); min-height: 44px; }
.visual-refresh dialog { background: #fffefa; color: var(--ink); border-color: #bdb29d; border-radius: 12px; padding: 38px; }
.visual-refresh dialog:not([open]) { display: none; }
.visual-refresh dialog::backdrop { background: #142c35b8; backdrop-filter: blur(5px); }
.visual-refresh dialog .eyebrow { font-size: 13px; margin-top: 12px; }
.visual-refresh dialog h2 { color: var(--ink); font-size: 34px; }
.visual-refresh dialog > p { color: var(--muted); font-size: 16px; }
.visual-refresh .close { color: var(--ink); width: 44px; height: 44px; right: 7px; top: 4px; }
.visual-refresh .identity-preview { font-size: 14px; line-height: 1.75; background: #f1ebdf; border-color: #d8cab1; }
.visual-refresh .identity-preview span { color: var(--muted); }
.visual-refresh .identity-preview a { color: #5d4829; }
.visual-refresh .check { font-size: 15px; line-height: 1.7; gap: 12px; }
.visual-refresh .check input { width: 18px; height: 18px; margin-top: 5px; }
.visual-refresh .small { font-size: 13px; color: var(--muted); }
.visual-refresh #form-status { font-size: 14px; color: #32594c; }

@media (max-width: 1100px) {
  .visual-refresh .shell { padding-left: 36px; padding-right: 36px; }
  .visual-refresh .header { padding-left: 36px; padding-right: 36px; gap: 18px; }
  .visual-refresh .header nav { gap: 19px; }
  .visual-refresh .header .brand { font-size: 13px; }
  .visual-refresh .header .brand-bottom { font-size: 9px; }
  .visual-refresh .hero { gap: 38px; padding-top: 50px; padding-bottom: 50px; }
  .visual-refresh .hero h1 { font-size: 67px; }
  .visual-refresh .hero h1 .serif { font-size: 30px; }
  .visual-refresh .hero-visual { height: 480px; padding-left: 22px; padding-right: 22px; }
  .visual-refresh .hero-art-frame,
  .visual-refresh .hero-art-frame img { width: 248px; height: 248px; }
  .visual-refresh .hero-panel-copy .hero-panel-title { font-size: 26px; }
  .visual-refresh .support-band,
  .visual-refresh .legal-context { width: calc(100% - 72px); }
  .visual-refresh .support-band { grid-template-columns: 48px minmax(0, 1fr); padding: 26px; gap: 20px; }
  .visual-refresh .support-link { grid-column: 2; justify-self: start; }
  .visual-refresh .trust-strip { grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
  .visual-refresh .trust-strip > p { display: none; }
  .visual-refresh .plan { padding: 28px; }
  .visual-refresh .plan-intro { min-height: 105px; }
  .visual-refresh .process-layout,
  .visual-refresh .reservation,
  .visual-refresh .faq { gap: 45px; }
  .visual-refresh .legal-context { gap: 38px; padding: 35px; }
  .visual-refresh .reservation-card { padding: 27px; }
  .visual-refresh .reservation h2 { font-size: 45px; }
  .visual-refresh .balance { flex-wrap: wrap; gap: 3px 15px; }
  .visual-refresh .additional { align-items: flex-start; }
  .visual-refresh .additional-price { white-space: normal; min-width: 185px; }
}

@media (max-width: 800px) {
  .visual-refresh .header nav { display: none; }
  .visual-refresh .header .brand { font-size: 15px; }
  .visual-refresh .header .brand-bottom { font-size: 10px; }
  .visual-refresh .header > .button { margin-left: auto; }
  .visual-refresh .menu-toggle { display: block; }
  .visual-refresh .hero { gap: 28px; }
  .visual-refresh .hero h1 { font-size: 58px; }
  .visual-refresh .hero h1 .serif { font-size: 28px; }
  .visual-refresh .hero .eyebrow { font-size: 12px; }
  .visual-refresh .hero-description { font-size: 16px; }
  .visual-refresh .hero-actions { gap: 8px 18px; }
  .visual-refresh .hero-visual { height: 440px; border-radius: 145px 145px 20px 20px; padding: 25px 18px 22px; }
  .visual-refresh .hero-art-frame,
  .visual-refresh .hero-art-frame img { width: 205px; height: 205px; }
  .visual-refresh .emblem-label { font-size: 13px; letter-spacing: .07em; }
  .visual-refresh .hero-panel-copy .hero-panel-title { font-size: 24px; }
  .visual-refresh .hero-panel-copy p:not(.hero-panel-title) { font-size: 14px; }
  .visual-refresh .hero-panel-route { gap: 6px; font-size: 13px; }
  .visual-refresh .trust-strip > div { flex-direction: column; align-items: flex-start; gap: 9px; }
  .visual-refresh .plan-grid { gap: 20px; }
  .visual-refresh .plan,
  .visual-refresh .plan.individual { padding: 25px; }
  .visual-refresh .plan-heading { gap: 12px; flex-wrap: wrap; }
  .visual-refresh .plan h3 { font-size: 29px; }
  .visual-refresh .plan-intro { min-height: 132px; }
  .visual-refresh .plan ul { font-size: 15px; }
  .visual-refresh .price-line { flex-wrap: wrap; gap: 8px 13px; }
  .visual-refresh .price-line strong { font-size: 47px; }
  .visual-refresh .price-line span { font-size: 13px; }
  .visual-refresh .additional { flex-wrap: wrap; gap: 18px; }
  .visual-refresh .additional-icon { display: none; }
  .visual-refresh .additional-price { margin-left: 0; align-items: flex-start; }
  .visual-refresh .process-layout,
  .visual-refresh .legal-context,
  .visual-refresh .reservation,
  .visual-refresh .faq { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .visual-refresh .process-heading { position: static; }
  .visual-refresh .process-heading > p:not(.eyebrow) { max-width: 55ch; }
  .visual-refresh .reservation-copy > p:not(.eyebrow) { max-width: 55ch; }
  .visual-refresh .reservation-card { padding: 32px; }
  .visual-refresh .balance { flex-wrap: nowrap; }
  .visual-refresh .footer-main { flex-direction: column; align-items: flex-start; gap: 22px; }
  .visual-refresh .footer-main p { text-align: left; }
}

@media (max-width: 600px) {
  .visual-refresh .shell { padding-left: 24px; padding-right: 24px; }
  .visual-refresh .preview-note { padding: 10px 20px; font-size: 13px; }
  .visual-refresh .header { padding: 12px 22px; gap: 12px; min-height: 76px; }
  .visual-refresh .header .brand { font-size: 14px; letter-spacing: .025em; gap: 9px; }
  .visual-refresh .header .brand-logo { width: 44px; height: 44px; }
  .visual-refresh .header .brand-bottom { font-size: 9px; letter-spacing: .08em; }
  .visual-refresh .header > .button { display: none; }
  .visual-refresh .menu-toggle { margin-left: auto; width: 44px; height: 44px; padding: 9px; font-size: 23px; }
  .visual-refresh .mobile-nav { top: 76px; padding: 12px 24px 18px; gap: 4px; }
  .visual-refresh .hero { grid-template-columns: minmax(0, 1fr); gap: 34px; padding-top: 36px; padding-bottom: 32px; min-height: auto; }
  .visual-refresh .hero .eyebrow { white-space: normal; font-size: 12px; letter-spacing: .065em; margin-bottom: 22px; }
  .visual-refresh .hero h1 { font-size: 58px; line-height: 1; letter-spacing: -.055em; }
  .visual-refresh .hero h1 .serif { font-size: 30px; line-height: 1.2; margin-top: 16px; white-space: normal; }
  .visual-refresh .hero-description { font-size: 16px; line-height: 1.75; margin: 22px 0 24px; max-width: none; }
  .visual-refresh .hero-actions { align-items: center; gap: 10px 20px; }
  .visual-refresh .hero-cta { font-size: 15px; padding: 16px 21px; min-height: 54px; }
  .visual-refresh .hero-secondary { font-size: 14px; }
  .visual-refresh .hero-assurances { font-size: 13px; gap: 8px 14px; margin-top: 17px; }
  .visual-refresh .hero-visual { height: 374px; max-width: 390px; margin: 0 auto; padding: 18px 22px 16px; border-radius: 170px 170px 20px 20px; }
  .visual-refresh .emblem-label { font-size: 13px; letter-spacing: .065em; margin: 0 0 9px; }
  .visual-refresh .hero-art-frame,
  .visual-refresh .hero-art-frame img { width: 180px; height: 180px; }
  .visual-refresh .hero-panel-copy { margin-top: 9px; }
  .visual-refresh .hero-panel-copy .hero-panel-title { font-size: 25px; }
  .visual-refresh .hero-panel-copy p:not(.hero-panel-title) { font-size: 14px; margin-top: 6px; line-height: 1.5; }
  .visual-refresh .hero-panel-route { font-size: 13px; padding-top: 11px; margin-top: 12px; gap: 7px; }
  .visual-refresh .support-band { width: calc(100% - 48px); grid-template-columns: 36px minmax(0, 1fr); gap: 16px; margin-bottom: 24px; padding: 23px 20px; align-items: start; }
  .visual-refresh .support-icon { width: 36px; height: 36px; }
  .visual-refresh .support-icon svg { width: 22px; height: 22px; }
  .visual-refresh .support-copy .eyebrow { font-size: 13px; letter-spacing: .04em; }
  .visual-refresh .support-copy h2 { font-size: 25px; }
  .visual-refresh .support-copy p { font-size: 15px; line-height: 1.7; }
  .visual-refresh .support-link { grid-column: 1 / -1; margin-left: 52px; white-space: normal; font-size: 14px; padding: 11px 14px; }
  .visual-refresh .trust-strip { grid-template-columns: 1fr 1fr 1fr; gap: 15px; padding-top: 8px; padding-bottom: 24px; }
  .visual-refresh .trust-strip strong { font-size: 29px; }
  .visual-refresh .trust-strip span { font-size: 13px; line-height: 1.5; }
  .visual-refresh .section { padding-top: 60px; padding-bottom: 60px; }
  .visual-refresh h2 { font-size: 38px; line-height: 1.16; letter-spacing: -.045em; }
  .visual-refresh .eyebrow { font-size: 13px; letter-spacing: .065em; margin-bottom: 18px; }
  .visual-refresh .section-heading { margin-bottom: 30px; }
  .visual-refresh .section-heading > p:last-child { font-size: 16px; }
  .visual-refresh .section-heading > p:last-child br { display: none; }
  .visual-refresh .plan-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .visual-refresh .plan,
  .visual-refresh .plan.individual { padding: 27px 24px; }
  .visual-refresh .plan-heading { flex-wrap: nowrap; margin-bottom: 20px; align-items: center; }
  .visual-refresh .badge { font-size: 13px; padding: 6px 8px; }
  .visual-refresh .plan h3 { font-size: 31px; }
  .visual-refresh .plan-intro { font-size: 16px; min-height: 0; margin: 13px 0 24px; }
  .visual-refresh .price-line { flex-wrap: nowrap; gap: 14px; }
  .visual-refresh .price-line strong { font-size: 49px; }
  .visual-refresh .plan ul { font-size: 16px; }
  .visual-refresh .plan .button { font-size: 15px; padding: 16px 17px; gap: 10px; }
  .visual-refresh .plan-footnote,
  .visual-refresh .fine-print { font-size: 13px; }
  .visual-refresh .pricing-benefit { text-align: left; font-size: 15px; margin-top: 22px; }
  .visual-refresh .additional { padding: 25px 23px; gap: 17px; }
  .visual-refresh .additional h3 { font-size: 22px; }
  .visual-refresh .additional-price { width: 100%; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
  .visual-refresh .additional-price a { font-size: 14px; }
  .visual-refresh .process-layout,
  .visual-refresh .reservation,
  .visual-refresh .faq { gap: 34px; }
  .visual-refresh .process-heading > p:not(.eyebrow) { font-size: 16px; }
  .visual-refresh .process-step { gap: 16px; padding-bottom: 32px; }
  .visual-refresh .process-step h3 { font-size: 22px; }
  .visual-refresh .process-step p { font-size: 16px; }
  .visual-refresh .step-tag { font-size: 13px; }
  .visual-refresh .security-heading { margin-bottom: 28px; }
  .visual-refresh .security-heading h2 { max-width: none; }
  .visual-refresh .security-grid { grid-template-columns: minmax(0, 1fr); padding-top: 0; }
  .visual-refresh .security-grid article,
  .visual-refresh .security-grid article:first-child,
  .visual-refresh .security-grid article:last-child { border-left: 0; border-top: 1px solid #d9ddd2; padding: 24px 0; }
  .visual-refresh .security-grid article:first-child { border-top: 0; }
  .visual-refresh .security-grid article:last-child { padding-bottom: 0; }
  .visual-refresh .security-number { margin-bottom: 10px; }
  .visual-refresh .security-grid h3 { margin-bottom: 10px; }
  .visual-refresh .legal-context { width: calc(100% - 48px); padding: 28px 23px; margin: 44px auto; gap: 26px; }
  .visual-refresh .legal-context h2 { font-size: 34px; }
  .visual-refresh .context-copy .large-copy { font-size: 22px; }
  .visual-refresh .reservation h2 { font-size: 42px; }
  .visual-refresh .reservation-promises { margin-top: 28px; }
  .visual-refresh .reservation-card { padding: 25px 23px; }
  .visual-refresh .reservation-card h3 { font-size: 29px; }
  .visual-refresh .card-top { font-size: 13px; letter-spacing: .015em; gap: 12px; }
  .visual-refresh .reservation-amount strong { font-size: 43px; }
  .visual-refresh .reservation-amount { gap: 12px; }
  .visual-refresh .balance { font-size: 14px; flex-wrap: wrap; gap: 4px 15px; }
  .visual-refresh .card-disclaimer,
  .visual-refresh .reservation-card .subtle-link { font-size: 13px; }
  .visual-refresh .questions summary { font-size: 16px; }
  .visual-refresh .questions details p { font-size: 16px; }
  .visual-refresh .closing { padding: 59px 0 68px; }
  .visual-refresh .closing h2 { font-size: 43px; }
  .visual-refresh .closing-type { font-size: 90px; bottom: -20px; }
  .visual-refresh .footer-main { padding-top: 36px; }
  .visual-refresh footer .brand { font-size: 14px; }
  .visual-refresh footer .brand-bottom { font-size: 10px; }
  .visual-refresh .footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 22px; font-size: 14px; }
  .visual-refresh .footer-bottom { flex-direction: column; align-items: flex-start; gap: 9px; font-size: 13px; }
  .visual-refresh dialog { padding: 30px 23px; max-height: 90dvh; }
  .visual-refresh dialog h2 { font-size: 30px; }
}

@media (max-width: 360px) {
  .visual-refresh .shell { padding-left: 20px; padding-right: 20px; }
  .visual-refresh .header { padding-left: 18px; padding-right: 18px; }
  .visual-refresh .header .brand { font-size: 13px; gap: 8px; }
  .visual-refresh .header .brand-logo { width: 40px; height: 40px; }
  .visual-refresh .header .brand-bottom { font-size: 9px; letter-spacing: .035em; }
  .visual-refresh .hero h1 { font-size: 50px; }
  .visual-refresh .hero h1 .serif { font-size: 28px; }
  .visual-refresh .hero-visual { height: 374px; padding-left: 16px; padding-right: 16px; }
  .visual-refresh .hero-art-frame,
  .visual-refresh .hero-art-frame img { width: 180px; height: 180px; }
  .visual-refresh .hero-panel-copy .hero-panel-title { font-size: 24px; }
  .visual-refresh .hero-panel-route { gap: 5px; letter-spacing: -.02em; }
  .visual-refresh .support-band { width: calc(100% - 40px); grid-template-columns: minmax(0, 1fr); padding: 22px 20px; gap: 14px; }
  .visual-refresh .support-icon { display: none; }
  .visual-refresh .support-link { grid-column: auto; margin-left: 0; }
  .visual-refresh .trust-strip { gap: 11px; }
  .visual-refresh .trust-strip strong { font-size: 27px; }
  .visual-refresh .trust-strip span { font-size: 13px; }
  .visual-refresh h2 { font-size: 34px; }
  .visual-refresh .plan,
  .visual-refresh .plan.individual { padding: 24px 20px; }
  .visual-refresh .plan-heading { flex-wrap: wrap; gap: 8px 14px; }
  .visual-refresh .plan h3 { font-size: 29px; }
  .visual-refresh .price-line { flex-wrap: wrap; gap: 7px 12px; }
  .visual-refresh .price-line strong { font-size: 47px; }
  .visual-refresh .plan .button { font-size: 14px; padding: 16px 14px; }
  .visual-refresh .legal-context { width: calc(100% - 40px); padding: 26px 20px; }
  .visual-refresh .legal-context h2 { font-size: 32px; }
  .visual-refresh .reservation-card { padding: 24px 20px; }
  .visual-refresh .reservation-amount { flex-wrap: wrap; gap: 16px; }
  .visual-refresh .reservation h2 { font-size: 38px; }
  .visual-refresh .closing h2 { font-size: 38px; }
}

/* Let the narrow emblem panel grow with wrapped copy instead of clipping it. */
@media (max-width: 600px) {
  .visual-refresh .hero-visual { height: auto; min-height: 374px; padding-top: 32px; padding-bottom: 24px; }
  .visual-refresh .emblem-label { display: none; }
  .visual-refresh .hero-visual > * { flex-shrink: 0; }
}

@media (min-width: 1000px) and (max-height: 800px) {
  .visual-refresh .hero { padding-top: 40px; padding-bottom: 44px; }
  .visual-refresh .hero .eyebrow { margin-bottom: 18px; }
  .visual-refresh .hero h1 { font-size: 72px; }
  .visual-refresh .hero h1 .serif { margin-top: 12px; }
  .visual-refresh .hero-description { margin: 21px 0 23px; line-height: 1.7; }
}

.visual-refresh.paused .reveal,
.visual-refresh.paused .reveal:not(.visible) { opacity: 1 !important; transform: none !important; transition: none !important; }
.visual-refresh.paused .hero-copy,
.visual-refresh.paused .hero-visual { animation: none !important; transform: none !important; transition: none !important; }

@keyframes pl-copy-enter {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pl-panel-enter {
  from { opacity: 0; transform: perspective(1000px) translateY(20px) rotateY(-3deg); }
  to { opacity: 1; transform: perspective(1000px) translateY(0) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); }
}

@media (prefers-reduced-motion: reduce) {
  .visual-refresh *,
  .visual-refresh *::before,
  .visual-refresh *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .visual-refresh .reveal,
  .visual-refresh.motion-ready .reveal:not(.visible) { opacity: 1 !important; transform: none !important; }
  .visual-refresh .hero-copy,
  .visual-refresh .hero-visual { transform: none !important; }
}
