/* Shared customer-facing shell. Article pages deliberately do not load this file. */
.ui-refresh {
  --ui-navy: #0a1f35;
  --ui-ink: #17344b;
  --ui-muted: #526779;
  --ui-blue: #087bb5;
  --ui-blue-hover: #07628f;
  --ui-line: #dce5ec;
  --ui-surface: #f5f8fb;
  --ui-width: 1180px;
  background: #fff;
  color: var(--ui-ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
.ui-refresh *, .ui-refresh *::before, .ui-refresh *::after { box-sizing: border-box; }
.ui-refresh :focus-visible { outline: 3px solid var(--ui-blue); outline-offset: 4px; }
.ui-refresh [hidden] { display: none !important; }
.ui-refresh .container { width: min(var(--ui-width), calc(100% - 48px)); max-width: var(--ui-width); margin-inline: auto; }
.ui-refresh > header {
  background: #fff;
  border-bottom: 1px solid var(--ui-line);
  box-shadow: none;
  backdrop-filter: none;
  color: var(--ui-ink);
}
.ui-refresh > header .nav { min-height: 76px; max-width: var(--ui-width); margin-inline: auto; gap: 28px; }
.ui-refresh .brand { flex: none; }
.ui-refresh .brand-logo { width: 172px; max-width: 172px; height: auto; }
.ui-refresh .nav-links { gap: 30px; }
.ui-refresh .nav-links a { color: var(--ui-ink); font-size: 1rem; font-weight: 500; text-decoration: none; }
.ui-refresh .nav-links a:hover { color: var(--ui-blue); }
.ui-refresh .nav-links a::after { content: none; }
.ui-refresh .nav-links a[aria-current="page"] { color: var(--ui-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 8px; }
.ui-refresh .nav-links .nav-signin { color: var(--ui-muted); font-size: .94rem; }
.ui-refresh .nav-phone { color: var(--ui-ink); font-size: .94rem; font-weight: 500; }
.ui-refresh .nav-right .nav-book { min-height: 44px; padding: 10px 20px; }
.ui-refresh .btn {
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 8px;
  font-family: var(--sans);
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  max-width: 100%;
  box-shadow: none;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.ui-refresh .btn:hover { transform: none; box-shadow: none; }
.ui-refresh .btn-primary { background: var(--ui-blue); border: 1px solid var(--ui-blue); color: #fff; }
.ui-refresh .btn-primary:hover { background: var(--ui-blue-hover); border-color: var(--ui-blue-hover); color: #fff; }
.ui-refresh .btn-ghost { background: transparent; border: 1px solid #bdcbd6; color: var(--ui-navy); }
.ui-refresh .btn-ghost:hover { background: #edf5fa; border-color: var(--ui-blue); color: var(--ui-navy); }
.ui-refresh .mobile-nav { position: relative; }
.ui-refresh .mobile-nav summary { width: 46px; height: 46px; }
.ui-refresh .mobile-nav-panel { position: absolute; left: auto; right: 0; top: calc(100% + 12px); width: 320px; max-width: calc(100vw - 48px); padding: 12px; border: 1px solid var(--ui-line); border-radius: 12px; background: #fff; box-shadow: 0 12px 36px #0a1f3517; }
.ui-refresh .mobile-nav-panel a { min-height: 48px; color: var(--ui-ink); border-radius: 6px; }
.ui-refresh .mobile-nav-panel a:hover { background: var(--ui-surface); color: var(--ui-blue); }
.ui-refresh .mobile-nav-panel .btn-primary { color: #fff; }
.ui-refresh .mobile-nav-panel .btn-primary:hover { color: #fff; background: var(--ui-blue-hover); }
.ui-refresh > footer { background: var(--ui-navy); color: #c8d5e0; border: 0; padding: 48px 0 24px; }
.ui-refresh .footer-top { grid-template-columns: 1.15fr 1.3fr .85fr 1.05fr; gap: 36px; padding-bottom: 40px; border-bottom: 0; }
.ui-refresh .footer-brand { text-align: left; }
.ui-refresh .footer-logo { width: 168px; margin: 0; }
.ui-refresh .footer-brand p { max-width: 26ch; color: #a9bdcc; margin-inline: 0; }
.ui-refresh .footer-col { min-width: 0; }
.ui-refresh > footer h3 { font-family: var(--sans); font-size: .95rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: #fff; }
.ui-refresh > footer a { color: #c8d5e0; text-decoration: none; }
.ui-refresh > footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.ui-refresh > footer p, .ui-refresh > footer li { font-size: .94rem; line-height: 1.75; }
.ui-refresh .footer-bottom { border-top: 1px solid #ffffff24; color: #a9bdcc; font-size: .8rem; }
.ui-refresh .footer-legal { color: #a9bdcc; }
.ui-refresh .footer-legal a { font-size: .8rem; }
.ui-refresh > footer a::after { content: none; }
.ui-refresh .business-announcement { background: #eaf4fa; color: var(--ui-navy); border-bottom: 1px solid var(--ui-line); font-size: .9rem; }
.ui-refresh .privacy-banner { border: 1px solid var(--ui-line); background: #fff; color: var(--ui-ink); border-radius: 12px; box-shadow: 0 8px 30px #0a1f351a; }
.ui-refresh .privacy-banner a { color: #07628f; font-weight: 600; }
.ui-refresh .privacy-actions button { min-height: 44px; border-radius: 7px; border-color: #bfceda; color: #07628f; font-weight: 600; }
.ui-refresh .privacy-actions button[data-privacy-action="accept"] { background: #087bb5; border-color: #087bb5; color: #fff; }
.ui-refresh .privacy-actions button:focus-visible { outline: 3px solid var(--ui-blue); outline-offset: 3px; }
.ui-refresh .privacy-actions button:hover { box-shadow: none; border-color: #087bb5; }
@media (max-width: 1000px) {
  .ui-refresh > header .nav { gap: 20px; }
  .ui-refresh .nav-links { gap: 20px; }
  .ui-refresh .footer-top { grid-template-columns: 1.2fr .9fr 1fr; gap: 32px; }
  .ui-refresh .footer-brand { grid-column: 1 / -1; }
  .ui-refresh .footer-brand p { max-width: 42ch; }
  .ui-refresh .footer-brand .footer-logo { margin: 0; }
  .ui-refresh .footer-col:nth-child(n) { order: initial; }
}
@media (max-width: 860px) {
  .ui-refresh .brand-logo { width: 132px; max-width: 132px; }
}
@media (max-width: 760px) {
  .ui-refresh .container { width: calc(100% - 40px); }
  .ui-refresh > header .nav { min-height: 68px; padding-block: 8px; }
  .ui-refresh .btn { padding-inline: 18px; }
  .ui-refresh .mobile-nav-panel { max-width: calc(100vw - 40px); }
}
@media (max-width: 560px) {
  .ui-refresh > header .nav { gap: 12px; }
  .ui-refresh .brand-logo { width: 124px; max-width: 124px; }
  .ui-refresh .nav-right { gap: 10px; }
  .ui-refresh .nav-right .nav-phone { font-size: 12px; gap: 5px; }
  .ui-refresh .nav-right .nav-phone svg { width: 17px; height: 17px; }
  .ui-refresh .mobile-nav summary { width: 42px; height: 44px; min-width: 42px; min-height: 44px; padding: 8px; border-radius: 7px; }
  .ui-refresh > footer { padding-top: 44px; }
  .ui-refresh .footer-top { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
  .ui-refresh .footer-col { grid-column: 1 / -1; }
  .ui-refresh .footer-col:nth-child(2) ul,
  .ui-refresh .footer-col:nth-child(3) ul { columns: 2; column-gap: 20px; }
  .ui-refresh .footer-col li { break-inside: avoid; margin: 0 0 8px; }
  .ui-refresh .footer-col a { min-height: 32px; padding-block: 4px; }
  .ui-refresh .footer-legal nav { gap: 8px 20px; }
  .ui-refresh .footer-legal a { min-height: 32px; padding-block: 4px; }
}
@media (max-width: 370px) {
  .ui-refresh .brand-logo { width: 108px; max-width: 108px; }
  .ui-refresh .nav-right .nav-phone { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .ui-refresh *, .ui-refresh *::before, .ui-refresh *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
