:root {
  --ink: #183e36;
  --paper: #fffdf7;
  --cream: #f1eddf;
  --accent: #a94220;
  --line: #ccd4cc;
  --area-cta-bg: #183e36;
  --area-cta-color: #fffdf7;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
a {
  color: #a33d1b;
  text-underline-offset: 4px;
}
a:hover {
  color: #72280f;
}
button,
input,
select {
  font: inherit;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
  opacity: 1;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid #b94d21;
  outline-offset: 5px;
}
h1,
h2,
h3 {
  line-height: 1.1;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
h1 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(2.6rem, 4.7vw, 4.5rem);
  margin: 0.35em 0;
}
h2 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 3vw, 3rem);
  margin: 0.5em 0;
}
h3 {
  font-size: 1.2rem;
}
p {
  margin: 1em 0;
}
main {
  max-width: 1200px;
  margin: auto;
  padding: 0 28px;
}
main > section {
  margin: 70px 0;
}
main > .hero {
  margin: 0;
  padding: 65px 0 48px;
}
.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
}
.hero:not(:has(img)) {
  display: block;
  max-width: 900px;
  padding-bottom: 15px;
}
.hero .photo {
  height: 540px;
  object-fit: cover;
  object-position: center;
}
.lede {
  font-size: 1.12rem;
  max-width: 42em;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 0.76rem;
  font-weight: 800;
  color: #795132;
}
.fine {
  font-size: 0.82rem;
  line-height: 1.5;
}
.call {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--accent);
  border: 0;
  border-radius: 4px;
  padding: 14px 20px;
  color: white;
  text-decoration: none;
  font-size: 0.91rem;
  line-height: 1.35;
  font-weight: 700;
  max-width: 100%;
  text-align: left;
}
.call small {
  font-size: 0.71rem;
  font-weight: 400;
  margin-top: 5px;
}
.hero .call {
  margin-top: 15px;
}
.photo {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
.photo[src*='patio'] {
  object-position: 50% 78%;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 55px;
  align-items: center;
}
.split .photo {
  aspect-ratio: 1.15;
  object-fit: cover;
}
.benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  padding: 25px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.benefits p {
  font-size: 0.9rem;
  margin: 0.4em 0;
}
.cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 30px 0;
}
.card {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 25px;
  color: var(--ink);
  text-decoration: none;
  background: white;
}
.card:hover {
  background: var(--cream);
  color: var(--ink);
}
.card p {
  font-size: 0.92rem;
}
.card span {
  font-size: 0.85rem;
  color: var(--accent);
  font-weight: 700;
}
.prose {
  max-width: 850px;
  margin: 45px auto;
}
.prose h2 {
  font-size: 2.1rem;
}
.steps {
  padding-left: 24px;
}
.steps li {
  padding: 12px 0;
}
.faq details {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
summary {
  cursor: pointer;
  font-weight: 700;
}
.faq p {
  max-width: 800px;
}
.closing {
  background: var(--cream);
  padding: 38px;
  border-radius: 8px;
}
.closing p {
  max-width: 780px;
}
.closing > a {
  display: block;
  margin-top: 20px;
}
.map iframe {
  width: 100%;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.area-wrap {
  background: #ecefe8;
  padding: 50px max(28px, calc((100vw - 1144px) / 2));
  margin-top: 60px;
}
.area-wrap .lln-service-areas {
  margin-top: 30px;
}
.area-wrap .lln-service-areas .lln-service-areas {
  margin: 20px 0 30px;
}
.area-wrap .lln-service-areas .lln-service-areas h2 {
  font-size: 1.5rem;
}
.area-wrap .lln-area-card {
  background: var(--paper);
  border-color: #a2b1a4;
}
.lln-area-card summary {
  font-size: 0.88rem;
  line-height: 1.35;
  min-height: 92px;
}
.lln-area-card summary small {
  font-size: 0.69rem;
  font-weight: 400;
}
.lln-area-body {
  font-size: 0.9rem;
}
.lln-area-call {
  background: var(--accent);
  color: white;
  border: 0;
}
.lln-area-call small {
  display: block;
}
.lln-area-rest {
  border: 1px solid #a2b1a4;
  border-radius: 4px;
}
.lln-area-rest > summary {
  font-size: 1.05rem;
}
.lln-area-rest > section {
  padding: 18px;
}
.lln-area-rest small {
  font-size: 0.8rem;
}
.lln-service-areas input {
  width: min(100%, 440px);
  margin: 12px;
}
.lln-service-areas form button {
  background: var(--ink);
  color: white;
  border: 0;
  border-radius: 4px;
}
.review-note {
  background: var(--ink);
  color: #fff;
  font-size: 0.72rem;
  text-align: center;
  padding: 8px 15px;
}
.fleet-header {
  background: var(--paper);
  color: var(--ink);
}
.fleet-row {
  max-width: 1400px;
}
.fleet-brand img {
  max-width: 210px;
  height: auto;
}
.fleet-cost {
  color: var(--accent);
}
.fleet-panel a {
  color: var(--ink);
}
.fleet-panel-inner {
  max-height: 65vh;
  overflow: auto;
}
.fleet-panel .call {
  color: #fff;
}
.fleet-header .call {
  color: #fff;
  font-size: 0.73rem;
  padding: 10px 12px;
}
.fleet-header .call small {
  font-size: 0.62rem;
}
.fleet-brand {
  flex-shrink: 0;
}
.fleet-quote {
  min-width: 0;
}
footer {
  background: var(--ink);
  color: #fffdf7;
  padding: 50px 28px;
}
footer a {
  color: #ffceab;
}
footer a:hover {
  color: white;
}
.footer-inner {
  max-width: 1144px;
  margin: auto;
}
footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 25px;
  margin: 25px 0;
}
footer .disclosure {
  font-size: 0.86rem;
  line-height: 1.7;
  border-top: 1px solid #678076;
  padding-top: 25px;
  margin-top: 30px;
  max-width: 1100px;
}
footer .call {
  margin: 16px 0;
}
.mobile-call {
  display: none;
}
.skip {
  position: absolute;
  left: 20px;
  top: -100px;
  z-index: 100;
  background: white;
  padding: 10px;
}
.skip:focus {
  top: 10px;
}
.decision-aid {
  background: var(--cream);
  padding: 30px;
  border-radius: 6px;
}
.flow {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 0;
}
.flow li {
  background: var(--ink);
  color: white;
  padding: 20px;
  border-radius: 4px;
  line-height: 1.4;
}
.flow strong {
  display: block;
  font-size: 1.5rem;
  margin-bottom: 10px;
}
.table-wrap {
  overflow: auto;
}
table {
  border-collapse: collapse;
  width: 100%;
  min-width: 420px;
  text-align: left;
}
caption {
  text-align: left;
  margin: 20px 0;
  font-size: 0.85rem;
}
th,
td {
  padding: 15px;
  border-bottom: 1px solid #a2b1a4;
  font-size: 0.9rem;
  vertical-align: top;
}
thead {
  background: #dce2d7;
}
.planner {
  max-width: 750px;
  background: var(--cream);
  padding: 30px;
  margin: 30px auto;
  border-radius: 6px;
  display: grid;
  gap: 12px;
}
.planner input,
.planner select {
  width: 100%;
  padding: 12px;
  border: 1px solid #637665;
  background: white;
  border-radius: 3px;
}
.planner button {
  border: 0;
  background: var(--ink);
  color: white;
  padding: 14px;
  border-radius: 4px;
}
.planner button[type='reset'] {
  background: white;
  color: var(--ink);
  border: 1px solid var(--ink);
}
#planner-result:empty {
  display: none;
}
#planner-result {
  padding: 20px;
  background: white;
  border-left: 4px solid var(--accent);
}
@media (max-width: 1100px) {
  .fleet-brand img {
    max-width: 185px;
  }
  .hero {
    gap: 28px;
  }
  .hero .photo {
    height: 480px;
  }
}
@media (max-width: 700px) {
  body {
    padding-bottom: 94px;
  }
  main {
    padding: 0 20px;
  }
  main > section {
    margin: 44px 0;
  }
  main > .hero {
    padding: 32px 0;
  }
  .hero,
  .split {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .hero .photo {
    height: 310px;
  }
  .hero .call {
    width: 100%;
  }
  .benefits {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .benefits div + div {
    border-top: 1px solid var(--line);
    padding-top: 12px;
  }
  .cards {
    grid-template-columns: 1fr;
  }
  .split .photo {
    aspect-ratio: 1.35;
  }
  .closing,
  .decision-aid {
    padding: 24px;
  }
  .area-wrap {
    padding: 35px 20px;
  }
  .flow {
    grid-template-columns: 1fr;
  }
  .map iframe {
    height: 300px;
  }
  .mobile-call {
    position: fixed;
    display: block;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--paper);
    border-top: 1px solid var(--line);
    padding: 9px 18px;
    z-index: 20;
  }
  .mobile-call .call {
    width: 100%;
    align-items: center;
    font-size: 0.84rem;
    padding: 10px;
  }
  .mobile-call .call small {
    font-size: 0.7rem;
  }
  .fleet-brand img {
    max-width: 200px;
  }
  .review-note {
    font-size: 0.67rem;
  }
  .prose h2 {
    font-size: 1.85rem;
  }
  footer {
    padding: 36px 20px;
  }
  .lln-area-card summary {
    padding: 14px !important;
    font-size: 0.83rem;
  }
  .planner {
    padding: 20px;
  }
  .lln-service-areas input {
    margin: 12px 0;
  }
  .lln-service-areas form label {
    display: block;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}

.fleet-brand > a > img {
  width: 210px !important;
  height: auto !important;
  max-width: 100% !important;
}
.fleet-brand > a {
  display: block;
  width: 210px;
}
.fleet-brand {
  min-width: 210px;
}
@media (max-width: 700px) {
  .fleet-brand > a {
    width: 190px;
  }
  .fleet-brand {
    min-width: 190px;
  }
}

/* Keep shared navigation colors aligned with the light site header. */
.fleet-header {
  --fleet-bg: var(--paper);
  --fleet-text-accent: var(--accent);
}
.fleet-intro p,
.fleet-groups small {
  color: #465f55;
}
.fleet-intro,
.fleet-dropdown,
.fleet-cost,
.fleet-bottom {
  border-color: var(--line);
}
.fleet-toggle {
  border-color: #637665;
}
.fleet-header :focus-visible {
  outline-color: var(--accent);
}
.fleet-groups a:hover,
.fleet-groups a:focus-visible {
  background: var(--cream);
  border-color: var(--line);
}
@media (max-width: 1150px) {
  .fleet-header[data-menu-open] .fleet-navigation {
    position: absolute;
    inset: 100% 0 auto;
    max-height: 75dvh;
    border-bottom: 2px solid var(--accent);
  }
  .fleet-panel-inner {
    max-height: none;
  }
}

.breadcrumbs {
  font-size: 0.78rem;
  margin-top: 22px;
}
.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
}
.breadcrumbs li + li::before {
  content: '/';
  margin-right: 8px;
  color: #637665;
}

.call:hover,
.call:focus-visible,
.fleet-header .call:hover,
.fleet-header .call:focus-visible,
footer .call:hover,
footer .call:focus-visible {
  color: #fff;
  background: var(--accent);
}

.lln-area-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.lln-area-card{min-width:0;border:1px solid currentColor;border-radius:.4rem}.lln-area-card[open]{grid-column:span 2}.lln-service-areas summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;cursor:pointer;list-style:none}.lln-service-areas summary::-webkit-details-marker{display:none}.lln-service-areas summary small{display:block;margin-top:.35rem}.lln-area-indicator::before{content:'+'}.lln-area-card[open]>summary .lln-area-indicator::before,.lln-area-rest[open]>summary .lln-area-indicator::before{content:'−'}.lln-area-body{padding:1rem;overflow-wrap:anywhere}.lln-area-body iframe{width:100%;height:240px;border:0;margin:1rem 0}.lln-area-body nav{display:grid;gap:.75rem;margin:1rem 0}.lln-area-body nav a{display:block;padding:.75rem;border:1px solid currentColor}.lln-area-body nav span{display:block}.lln-area-call{display:inline-flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:var(--area-cta-bg,#173e42);color:var(--area-cta-color,#fff);border-radius:.3rem}.lln-rest-open{display:none}.lln-area-rest[open]>summary .lln-rest-open{display:inline}.lln-area-rest[open]>summary .lln-rest-closed{display:none}.lln-service-areas :focus-visible{outline:3px solid currentColor;outline-offset:4px}.lln-service-areas [hidden]{display:none!important}.lln-area-rest{margin-top:1rem}.lln-service-areas input{max-width:100%;font:inherit;padding:.75rem}.lln-service-areas button{font:inherit;padding:.75rem}@media(max-width:700px){.lln-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lln-area-card[open]{grid-column:1/-1}}
