*, *::before, *::after { box-sizing: border-box; }
  html { scroll-padding-top: env(safe-area-inset-top, 0px); }
  body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #fff;
    background: #1d1d1b url("images/IMG_20170205_011253_873.jpg") center / cover fixed no-repeat;
  }
  img { max-width: 100%; height: auto; }
  a { color: inherit; }
  .wrap { max-width: 1104px; margin: 0 auto; padding: 12px 16px 40px; }
  .shadow { text-shadow: 0 1px 4px rgba(0,0,0,.85); }

  /* Header */
  header { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; text-align: center; }
  header .social { display: block; max-width: 153px; }
  header .social.right { justify-self: end; }
  h1 { margin: 0; font: italic bold clamp(34px, 6vw, 72px)/1.1 "Times New Roman", Times, serif; }
  .tagline { margin: 8px 0 16px; text-align: center; font-style: italic; font-weight: bold; color: #ff2a2a; font-size: clamp(18px, 3vw, 36px); }

  /* Navigation */
  nav ul { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; }
  nav img { display: block; width: 150px; height: 33px; }

  /* Photo grids */
  .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 24px; }
  .gallery a { display: block; }
  .gallery img { width: 100%; height: 100%; max-height: 360px; object-fit: cover; display: block; }

  /* Text */
  .welcome { text-align: center; font-style: italic; font-weight: bold; font-size: clamp(20px, 2.8vw, 30px); line-height: 1.2; margin: 24px 0; }
  .welcome small { display: block; font-size: .8em; }
  .intro { font-style: italic; font-weight: bold; font-size: 18px; max-width: 1000px; margin: 0 auto 32px; }
  .intro h2 { font-size: 20px; margin: 0 0 12px; }
  .intro p { margin: 0 0 14px; }
  .booking { text-align: center; font-size: clamp(20px, 2.6vw, 30px); line-height: 1.3; margin: 0 0 32px; }

  /* Video section */
  .video { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; margin-bottom: 32px; }
  .video .caption { grid-column: 1 / -1; text-align: center; font-style: italic; font-weight: bold; color: #ff2a2a; font-size: clamp(17px, 2.2vw, 24px); }
  .video .caption p { margin: 0 0 6px; }
  .ratio { position: relative; aspect-ratio: 16 / 9; }
  .ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

  /* Location and sponsors */
  .location { text-align: center; font-weight: bold; font-size: 20px; max-width: 700px; margin: 0 auto 24px; }
  h3 { text-align: center; font-style: italic; color: #ff2a2a; font-size: clamp(22px, 3vw, 30px); margin: 0 0 16px; }
  .sponsors { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px 24px; }
  .sponsors img { display: block; max-height: 110px; width: auto; }
  .sponsors .name { text-align: center; font-weight: bold; font-size: 14px; }
  .dealer { text-align: center; font-weight: bold; font-style: italic; color: #3300ff; font-size: 22px; }
  .dealer b { display: block; font-size: 38px; font-style: normal; }
  .dealer a { background: rgba(255,255,255,.88); display: inline-block; padding: 6px 14px; border-radius: 6px; text-decoration: none; }
  .map { text-align: center; }
  .map p.air { color: #ff2a2a; font-weight: bold; font-size: 20px; margin: 0 0 12px; }

  :focus-visible { outline: 3px solid #ffd400; outline-offset: 2px; }

  @media (max-width: 720px) {
    header { grid-template-columns: 1fr 1fr; }
    header h1 { grid-column: 1 / -1; grid-row: 2; }
    .video { grid-template-columns: 1fr; }
    .intro { font-size: 16px; }
  }

  /* Shared page pieces */
  nav a[aria-current="page"] img { outline: 2px solid #ffd400; outline-offset: 1px; }
  .panel { max-width: 860px; margin: 0 auto 32px; text-align: center; font-style: italic; font-weight: bold; font-size: clamp(18px, 2.2vw, 24px); line-height: 1.3; }
  .panel p { margin: 0 0 16px; }
  .red { color: #ff2a2a; } .yellow { color: #ffe933; } .green { color: #66ff00; }
  .pay { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px; }
  .pay img { display: block; max-width: 193px; }
  .photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 0 0 24px; }
  .photos img { width: 100%; height: 100%; max-height: 380px; object-fit: cover; display: block; }
  .thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 0 0 32px; }
  .thumbs a { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: rgba(0,0,0,.35); }
  .thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .center { text-align: center; }
  .btn { display: inline-block; margin: 8px; padding: 10px 22px; background: #c00; color: #fff; font-weight: bold; text-decoration: none; border-radius: 6px; text-shadow: none; }
  .err { text-align: center; padding: 24px 0 8px; }
  .err .code { font: italic bold clamp(96px, 22vw, 220px)/1 "Times New Roman", Times, serif; color: #ff2a2a; margin: 0; }
  .big { font-style: italic; font-weight: bold; font-size: clamp(22px, 3vw, 34px); margin: 0 0 12px; }
  main { display: block; }
