:root {
  --forest: #202124;
  --link-blue: #123d70;
  --service-green: #2e7100;
  --dark-green: #1b4e00;
  --offer-yellow: #ffe25b;
  --logo-green: #50b302;
  --neutral: #f3f3f3;
  --paper: #fff;
  --sun: var(--logo-green);
  --book-ink: var(--forest);
  --book-accent: var(--link-blue);
}
.mast { min-height: 94px; gap: 24px; }
.identity { color: var(--logo-green); gap: 10px; }
.identity img { width: 53px; height: 59px; }
.wordmark { font-size: clamp(46px,4.45vw,72px); letter-spacing:-.085em; }
.period { color:var(--logo-green); }
.mast-local { display:flex; flex-direction:column; padding-left:20px; border-left:1px solid #b3b3b3; font-size:12px; line-height:1.4; }
.mast-local b { font-weight: 500; }
.mobile-text { display:none; }
.mast .contact-nav span { margin:0; }
.mast .contact-nav .bb-arrow { margin-left:4px; }
.hero-content { min-height: clamp(493px,40.3vw,686px); padding-block:clamp(42px,4vw,75px); }
.hero-content h1 { font-family:"Archivo Black","Arial Black","Helvetica Neue",Arial,sans-serif; font-size:clamp(82px,8.1vw,138px); line-height:.87; font-weight:950; letter-spacing:-.049em; -webkit-text-stroke:.004em currentColor; }
.location { margin-bottom:21px; }
.promise { font-size:clamp(18px,1.4vw,23px); }
.plan-section { padding-block:clamp(44px,5vw,84px); }
.plan-section h2 { font-size:clamp(36px,3.9vw,64px); }
.plan-sub { margin:7px 0 26px; }
.pass { background:var(--neutral); border-top:3px solid var(--service-green); }
.pass-heading { background:var(--service-green);color:#fff; }
.pass-summary strong { font-size:17px; letter-spacing:0; }
.pass-summary span { font-size:15px; }
.start-trial { margin:16px 0 9px; }
.foot .identity img { width:32px; height:37px; }
@media(min-width:601px) and (max-width:900px) {
  .mast-local { display:none; }
}
@media(max-width:600px) {
  .mast { min-height:70px; gap:4px; }
  .mast-local,.desktop-text { display:none; }
  .mobile-text { display:inline; }
  .mast .identity { gap:6px; }
  .identity img { width:33px; height:38px; }
  .wordmark { font-size:37px; }
  .mast .contact-nav { border:1px solid #a6a6a6; padding:8px 10px; }
  .hero-content { min-height:clamp(424px,110vw,490px); padding-top:135px; padding-bottom:30px; }
  .hero-content h1 { font-size:clamp(50px,13.2vw,78px); }
  .promise { font-size:17px; }
  .location { margin-bottom:15px; font-size:10px; }
  .hero-actions { gap:14px; flex-wrap:wrap; }
  .hero-actions .see-rates { font-size:14px; }
  .plan-section h2 { max-width:14ch; }
}
.route-details { margin-top:clamp(30px,3.3vw,52px); border-top:1px solid #aaa; display:grid; grid-template-columns:1fr 1.6fr; gap:5%; padding-top:18px; }
.route-details h3 { margin:0; font:700 clamp(24px,2.5vw,35px)/1.2 Arial,sans-serif; letter-spacing:-.035em; }
.route-details details { border-bottom:1px solid #bfbfbf; }
.route-details summary { display:list-item; cursor:pointer; min-height:44px; padding:10px 4px; font-weight:650; }
.route-details p { margin:0 0 14px; max-width:56ch; }
.route-details a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:600px){ .route-details { grid-template-columns:1fr; gap:8px; } }

.team-note { background:var(--logo-green); color:#142017; }
.team-note p { margin-block:0; padding-block:20px; font-size:clamp(16px,1.25vw,19px); }

/* Readable type and controls across desktop and phone widths. */
body { font-size:18px; line-height:1.55; }
.mast-local { font-size:15px; line-height:1.35; }
.mast nav, .mast .contact-nav { font-size:16px; }
.location { font-size:15px; letter-spacing:.04em; text-transform:none; }
.hero-content h1 { letter-spacing:-.04em; }
.hero-content .promise { max-width:46ch; font-size:clamp(19px,1.5vw,24px); line-height:1.45; }
.hero-actions .main-btn, .hero-actions .see-rates, .contact-nav, .bb-phone, .bb-copy, .bb-send, .start-trial {
  display:inline-flex; align-items:center; min-height:48px; font-size:17px;
}
.start-trial { display:flex; }
.mast nav .rates-nav { padding-block:12px; }
.team-note p, .plan-sub, .pass-summary span, .route-details p, .bb-book-intro p { font-size:18px; line-height:1.55; }
.option { min-height:68px; }
.option>span small, .option>b small, .pass-body p, .pass-heading, .bb-form label, .bb-help, .bb-draft p, .bb-status:not(:empty), .foot { font-size:16px; line-height:1.45; }
.option>span small { color:#454545; }
.pass-heading { letter-spacing:0; text-transform:none; }
.option input { width:22px; height:22px; }
.route-details summary { min-height:54px; padding:14px 8px; font-size:18px; }
.route-details p { margin-left:8px; }
.bb-form input, .bb-form select, .bb-submit { font-size:17px; min-height:50px; }
.bb-draft a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.bb-form input, .bb-form select { max-width:100%; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
  outline:3px solid var(--service-green); outline-offset:3px;
}
.hero a:focus-visible { outline-color:#fff; }
@media (max-width:600px) {
  .hero-actions { gap:4px 16px; }
  .hero-actions .main-btn, .hero-actions .see-rates, .mast .contact-nav { font-size:16px; }
  .mast .contact-nav { padding:5px 12px; }
  .location { font-size:15px; }
  .option { display:grid; grid-template-columns:22px minmax(0,1fr) auto; }
  .option>b small { display:block; font-weight:normal; }
  .option>b { text-align:right; }
}
@font-face {
  font-family: "Bin Boys Archivo";
  src: url("bin-boys-wordmark.woff") format("woff");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
.identity .wordmark {
  font-family: "Bin Boys Archivo", "Arial Black", Arial, sans-serif;
  font-style: normal;
  font-weight: 900;
  font-size: clamp(38px, 3.9vw, 60px);
  line-height: 1.05;
  letter-spacing: -.045em;
}
.foot .wordmark { font-size: 30px; }
@media (max-width: 600px) {
  .identity .wordmark { font-size: 32px; }
  .foot .wordmark { font-size: 27px; }
}

/* The mark supplies the primary green. Darker greens carry text on light surfaces. */
.mast .contact-nav { color:var(--link-blue); border-color:#a1a1a1; }
.mast nav .rates-nav { color:var(--service-green); }
.route-details a, .foot>a:last-child { color:var(--link-blue); }
.hero { background:#14210d; }
.hero:before { background:linear-gradient(90deg,rgba(7,26,7,.93),rgba(8,24,8,.82) 34%,rgba(11,22,10,.34) 62%,rgba(12,12,12,.04)); }
.location { color:white; border-left:4px solid var(--logo-green); padding-left:10px; }
.hero-offer { margin:18px 0 0; color:white; font-size:clamp(19px,1.5vw,24px); line-height:1.4; }
.hero-offer strong { color:var(--offer-yellow); }
.hero-offer span { font-size:.91em; }
.hero-actions { margin-top:20px; }
.main-btn, .start-trial, .bb-submit { background:var(--logo-green); color:#101708; }
.main-btn:hover, .start-trial:hover, .bb-submit:hover { background:var(--dark-green); color:white; }
.team-note { background:var(--service-green); color:white; }
.team-note p { font-weight:600; }
.options { border-top-color:var(--service-green); }
.option { border-color:#bdbdbd; }
.option:has(input:checked) { background:var(--neutral); box-shadow:inset 5px 0 0 var(--logo-green); }
.option input { accent-color:var(--service-green); }
.pass { align-self:start; background:var(--neutral); border-top:3px solid var(--service-green); }
.pass-heading { margin:0; padding:16px 20px 4px; border:0; background:transparent; color:#404040; font:600 17px/1.4 Arial,sans-serif; }
.pass-body { padding:2px 20px 20px; }
.pass-summary { display:grid; gap:3px; }
.pass-summary strong { font-size:clamp(24px,2.2vw,32px); line-height:1.2; color:var(--dark-green); }
.booking-band { background:var(--neutral); border-color:#ccc; }
.bb-form input,.bb-form select { border-color:#767676; color:#202124; }
.rmv { border-color:#999; color:#202124; }
@media(max-width:600px) {
  .hero:before { background:linear-gradient(0deg,rgba(7,21,7,.98),rgba(8,23,8,.86) 43%,rgba(12,24,10,.58) 74%,rgba(12,22,10,.17)); }
  .hero-content { padding-top:88px; }
  .hero-offer { margin-top:14px; }
}
