/* Chores Indoors | Main stylesheet | Mobile update V5 */

:root {
    --ink: #263a32;
    --green: #476957;
    --cream: #f7f7f1;
    --soft: #e8eee6;
    --line: #dce3d9;
}

* {

    box-sizing: border-box;

}
html {

    scroll-behavior: smooth;

}
body {
    margin: 0;
    color: var(--ink);
    font-family: "DM Sans",Arial,sans-serif;
    background: #fff;
}

a {
    color: inherit;
    text-decoration: none;
}

button,input,textarea,select {

    font: inherit;

}
.header {
    height: 88px;
    display: flex;
    align-items: center;
    gap: 35px;
    padding: 0 max(5%,calc((100vw - 1380px)/2));
    background: #fff;
    position: relative;
    z-index: 3;
}

.brand {
    font-size: 24px;
    font-weight: 700;
    white-space: nowrap;
    letter-spacing: -1.1px;
}

.brand em {
    font-family: Georgia,serif;
    font-weight: 400;
}

.mark {

    color: #7d9e79;

}
.header nav {
    display: flex;
    gap: 32px;
    margin: auto;
    font-size: 13px;
    font-weight: 600;
}

.header nav a:hover,.text-link:hover {

    color: #73967e;

}
.top-cta {
    border: 1px solid #bccdc1;
    border-radius: 40px;
    padding: 14px 23px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.menu {

    display: none;

}
.hero {
    background: var(--cream);
    display: grid;
    grid-template-columns: 1fr 46%;
    min-height: 665px;
}

.hero-copy {
    padding: 100px 7% 45px max(9%,calc((100vw - 1240px)/2));
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.4px;
    color: #62836d;
}

.hero h1,h2 {
    font-family: "Playfair Display",Georgia,serif;
    font-weight: 400;
    letter-spacing: -2px;
}

.hero h1 {
    font-size: clamp(46px,5vw,77px);
    line-height: 1.13;
    margin: 22px 0;
}

.hero h1 i,h2 i {
    font-weight: 400;
    color: #7c9b81;
}

.intro {
    font-size: 16px;
    line-height: 1.9;
    max-width: 540px;
    color: #66736c;
}

.actions {
    display: flex;
    align-items: center;
    gap: 25px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.btn {
    background: var(--green);
    color: #fff;
    padding: 18px 26px;
    border: 0;
    border-radius: 3px;
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.btn span {

    margin-left: 15px;

}
.btn:hover {

    background: #2e4c3a;

}
.text-link {
    font-size: 13px;
    font-weight: 700;
}

.proof {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 60px;
}

.proof div {
    border-left: 2px solid #b5cbb8;
    padding-left: 12px;
}

.proof strong,.proof small {

    display: block;

}
.proof strong {

    font-size: 13px;

}
.proof small {
    font-size: 11px;
    color: #748078;
    margin-top: 5px;
}

.hero-photo {
    position: relative;
    min-height: 600px;
    overflow: hidden;
}

.hero-photo img,.feature-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.photo-label {
    position: absolute;
    bottom: 35px;
    left: 30px;
    background: white;
    padding: 18px 22px;
    font-family: Georgia,serif;
    font-style: italic;
    font-size: 19px;
    box-shadow: 0 8px 30px #0002;
}

.photo-label span {
    color: #78977a;
    margin-left: 15px;
}

.section {
    max-width: 1260px;
    margin: auto;
    padding: 110px 30px;
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 35px;
    margin-bottom: 45px;
}

.section-head h2,.feature h2,.areas h2,.contact h2 {
    font-size: clamp(38px,4.2vw,60px);
    line-height: 1.2;
    margin: 15px 0;
}

.section-head>p {
    max-width: 360px;
    line-height: 1.8;
    color: #6e7972;
    font-size: 14px;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px;
}

.service-card {
    background: #f4f7f1;
    padding: 35px;
    min-height: 310px;
    display: flex;
    flex-direction: column;
}

.service-card:nth-child(2) {

    background: #e8efe7;

}
.number {
    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 700;
    color: #6d8874;
}

.service-icon {
    font-size: 38px;
    margin: 25px 0 10px;
    color: #72917c;
}

.service-card h3 {
    font-family: Georgia,serif;
    font-weight: 400;
    font-size: 27px;
    margin: 0;
}

.service-card p {
    font-size: 13px;
    line-height: 1.8;
    color: #69766d;
}

.service-card a {
    margin-top: auto;
    font-size: 12px;
    font-weight: 700;
    padding-top: 20px;
}

.extras {
    text-align: center;
    color: #6e7972;
    font-size: 13px;
    margin-top: 35px;
}

.feature {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--soft);
}

.feature-image {

    min-height: 570px;

}
.feature-copy {
    padding: 95px clamp(35px,7vw,120px);
    align-self: center;
}

.feature-copy p:not(.eyebrow) {
    line-height: 1.9;
    color: #617167;
}

.feature-copy ul {
    padding-left: 19px;
    line-height: 2.4;
    font-size: 14px;
}

.dark {

    margin-top: 22px;

}
.areas {
    text-align: center;
    max-width: 920px;
}

.areas>p:last-child {
    line-height: 2;
    color: #68796c;
}

.contact {
    background: #263f33;
    color: #fff;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    padding: 100px max(7%,calc((100vw - 1240px)/2));
}

.contact .eyebrow {

    color: #b8d1b8;

}
.contact h2 i {

    color: #c5d7bb;

}
.contact>div>p:not(.eyebrow) {
    line-height: 1.9;
    color: #d3ded3;
}

.contact .small-note {
    font-size: 12px;
    opacity: .75;
    margin-top: 50px;
}

.contact form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.contact label {
    font-size: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.contact input,.contact select,.contact textarea {
    background: #fff;
    border: 1px solid #ddd;
    padding: 14px;
    color: #25392f;
    width: 100%;
    border-radius: 2px;
}

.contact .wide {

    grid-column: 1/-1;

}
.contact .btn {
    background: #c9dec7;
    color: #243a2d;
}

.contact #form-note {
    font-size: 12px;
    align-self: center;
}

footer {
    padding: 32px 6%;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 12px;
    color: #738076;
}

footer strong {
    font-size: 18px;
    color: var(--ink);
}

@media (max-width:950px) {
    .header {
        padding: 0 5%;
        gap: 15px;
    }

    .header nav {

        gap: 15px;

    }
    .hero-copy {

        padding: 65px 7%;

    }
    .hero {

        grid-template-columns: 1fr 43%;

    }
    .proof {

        gap: 15px;

    }
    .contact {
        gap: 30px;
        padding: 70px 5%;
    }
}

@media (max-width:720px) {
    .header {
        height: 72px;
    }
    .brand {

        font-size: 22px;

    }
    .menu {
        display: block;
        margin-left: auto;
        border: 0;
        background: none;
        font-size: 25px;
        color: var(--ink);
        cursor: pointer;
    }

    .header nav {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        background: white;
        padding: 25px 6%;
        flex-direction: column;
        box-shadow: 0 10px 20px #0001;
    }

    .header nav.open {

        display: flex;

    }
    .top-cta {
        padding: 10px 13px;
        font-size: 11px;
    }

    .hero {

        grid-template-columns: 1fr;

    }
    .hero-copy {

        padding: 55px 7% 40px;

    }
    .hero h1 {

        font-size: clamp(43px,10vw,65px);

    }
    .hero-photo {
        min-height: 340px;
        max-height: 440px;
    }

    .proof {

        padding-top: 40px;

    }
    .section {

        padding: 70px 6%;

    }
    .section-head {

        display: block;

    }
    .service-grid {

        grid-template-columns: 1fr;

    }
    .service-card {

        min-height: 270px;

    }
    .feature {

        grid-template-columns: 1fr;

    }
    .feature-image {
        min-height: 320px;
        max-height: 400px;
    }

    .feature-copy {

        padding: 60px 7%;

    }
    .contact {
        grid-template-columns: 1fr;
        padding: 70px 7%;
    }

    .contact form {

        grid-template-columns: 1fr;

    }
    .contact .wide {

        grid-column: auto;

    }
    footer {

        flex-direction: column;

    }
    .photo-label {
        bottom: 20px;
        left: 20px;
        font-size: 16px;
    }
}

@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* V4: Show trust statements beneath hero photograph on mobile */

.proof-mobile {

    display: none;

}
@media (max-width: 800px) {
    .proof-desktop {
        display: none;
    }
    .proof-mobile {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        margin: 0;
        padding: 22px 6%;
        background: var(--cream);
    }

    .hero-copy {
        padding: 34px 6% 24px;
        min-width: 0;
    }

    .hero h1 {
        font-size: clamp(29px, 7.5vw, 39px);
        line-height: 1.13;
        letter-spacing: -1px;
        margin: 12px 0;
    }

    .hero .intro {
        font-size: 14px;
        line-height: 1.6;
    }

    .hero .actions {
        margin-top: 14px;
        gap: 14px;
    }

    .hero-photo {
        min-height: 260px;
        height: 320px;
        max-height: none;
    }
}

@media (max-width: 480px) {
    .proof-mobile {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 22px 7%;
    }

    .proof-mobile div {

        padding-left: 12px;

    }
    .hero-photo {
        height: 265px;
        min-height: 265px;
    }

    .hero h1 {

        font-size: clamp(28px, 7.4vw, 34px);

    }
    .hero-copy {

        padding-top: 28px;

    }
}

@media (max-width: 800px) {
    .header .top-cta {
        display: none;
    }
    .header .menu {

        margin-left: auto;

    }
}

/* ============================================================
   V6: Additional service pages — consistent with the homepage
   ============================================================ */
.header nav {
    gap: 17px;
}
.inner-hero {
    display: grid;
    grid-template-columns: 1fr 45%;
    background: var(--cream);
    min-height: 0;
    align-items: center;
}
.inner-hero-copy {
    padding: 28px 7% 28px max(9%, calc((100vw - 1240px)/2));
    align-self: center;
}
.inner-hero h1, .inner-title h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(39px, 4.8vw, 67px);
    line-height: 1.15;
    font-weight: 400;
    letter-spacing: -1.6px;
    margin: 20px 0;
}
.inner-hero .btn {
    margin-top: 20px;
}
/* Inner-page images retain their original proportions. */
.inner-hero-photo {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    align-self: center;
    overflow: hidden;
}
.inner-hero-photo img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 0;
    object-fit: contain;
}

@media (max-width: 1100px) {
  .header nav {
      gap: 14px;
  }
  .header nav a {
      font-size: 12px;
  }
}
@media (max-width: 1050px) {
  .header nav {
      display: none;
      position: absolute;
      top: 72px;
      left: 0;
      right: 0;
      background: white;
      padding: 25px 6%;
      flex-direction: column;
      box-shadow: 0 10px 20px #0001;
  }
  .header nav.open {
      display: flex;
  }
  .header .menu {
      display: block;
      margin-left: auto;
      border: 0;
      background: none;
      font-size: 25px;
      color: var(--ink);
      cursor: pointer;
  }
  .header .top-cta {
      display: none;
  }
}
@media (max-width: 800px) {
  .inner-hero {
      grid-template-columns: 1fr;
  }
  .inner-hero-copy {
      padding: 48px 7% 42px;
  }
  .inner-hero h1 {
      font-size: clamp(33px, 8vw, 48px);
  }
  .inner-title {
      padding: 55px 7%;
  }
  .page-link-grid {
      grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .inner-hero h1 {
      font-size: 33px;
  }
  .inner-cta {
      padding: 55px 7%;
  }
}

/* V7 hero image and phone links */
.hero-photo img {
    object-position: center 40%;
}
footer a[href^="tel:"] {
    font-weight: 700;
    color: var(--ink);
}
@media (max-width: 720px) { .hero-photo img { object-position: center 30%; } }

/* V8: click-to-call contact in the header */
.header-phone {
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.header-phone:hover {
    color: var(--green);
}
@media (max-width: 1250px) { .header-phone { display: none; } }


/* V9 accessibility and mobile refinements */
.skip-link {
    position: absolute;
    left: 12px;
    top: -80px;
    z-index: 1000;
    padding: 12px 18px;
    background: #fff;
    color: #263a32;
    border: 2px solid #476957;
}
.skip-link:focus {
    top: 12px;
}
/* Inner page photographs retain their natural 16:9 proportions on all screens.
   Unlike a fixed-height container, this avoids unintended cropping. */
@media (max-width: 800px) {
    .inner-hero-photo {
        width: 100%;
        height: auto;
        min-height: 0;
    }

    .inner-hero-photo img {
        width: 100%;
        height: auto;
    }
}

/* Final inner-page spacing adjustments (homepage unaffected). */
@media (max-width: 800px) {
    .inner-hero { min-height: 0; }
    .inner-hero-copy { padding: 26px 7% 22px; }
    .inner-hero-photo { height: auto; min-height: 0; }
    .inner-hero-photo img { width: 100%; height: auto; padding: 0; }
}

/* Inner-page closing call-to-action: previously missing desktop styling */
.inner-cta {
    background: var(--soft);
    padding: 75px max(6%, calc((100vw - 1200px) / 2));
    text-align: left;
}
.inner-cta h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 400;
    font-size: clamp(32px, 4vw, 54px);
    line-height: 1.2;
    letter-spacing: -1px;
    max-width: 760px;
    margin: 15px 0 20px;
}
.inner-cta > p:not(.eyebrow) {
    max-width: 620px;
    color: #617167;
    line-height: 1.8;
    margin-bottom: 25px;
}
@media (max-width: 800px) {
    .inner-cta { padding: 50px 7%; }
}

/* Homepage customer review preview */
.home-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.home-review{background:#f4f7f1;border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;min-width:0}
.home-review:nth-child(2){background:#e8efe7}
.home-review blockquote{margin:0 0 22px;font:19px/1.6 Georgia,serif;flex:1}
.home-review p{font-size:13px;font-weight:700;color:var(--green);margin:0}
.home-review-link{margin-top:30px}
@media(max-width:950px){.home-review-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.home-review-grid{grid-template-columns:1fr}}

/* V11: testimonials and navigation finishing adjustments */
@media (min-width: 1051px) and (max-width: 1190px) {
  .header nav { gap: 10px; }
  .header nav a { font-size: 11px; }
  .header { gap: 14px; }
  .top-cta { padding: 12px 14px; }
}
@media (max-width: 1190px) {
  .header nav { display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: #fff; padding: 24px 6%; flex-direction: column;
    box-shadow: 0 10px 20px #0001; }
  .header nav.open { display: flex; }
  .header .menu { display: block; margin-left: auto; border: 0; background: none;
    font-size: 25px; color: var(--ink); cursor: pointer; }
  .header .top-cta { display: none; }
}
.header nav a[aria-current="page"] { color: var(--green); text-decoration: underline; text-underline-offset: 6px; }
.home-testimonials { padding-top: 75px; padding-bottom: 85px; }
.home-testimonials .section-head { margin-bottom: 30px; }
.home-review { border-radius: 3px; }
.home-review blockquote { overflow-wrap: anywhere; }
.home-review-link { margin-top: 28px; }
@media (max-width: 720px) {
  .home-testimonials { padding-top: 50px; padding-bottom: 60px; }
  .home-review { padding: 24px; }
  .home-review blockquote { font-size: 17px; }
}

/* Homepage: avoid an unnecessary fixed minimum height on narrow screens. */
@media (max-width: 720px) {
    .hero { min-height: 0; }
}

/* V12: Accessibility — readable sage text and comfortable touch targets */
/* Keep the existing cream/sage palette; darken only low-contrast text. */
.eyebrow { color: #41634d; }
.hero h1 i, h2 i { color: #496b52; }
.intro { color: #4e5f55; }
.proof small { color: #526257; }
.section-head > p { color: #526257; }
.number { color: #42654b; }
.service-card p { color: #4f6054; }
.extras { color: #526257; }
.feature-copy p:not(.eyebrow) { color: #4e6053; }
.areas > p:last-child { color: #4e6053; }
footer { color: #4e6053; }
.header nav a:hover, .text-link:hover { color: #41634d; }

/* The Explore More links were inline, making their tap areas too small. */
.page-link-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
}
.page-link-grid a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: #f4f7f1;
    font-weight: 600;
    line-height: 1.5;
}
.page-link-grid a:hover { background: #e8eee6; }
.service-card a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-bottom: 10px;
}
@media (max-width: 800px) {
    .page-link-grid { grid-template-columns: 1fr; }
}
/* The mobile menu button needs a full-size tap area as well. */
@media (max-width: 1190px) {
    .header .menu { min-width: 44px; min-height: 44px; }
    .header nav a { display: flex; align-items: center; min-height: 44px; }
}


/* Compact mobile dropdown navigation */
@media (max-width: 1050px) {
    .header nav.open {
        gap: 4px;
    }
}
