/* lesterlimovanservice.net: hop field paper, cedar bark ink, bine green for every action.
   Bellefair for display (one weight, so headings get size and tracking instead of bold), Fustat for text. */
@font-face{font-family:"Bellefair";src:url("fonts/bellefair-normal-400.2a5c6d6752.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Fustat";src:url("fonts/fustat-normal-200-800.7eb440c33c.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}

:root{
  --hb-paper:#f1faeb;--hb-leaf:#c8e6b0;--hb-card:#ffffff;--hb-ink:#3d2114;--hb-deep:#2a170d;
  --hb-bine:#386f0f;--hb-cedar:#9a3d0c;--hb-rule:#b9cfa6;--hb-soft:#5b4636;
  --hb-gut:clamp(16px,4vw,40px);--hb-max:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--hb-paper);color:var(--hb-ink);font:400 1.0625rem/1.58 "Fustat",system-ui,sans-serif;overflow-wrap:break-word}
img{display:block;max-width:100%;height:auto}
a{color:var(--hb-bine);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--hb-cedar);outline-offset:2px}
h1,h2,h3{font-family:"Bellefair",Georgia,serif;font-weight:400;line-height:1.12;color:var(--hb-deep);margin:0 0 .5em}
h1{font-size:clamp(1.8rem,3.1vw,2.6rem);letter-spacing:-.005em}
h2{font-size:clamp(1.6rem,3vw,2.3rem)}
h3{font-size:1.38rem}
p,ul,ol,dl,table{margin:0 0 1rem}
.hb-wrap{max-width:var(--hb-max);margin:0 auto;padding:0 var(--hb-gut)}
.hb-skip{position:absolute;left:-999px;top:0;background:var(--hb-deep);color:var(--hb-paper);padding:.6rem 1rem;z-index:9}
.hb-skip:focus{left:8px;top:8px}
.hb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header: a cedar strip with the phone, then the masthead row */
.hb-strip{background:var(--hb-deep);color:var(--hb-paper);font-size:.9rem}
.hb-strip .hb-wrap{display:flex;flex-wrap:wrap;gap:.25rem 1.4rem;align-items:center;justify-content:space-between;padding-top:.45rem;padding-bottom:.45rem}
.hb-strip p{margin:0}
.hb-strip a{color:#fff;font-weight:700;text-decoration:none;font-size:1.02rem}
.hb-strip a:hover{text-decoration:underline}
.hb-strip__hours{opacity:.92}
.hb-strip__call{margin-left:auto}
.hb-head{background:var(--hb-paper);border-bottom:1px solid var(--hb-rule)}
.hb-head .hb-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 2rem;padding-top:1rem;padding-bottom:1rem}
.hb-mast{text-decoration:none;color:var(--hb-deep);display:flex;flex-direction:column;margin-right:auto}
.hb-mast__name{font-family:"Bellefair",Georgia,serif;font-size:1.72rem;letter-spacing:.06em;line-height:1}
.hb-mast__what{font-size:.86rem;color:var(--hb-soft);margin-top:.3rem}
.hb-nav{flex-basis:100%;border-top:1px solid var(--hb-rule);padding-top:.35rem}
.hb-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem 1rem;align-items:center}
.hb-nav__go{margin-left:.4rem}
.hb-nav a{color:var(--hb-ink);text-decoration:none;font-weight:500;font-size:.96rem;padding:.35rem 0;display:inline-block;min-height:44px;line-height:2.1}
.hb-nav a[aria-current]{color:var(--hb-bine);box-shadow:inset 0 -2px var(--hb-bine)}
.hb-headgo{background:var(--hb-bine);color:#fff;padding:.55rem 1.15rem;border-radius:999px;font-weight:700;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.hb-headgo:hover{background:#2c590b;color:#fff}
.hb-navbtn{display:none}
@media (max-width:900px){
  .hb-js .hb-navbtn{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1px solid var(--hb-ink);border-radius:999px;background:transparent;color:var(--hb-ink);font:600 .95rem "Fustat",sans-serif}
  .hb-js .hb-nav ul{display:none;width:100%;flex-direction:column;align-items:flex-start;padding-top:.6rem}
  .hb-js .hb-nav.is-open ul{display:flex}
  .hb-nav{flex-basis:auto;width:auto;border-top:0;padding-top:0}
  .hb-nav.is-open{flex-basis:100%}
  .hb-head .hb-wrap{gap:.6rem .8rem}
  .hb-mast{flex-basis:100%}
  .hb-headgo{padding:.45rem 1rem}
}

/* crumbs */
.hb-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;padding:.9rem 0 0;margin:0;font-size:.9rem;color:var(--hb-soft)}
.hb-crumbs li+li::before{content:"\203A";margin-right:.3rem}

/* first screen of the home page */
.hb-open{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.2rem,3vw,3rem);padding-top:clamp(1rem,2.2vw,2rem);padding-bottom:2.4rem;align-items:start}
.hb-open__kick{font-size:.95rem;font-weight:600;color:var(--hb-cedar);letter-spacing:.04em;margin-bottom:.6rem}
.hb-open__lead{font-size:1.08rem;max-width:40em;margin-bottom:.6rem}
.hb-open figure{margin:0;position:relative}
.hb-open figure img{border-radius:18px 18px 18px 2px;width:100%}
.hb-open figcaption{font-size:.88rem;color:var(--hb-soft);margin-top:.5rem}
@media (max-width:860px){.hb-open{grid-template-columns:1fr}.hb-open figure img{max-height:300px;object-fit:cover}}

/* the quick availability strip in the first screen */
.hb-quick{background:var(--hb-card);border:1px solid var(--hb-rule);border-radius:14px;padding:1rem;margin:1.2rem 0 1rem;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.55fr) minmax(0,1.4fr) auto;gap:.7rem;align-items:end}
.hb-quick label{display:flex;flex-direction:column;font-size:.86rem;font-weight:600;gap:.25rem}
.hb-quick button{min-height:46px}
@media (max-width:1100px){.hb-quick{grid-template-columns:1fr 1fr}.hb-quick button{grid-column:1/-1}}
@media (max-width:520px){.hb-quick{grid-template-columns:1.3fr .7fr;gap:.5rem;padding:.75rem}.hb-quick label:nth-of-type(3){grid-column:1/-1}}
@media (max-width:600px){.hb-strip{font-size:.8rem}.hb-strip .hb-wrap{padding-top:.3rem;padding-bottom:.3rem}.hb-head .hb-wrap{padding-top:.6rem;padding-bottom:.6rem}.hb-mast__name{font-size:1.45rem}.hb-open{padding-top:1rem}}
/* phones from 375×667: the pill and the page-list button share one row and the heading tightens, so the date, riders and
   place fields and the check button sit above the fold on every size of INSTRUCTION_2 §2.2 */
@media (max-width:600px){.hb-strip{line-height:1.4}.hb-head .hb-wrap{gap:.45rem;padding-top:.5rem;padding-bottom:.55rem}.hb-mast__what{font-size:.8rem;margin-top:.2rem}.hb-headgo{padding:.3rem .75rem;font-size:.88rem}.hb-js .hb-navbtn{padding:0 .75rem;font-size:.86rem}.hb-open{padding-top:.7rem}.hb-open h1{font-size:1.56rem;line-height:1.12}.hb-quick{margin:.7rem 0 .6rem;padding:.65rem;gap:.45rem}.hb-quick label{gap:.2rem}}
.hb-callrow{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:baseline;font-size:.98rem}
.hb-callrow a{font-weight:700;font-size:1.18rem}
.hb-desk{background:var(--hb-leaf);border-left:4px solid var(--hb-bine);padding:.65rem .9rem;border-radius:0 10px 10px 0;font-size:.93rem;margin:.8rem 0}

/* inputs and buttons */
input,select,textarea{font:inherit;font-size:1rem;color:var(--hb-ink);background:#fff;border:1px solid #66804f;border-radius:8px;padding:.55rem .65rem;min-height:46px;width:100%}
textarea{min-height:110px}
.hb-btn,button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--hb-bine);color:#fff;border:0;border-radius:999px;font:700 1rem "Fustat",sans-serif;padding:.7rem 1.3rem;min-height:46px;cursor:pointer;text-decoration:none}
.hb-btn:hover,button[type=submit]:hover{background:#2c590b;color:#fff}
.hb-btn--line{background:transparent;color:var(--hb-bine);box-shadow:inset 0 0 0 2px var(--hb-bine)}

/* sections */
.hb-sec{padding:clamp(2rem,4.5vw,3.6rem) 0}
.hb-sec--leaf{background:var(--hb-leaf)}
.hb-sec--card{background:var(--hb-card)}
.hb-sec--deep{background:var(--hb-deep);color:var(--hb-paper)}
.hb-sec--deep h2,.hb-sec--deep h3{color:#fff}
.hb-sec--deep a{color:#d7f0c3}
.hb-sec__intro{max-width:46em}
.hb-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1rem,3vw,2.4rem)}
.hb-prose{max-width:46em}
.hb-prose h2{margin-top:2.2rem}
.hb-prose h3{margin-top:1.6rem}
.hb-page-head{padding-top:1.4rem;padding-bottom:.6rem}
.hb-page-head p{font-size:1.12rem;max-width:44em}

/* the seat ladder: seats drawn by code, one square for each seat */
.hb-ladder{width:100%;border-collapse:collapse;font-size:.98rem}
.hb-ladder th,.hb-ladder td{text-align:left;padding:.65rem .6rem;border-bottom:1px solid var(--hb-rule);vertical-align:middle}
.hb-ladder thead th{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--hb-soft);border-bottom:2px solid var(--hb-ink)}
.hb-ladder tbody th{font-family:"Bellefair",serif;font-size:1.35rem;font-weight:400;white-space:nowrap}
.hb-seats{display:inline-grid;grid-auto-flow:column;grid-template-rows:repeat(2,11px);gap:3px;vertical-align:middle}
.hb-seats i{width:11px;height:11px;border-radius:3px 3px 1px 1px;border:1.5px solid var(--hb-bine);display:block}
.hb-seats i.on{background:var(--hb-bine)}
.hb-price{font-family:"Bellefair",serif;font-size:1.45rem;color:var(--hb-cedar);white-space:nowrap}
.hb-price small{font-family:"Fustat",sans-serif;font-size:.78rem;color:var(--hb-soft);display:block}
.hb-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:700px){
  .hb-ladder thead{display:none}
  .hb-ladder tr{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;padding:.7rem 0;border-bottom:1px solid var(--hb-rule)}
  .hb-ladder th,.hb-ladder td{border:0;padding:.1rem 0}
  .hb-ladder td[data-l]::before{content:attr(data-l)": ";font-size:.8rem;color:var(--hb-soft)}
  .hb-ladder td.hb-wide{grid-column:1/-1}
}

/* plain tables (fares, pickup hours) */
.hb-grid{width:100%;border-collapse:collapse;font-size:.97rem;background:var(--hb-card)}
.hb-grid caption{text-align:left;font-weight:600;padding:.5rem 0;caption-side:top}
.hb-grid th,.hb-grid td{padding:.55rem .6rem;border:1px solid var(--hb-rule);text-align:left}
.hb-grid thead th{background:var(--hb-leaf)}
.hb-grid td.n{font-variant-numeric:tabular-nums;white-space:nowrap}

/* photos in prose */
.hb-fig{margin:1.4rem 0}
.hb-fig img{border-radius:12px;width:100%}
.hb-fig figcaption{font-size:.88rem;color:var(--hb-soft);margin-top:.4rem}
.hb-band{margin:0}
.hb-band img{width:100%;max-height:none}
.hb-band figcaption{font-size:.88rem;color:var(--hb-soft);padding:.5rem var(--hb-gut) 0;max-width:var(--hb-max);margin:0 auto}
.hb-side>*,.hb-cols>*,.hb-open>*,.hb-foot__top>*{min-width:0}
.hb-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(1rem,3vw,2.6rem);align-items:start}
@media (max-width:820px){.hb-side{grid-template-columns:1fr}}

/* steps */
.hb-steps{list-style:none;padding:0;counter-reset:s}
.hb-steps li{counter-increment:s;position:relative;padding:0 0 1rem 3rem}
.hb-steps li::before{content:counter(s);position:absolute;left:0;top:-.1rem;width:2.1rem;height:2.1rem;border-radius:50%;border:2px solid var(--hb-bine);display:grid;place-items:center;font-weight:700;color:var(--hb-bine)}
.hb-steps strong{display:block}

/* included and not */
.hb-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hb-split>div{background:var(--hb-card);border-radius:12px;padding:1rem 1.2rem;border:1px solid var(--hb-rule)}
.hb-split ul{padding-left:1.1rem;margin:0}
@media (max-width:640px){.hb-split{grid-template-columns:1fr}}

/* questions */
.hb-qa details{border-bottom:1px solid var(--hb-rule);padding:.2rem 0}
.hb-qa summary{cursor:pointer;font-weight:600;padding:.75rem 0;min-height:44px;list-style-position:outside}
.hb-qa details>div{padding:0 0 1rem}

/* the full request form */
.hb-form{background:var(--hb-card);border:1px solid var(--hb-rule);border-radius:16px;padding:clamp(1rem,3vw,1.8rem)}
.hb-form fieldset{border:0;padding:0;margin:0 0 1.2rem}
.hb-form legend{font-family:"Bellefair",serif;font-size:1.3rem;padding:0;margin-bottom:.5rem;color:var(--hb-deep)}
.hb-form .hb-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.8rem}
.hb-form label{display:block;font-weight:600;font-size:.93rem}
.hb-form label>input,.hb-form label>select,.hb-form label>textarea{display:block;margin-top:.3rem}
.hb-form .hb-hint{display:block;margin-top:.1rem}
.hb-form .hb-hint{font-weight:400;font-size:.85rem;color:var(--hb-soft)}
.hb-form output{display:block;background:var(--hb-paper);border-radius:8px;padding:.6rem .8rem;font-size:.95rem;margin-top:.6rem}
.hb-stepper{display:flex;align-items:center;gap:.4rem}
.hb-stepper input{text-align:center;max-width:5.5rem}
.hb-stepper button{min-width:46px;min-height:46px;border-radius:50%;border:1px solid var(--hb-bine);background:#fff;color:var(--hb-bine);font:700 1.2rem "Fustat",sans-serif;cursor:pointer}
.hb-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.6rem!important;font-weight:400!important}
.hb-check input{width:24px;min-height:24px;height:24px;margin-top:.1rem;flex:none}
.hb-pot{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.hb-formnote{font-size:.92rem;color:var(--hb-soft);margin-top:.8rem}

/* footer: a ledger with dotted leaders */
.hb-foot{background:var(--hb-deep);color:#efe6dc;padding:2.6rem 0 1.6rem;font-size:.95rem}
.hb-foot a{color:#d7f0c3}
.hb-foot__top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2rem}
@media (max-width:760px){.hb-foot__top{grid-template-columns:1fr}}
.hb-foot__legal{font-family:"Bellefair",serif;font-size:1.6rem;color:#fff;margin-bottom:.4rem}
.hb-ledger{list-style:none;padding:0;margin:0}
.hb-ledger li{display:flex;align-items:baseline;gap:.4rem;padding:.25rem 0}
.hb-ledger span:first-child{white-space:nowrap}
.hb-ledger li::after{content:none}
.hb-ledger .hb-dots{flex:1;border-bottom:1px dotted #8c7a68;transform:translateY(-.25em);min-width:1rem}
.hb-ledger span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}
.hb-ledger li{flex-wrap:wrap}
@media (max-width:420px){.hb-ledger .hb-dots{display:none}.hb-ledger li{display:block}.hb-ledger span:last-child{text-align:left;display:block}}
.hb-foot__links{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:1.6rem 0 1rem}
.hb-foot__links a{display:inline-block;min-height:44px;line-height:44px}
.hb-foot__desk{border-top:1px solid #5a4637;padding-top:1rem;max-width:62em}
.hb-foot__c{font-size:.86rem;color:#cdbfb0}

/* links inside tables keep a phone-sized target */
.hb-ladder a,.hb-grid a{display:inline-block;min-height:24px;line-height:24px}
.hb-sec--leaf a:not(.hb-btn),.hb-desk a{color:#2a540a}
/* where next */
.hb-next{padding-left:1.1rem;columns:2 22rem;column-gap:2.5rem}
.hb-next li{margin-bottom:.6rem;break-inside:avoid}
/* required marks and the availability line */
.hb-req{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--hb-cedar);margin-left:.3rem}
.hb-form output.hb-avail{background:var(--hb-leaf);border-left:4px solid var(--hb-bine);margin:0 0 1rem}
.hb-tablewrap:focus-visible{outline:3px solid var(--hb-cedar);outline-offset:2px}
/* focus rings that stay visible on the dark strip and footer */
.hb-strip a:focus-visible,.hb-foot a:focus-visible,.hb-sec--deep a:focus-visible{outline-color:#d7f0c3}
/* narrow tables: tighter cells, the first column stays in view while the rest scrolls */
@media (max-width:520px){.hb-grid th,.hb-grid td{padding:.45rem .4rem}.hb-grid .hb-price{font-size:1.2rem}
  .hb-grid tbody th[scope=row]{position:sticky;left:0;background:var(--hb-card);z-index:1}}
/* the skip link sits over the dark strip when focused */
.hb-skip:focus-visible{outline-color:#d7f0c3}
@media (max-width:720px){.hb-grid tbody th[scope=row],.hb-grid thead th:first-child{position:sticky;left:0;z-index:1}
  .hb-grid tbody th[scope=row]{background:var(--hb-card)}.hb-grid thead th:first-child{background:var(--hb-leaf);z-index:2}
  .hb-grid caption{position:sticky;left:0;max-width:calc(100vw - 2 * var(--hb-gut))}
  .hb-ladder tbody th::before{content:"Riders: ";font-family:"Fustat",sans-serif;font-size:.8rem;color:var(--hb-soft)}}
@media (max-width:520px){.hb-grid td.n{font-size:.88rem}}
/* notes and small print */
.hb-note{font-size:.93rem;color:var(--hb-soft)}
.hb-card{background:var(--hb-card);border:1px solid var(--hb-rule);border-radius:12px;padding:1rem 1.2rem}
.hb-pager{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.4rem 0;border-top:1px solid var(--hb-rule);margin-top:2rem}
.hb-pager a{display:inline-block;min-height:44px;line-height:44px}
@media print{.hb-strip,.hb-nav,.hb-quick,.hb-form{display:none}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
