@charset "utf-8";

:root {
  --charcoal-soft: #211d19;
  --cream: #f4ead2;
  --gold: #c89d43;
  --gold-bright: #e2ad43;
  --gold-dark: #8a611c;
  --white: #ffffff;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  padding-top: 96px;
  background: #0d0c0b;
  color: var(--cream);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
}

img { max-width: 100%; }
a { color: inherit; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  background-color: #e6d1a4;
  background-image:
    linear-gradient(to bottom, rgba(255,255,255,.12), rgba(92,61,22,.07)),
    url("../images/white_oak.png");
  background-position: center;
  background-size: cover;
  border-top: 1px solid rgba(255,255,255,.42);
  border-bottom: 4px solid var(--gold);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 7px 18px rgba(0,0,0,.30);
}

.site-header-inner {
  width: min(1480px, 100%);
  min-height: 92px;
  margin: 0 auto;
  padding: 10px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.site-brand { flex: 0 0 auto; }
.site-brand img { display:block; width:138px; max-height:72px; object-fit:contain; }

.primary-menu {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(14px,2vw,34px);
  flex:1 1 auto;
}

.primary-menu > a,
.nav-dropdown-toggle {
  position:relative;
  padding:0;
  border:0;
  background:transparent;
  color:#2b2116;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}

.primary-menu > a::after,
.nav-dropdown-toggle::after {
  content:"";
  position:absolute;
  right:50%;
  bottom:-9px;
  left:50%;
  height:3px;
  background:var(--gold-dark);
  transition:left 180ms ease,right 180ms ease;
}

.primary-menu > a:hover::after,
.primary-menu > a:focus-visible::after,
.primary-menu > a.is-active::after,
.nav-dropdown:hover .nav-dropdown-toggle::after,
.nav-dropdown:focus-within .nav-dropdown-toggle::after {
  right:0;
  left:0;
}

.header-social,
.footer-social { display:flex; gap:10px; }

.header-social a { display:grid; width:38px; height:38px; place-items:center; }
.header-social img { display:block; width:32px; height:32px; object-fit:contain; }

.nav-dropdown { position:relative; display:flex; align-items:center; }
.nav-dropdown-toggle span { margin-left:4px; font-size:.75em; }

.nav-dropdown-menu {
  position:absolute;
  top:calc(100% + 16px);
  left:50%;
  z-index:1100;
  min-width:205px;
  padding:8px;
  visibility:hidden;
  opacity:0;
  transform:translate(-50%,8px);
  background:#171411;
  border:1px solid rgba(200,157,67,.72);
  border-radius:7px;
  box-shadow:0 14px 28px rgba(0,0,0,.38);
  transition:opacity 160ms ease,transform 160ms ease,visibility 160ms ease;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu,
.nav-dropdown.is-open .nav-dropdown-menu {
  visibility:visible;
  opacity:1;
  transform:translate(-50%,0);
}

.nav-dropdown-menu a {
  display:block;
  padding:10px 12px;
  color:var(--cream);
  border-radius:4px;
  font-size:.94rem;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}

.nav-dropdown-menu a:hover,
.nav-dropdown-menu a:focus-visible {
  background:rgba(200,157,67,.20);
  color:var(--gold-bright);
}

.nav-toggle {
  display:none;
  border:2px solid var(--gold-dark);
  border-radius:6px;
  background:rgba(255,255,255,.10);
  color:#2b2116;
  padding:8px 10px;
  font:inherit;
  font-weight:700;
}

.nav-toggle-icon,
.nav-toggle-icon::before,
.nav-toggle-icon::after {
  display:block;
  width:22px;
  height:2px;
  background:currentColor;
}

.nav-toggle-icon { position:relative; margin-top:5px; }
.nav-toggle-icon::before,
.nav-toggle-icon::after { content:""; position:absolute; left:0; }
.nav-toggle-icon::before { top:-6px; }
.nav-toggle-icon::after { top:6px; }

.location-hero {
  position:relative;
  min-height:530px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(13,12,11,.94),rgba(13,12,11,.38)),
    url("../images/location/richardson-restored.png") center 58% / cover no-repeat;
}

.location-hero-overlay {
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 72% 38%,rgba(200,157,67,.18),transparent 34%),
    linear-gradient(0deg,rgba(13,12,11,.82),transparent 64%);
}

.location-hero-content {
  position:relative;
  width:min(1180px,calc(100% - 40px));
  padding:82px 0;
}

.hero-kicker,
.section-kicker {
  margin:0 0 10px;
  color:var(--gold-bright);
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.location-hero h1 {
  max-width:900px;
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.7rem,8vw,7rem);
  line-height:.96;
  text-transform:uppercase;
  text-shadow:0 5px 20px rgba(0,0,0,.58);
}

.location-hero-content > p:not(.hero-kicker) {
  max-width:730px;
  margin:24px 0 30px;
  font-size:clamp(1.05rem,2vw,1.28rem);
}

.hero-actions,
.arrival-actions { display:flex; flex-wrap:wrap; gap:12px; }

.sip-btn {
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  border:2px solid var(--gold);
  border-radius:4px;
  font-weight:800;
  text-decoration:none;
  transition:transform 160ms ease,background 160ms ease,color 160ms ease;
}

.sip-btn:hover,
.sip-btn:focus-visible { transform:translateY(-2px); }

.sip-btn-gold { background:var(--gold); color:#21180b; }
.sip-btn-outline { background:transparent; color:var(--white); }
.sip-btn-outline:hover,
.sip-btn-outline:focus-visible { background:var(--gold); color:#21180b; }

.visit-overview {
  width:min(1280px,calc(100% - 40px));
  margin:62px auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
  background:var(--charcoal-soft);
  border:1px solid rgba(200,157,67,.58);
  border-radius:10px;
}

.visit-card { padding:34px 32px; border-right:1px solid rgba(200,157,67,.34); }
.visit-card:last-child { border-right:0; }

.visit-card h2 {
  margin:0 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
}

.visit-card p { color:#e6dccd; }
.text-link { color:var(--gold-bright); font-weight:900; text-decoration:none; text-transform:uppercase; }

.hours-list { margin:0; }
.hours-list div { display:flex; justify-content:space-between; gap:18px; padding:5px 0; }
.hours-list dt { font-weight:400; }
.hours-list dd { margin:0; text-align:right; }

.map-section,
.building-history { padding:74px max(24px,calc((100% - 1280px)/2)); }

.map-section {
  background:#141210;
  border-top:1px solid rgba(200,157,67,.24);
  border-bottom:1px solid rgba(200,157,67,.24);
}

.section-heading { max-width:840px; margin:0 auto 36px; text-align:center; }

.section-heading h2,
.history-heading h2,
.arrival-info h2 {
  margin:0 0 14px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.1rem,4vw,3.5rem);
  line-height:1.12;
}

.section-heading p:last-child { color:#d7cec0; }

.map-frame {
  min-height:480px;
  overflow:hidden;
  border:1px solid rgba(200,157,67,.58);
  border-radius:10px;
  box-shadow:0 18px 38px rgba(0,0,0,.35);
}

.map-frame iframe { width:100%; height:520px; display:block; border:0; }

.history-heading {
  margin-bottom:38px;
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(320px,1.22fr);
  align-items:end;
  gap:56px;
}

.history-heading p:last-child { margin:0; color:#d7cec0; font-size:1.05rem; }

.history-gallery {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:24px;
  align-items:stretch;
}

.history-card {
  margin:0;
  overflow:hidden;
  background:var(--charcoal-soft);
  border:1px solid rgba(200,157,67,.50);
  border-radius:10px;
}

.history-image { height:460px; overflow:hidden; background:#090909; }
.history-image-original { display:grid; place-items:center; }
.history-image img { width:100%; height:100%; object-fit:cover; }
.history-image-original img { object-fit:contain; }

.history-card figcaption { padding:26px 28px 30px; }

.history-card figcaption span {
  color:var(--gold-bright);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.history-card h3 {
  margin:7px 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
}

.history-card p { margin:0; color:#d8cec0; }

.history-note {
  margin-top:24px;
  padding:20px 24px;
  background:rgba(200,157,67,.09);
  border-left:4px solid var(--gold);
  color:#ece2d3;
}

.history-note p { margin:0; }

.arrival-info {
  padding:72px max(24px,calc((100% - 1180px)/2));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:42px;
  background:
    linear-gradient(90deg,rgba(19,17,15,.96),rgba(19,17,15,.78)),
    url("../images/location/richardson-restored.png") center / cover no-repeat;
  border-top:1px solid rgba(200,157,67,.28);
}

.arrival-info > div:first-child { max-width:700px; }
.arrival-info p:last-child { margin-bottom:0; color:#e8e2da; }

.sip-footer {
  min-height:132px;
  padding:20px max(24px,calc((100% - 1580px)/2));
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:28px;
  background:#14100e;
  border-top:1px solid rgba(200,157,67,.28);
}

.footer-brand img { display:block; width:76px; }

.footer-message { display:flex; flex-direction:column; gap:4px; text-align:center; }

.footer-message strong {
  color:var(--gold-bright);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.2rem;
  text-transform:uppercase;
}

.footer-message span { font-size:.9rem; }

.sip-footer .footer-social a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  background:#d5aa52;
  border:2px solid #17120d;
  border-radius:13px;
}

.sip-footer .footer-social img { width:31px; height:31px; object-fit:contain; }

@media (max-width:1080px) {
  body { padding-top:84px; }
  .site-header-inner { min-height:80px; }
  .site-brand img { width:118px; }
  .primary-menu { gap:13px; }
  .primary-menu > a,
  .nav-dropdown-toggle { font-size:.92rem; }
  .history-gallery { grid-template-columns:1fr; }
  .history-image { height:auto; max-height:650px; }
  .history-image img { height:auto; }
}

@media (max-width:820px) {
  body { padding-top:76px; }
  .site-header-inner { min-height:72px; padding:8px 16px; }
  .site-brand img { width:104px; }
  .nav-toggle { display:block; margin-left:auto; }
  .nav-toggle-label { margin-right:8px; }

  .primary-menu {
    position:absolute;
    top:100%;
    right:0;
    left:0;
    display:none;
    padding:16px 22px 22px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background-color:#e6d1a4;
    background-image:
      linear-gradient(to bottom,rgba(255,255,255,.12),rgba(92,61,22,.07)),
      url("../images/white_oak.png");
    background-position:center;
    background-size:cover;
    border-bottom:4px solid var(--gold);
    box-shadow:0 16px 24px rgba(0,0,0,.28);
  }

  .primary-menu.is-open { display:flex; }
  .primary-menu > a { padding:12px 4px; border-bottom:1px solid rgba(90,65,28,.22); }
  .primary-menu > a::after { display:none; }

  .nav-dropdown { display:block; width:100%; }

  .nav-dropdown-toggle {
    width:100%;
    padding:12px 4px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid rgba(90,65,28,.22);
    text-align:left;
  }

  .nav-dropdown-toggle::after { display:none; }

  .nav-dropdown-menu {
    position:static;
    display:none;
    min-width:0;
    padding:4px 0 7px 16px;
    visibility:visible;
    opacity:1;
    transform:none;
    background:rgba(81,55,22,.08);
    border:0;
    box-shadow:none;
  }

  .nav-dropdown.is-open .nav-dropdown-menu { display:block; }

  .nav-dropdown-menu a {
    color:#2b2116;
    border-bottom:1px solid rgba(90,65,28,.13);
    font-family:Georgia,"Times New Roman",serif;
  }

  .header-social { display:none; }
  .visit-overview { grid-template-columns:1fr; }
  .visit-card { border-right:0; border-bottom:1px solid rgba(200,157,67,.34); }
  .visit-card:last-child { border-bottom:0; }
  .history-heading { grid-template-columns:1fr; gap:16px; }
  .arrival-info { align-items:flex-start; flex-direction:column; }
}

@media (max-width:580px) {
  .location-hero { min-height:470px; }
  .hero-actions,
  .arrival-actions { width:100%; flex-direction:column; }
  .hero-actions .sip-btn,
  .arrival-actions .sip-btn { width:100%; }
  .visit-overview { width:calc(100% - 28px); margin:42px auto; }
  .map-section,
  .building-history { padding-right:14px; padding-left:14px; }
  .map-frame,
  .map-frame iframe { min-height:400px; height:400px; }
  .history-card figcaption { padding:22px; }
  .sip-footer { grid-template-columns:1fr; justify-items:center; text-align:center; }
}


/* V2 expanded building history */
.history-story {
  margin-bottom: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 28px;
  align-items: start;
}

.history-copy,
.history-plaque {
  background: var(--charcoal-soft);
  border: 1px solid rgba(200,157,67,.48);
  border-radius: 10px;
}

.history-copy {
  padding: 30px 34px;
}

.history-copy p {
  color: #ddd3c5;
}

.history-copy .history-lead {
  margin-top: 0;
  color: var(--cream);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.32rem;
  line-height: 1.45;
}

.history-timeline {
  margin-top: 28px;
  border-top: 1px solid rgba(200,157,67,.34);
}

.history-timeline div {
  padding: 15px 0;
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 18px;
  border-bottom: 1px solid rgba(200,157,67,.22);
}

.history-timeline span {
  color: var(--gold-bright);
  font-weight: 900;
  text-transform: uppercase;
}

.history-timeline p {
  margin: 0;
}

.history-plaque {
  overflow: hidden;
}

.history-plaque img {
  display: block;
  width: 100%;
  height: auto;
}

.history-plaque p {
  margin: 0;
  padding: 18px 20px 22px;
  color: #d9cfbf;
  font-size: .92rem;
}

@media (max-width: 980px) {
  .history-story {
    grid-template-columns: 1fr;
  }

  .history-plaque {
    max-width: 720px;
  }
}

@media (max-width: 580px) {
  .history-copy {
    padding: 24px 22px;
  }

  .history-timeline div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
