@font-face {
  font-family: "Inter";
  src: url("inter-latin.woff2") format("woff2");
  font-weight: 400 800;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #1c1815;
  --dark: #151311;
  --ivory: #f7f3eb;
  --paper: #fffcf6;
  --sand: #eee7da;
  --muted: #675c51;
  --gold: #e4c699;
  --brass: #735633;
  --border: #ded4c4;
  --wrap: 1180px;
  --page-margin: clamp(20px, 5vw, 76px);
  --body-font: Inter, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-padding-top: 100px; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font: 16px/1.65 var(--body-font);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
h1, h2, h3, p, figure { margin: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #a97840; outline-offset: 4px; }
.wrap { width: min(var(--wrap), 100% - var(--page-margin) * 2); margin-inline: auto; }

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 10;
  transform: translateY(-150%);
  background: var(--paper);
  padding: 8px 16px;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--dark);
  color: #f7eee0;
  border-bottom: 1px solid #34302a;
}
.header-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 73px;
  gap: 24px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  color: #f3e8d7;
  font: 780 23px/1.2 var(--body-font);
  letter-spacing: -.07em;
  text-decoration: none;
  white-space: nowrap;
}
.brand-mark {
  position: relative;
  display: inline-block;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: var(--gold);
}
.brand-mark::before {
  content: "";
  position: absolute;
  inset: -2px -4px 4px 5px;
  border-radius: 50%;
  background: var(--dark);
}
.brand-mark::after {
  content: "";
  position: absolute;
  right: 1px;
  top: 3px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--gold);
}
.site-header nav, .site-footer nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 38px); }
.site-header nav a, .site-footer nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #d1c5b5;
  font-size: .9rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}
.site-header nav a:hover, .site-footer nav a:hover { color: var(--gold); }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 10px 19px;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: .95rem;
  line-height: 1.35;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
.button span { font-size: 1.05em; line-height: 1; }
.header-cta {
  justify-self: end;
  min-height: 42px;
  padding-inline: 15px;
  gap: 10px;
  border-color: #6a5740;
  color: var(--gold);
  font-size: .86rem;
}
.header-cta:hover, .button-outline:hover { background: #e4c69923; }

.hero {
  position: relative;
  isolation: isolate;
  background: #201a16;
  color: #faf1e3;
}
.hero-image, .hero-image img, .hero-image::after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-image { z-index: -2; }
.hero-image img { object-fit: cover; object-position: 60% 55%; }
.hero-image::after {
  content: "";
  background:
    linear-gradient(90deg, #171311 0%, #181411f5 21%, #171311b8 45%, #1713111c 77%),
    linear-gradient(0deg, #151311c2 0%, transparent 32%);
}
.hero-inner {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(455px, 39vw, 560px);
  padding-block: 72px 82px;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--gold);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .03em;
}
.eyebrow span { width: 22px; height: 1px; background: currentColor; }
.hero h1 {
  margin-top: 22px;
  font: 770 clamp(2.85rem, 4.8vw, 4.3rem)/1.19 var(--body-font);
  letter-spacing: -.07em;
}
.hero h1 em { color: var(--gold); font-style: normal; }
.hero-description { margin-top: 20px; color: #e1d4c3; font-size: clamp(.98rem, 1.55vw, 1.2rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.button-gold { background: var(--gold); color: #211a13; }
.button-gold:hover { background: #efd7b2; }
.button-outline { border-color: #aa9375; color: #f8eddd; }

.quick-strip { background: #201b17; color: #f5ebde; }
.quick-inner { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-inner a {
  display: flex;
  min-height: 103px;
  align-items: center;
  gap: 13px;
  padding: 18px clamp(10px, 2vw, 25px);
  border-inline-start: 1px solid #3c332a;
  text-decoration: none;
}
.quick-inner a:first-child { padding-inline-start: 0; border-inline-start: 0; }
.quick-inner a:hover strong { color: var(--gold); }
.quick-inner strong, .quick-inner small { display: block; }
.quick-inner strong { font-size: .95rem; }
.quick-inner small { color: #c1b3a2; font-size: .79rem; line-height: 1.5; }
.line-icon { display: inline-grid; width: 25px; height: 25px; color: var(--gold); flex: 0 0 auto; place-items: center; }
.line-icon svg { width: 100%; height: 100%; }

.section { padding-block: clamp(54px, 6.6vw, 94px); }
.section-heading h2 {
  font-size: clamp(1.9rem, 3.6vw, 3.18rem);
  line-height: 1.2;
  letter-spacing: -.065em;
}
.section-heading > p { margin-top: 12px; color: var(--muted); font-size: 1rem; }
.section-areas { background: var(--ivory); }
.region-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-top: 28px;
  border-bottom: 1px solid var(--border);
}
.region-panel {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: clamp(20px, 4vw, 52px);
  align-items: center;
  margin-top: 14px;
  padding: clamp(23px, 4vw, 42px);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--paper);
}
.region-main { display: flex; align-items: flex-start; gap: 17px; }
.region-pin {
  width: 47px;
  height: 47px;
  padding: 12px;
  border-radius: 50%;
  background: #f0e5d5;
  color: var(--brass);
}
.region-main h3 { font-size: 1.48rem; line-height: 1.4; letter-spacing: -.04em; }
.region-main p { margin-top: 7px; color: var(--muted); }
.region-actions { padding-left: 25px; border-left: 1px solid var(--border); }
.region-checks { margin: 0 0 11px; padding-left: 17px; color: var(--muted); font-size: .94rem; }
.region-checks li + li { margin-top: 5px; }
.text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 750; color: #63451f; text-underline-offset: 4px; }
.venue-results { margin-top: 15px; color: var(--muted); font-size: .91rem; }
.venue-records { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 255px), 1fr)); gap: 12px; margin-top: 14px; }
.venue-record { padding: 20px; border: 1px solid var(--border); border-radius: 6px; background: var(--paper); }
.venue-record dl { margin: 12px 0; }
.venue-record dl div { display: grid; grid-template-columns: 6rem 1fr; gap: 8px; }
.venue-record dl div + div { margin-top: 5px; }
.venue-record dt { font-weight: 700; }
.venue-record dd { margin: 0; }
.venue-record a { text-underline-offset: 3px; }

.section-guide { background: #ece4d7; border-block: 1px solid var(--border); }
.guide-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 29px;
  gap: 11px;
}
.guide-item {
  padding: clamp(18px, 3vw, 26px);
  border: 1px solid #e1d7c7;
  border-radius: 6px;
  background: #f7f1e7;
}
.guide-item:first-child { grid-column: span 3; }
.guide-item h3 { font-size: 1.14rem; letter-spacing: -.032em; }
.guide-item p { margin-top: 5px; color: var(--muted); font-size: .94rem; }
.guide-item .text-link { min-height: 34px; margin-top: 5px; font-size: .87rem; }

.section-process { background: var(--ivory); }
.steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 11px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.steps li {
  position: relative;
  counter-increment: step;
  padding: 17px 14px 18px;
  border-top: 1px solid var(--border);
}
.steps li::before {
  display: grid;
  width: 30px;
  height: 30px;
  margin-bottom: 12px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--brass);
  font-size: .83rem;
  font-weight: 750;
  content: counter(step);
}
.steps li.step-available { border-top: 2px solid #997044; }
.steps li.step-available::before { background: var(--gold); border-color: transparent; color: #342619; }
.steps strong, .steps span { display: block; }
.steps strong { font-size: 1rem; }
.steps span { margin-top: 4px; color: var(--muted); font-size: .85rem; }

.section-inquiry { background: #211a15; color: #f8eddf; }
.inquiry-layout, .faq-layout { display: grid; grid-template-columns: .85fr 1.3fr; gap: clamp(27px, 6.5vw, 96px); align-items: start; }
.section-inquiry .section-heading > p { color: #dac9b7; }
.channel-notice { display: flex; gap: 11px; margin-top: 30px; padding-top: 20px; border-top: 1px solid #514235; }
.channel-notice strong { color: var(--gold); font-size: .95rem; }
.channel-notice p { margin-top: 3px; color: #dac9b7; font-size: .91rem; }
.channel-links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.channel-links a { display: inline-flex; min-height: 44px; align-items: center; color: var(--gold); text-underline-offset: 4px; }
.form-card { padding: clamp(19px, 3vw, 32px); border-radius: 9px; background: var(--paper); color: var(--ink); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid label { display: block; min-width: 0; font-size: .94rem; font-weight: 730; }
.form-grid .full-width { grid-column: 1 / -1; }
.form-grid :is(input, select, textarea), #message-text {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  margin-top: 5px;
  padding: 10px 11px;
  border: 1px solid #c8baa7;
  border-radius: 5px;
  background: #fffefa;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 450;
}
.form-grid :is(input, textarea)::placeholder { color: #776b60; opacity: 1; }
.form-grid input[type="date"], .form-grid input[type="time"] { max-width: 100%; }
.form-grid textarea, #message-text { resize: vertical; }
.input-unit { display: block; position: relative; }
.input-unit > span { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.input-unit input { padding-right: 33px; appearance: textfield; }
.input-unit input::-webkit-inner-spin-button { appearance: none; }
.optional, .form-hint { color: var(--muted); font-size: .83rem; font-weight: 450; }
.form-hint { margin-top: 8px; }
.button-dark { width: 100%; margin-top: 17px; background: #2c221a; color: #f9e8d3; }
.button-dark:hover { background: #473529; }
.button-dark:disabled { opacity: .65; cursor: default; }
.message-output { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--border); }
.message-output h3 { font-size: 1.16rem; }
.message-output p, .form-status { color: var(--muted); font-size: .88rem; }
#message-text { margin-block: 11px; }
.button-copy { border-color: #a28762; color: #4b341e; }
.button-copy:hover { background: var(--sand); }
.form-status:not(:empty) { margin-top: 10px; }

.section-faq { background: var(--ivory); }
.faq-list { border-top: 1px solid #bfb09c; }
.faq-list details { border-bottom: 1px solid var(--border); }
.faq-list summary, .sources summary {
  display: flex;
  min-height: 55px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-block: 10px;
  list-style: none;
  font-weight: 750;
  cursor: pointer;
}
.faq-list summary::-webkit-details-marker, .sources summary::-webkit-details-marker { display: none; }
.faq-list summary::after, .sources summary::after { content: "+"; color: var(--brass); font-size: 1.2rem; }
.faq-list details[open] summary::after, .sources[open] summary::after { content: "−"; }
.faq-list p { padding: 0 26px 15px 0; color: var(--muted); }

.site-footer { padding-block: 37px 23px; background: var(--dark); color: #bdb0a1; }
.footer-main { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px 26px; }
.footer-main p { margin-top: 8px; font-size: .9rem; }
.business-details, #source-list { padding-inline-start: 17px; font-size: .87rem; }
.site-footer .sources { margin-top: 20px; border-top: 1px solid #42372d; }
.sources summary { min-height: 44px; justify-content: flex-start; font-size: .89rem; }
.sources summary::after { color: var(--gold); }
.sources a { color: #edd2ad; text-underline-offset: 3px; }
#source-list { margin-top: 2px; }
#source-list li + li { margin-top: 7px; }

@media (max-width: 850px) {
  .quick-inner { grid-template-columns: repeat(2, 1fr); }
  .quick-inner a { min-height: 76px; }
  .quick-inner a:nth-child(3) { padding-inline-start: 0; border-inline-start: 0; }
  .quick-inner a:nth-child(n+3) { border-top: 1px solid #3c332a; }
  .region-panel, .inquiry-layout, .faq-layout { grid-template-columns: 1fr; }
  .region-actions { padding-left: 0; padding-top: 14px; border-left: 0; border-top: 1px solid var(--border); }
  .channel-notice { margin-top: 15px; padding-top: 13px; }
}

@media (max-width: 580px) {
  html { scroll-padding-top: 113px; }
  .header-inner { grid-template-columns: 1fr 1fr; gap: 0; padding-top: 8px; }
  .brand { font-size: 21px; }
  .brand-mark { width: 17px; height: 17px; }
  .header-cta { min-height: 40px; }
  .site-header nav { grid-row: 2; grid-column: 1 / -1; gap: 24px; }
  .site-header nav a { min-height: 43px; font-size: .85rem; }
  .hero-inner { min-height: 405px; padding-block: 52px 57px; }
  .hero-image img { object-position: 66% center; }
  .hero-image::after { background: linear-gradient(90deg, #171311ea 0%, #1713119e 61%, #1713114f 100%), linear-gradient(0deg, #151311be, transparent 45%); }
  .hero h1 { margin-top: 16px; font-size: clamp(2.25rem, 8.3vw, 3.1rem); }
  .hero-description { margin-top: 15px; }
  .hero-actions { gap: 8px; margin-top: 24px; }
  .hero-actions .button { min-height: 49px; padding-inline: 11px; gap: 9px; font-size: .88rem; }
  .quick-inner a { padding-inline: 9px 3px; gap: 7px; }
  .quick-inner .line-icon { width: 19px; height: 19px; }
  .quick-inner strong { font-size: .86rem; }
  .quick-inner small { font-size: .73rem; }
  .guide-list { grid-template-columns: 1fr; }
  .guide-item:first-child { grid-column: auto; }
  .steps { grid-template-columns: 1fr; gap: 0; }
  .steps li {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 0 10px;
    align-items: center;
    padding: 11px 7px;
  }
  .steps li::before { grid-row: span 2; margin: 0; }
  .steps span { margin: 0; }
  .footer-main { flex-direction: column; }
  .site-footer nav { flex-wrap: wrap; }
}

.site-header [aria-current="page"] { color: var(--gold); }
.region-tabs a {
  display: grid;
  min-height: 51px;
  padding-inline: 6px;
  place-items: center;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.region-tabs a:hover { background: #ece3d4; }
.region-tabs a[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--brass); background: #eee5d7; }
.region-content + .region-content { margin-top: 25px; }
.region-tabs[role="tablist"] ~ .region-content { margin-top: 0; }
.inline-source { margin-inline-start: 4px; font-size: .87em; text-underline-offset: 3px; }
.venue-record h4 { margin: 0; color: var(--ink); font-size: 1.15rem; }
.home-next { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.home-next h2 { font-size: clamp(1.3rem, 2.5vw, 1.75rem); letter-spacing: -.05em; }
.home-next .text-link + .text-link { margin-inline-start: 10px; }

.subpage-intro { padding-block: clamp(29px, 4.5vw, 62px); }
.breadcrumbs { margin-bottom: clamp(14px, 2.4vw, 30px); color: var(--muted); font-size: .86rem; }
.breadcrumbs ol { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li + li::before { content: "›"; margin-right: 10px; }
.breadcrumbs a { text-underline-offset: 3px; }
.section-heading h1 { font-size: clamp(2.2rem, 5.25vw, 4.2rem); line-height: 1.17; letter-spacing: -.068em; }
.section-links { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 17px; }
.section-links a { display: inline-flex; min-height: 44px; align-items: center; color: #63451f; font-weight: 700; text-underline-offset: 4px; }
.subpage-button { width: auto; }
.quote-check { margin-top: 24px; padding: clamp(17px, 3vw, 32px); border: 1px solid var(--border); border-radius: 7px; background: var(--paper); }
.quote-check h3 { font-size: 1.22rem; letter-spacing: -.035em; }
.quote-check ol { margin: 8px 0; padding-left: 1.35em; color: var(--muted); }
.quote-check li + li { margin-top: 6px; }

@media (max-width: 580px) {
  .home-next { grid-template-columns: 1fr; }
  .section-links { gap: 0 12px; }
}

.section-formats { background: var(--ivory); padding-block: clamp(43px, 5vw, 72px); }
.section-formats .section-heading > p { max-width: 46rem; }
.format-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 25px; }
.format-card {
  display: flex;
  flex-direction: column;
  padding: clamp(17px, 3vw, 28px);
  border: 1px solid var(--border);
  border-top: 2px solid #a88859;
  border-radius: 6px;
  background: var(--paper);
}
.format-card h3 { font-size: clamp(1.32rem, 2.25vw, 1.75rem); line-height: 1.25; letter-spacing: -.05em; }
.format-card p { margin-top: 8px; color: var(--muted); font-size: .95rem; }
.format-card .format-question { margin-top: 14px; color: var(--ink); font-weight: 730; }
.format-card .text-link { align-self: flex-start; margin-top: auto; padding-top: 10px; }
.format-note { margin-top: 18px; color: var(--muted); font-size: .94rem; }
.format-note a { text-underline-offset: 3px; }

@media (max-width: 680px) {
  .format-grid { grid-template-columns: 1fr; gap: 10px; }
  .format-card .format-question { margin-top: 9px; }
}
