/* Shared page components. Client-neutral defaults; override colors in site-pages-theme.css. */
.site-pages [data-sp-slot]:empty {
  display:none;
}
.site-pages {
  --sp-text: #202020;
  --sp-accent: #777777;
  --sp-accent-light: #dddddd;
  --sp-background: #fafafa;
  --sp-border: #dddddd;
  --sp-muted: #595959;
  --sp-link: #444444;
  --sp-focus: #2672cb;
  --sp-preview-background: #eeeeee;
  --sp-preview-text: #494949;
  --sp-header-background: #101010;
  --sp-surface-dark: #242424;
  --sp-eyebrow: #505050;
  --sp-hero-text: #eeeeee;
  --sp-button-text: #191919;
  --sp-accent-hover: #eeeeee;
  --sp-ghost-border: #dddddd;
  --sp-ghost-hover: #232323;
  --sp-surface-tinted: #f0f0f0;
  --sp-border-soft: #e5e5e5;
  --sp-surface-hover: #f5f5f5;
  --sp-accent-text: #555555;
  --sp-surface-comparison: #e7e7e7;
  --sp-on-dark: #f6f6f6;
  --sp-card-hover: #202020;
  --sp-white: #ffffff;
  --sp-nav-background: #eeeeee;
  --sp-label: #555555;
  --sp-black: #000000;
  --sp-overlay-start: rgba(0,0,0,.8);
  --sp-overlay-middle: rgba(0,0,0,.48);
  --sp-overlay-end: rgba(0,0,0,.25);
  --sp-ghost-background: rgba(0,0,0,.24);
  --sp-hero-button-shadow: rgba(0,0,0,.26);
  --sp-hero-ghost-border: rgba(255,255,255,.22);
  --sp-hero-ghost-fill: rgba(255,255,255,.06);
  --sp-hero-ghost-border-hover: rgba(255,255,255,.34);
  --sp-hero-ghost-fill-hover: rgba(255,255,255,.1);
}
.site-pages, .site-pages * {
  box-sizing:border-box;
}
.site-pages {
  margin:0;
  background:var(--sp-background);
  color:var(--sp-text);
  font:17px/1.75 Arial,Helvetica,sans-serif;
}
.site-pages a {
  color:var(--sp-link);
  text-underline-offset:4px;
}
.site-pages a:focus-visible,
.site-pages summary:focus-visible,
.site-pages [tabindex]:focus-visible {
  outline:3px solid var(--sp-focus);
  outline-offset:5px;
}
.site-pages .wrap {
  width:min(1100px,calc(100% - 48px));
  margin:auto;
}
.site-pages .preview-bar {
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  justify-content:center;
  background:var(--sp-preview-background);
  color:var(--sp-preview-text);
  padding:9px 20px;
  font-size:12px;
}
.site-pages .preview-bar a {
  margin-left:20px;
}
.site-pages .brand {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:23px max(24px,calc((100vw - 1200px)/2));
  background:var(--sp-header-background);
  color:var(--sp-white);
}
.site-pages .brand>a:first-child {
  font:22px/1.4 Georgia,serif;
  letter-spacing:2px;
  text-decoration:none;
  color:var(--sp-white);
}
.site-pages .brand small {
  display:block;
  color:var(--sp-accent-light);
  font:9px/1.5 Arial,sans-serif;
  letter-spacing:2.4px;
}
.site-pages .brand .contact-link {
  font-size:13px;
  color:var(--sp-accent-light);
}
.site-pages .hero {
  position:relative;
  min-height:560px;
  display:grid;
  align-items:center;
  background:var(--sp-surface-dark);
  color:var(--sp-white);
  isolation:isolate;
}
.site-pages .hero>img,
.site-pages .shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}
.site-pages .shade {
  z-index:-1;
  background:linear-gradient(90deg,var(--sp-overlay-start),var(--sp-overlay-middle) 70%,var(--sp-overlay-end));
}
.site-pages .hero-copy {
  padding:75px 0;
}
.site-pages .eyebrow {
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:2.4px;
  font-weight:700;
  color:var(--sp-eyebrow);
  margin:0 0 18px;
}
.site-pages .hero .eyebrow,
.site-pages .closing .eyebrow {
  color:var(--sp-accent-light);
}
.site-pages h1,
.site-pages h2 {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  letter-spacing:-.025em;
  line-height:1.12;
}
.site-pages h1 {
  font-size:clamp(42px,6.5vw,80px);
  max-width:900px;
  margin:0 0 24px;
}
.site-pages h1 span {
  font-style:italic;
  color:var(--sp-accent-light);
  font-size:.66em;
  padding:0 .22em;
}
.site-pages h2 {
  font-size:clamp(30px,3.5vw,44px);
  max-width:850px;
  margin:0 0 28px;
}
.site-pages .sub {
  font-size:21px;
  color:var(--sp-hero-text);
}
.site-pages .actions {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:32px;
}
.site-pages .button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 23px;
  min-height:48px;
  background:var(--sp-accent-light);
  color:var(--sp-button-text);
  text-decoration:none;
  font-size:12px;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:1.2px;
  border:1px solid var(--sp-accent-light);
}
.site-pages .button:hover {
  background:var(--sp-accent-hover);
}
.site-pages .button.ghost {
  background:var(--sp-ghost-background);
  color:var(--sp-white);
  border-color:var(--sp-ghost-border);
}
.site-pages .button.ghost:hover {
  background:var(--sp-ghost-hover);
}
/* Hero actions follow the established service-page button component. */
.site-pages .hero .button {
  min-height:54px;
  max-width:100%;
  padding:12px 24px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  line-height:1.5;
  text-align:center;
  border:1px solid transparent;
  border-radius:0;
  color:var(--sp-white);
  background:var(--sp-black);
  box-shadow:0 16px 28px var(--sp-hero-button-shadow);
  transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
}
.site-pages .hero .button:hover,
.site-pages .hero .button:focus-visible {
  color:var(--sp-white);
  background:var(--sp-black);
  transform:translateY(-2px);
}
.site-pages .hero .button.ghost {
  color:var(--sp-white);
  border-color:var(--sp-hero-ghost-border);
  background:var(--sp-hero-ghost-fill);
  box-shadow:none;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.site-pages .hero .button.ghost:hover,
.site-pages .hero .button.ghost:focus-visible {
  border-color:var(--sp-hero-ghost-border-hover);
  background:var(--sp-hero-ghost-fill-hover);
}
.site-pages .hero .button:active {
  transform:translateY(0);
}
@media(prefers-reduced-motion:reduce) {
  .site-pages .hero .button,
  .site-pages .hero .button:hover,
  .site-pages .hero .button:focus-visible {
    transition:none;
    transform:none;
  }
}
.site-pages .breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:13px;
  padding-top:19px;
  padding-bottom:19px;
  font-size:12px;
  color:var(--sp-muted);
}
.site-pages .breadcrumb a {
  color:inherit;
}
.site-pages .section {
  padding:74px 0;
  scroll-margin-top:20px;
}
.site-pages .section .copy {
  max-width:930px;
}
.site-pages p {
  margin:0 0 20px;
}
.site-pages .tinted {
  background:var(--sp-surface-tinted);
  border-block:1px solid var(--sp-border-soft);
}
.site-pages .intro {
  padding-top:45px;
}
.site-pages .city-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin-top:34px;
}
.site-pages .city-links>a {
  padding:24px 27px;
  border:1px solid var(--sp-border);
  border-top:3px solid var(--sp-accent);
  text-decoration:none;
  background:var(--sp-white);
}
.site-pages .city-links>a:hover {
  background:var(--sp-surface-hover);
}
.site-pages .city-links>a>span {
  display:block;
  font-size:12px;
  color:var(--sp-muted);
}
.site-pages .city-links strong {
  display:block;
  font:32px/1.5 Georgia,serif;
  color:var(--sp-text);
}
.site-pages .city-links strong span {
  float:right;
  color:var(--sp-accent-text);
}
.site-pages .table-scroll {
  overflow-x:auto;
  margin:30px 0 5px;
}
.site-pages table {
  border-collapse:collapse;
  min-width:660px;
  width:100%;
  font-size:14px;
  line-height:1.65;
  background:var(--sp-background);
}
.site-pages caption {
  text-align:left;
  margin-bottom:14px;
  font-size:15px;
  color:var(--sp-muted);
}
.site-pages td,
.site-pages th {
  padding:20px;
  border:1px solid var(--sp-border);
  text-align:left;
  vertical-align:top;
}
.site-pages thead {
  background:var(--sp-surface-dark);
  color:var(--sp-white);
}
.site-pages thead th {
  font-weight:500;
}
.site-pages tbody th {
  width:24%;
  font-weight:600;
  background:var(--sp-surface-comparison);
}
.site-pages .faq details {
  border-top:1px solid var(--sp-border);
  padding:20px 0;
}
.site-pages .faq details:last-child {
  border-bottom:1px solid var(--sp-border);
}
.site-pages summary {
  cursor:pointer;
  font-weight:600;
  font-size:18px;
}
.site-pages details p {
  margin:16px 0 0;
  color:var(--sp-muted);
}
.site-pages .closing {
  background:var(--sp-text);
  color:var(--sp-on-dark);
}
.site-pages .closing a:not(.button) {
  color:var(--sp-accent-light);
}
.site-pages .closing .button {
  margin-top:16px;
}
.site-pages footer {
  padding-top:40px;
  padding-bottom:36px;
  font-size:14px;
}
.site-pages .fine {
  font-size:12px;
  color:var(--sp-muted);
  max-width:700px;
  margin-top:22px;
}
.site-pages .skip {
  position:absolute;
  left:-10000px;
}
.site-pages .skip:focus {
  left:12px;
  top:12px;
  background:var(--sp-white);
  padding:12px;
  z-index:5;
}
@media(max-width:650px) {
  .site-pages .brand {
    padding:20px 24px;
  }
  .site-pages .brand .contact-link {
    display:none;
  }
  .site-pages .hero {
    min-height:480px;
  }
  .site-pages .hero-copy {
    padding:58px 0;
  }
  .site-pages .hero .eyebrow {
    font-size:10px;
    letter-spacing:1.5px;
  }
  .site-pages .section {
    padding:48px 0;
  }
  .site-pages .wrap {
    width:calc(100% - 36px);
  }
  .site-pages .city-links {
    grid-template-columns:1fr;
  }
  .site-pages .preview-bar span {
    display:none;
  }
  .site-pages .preview-bar a {
    margin-left:0;
  }
  .site-pages .sub {
    font-size:18px;
  }
  .site-pages td,
  .site-pages th {
    padding:14px;
  }
}
@media(prefers-reduced-motion:reduce) {
}
@media print {
  .site-pages .preview-bar,
  .site-pages .brand,
  .site-pages .actions,
  .site-pages .skip {
    display:none;
  }
  .site-pages .hero {
    min-height:250px;
  }
  .site-pages .section {
    padding:28px 0;
  }
  .site-pages .table-scroll {
    overflow:visible;
  }
  .site-pages table {
    min-width:0;
  }
  .site-pages .wrap {
    width:100%;
  }
  .site-pages .hero-copy {
    padding:24px;
  }
  .site-pages .closing {
    background:var(--sp-white);
    color:var(--sp-black);
  }
  .site-pages details {
    break-inside:avoid;
  }
}
.site-pages .city-links>a {
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.site-pages .city-links>a strong,
.site-pages .city-links>a span {
  transition:color .2s ease;
}
.site-pages .city-links>a:hover,
.site-pages .city-links>a:focus-visible {
  background:var(--sp-card-hover);
  border-color:var(--sp-accent);
}
.site-pages .city-links>a:hover strong,
.site-pages .city-links>a:focus-visible strong {
  color:var(--sp-white);
}
.site-pages .city-links>a:hover span,
.site-pages .city-links>a:focus-visible span {
  color:var(--sp-accent-light);
}
.site-pages .city-links .card-action {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  margin-top:15px;
  color:var(--sp-link);
  text-decoration:underline;
  text-underline-offset:4px;
}
.site-pages .jump-nav {
  background:var(--sp-nav-background);
  border-block:1px solid var(--sp-border);
}
.site-pages .jump-nav>.wrap {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  align-items:center;
  padding-block:18px;
}
.site-pages .jump-nav span {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-weight:700;
}
.site-pages .jump-nav a {
  font-size:13px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
}
.site-pages .city-heading h2 {
  font-size:clamp(40px,5vw,60px);
  margin-bottom:13px;
}
.site-pages .landmarks {
  font-size:13px;
  color:var(--sp-muted);
  letter-spacing:.3px;
  margin-bottom:34px;
}
.site-pages .city-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.site-pages .city-layout figure {
  margin:0;
}
.site-pages .city-layout img {
  width:100%;
  height:auto;
  display:block;
}
.site-pages .city-layout figcaption {
  font-size:12px;
  color:var(--sp-muted);
  padding-top:12px;
  line-height:1.6;
}
.site-pages .city-subtitle {
  font:400 28px/1.25 Georgia,serif;
  margin:0 0 20px;
}
.site-pages .city-layout p {
  font-size:16px;
}
.site-pages .decision-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:30px 0;
  gap:0 36px;
}
.site-pages .decision-grid>div {
  border-top:1px solid var(--sp-border);
  padding:21px 0;
}
.site-pages .decision-grid dt {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:var(--sp-label);
  font-weight:bold;
  margin-bottom:9px;
}
.site-pages .decision-grid dd {
  margin:0;
  font-size:15px;
  line-height:1.8;
}
.site-pages .dark-button {
  background:var(--sp-text);
  color:var(--sp-white);
  border-color:var(--sp-text);
}
.site-pages .dark-button:hover,
.site-pages .dark-button:focus-visible {
  background:var(--sp-accent-light);
  color:var(--sp-button-text);
  border-color:var(--sp-accent-light);
}
.site-pages .button:focus-visible {
  background:var(--sp-accent-hover);
}
.site-pages .ghost:focus-visible {
  color:var(--sp-white);
  background:var(--sp-ghost-hover);
}
.site-pages .comparison {
  background:var(--sp-surface-comparison);
}
.site-pages .table-hint {
  display:none;
  font-size:12px;
  color:var(--sp-muted);
}
.site-pages .section-lead {
  max-width:650px;
  color:var(--sp-muted);
}
@media(max-width:800px) {
  .site-pages .city-layout {
    grid-template-columns:1fr;
    gap:26px;
  }
  .site-pages .city-layout figure {
    max-width:600px;
  }
  .site-pages .table-hint {
    display:block;
  }
}
@media(max-width:550px) {
  .site-pages .decision-grid {
    grid-template-columns:1fr;
  }
  .site-pages .jump-nav>.wrap {
    gap:4px 20px;
  }
  .site-pages .jump-nav span {
    flex-basis:100%;
  }
}
@media(prefers-reduced-motion:reduce) {
  .site-pages .city-links>a,
  .site-pages .city-links>a strong,
  .site-pages .city-links>a span {
    transition:none;
  }
}
@media print {
  .site-pages .jump-nav {
    display:none;
  }
  .site-pages .city-layout {
    grid-template-columns:1fr 1fr;
  }
  .site-pages .decision-grid {
    grid-template-columns:1fr 1fr;
  }
}
