/* Brisbane Bike Rental — quiet craftsmanship pass, 14 Oct 2026.
   Small optical and interaction refinements only; no booking, OS or Stripe
   behaviour is changed here. */
:root{
  --shadow-sm:0 1px 2px rgba(24,35,25,.035),0 10px 28px -14px rgba(24,35,25,.20);
  --shadow-md:0 2px 5px rgba(24,35,25,.04),0 24px 52px -22px rgba(24,35,25,.28);
}

::selection{background:rgba(126,200,80,.34);color:var(--ink)}
html{scroll-padding-top:112px}
body{font-synthesis:none;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
p,.lede{ text-wrap:pretty }
:is(.price,.shop-price,.hero-price,.bk-price,.cost-price,.plan-price){font-variant-numeric:tabular-nums lining-nums}

.site-header{box-shadow:0 1px 0 rgba(255,255,255,.68),0 10px 34px -32px rgba(20,35,22,.72)}
.desktop-nav a::after{height:2px;border-radius:2px;bottom:-5px}

.btn{
  position:relative;isolation:isolate;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1),background .18s ease,color .18s ease,border-color .18s ease,filter .18s ease;
}
.btn-primary{background:linear-gradient(180deg,#478426 0%,var(--green) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 1px 2px rgba(35,73,22,.16)}
.btn-primary:hover{background:linear-gradient(180deg,#3d7421 0%,var(--green-deep) 100%)}
.btn:active{transform:translateY(0) scale(.985);box-shadow:inset 0 2px 5px rgba(18,44,13,.18)}

:is(input,select,textarea,.bk-datebtn,.bk-time,.bk-rider,.shop-qty){transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
:is(input,select,textarea):focus{border-color:rgba(63,122,31,.72);box-shadow:0 0 0 4px rgba(63,122,31,.10);outline:none}
:is(input,textarea)::placeholder{color:#7b857d;opacity:1}

:is(.card,.review-card,.price-card,.offer,.bk-step,.bk-hero-card,.shop-card,.live-stock){box-shadow:var(--shadow-sm)}
:is(.card,.review-card,.price-card,.offer,.bk-step,.bk-hero-card,.shop-card,.live-stock){transition:border-color .2s ease,box-shadow .22s cubic-bezier(.2,.8,.2,1),transform .22s cubic-bezier(.2,.8,.2,1)}

.eyebrow{line-height:1.25}
.rating-badge{transition:border-color .18s ease,background-color .18s ease,transform .18s ease}
.faq-item summary{transition:color .16s ease}

@media (hover:hover) and (pointer:fine){
  :is(.card,.review-card,.price-card,.offer,.shop-card):hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}
  .rating-badge:hover{transform:translateY(-1px)}
  .faq-item summary:hover{color:var(--green-deep)}
}

@media (max-width:900px){html{scroll-padding-top:80px}}
@media (max-width:620px){
  html{scroll-padding-top:72px}
  .btn{letter-spacing:.045em}
  :is(.card,.review-card,.price-card,.offer,.bk-step,.shop-card){box-shadow:0 1px 2px rgba(24,35,25,.04),0 12px 30px -24px rgba(24,35,25,.26)}
}

@media (prefers-reduced-motion:reduce){
  .btn,:is(.card,.review-card,.price-card,.offer,.bk-step,.bk-hero-card,.shop-card,.live-stock),.rating-badge,.faq-item summary{transition:none!important}
}
