:root { --paper: #F4F0E6; --pine: #263E34; --red: #934F43; --gold: #C5A25A; --muted: #666457; --stone: #B8B3A4; }
* { box-sizing: border-box; }
html { background: var(--paper); }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--pine); font: 400 19px/1.5 Georgia, 'Times New Roman', serif; }
body::after { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .24; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='384' height='384' viewBox='0 0 384 384'%3E%3Cfilter id='grain' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.48' numOctaves='3' seed='93' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='3' intercept='-1'/%3E%3CfeFuncG type='linear' slope='3' intercept='-1'/%3E%3CfeFuncB type='linear' slope='3' intercept='-1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cpath fill='%23808080' filter='url(%23grain)' d='M0 0h384v384H0z'/%3E%3C/svg%3E"); }
.page { max-width: 1240px; margin: auto; padding: 38px 54px 32px; }
a { color: var(--red); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid var(--pine); outline-offset: 5px; }
[hidden] { display: none !important; }
.masthead { position: relative; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding-top: 18px; font: 11px/1.4 Arial, Helvetica, sans-serif; }
.masthead::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(to bottom, var(--pine) 0 1px, transparent 1px 2px, var(--pine) 2px 3px); }
.location, .date { text-transform: uppercase; letter-spacing: .11em; color: var(--pine); }
.location { text-decoration: none; }
.date { text-align: right; white-space: nowrap; margin-left: auto; }
.brand { width: min(100%, 620px); margin: 34px auto 0; text-align: center; }
.wordmark { display: block; }
.place-lockup { display: block; width: 100%; height: auto; }
.place-suffix { fill: var(--pine); font: 700 176px Georgia, 'Times New Roman', serif; }
.state-abbreviation { font-size: 256px; }
.engraved-rule { position: relative; top: 8px; display: flex; align-items: center; gap: clamp(9px, 1.2vw, 15px); height: 3px; margin: 0 6.4457% 0 6.1234%; }
.engraved-rule::before, .engraved-rule::after { content: ""; flex: 1; height: 3px; background: linear-gradient(to bottom, #18231D 0 1px, var(--gold) 1px 2px, #FFFFFF 2px 3px); }
.americana-star { display: block; flex: none; width: 17px; height: auto; overflow: visible; color: var(--gold); }
.tagline { margin: 26px 0 0; color: var(--muted); font: 400 22px/1.5 Georgia, 'Times New Roman', serif; letter-spacing: .01em; }
main { max-width: 1030px; margin: 54px auto 0; }
h1, h2, h3, p { margin: 0; }
h1 { margin-top: 12px; max-width: 800px; font-size: clamp(35px, 4.1vw, 52px); line-height: 1.08; font-weight: 400; letter-spacing: -.025em; }
h2 { font-size: 31px; line-height: 1.2; font-weight: 400; letter-spacing: -.01em; }
h3 { font-size: 22px; line-height: 1.25; font-weight: 400; }
p + p { margin-top: 15px; }
.eyebrow { color: var(--muted); font: 12px/1.5 Arial, Helvetica, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.lead { max-width: 65ch; margin-top: 22px; font-size: 21px; line-height: 1.5; }
.lodging { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 52px; margin-top: 38px; padding-top: 30px; }
.lodging-main > p { max-width: 60ch; margin-top: 17px; }
.booking-link { display: inline-block; margin-top: 22px; padding: 13px 17px; background: var(--pine); color: var(--paper); font: 15px/1.4 Arial, Helvetica, sans-serif; text-decoration: none; }
.booking-link:hover { background: #1d3028; }
.lodging-main .merchant-note { margin-top: 14px; font: 13px/1.5 Arial, Helvetica, sans-serif; color: var(--muted); }
.lodging-main .disclosure { font: 14px/1.5 Arial, Helvetica, sans-serif; }
.lodging-aside { border-left: 1px solid var(--stone); padding-left: 30px; }
.lodging-aside h3 { margin-top: 12px; }
.lodging-aside > p:not(.eyebrow) { margin-top: 16px; font-size: 17px; line-height: 1.5; }
.lodging-aside > a { display: inline-block; margin-top: 18px; font: 15px/1.5 Arial, Helvetica, sans-serif; }
.visit { margin-top: 58px; padding-top: 30px; border-top: 1px solid var(--stone); }
.section-heading h2 { margin-top: 10px; }
.visit-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; margin-top: 28px; }
.visit-facts p { margin-top: 14px; font-size: 17px; line-height: 1.5; }
.visit-facts .address { font-style: normal; }
.visit-facts a { display: inline-block; margin-top: 16px; font: 15px/1.5 Arial, Helvetica, sans-serif; }
.accessibility { margin-top: 30px; font: 14px/1.5 Arial, Helvetica, sans-serif; }
.hometown { max-width: 65ch; margin-top: 52px; }
.hometown h2 { font-size: 26px; }
.hometown p { margin-top: 15px; font-size: 18px; }
footer { max-width: 1030px; margin: 46px auto 0; padding-top: 20px; border-top: 1px solid var(--stone); color: var(--muted); font: 13px/1.6 Arial, Helvetica, sans-serif; }
#guide + footer { margin-top: 112px; }
footer p { max-width: none; }
footer p + p { margin-top: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; top: 5px; left: 16px; z-index: 2; padding: 12px; background: var(--paper); transform: translateY(-200%); font: 16px/1.4 Arial, Helvetica, sans-serif; }
.skip-link:focus { transform: none; }
@media (max-width: 760px) {
  .page { padding: 24px; }
  .masthead { gap: 12px; font-size: 9px; flex-wrap: wrap; }
  .location, .date { letter-spacing: .05em; }
  .brand { max-width: 520px; margin-top: 24px; }
  .tagline { font-size: 19px; margin-top: 22px; }
  main { margin-top: 40px; }
  .desktop-break { display: none; }
  .lead { font-size: 19px; }
  .lodging { grid-template-columns: 1fr; gap: 30px; margin-top: 30px; }
  .lodging-aside { border-left: none; border-top: 1px solid var(--stone); padding: 23px 0 0; }
  .visit { margin-top: 40px; }
  .visit-facts { grid-template-columns: 1fr; gap: 26px; }
  h2 { font-size: 28px; }
  .hometown { margin-top: 38px; }
  .booking-link { width: 100%; text-align: center; }
}
@media print {
  body { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body::after { display: none; }
  .booking-link { background: none; color: var(--pine); padding-left: 0; }
}
