  :root{
    --black:#0b0b0c;
    --charcoal:#161616;
    --panel:#1c1c1e;
    --chrome:#c9ccd1;
    --chrome-dim:#8a8d92;
    --red:#a5121b;
    --red-bright:#d81e2c;
    --gold:#c9a24b;
    --cream:#efe9df;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--black);
    color:var(--cream);
    font-family:'Roboto',sans-serif;
    font-weight:300;
    line-height:1.7;
  }
  h1,h2,h3,.brand{
    font-family:'Oswald',sans-serif;
    text-transform:uppercase;
    letter-spacing:1px;
  }
  a{color:inherit;text-decoration:none;}
  img{display:block;width:100%;height:100%;object-fit:cover;}

  /* NAV */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 5%;
    background:linear-gradient(to bottom, rgba(0,0,0,.85), transparent);
    transition:background .3s;
  }
  .brand{font-size:1.3rem;font-weight:700;color:var(--cream);display:flex;align-items:center;gap:10px;}
  .brand img{height:42px;width:auto;display:block;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));}
  .brand span{color:var(--red-bright);}
  nav{display:flex;gap:26px;flex-wrap:wrap;}
  nav a{
    font-family:'Oswald',sans-serif;
    font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--chrome);
    border-bottom:2px solid transparent;
    padding-bottom:4px;
    transition:.25s;
  }
  nav a:hover{color:var(--red-bright);border-color:var(--red-bright);}
  .nav-toggle{display:none;}

  /* HERO */
  .hero{
    position:relative;
    height:100vh;
    min-height:560px;
    overflow:hidden;
  }
  .hero img{
    filter:saturate(1.05) contrast(1.05);
  }
  .hero::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.35) 40%, rgba(11,11,12,.75) 78%, rgba(11,11,12,1) 100%);
  }
  .hero-content{
    position:absolute;left:0;right:0;bottom:9%;
    z-index:2;
    text-align:center;
    padding:0 5%;
  }
  .hero-content .eyebrow{
    font-family:'Oswald',sans-serif;
    letter-spacing:5px;
    font-size:.8rem;
    color:var(--gold);
    margin-bottom:14px;
  }
  .hero-content h1{
    font-size:clamp(2.4rem,6vw,5rem);
    color:var(--cream);
    line-height:1.05;
    text-shadow:0 4px 24px rgba(0,0,0,.6);
  }
  .hero-content h1 em{
    font-style:normal;
    color:var(--red-bright);
  }
  .hero-content p{
    max-width:620px;margin:18px auto 0;
    color:var(--chrome);
    font-size:1.05rem;
  }
  .btn{
    display:inline-block;margin-top:30px;
    padding:14px 34px;
    border:2px solid var(--red-bright);
    color:var(--cream);
    font-family:'Oswald',sans-serif;
    letter-spacing:2px;font-size:.85rem;text-transform:uppercase;
    transition:.25s;
  }
  .btn:hover{background:var(--red-bright);}

  /* SECTIONS SHARED */
  section{padding:100px 5%;}
  .section-head{max-width:720px;margin:0 auto 60px;text-align:center;}
  .section-head .eyebrow{
    font-family:'Oswald',sans-serif;color:var(--gold);letter-spacing:4px;font-size:.78rem;margin-bottom:10px;display:block;
  }
  .section-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);color:var(--cream);}
  .section-head p{color:var(--chrome-dim);margin-top:16px;font-size:1.02rem;}

  /* INTRO */
  .intro{background:var(--charcoal);}
  .intro-grid{
    max-width:1000px;margin:0 auto;
    display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  }
  .intro-grid p{color:var(--chrome);margin-bottom:16px;}
  .intro-stats{display:flex;gap:34px;margin-top:30px;flex-wrap:wrap;}
  .stat{border-left:3px solid var(--red-bright);padding-left:14px;}
  .stat strong{display:block;font-family:'Oswald',sans-serif;font-size:1.8rem;color:var(--gold);}
  .stat span{font-size:.8rem;color:var(--chrome-dim);text-transform:uppercase;letter-spacing:1px;}
  .intro-photo{
    aspect-ratio:4/5;overflow:hidden;border:1px solid #333;
    box-shadow:0 20px 50px rgba(0,0,0,.5);
  }

  /* ROUTE MAP STRIP */
  .route{
    background:var(--black);
    padding-top:80px;padding-bottom:60px;
  }
  .route-track{
    max-width:1100px;margin:0 auto;
    display:flex;flex-wrap:wrap;justify-content:space-between;
    position:relative;gap:20px 0;
  }
  .route-track::before{
    content:"";position:absolute;top:22px;left:0;right:0;height:2px;
    background:repeating-linear-gradient(90deg,var(--chrome-dim) 0 10px, transparent 10px 20px);
    z-index:0;
  }
  .stop-node{
    position:relative;z-index:1;
    flex:1;min-width:140px;text-align:center;
  }
  .stop-node .dot{
    width:46px;height:46px;border-radius:50%;
    background:var(--panel);border:2px solid var(--red-bright);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 14px;
    font-family:'Oswald',sans-serif;font-weight:600;color:var(--gold);
  }
  .stop-node a{
    font-family:'Oswald',sans-serif;font-size:.8rem;letter-spacing:1px;text-transform:uppercase;color:var(--cream);
  }
  .stop-node a:hover{color:var(--red-bright);}

  /* STOP SECTIONS */
  .stop{
    display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;
    max-width:1180px;margin:0 auto;
  }
  .stop:nth-of-type(even){background:var(--charcoal);}
  .stop.reverse .stop-media{order:2;}
  .stop.reverse .stop-copy{order:1;}
  .stop-media{
    aspect-ratio:4/3;overflow:hidden;position:relative;
    box-shadow:0 25px 60px rgba(0,0,0,.55);
    border:1px solid #2a2a2a;
  }
  .stop-media .tag{
    position:absolute;top:16px;left:16px;
    background:var(--red-bright);color:#fff;
    font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;
    padding:6px 12px;
  }
  .stop-copy .stop-index{
    color:var(--gold);font-family:'Oswald',sans-serif;letter-spacing:3px;font-size:.8rem;
  }
  .stop-copy h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:10px 0 18px;color:var(--cream);}
  .stop-copy p{color:var(--chrome);margin-bottom:14px;}
  .rider-note{
    margin-top:20px;padding:16px 18px;
    background:rgba(197,18,27,.08);
    border-left:3px solid var(--red-bright);
    font-size:.92rem;color:var(--chrome-dim);
  }
  .rider-note strong{color:var(--gold);font-family:'Oswald',sans-serif;letter-spacing:.5px;}

  section.stop{padding-top:90px;padding-bottom:90px;}

  /* COMMUNITY / CLOSING */
  .community{
    background:var(--black);
    text-align:center;
  }
  .community-grid{
    max-width:1000px;margin:50px auto 0;
    display:grid;grid-template-columns:1fr 1fr;gap:26px;
  }
  .community-grid figure{aspect-ratio:1/1;overflow:hidden;border:1px solid #2a2a2a;}
  .community-grid figcaption{
    margin-top:10px;font-size:.82rem;color:var(--chrome-dim);letter-spacing:.5px;
  }
  .cta-line{
    margin-top:60px;font-family:'Rock Salt',cursive;font-size:1.3rem;color:var(--gold);
  }

  footer{
    background:var(--charcoal);
    padding:40px 5%;
    text-align:center;
    color:var(--chrome-dim);
    font-size:.85rem;
    border-top:1px solid #262626;
  }
  footer .brand{font-size:1rem;margin-bottom:8px;display:inline-block;}

  /* TRIP PAGE — SUBHERO */
  .subhero{
    padding:170px 5% 80px;
    text-align:center;
    background:radial-gradient(ellipse at 50% 0%, rgba(216,30,44,.12), transparent 60%), var(--charcoal);
    border-bottom:1px solid #262626;
  }
  .subhero .eyebrow{color:var(--gold);font-family:'Oswald',sans-serif;letter-spacing:4px;font-size:.8rem;}
  .subhero h1{font-size:clamp(2rem,5vw,3.4rem);margin:14px 0 16px;}
  .subhero p{max-width:640px;margin:0 auto;color:var(--chrome);}
  .back-link{
    display:inline-block;margin-top:26px;
    font-family:'Oswald',sans-serif;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:2px;
  }

  /* MAP */
  .map-wrap{
    max-width:980px;margin:0 auto;
    background:var(--panel);
    border:1px solid #2a2a2a;
    padding:26px;
    box-shadow:0 25px 60px rgba(0,0,0,.5);
  }
  .map-wrap svg{width:100%;height:auto;display:block;}
  .map-legend{
    max-width:980px;margin:34px auto 0;
    display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
    gap:10px 22px;
  }
  .map-legend .leg{
    display:flex;align-items:center;gap:10px;
    font-size:.86rem;color:var(--chrome-dim);
    padding:8px 0;border-bottom:1px dashed #2a2a2a;
  }
  .map-legend .leg b{
    flex:0 0 auto;width:26px;height:26px;border-radius:50%;
    background:var(--black);border:1.5px solid var(--red-bright);color:var(--gold);
    display:flex;align-items:center;justify-content:center;
    font-family:'Oswald',sans-serif;font-size:.72rem;
  }
  .map-legend .leg span{color:var(--cream);}

  /* ITINERARY TIMELINE */
  .itinerary{max-width:820px;margin:0 auto;}
  .leg-item{
    display:grid;grid-template-columns:70px 1fr;gap:24px;
    padding:26px 0;border-bottom:1px solid #262626;
  }
  .leg-item:last-child{border-bottom:none;}
  .leg-num{
    width:50px;height:50px;border-radius:50%;
    background:var(--panel);border:2px solid var(--red-bright);
    display:flex;align-items:center;justify-content:center;
    font-family:'Oswald',sans-serif;font-weight:600;color:var(--gold);font-size:1.1rem;
  }
  .leg-item.flight .leg-num{border-color:var(--gold);color:var(--red-bright);font-size:1.3rem;}
  .leg-kind{
    font-family:'Oswald',sans-serif;font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold);
  }
  .leg-copy h3{font-size:1.25rem;margin:6px 0 6px;color:var(--cream);}
  .leg-copy p{color:var(--chrome-dim);font-size:.94rem;}

  /* MAPS CTA */
  .btn-maps{
    display:inline-flex;align-items:center;gap:10px;
    margin-top:26px;padding:14px 30px;
    background:var(--panel);border:1px solid var(--gold);color:var(--cream);
    font-family:'Oswald',sans-serif;letter-spacing:1.5px;font-size:.82rem;text-transform:uppercase;
    transition:.25s;
  }
  .btn-maps:hover{background:var(--gold);color:#0b0b0c;}

  /* RIDE CARDS (hub page) */
  .ride-grid{
    max-width:1100px;margin:0 auto;
    display:grid;grid-template-columns:1fr 1fr;gap:30px;
  }
  .ride-card{
    background:var(--panel);border:1px solid #2a2a2a;
    box-shadow:0 20px 50px rgba(0,0,0,.45);
    display:flex;flex-direction:column;
  }
  .ride-card .ride-media{aspect-ratio:16/10;overflow:hidden;position:relative;}
  .ride-card .ride-body{padding:26px 26px 30px;}
  .badge{
    display:inline-block;
    font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;
    padding:5px 12px;margin-bottom:12px;
  }
  .badge.done{background:rgba(201,162,75,.15);color:var(--gold);border:1px solid var(--gold);}
  .badge.planned{background:rgba(216,30,44,.12);color:var(--red-bright);border:1px solid var(--red-bright);}
  .badge.save{background:rgba(255,255,255,.06);color:var(--chrome);border:1px solid var(--chrome-dim);}
  .ride-card h3{font-size:1.4rem;margin-bottom:10px;}
  .ride-card p{color:var(--chrome-dim);font-size:.92rem;margin-bottom:16px;}
  .ride-card .btn{margin-top:0;padding:11px 24px;font-size:.75rem;}

  /* CONTACT FORM */
  .contact-form{
    max-width:560px;margin:50px auto 0;
    background:var(--panel);border:1px solid #2a2a2a;padding:34px;
    box-shadow:0 20px 50px rgba(0,0,0,.45);
  }
  .contact-form label{
    display:block;font-family:'Oswald',sans-serif;font-size:.75rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--gold);margin-bottom:8px;
  }
  .contact-form input,.contact-form textarea{
    width:100%;padding:12px 14px;margin-bottom:20px;
    background:var(--black);border:1px solid #333;color:var(--cream);
    font-family:'Roboto',sans-serif;font-size:.95rem;
  }
  .contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--red-bright);}
  .contact-form textarea{min-height:130px;resize:vertical;}
  .contact-form button{
    width:100%;padding:14px;
    background:var(--red-bright);border:none;color:#fff;
    font-family:'Oswald',sans-serif;letter-spacing:2px;font-size:.85rem;text-transform:uppercase;
    cursor:pointer;transition:.25s;
  }
  .contact-form button:hover{background:var(--red);}
  .form-note{
    max-width:560px;margin:16px auto 0;text-align:center;
    font-size:.8rem;color:var(--chrome-dim);
  }

  /* GUESTBOOK */
  .guestbook-wrap{max-width:780px;margin:0 auto;}

  @media (max-width:860px){
    nav{display:none;}
    .intro-grid{grid-template-columns:1fr;}
    .intro-photo{order:-1;}
    .stop{grid-template-columns:1fr;gap:30px;}
    .stop.reverse .stop-media,.stop.reverse .stop-copy{order:0;}
    .community-grid{grid-template-columns:1fr;}
    .route-track::before{display:none;}
    .leg-item{grid-template-columns:50px 1fr;gap:16px;}
    .ride-grid{grid-template-columns:1fr;}
  }
