:root {
  --forest: #07213e;
  --link-blue: #123d70;
  --service-green: #2e7100;
  --navy: #07213e;
  --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:6px 10px; white-space:nowrap; }
  .mast .contact-nav .bb-arrow { display:none; }
  .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) {
  .mast .identity .wordmark { font-size:clamp(25px,7.6vw,32px); }
  .foot .wordmark { font-size: 27px; }
}

/* Brand colors sampled from the original design and the bin mark. */
.mast .contact-nav { color:var(--navy); border-color:#a6abb0; }
.mast nav .rates-nav { color:var(--navy); }
.route-details a, .foot>a:last-child { color:var(--link-blue); }

.hero { --photo-edge:53%; background:var(--navy); }
.hero .scene { inset:0 0 0 auto; width:calc(100% - var(--photo-edge)); height:100%; object-position:72% center; }
.hero:before { content:none; }
.hero-content { min-height:clamp(475px,38.5vw,620px); padding-block:clamp(38px,4vw,68px); }
.hero-content > * { max-width:calc((100vw * .53) - clamp(22px,5.4vw,90px) - 40px); }
.location { margin-bottom:22px; color:white; font-weight:600; letter-spacing:.025em; }
.hero-content h1 { font-size:clamp(60px,6.4vw,104px); line-height:.94; letter-spacing:-.052em; }
.hero-content .promise { max-width:min(35ch,calc(53vw - clamp(22px,5.4vw,90px) - 40px)); font-size:clamp(19px,1.45vw,23px); }
.hero-offer { margin:20px 0 0; font-size:clamp(19px,1.55vw,25px); line-height:1.35; }
.hero-offer strong { color:var(--logo-green); }
.hero-offer span { color:#e5e5e5; font-size:.87em; }
.hero-actions { margin-top:23px; flex-wrap:wrap; gap:6px 22px; }
.main-btn { background:white; color:var(--navy); }
.main-btn:hover { background:#e9e9e9; color:var(--navy); }
.start-trial, .bb-submit { background:var(--navy); color:white; }
.start-trial:hover, .bb-submit:hover { background:#123d70; color:white; }

.team-note { color:var(--navy); background:#f2f2f2; border-bottom:1px solid #d9d9d9; }
.team-inner { display:flex; align-items:center; gap:20px; padding-block:17px; }
.team-inner img { flex:none; width:59px; height:66px; object-fit:contain; mix-blend-mode:multiply; }
.team-note p { margin:0; padding:0; font-size:clamp(17px,1.35vw,21px); line-height:1.45; }
.team-note p strong, .team-note p span { display:block; }
.team-note p span { color:#41464a; font-size:17px; }
.options { border-top-color:var(--navy); }
.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(--navy); }
.pass-heading { margin:0; padding:16px 20px 4px; border:0; background:transparent; color:#444; 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(--service-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:var(--navy); }
@media(max-width:760px) {
  .hero { display:flex; flex-direction:column; }
  .hero .scene { position:static; order:2; width:100%; height:clamp(145px,33vw,225px); object-position:center 57%; }
  .hero-content { order:1; min-height:0; padding-block:30px; }
  .hero-content > *, .hero-content .promise { max-width:100%; }
  .hero-content h1 { font-size:clamp(51px,9.4vw,70px); }
  .location { margin-bottom:17px; }
  .hero-offer { margin-top:14px; }
  .hero-actions { margin-top:16px; }
  .team-inner { gap:14px; padding-block:14px; }
  .team-inner img { width:45px; height:51px; }
}
