:root {
  color-scheme: light;
  --paper: #f6f5f1;
  --white: #fff;
  --ink: #111c2c;
  --navy: #0b1a30;
  --blue: #234c92;
  --ice: #adc8fc;
  --muted: #4e5a6b;
  --line: #d7dce1;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Consolas, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3, p, figure { margin: 0; }
:focus-visible { outline: 3px solid #4377cf; outline-offset: 4px; }
.hero :focus-visible, .contact-section :focus-visible { outline-color: var(--ice); }
.wrap { width: min(100% - 64px, 1320px); margin-inline: auto; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 10; background: var(--white); padding: 12px 18px; transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header { background: var(--white); border-bottom: 1px solid var(--line); }
.header-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 79px; gap: 20px; }
.brand { justify-self: start; display: grid; justify-items: start; gap: 3px; }
.brand img { width: 155px; height: auto; }
.brand span { padding-left: 3px; font: 700 .63rem/1.1 var(--mono); letter-spacing: .2em; color: var(--blue); }
nav { display: flex; align-items: center; gap: clamp(20px, 3.3vw, 50px); font-size: .89rem; font-weight: 650; }
nav a, .site-footer a { padding-block: 12px; }
nav a:hover, .text-link:hover, .hero-caption a:hover, .site-footer a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: .3em; }
.header-contact { justify-self: end; display: inline-flex; align-items: center; gap: 16px; padding: 11px 15px; background: var(--navy); color: var(--white); font-size: .88rem; font-weight: 700; }
.header-contact:hover { background: var(--blue); }

.hero-wrap { padding-top: 27px; }
.hero { display: grid; grid-template-columns: 43% 57%; background: var(--navy); color: var(--white); }
.hero-content { padding: clamp(30px, 4.4vw, 68px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.eyebrow, .card-index, .feature-tag, .hero-caption, figcaption, .contact-details div > span { font: 700 .69rem/1.45 var(--mono); letter-spacing: .115em; }
.eyebrow { display: flex; align-items: center; gap: 10px; text-transform: uppercase; color: var(--blue); }
.eyebrow > span, .feature-tag > span { display: inline-block; flex: 0 0 7px; width: 7px; height: 7px; background: currentColor; }
.hero-eyebrow { color: var(--ice); }
.hero h1 { margin-top: 23px; font-size: clamp(2.6rem, 6.05vw, 5.55rem); font-weight: 750; letter-spacing: -.078em; line-height: .89; }
.signature { margin-top: 22px; color: var(--ice); font-size: clamp(1.12rem, 2vw, 1.8rem); font-weight: 550; letter-spacing: -.035em; }
.signature span { margin-right: .18em; }
.hero-copy { margin-top: 24px; max-width: 33ch; color: #d5deed; font-size: 1rem; line-height: 1.6; }
.hero .button { margin-top: 26px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 46px; padding: 10px 15px; border: 1px solid transparent; font-weight: 700; font-size: .89rem; line-height: 1.3; }
.button span, .header-contact span { font-size: 1.03rem; }
.button-light { background: var(--white); color: var(--navy); }
.button-light:hover { background: #dce8ff; }
.button-outline { border-color: #9eaec3; }
.button-outline:hover { border-color: var(--blue); background: #e7effc; color: var(--navy); }
.hero-visual { position: relative; min-width: 0; min-height: clamp(440px, 41vw, 590px); }
.hero-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 62%; }
.feature-tag { position: absolute; top: 18px; right: 18px; display: flex; gap: 8px; align-items: center; padding: 10px 13px; background: var(--navy); color: var(--white); }
.feature-tag > span { color: var(--ice); }
.hero-caption { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; border-bottom: 1px solid var(--line); color: var(--muted); }
.hero-caption a { font: 700 .85rem/1.4 var(--sans); color: var(--ink); white-space: nowrap; }
.hero-caption a span { margin-left: 6px; }

.section { padding-block: clamp(54px, 7vw, 96px); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 26px; margin-bottom: 29px; }
h2 { margin-top: 12px; font-size: clamp(2rem, 4.6vw, 4.45rem); font-weight: 750; letter-spacing: -.069em; line-height: .98; }
.section-heading > p { max-width: 31ch; color: var(--muted); font-size: .96rem; line-height: 1.5; }
.inventory-grid, .news-grid { display: grid; gap: 12px; }
.inventory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.inventory-card { position: relative; min-height: 161px; padding: 23px 20px; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--blue); transition: background-color .18s, border-color .18s; }
.card-index { color: var(--blue); }
.inventory-card h3 { margin: 22px 38px 6px 0; font-size: clamp(1.44rem, 2.9vw, 2.75rem); letter-spacing: -.065em; line-height: 1; }
.inventory-card p, .news-card > p:last-child { color: var(--muted); line-height: 1.5; font-size: .95rem; }
.round-arrow { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--white); color: var(--blue); font-size: 1.12rem; }
.inventory-card .round-arrow { position: absolute; top: 17px; right: 17px; }
.inventory-card:hover { border-color: var(--blue); background: #eef4ff; }
.inventory-card:hover .round-arrow, .photo-link:hover .round-arrow { background: var(--blue); color: var(--white); border-color: var(--blue); }

.photo-section { background: #e9edf3; border-block: 1px solid #d9e0eb; padding-block: clamp(42px, 6vw, 84px); }
.photo-grid { display: grid; grid-template-columns: minmax(0, 500px) minmax(0, 1fr); align-items: center; gap: clamp(36px, 8vw, 115px); }
.photo-link { display: block; position: relative; background: var(--navy); }
.photo-link img { width: 100%; height: auto; }
.photo-link .round-arrow { position: absolute; right: 14px; bottom: 14px; }
figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; color: var(--muted); }
.photo-copy h3 { margin-top: 28px; font-size: clamp(1.4rem, 2.4vw, 2.1rem); letter-spacing: -.04em; }
.photo-copy > p:not(.eyebrow) { margin-top: 9px; max-width: 44ch; color: var(--muted); line-height: 1.65; }
.social-links, .contact-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 24px; }

.news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.text-link { display: inline-flex; align-items: center; gap: 8px; padding-block: 8px; font-size: .91rem; font-weight: 700; white-space: nowrap; }
.news-card { padding: 23px 24px 28px; background: var(--white); border: 1px solid var(--line); }
.news-card h3 { margin: 18px 0 10px; font-size: clamp(1.28rem, 2.25vw, 2.05rem); letter-spacing: -.045em; line-height: 1.12; }
.news-card h3 a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: .15em; }
.news-card h3 span { display: inline-block; margin-left: 4px; color: var(--blue); font-size: .78em; }
.news-card .card-index span { padding-inline: 4px; }

.contact-section { padding-block: clamp(48px, 7vw, 93px); background: var(--navy); color: var(--white); }
.contact-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: clamp(26px, 6vw, 90px); align-items: center; }
.contact-role { margin-top: 16px; color: var(--ice); font-weight: 600; line-height: 1.45; }
.contact-copy { margin-top: 10px; max-width: 41ch; color: #d5deed; line-height: 1.55; }
.contact-details { font-style: normal; min-width: 0; }
.contact-details div { padding-block: 12px; border-top: 1px solid #35465d; line-height: 1.4; }
.contact-details div:last-child { border-bottom: 1px solid #35465d; }
.contact-details div > span { display: inline-block; width: 70px; color: var(--ice); }
.contact-details a { overflow-wrap: anywhere; }
.contact-details a:hover { text-decoration: underline; text-underline-offset: .2em; }
.contact-details small { color: #d5deed; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding-block: 16px; font-size: .84rem; line-height: 1.4; }
.site-footer div > span { margin-left: 5px; color: var(--muted); }

dialog { width: min(92vw, 790px); max-width: 92vw; max-height: 94vh; padding: 0; border: 1px solid var(--line); background: var(--white); color: var(--ink); }
dialog::backdrop { background: #060f20df; }
.dialog-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 16px; }
.dialog-header h2 { margin: 0; font-size: clamp(1.05rem, 4.5vw, 1.5rem); letter-spacing: -.035em; line-height: 1.1; }
.dialog-header button { min-height: 42px; background: var(--navy); color: var(--white); border: 0; padding-inline: 12px; cursor: pointer; }
dialog img { width: 100%; height: auto; max-height: calc(94vh - 64px); object-fit: contain; background: var(--navy); }
body:has(dialog[open]) { overflow: hidden; }

@media (max-width: 1000px) {
  .wrap { width: calc(100% - 48px); }
  .hero-content { padding: clamp(24px, 3.9vw, 42px); }
  .hero h1 { font-size: clamp(2.6rem, 6.1vw, 4.1rem); }
  .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .wrap { width: calc(100% - 32px); }
  .header-inner { grid-template-columns: 1fr auto; gap: 0 12px; padding-top: 12px; }
  .brand img { width: 136px; }
  .header-inner nav { grid-row: 2; grid-column: 1 / -1; gap: clamp(15px, 6vw, 32px); margin-top: 6px; }
  .header-contact { grid-column: 2; grid-row: 1; gap: 9px; }
  .hero-wrap { padding-top: 16px; }
  .hero { grid-template-columns: 1fr; }
  .hero-content { padding: 33px 24px; }
  .hero h1 { margin-top: 16px; font-size: clamp(2.7rem, 10vw, 4.65rem); }
  .signature { margin-top: 17px; }
  .hero-copy { margin-top: 16px; }
  .hero .button { margin-top: 20px; }
  .hero-visual { min-height: 0; aspect-ratio: 1.18; }
  .feature-tag { top: 10px; right: 10px; font-size: .58rem; }
  .hero-caption { font-size: .58rem; gap: 7px; }
  .hero-caption a { font-size: .76rem; }
  .section-heading { flex-direction: column; align-items: start; gap: 12px; margin-bottom: 21px; }
  .inventory-grid, .photo-grid, .news-grid, .contact-grid { grid-template-columns: 1fr; }
  .inventory-card { min-height: 124px; padding: 17px 16px; }
  .inventory-card h3 { margin-top: 12px; font-size: 1.85rem; }
  .inventory-card .round-arrow { top: 14px; right: 14px; }
  .photo-copy { grid-row: 1; }
  .photo-copy h3 { margin-top: 18px; }
  .photo-grid { gap: 24px; }
  .contact-details div > span { width: 56px; }
  .contact-details a { font-size: .91rem; }
  .site-footer { align-items: start; }
  .site-footer div > span { display: block; margin-left: 0; }
  .site-footer a { padding-block: 2px; white-space: nowrap; }
}

@media (max-width: 350px) {
  .hero-caption { flex-wrap: wrap; padding-block: 7px; }
  .contact-details div > span { display: block; margin-bottom: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .inventory-card { transition: none; }
}

nav a[aria-current="page"] {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: .3em;
}

.home-events {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  padding: clamp(22px, 4vw, 42px);
  margin-bottom: clamp(42px, 6vw, 84px);
  background: var(--navy);
  color: var(--white);
}

.home-events h2 { margin: 0 0 10px; font-size: clamp(1.7rem, 3.6vw, 3.3rem); }
.home-events p { color: #d5deed; line-height: 1.55; }
.home-events .button { flex-shrink: 0; }
.home-events :focus-visible, .event-feature :focus-visible { outline-color: var(--ice); }

.events-page { padding-top: clamp(32px, 5vw, 72px); padding-bottom: 26px; }
.events-intro { margin-bottom: 26px; }
.events-intro h1 {
  font-size: clamp(2.45rem, 7vw, 6rem);
  letter-spacing: -.075em;
  line-height: .97;
}
.events-intro > p { margin-top: 16px; color: var(--muted); line-height: 1.55; }

.event-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  border: 1px solid var(--line);
}
.event-card + .event-card { margin-top: 22px; }
.event-feature { background: var(--navy); color: var(--white); }
.event-drive { background: var(--white); }
.event-copy {
  align-self: center;
  padding: clamp(24px, 4.5vw, 66px);
}
.event-copy .eyebrow { display: block; }
.event-copy h2 { margin-top: 13px; font-size: clamp(2rem, 4.4vw, 4.1rem); }
.event-copy > p:not(.eyebrow) { margin-top: 17px; max-width: 47ch; line-height: 1.6; }
.event-copy .button { margin-top: 20px; }
.event-feature .event-copy > p:not(.eyebrow) { color: #d5deed; }
.event-drive .event-copy > p:not(.eyebrow) { color: var(--muted); }

.event-art { position: relative; display: block; align-self: center; }
.event-art img { width: 100%; height: auto; }
.event-art .round-arrow { position: absolute; right: 12px; bottom: 12px; }
.event-art:hover .round-arrow { background: var(--blue); color: var(--white); }

@media (max-width: 760px) {
  .header-inner nav { gap: clamp(8px, 4vw, 24px); flex-wrap: wrap; }
  .home-events { flex-direction: column; align-items: start; gap: 16px; }
  .event-card { grid-template-columns: 1fr; }
}

.home-offers {
  margin-bottom: 12px;
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--line);
}
.home-offers p { color: var(--muted); }

.offers-page .events-intro > p { max-width: 65ch; }
.offer-jumps { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.offers-group { margin-top: clamp(34px, 5vw, 66px); }
.offers-group h2 { margin-bottom: 20px; font-size: clamp(1.9rem, 4vw, 3.3rem); }
.offer-card { background: var(--white); border: 1px solid var(--line); }
.offer-card + .offer-card { margin-top: 20px; }
.offer-art { display: block; }
.offer-art:focus-visible { outline-offset: -4px; }
.offer-art img { width: 100%; height: auto; }
.offer-copy { padding: clamp(16px, 3vw, 32px); }
.offer-copy h3 { font-size: clamp(1.3rem, 3vw, 2rem); letter-spacing: -.035em; }
.offer-copy p { margin-top: 8px; color: var(--muted); line-height: 1.5; }
.offer-copy .offer-price { color: var(--ink); font-weight: 750; }
.offer-terms { margin-top: 14px; padding-block: 11px; border-block: 1px solid var(--line); }
.offer-terms summary { cursor: pointer; font-weight: 700; color: var(--blue); }
.offer-copy .text-link { margin-top: 8px; white-space: normal; }

@media (max-width: 760px) {
  .header-inner nav { gap: 0 clamp(9px, 2.8vw, 18px); font-size: .84rem; }
}
