:root{--ink:#101111;--paper:#faf9f6;--red:#ec3027;--muted:#ababaa}
header{border-bottom:2px solid var(--ink)}
.brand{font-weight:900;letter-spacing:-.06em}
.hero{isolation:isolate;background:#181918}
.hero>.hero-photo{inset:0;transition:opacity .25s ease}
.hero>.hero-photo-winter,.hero.is-winter>.hero-photo-summer{opacity:0}
.hero.is-winter>.hero-photo-winter{opacity:1;object-position:72% center}
.hero:after{background:linear-gradient(90deg,#0b0c0bf2 0%,#0b0c0bd9 25%,#0b0c0b60 55%,transparent 77%),linear-gradient(0deg,#0a0b0b9e,transparent 30%)}
.hero h1{font-size:clamp(48px,7.2vw,108px);text-wrap:balance}
.hero h1 .red{color:#ff5148}
.switch{border:1px solid #ffffff80;background:#111c;border-radius:99px}
.switch button{border-radius:99px;padding-inline:16px}
.switch button[aria-selected=true]{background:var(--red);color:#fff}
.btn{border-radius:2px}
.btn:focus-visible,.switch button:focus-visible{outline-color:#ffb92f}
.ticker{border-block:1px solid var(--ink)}
.ticker div{font-size:clamp(13px,1.5vw,19px)}
.ticker span{color:#fff}
.formats{border-color:#bcbab5}
.card{border-color:#bcbab5}


.steps{background:#eeece6;border-block:1px solid #d9d5cf}
.booking .red{color:#ff5148}
form{background:#202121;border:1px solid #41413e}
select,input{background:#292a2a;border-color:#666}
footer{background:#eeece6}
@media(max-width:800px){
  .hero h1{font-size:clamp(38px,9vw,65px)}
  .hero:after{background:linear-gradient(90deg,#0b0c0bdc,#0b0c0b72),linear-gradient(0deg,#0b0c0baa,transparent 45%)}
  .hero.is-winter>.hero-photo-winter{object-position:68% center}
  .ticker div{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){.hero>.hero-photo{transition:none}}

.rental-address{font-style:normal;line-height:1.6;font-size:14px;max-width:310px}.booking .rental-address{margin-top:24px;color:#eee}
.contact-strip{padding:32px 0;background:var(--paper);border-bottom:1px solid #bcbab5}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px}
.contact-strip .eyebrow{color:#9e1d16;margin-bottom:9px}
.contact-strip .rental-address{font-size:18px;font-weight:700;max-width:500px}
.contact-phone{display:inline-block;font-size:clamp(25px,3vw,35px);font-weight:900;line-height:1.1}
.contact-socials{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:7px}
.contact-socials a{display:inline-flex;align-items:center;min-height:36px;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.contact-phone:hover,.contact-socials a:hover{color:#9e1d16}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr}.contact-strip{padding:24px 0}}
@media(min-width:801px) and (max-width:1050px){.navlinks{gap:12px}.nav{gap:12px}.nav .brand{font-size:20px}.nav .btn{padding-inline:12px}}

@media(max-width:800px){
  html{scroll-padding-top:72px}
  .nav{height:64px}
  .navlinks{top:64px;gap:0;padding:8px 5% 16px;border-bottom:1px solid #bcbab5}
  .navlinks a{padding:14px 0}
  .menu{min-width:44px;min-height:44px}
  .hero{min-height:0}
  .hero .wrap{padding:35px 0 50px}
  .hero h1{font-size:clamp(30px,8.5vw,65px);overflow-wrap:anywhere}
  .hero p{margin:18px 0 22px}
  .hero p br{display:none}
  .hero-bottom{margin-top:28px;flex-wrap:wrap}
  .photo-note{bottom:13px}
  .ticker div{white-space:normal;flex-wrap:wrap;justify-content:center;gap:5px 8px;text-align:center;padding-inline:5%}
  .steps-grid,.book-grid,.faq,.gift,.contact-grid{grid-template-columns:minmax(0,1fr)}
  .gift-art{width:100%;transform:none;box-shadow:6px 6px 0 #b71e19;padding:20px}
  .gift-art .big{font-size:clamp(25px,7.5vw,43px)}
  .mobile-cta{display:none}
  footer{padding-bottom:35px}
  input,select{min-width:0}
}
@media(max-width:480px){
  .brand{font-size:21px}
  .switch button{min-height:44px}
  .hero .switch{margin-bottom:23px}
  .hero h1{margin:16px 0}
  .gift{padding:24px}
  .gift h2,h2{font-size:clamp(28px,8.5vw,42px);overflow-wrap:anywhere}
  .step-list{grid-template-columns:1fr;gap:10px}
  .step-list>div{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:10px;align-items:center}
  .step-list h3{margin:0}
  .step-list p{grid-column:2;margin:0 0 8px}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .contact-socials a{min-height:44px}
}

.send-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.summary .send-channels .btn{margin:0;padding:12px 8px;min-height:44px}

@media(min-width:801px){
  .formats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .formats .card{border:0}
  .formats .card:nth-child(odd){border-right:1px solid #bcbab5}
  .formats .card:nth-child(-n+2){border-bottom:1px solid #bcbab5}
}

.bike-photo{margin:16px 0 0}
.bike-photo img{display:block;width:100%;height:auto;aspect-ratio:768/512;object-fit:contain;background:#e7e6e1}
.formats .card h3{margin-top:18px;overflow-wrap:anywhere}


@media(max-width:800px){
  .form-row > div{min-width:0}
  #date{display:block;width:100%;max-width:100%;min-width:0;height:48px;appearance:none;-webkit-appearance:none}
  #date::-webkit-date-and-time-value{text-align:left;min-height:1.2em}
}

.booking .ride-description{max-width:none;margin:8px 0 0;font-size:13px;color:#e0e0da}

/* Shared surfaces and accents */
:root{--ink:#171719;--paper:#f7f5f2;--red:#d32b26;--accent-light:#ff746b;--surface:#eeebe7;--line:#d4cfca}
header,.contact-strip{background:var(--paper)}
.steps,footer{background:var(--surface);border-color:var(--line)}
.formats,.card,.formats .card:nth-child(n),details{border-color:var(--line)}
.gift-art,.booking{background:var(--ink)}
form{background:#222224;border-color:#454548}
select,input{background:#2b2b2e;border-color:#717175}
.card .tag{background:var(--surface);color:var(--ink)}

.hero h1 .red,.booking .red,.gift-art .red,
.contact-strip .eyebrow,.contact-phone:hover,.contact-socials a:hover{color:#a5211d}
.gift-art{box-shadow:10px 10px 0 #a5211d}
@media(max-width:800px){.gift-art{box-shadow:6px 6px 0 #a5211d}}
@media(prefers-reduced-motion:no-preference){
  .card .bike-photo{overflow:hidden}
  .card .bike-photo img{transition:transform .28s ease}
  .card:focus-within .bike-photo img{transform:scale(1.025)}
  .ride-description[data-changing]{animation:description-in .22s ease-out}
  @keyframes description-in{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .card:hover .bike-photo img{transform:scale(1.025)}
  .navlinks a,.contact-socials a{transition:color .18s ease}
  .navlinks a:hover{color:#a5211d}
}

.route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.route-card,
.route-support {
  border: 1px solid var(--line);
  padding: clamp(20px, 3vw, 34px);
}
.route-card h3 {
  margin: 18px 0 10px;
}
.route-card p,
.route-support p {
  margin: 0;
  line-height: 1.6;
}
.route-support {
  margin-top: 16px;
  border-left: 4px solid var(--red);
  background: var(--surface);
}
.route-support h3 {
  margin: 0 0 10px;
}
.route-support strong {
  display: block;
  margin-top: 12px;
}
@media (max-width: 820px) {
  .route-grid {
    grid-template-columns: 1fr;
  }
}
#routes .section-head p,
.route-card p,
.route-support p,
.step-list p {
  font-size: 16px;
  line-height: 1.55;
  color: #404043;
}
.route-card h3,
.route-support h3 {
  font-size: 20px;
  line-height: 1.25;
  text-transform: none;
  overflow-wrap: anywhere;
}
.step-list h3 {
  font-size: 17px;
  line-height: 1.3;
}
.social-icon {
  display: inline-block;
  flex: none;
  margin-inline-end: 6px;
  vertical-align: -0.2em;
}
#rides .formats,
#rides .formats .card {
  background: var(--ink);
  border-color: #49494d;
  color: var(--paper);
}
#rides .card p,
#rides .card .price small {
  color: #d5d2ce;
}
#rides .card .num {
  color: var(--accent-light);
}
#rides .card .tag {
  background: #36363a;
  color: var(--paper);
}
#rides .card .btn.outline {
  border-color: #969399;
  color: var(--paper);
}
#rides .card .btn.outline:hover {
  background: var(--paper);
  color: var(--ink);
}