
      :root {
        --forest: #0f1a14;
        --forest-2: #17261e;
        --green: #126348;
        --green-bright: #1d9e75;
        --yellow: #f2c230;
        --cream: #f7f4e9;
        --paper: #fffdf7;
        --ink: #15201a;
        --muted: #506159;
        --line: rgba(15, 26, 20, 0.14);
        --shadow: 0 24px 70px rgba(10, 24, 16, 0.14);
        --radius: 1.15rem;
        --max: 1180px;
      }

      * { box-sizing: border-box; }
      html { scroll-behavior: smooth; scroll-padding-block: 1rem calc(var(--contact-clearance, 6.5rem) + 1rem); }
      [hidden] { display: none !important; }
      body {
        margin: 0;
        color: var(--ink);
        background: var(--paper);
        font-family: "Avenir Next", Avenir, "Segoe UI", sans-serif;
        font-size: 1.0625rem;
        line-height: 1.7;
      }
      img { display: block; width: 100%; height: auto; }
      a { color: inherit; }
      button, input, select, textarea { font: inherit; }
      button, a { -webkit-tap-highlight-color: transparent; }
      :focus-visible {
        outline: 3px solid white;
        outline-offset: 2px;
        box-shadow: 0 0 0 5px var(--forest);
      }
      .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
      }
      .skip-link {
        position: fixed;
        top: 0.75rem;
        left: 0.75rem;
        z-index: 100;
        transform: translateY(-150%);
        padding: 0.75rem 1rem;
        background: var(--yellow);
        color: var(--forest);
        font-weight: 700;
        border-radius: 0.5rem;
      }
      .skip-link:focus { transform: translateY(0); }
      .wrap { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
      .eyebrow {
        margin: 0 0 0.8rem;
        color: var(--green);
        font-size: 0.875rem;
        font-weight: 700;
        letter-spacing: 0.11em;
        text-transform: uppercase;
      }
      h1, h2, h3 {
        overflow-wrap: anywhere;
        margin: 0;
        font-family: "Avenir Next Condensed", "Arial Narrow", sans-serif;
        font-weight: 750;
        line-height: 1.03;
        letter-spacing: -0.035em;
        text-wrap: balance;
      }
      h1 { max-width: 15ch; font-size: clamp(2.9rem, 9vw, 7rem); }
      h2 { font-size: clamp(2.2rem, 5.6vw, 4.45rem); }
      h3 { font-size: 1.6rem; line-height: 1.16; }
      p { margin: 0; text-wrap: pretty; }
      figure { margin: 0; }

      .site-header {
        position: relative;
        background: var(--forest);
        z-index: 10;
        color: var(--cream);
      }
      .nav {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
        align-items: center;
        justify-content: space-between;
        min-height: 5.4rem;
        border-bottom: 1px solid rgba(255,255,255,0.18);
      }
      .brand {
        display: inline-flex;
        align-items: center;
        gap: 0.75rem;
        text-decoration: none;
        font-weight: 750;
        letter-spacing: -0.025em;
      }
      .brand-logo {
        width: 3.35rem;
        aspect-ratio: 1;
        flex: 0 0 auto;
        object-fit: cover;
        border: 2px solid rgba(255,255,255,0.9);
        border-radius: 0.72rem;
        background: white;
        box-shadow: 0 5px 18px rgba(0,0,0,0.18);
      }
      .brand-text small {
        display: block;
        margin-top: -0.15rem;
        color: rgba(247,244,233,0.72);
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.09em;
        text-transform: uppercase;
      }
      .nav-links { display: none; align-items: center; gap: 1.5rem; }
      .nav-links > a:not(.button) { text-decoration: none; font-weight: 650; }

      .button {
        display: inline-flex;
        min-height: 3rem;
        align-items: center;
        justify-content: center;
        gap: 0.55rem;
        padding: 0.82rem 1.15rem;
        border: 2px solid transparent;
        border-radius: 999px;
        background: var(--yellow);
        color: var(--forest);
        font-weight: 750;
        line-height: 1.2;
        text-decoration: none;
        cursor: pointer;
        transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
      }
      .button.secondary { background: transparent; color: inherit; border-color: currentColor; }
      .button.dark { background: var(--forest); color: var(--cream); }
      .button.green { background: var(--green-bright); color: #07110c; }

      .hero {
        position: relative;
        overflow: hidden;
        display: grid;
        min-height: 790px;
        align-items: end;
        padding: 3.5rem 0 3.8rem;
        background:
          radial-gradient(circle at 80% 25%, rgba(29,158,117,0.2), transparent 32%),
          linear-gradient(145deg, var(--forest), #09110c);
        color: var(--cream);
      }
      .hero::after {
        content: "PTBO / LOCAL";
        position: absolute;
        right: -1rem;
        bottom: 1.2rem;
        color: rgba(255,255,255,0.045);
        font: 750 clamp(4rem, 12vw, 10rem)/1 "Avenir Next Condensed", "Arial Narrow", sans-serif;
        letter-spacing: -0.06em;
        pointer-events: none;
      }
      .hero-grid { position: relative; z-index: 1; display: grid; gap: 2.4rem; }
      .hero-grid > *, .season-strip > *, .quote-grid > * { min-width: 0; }
      .hero-copy { max-width: 820px; }
      .hero .eyebrow { color: var(--yellow); }
      .hero h1 span { color: var(--yellow); }
      .hero-intro {
        max-width: 650px;
        margin-top: 1.6rem;
        color: rgba(247,244,233,0.9);
        font-size: clamp(1.08rem, 2vw, 1.35rem);
        line-height: 1.65;
      }
      .hero-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.8rem; }
      .hero-note { max-width: 620px; margin-top: 0.9rem; color: rgba(247,244,233,0.82); font-size: 1rem; line-height: 1.55; }
      .season-strip {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1px;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,0.2);
        border-radius: var(--radius);
        background: rgba(255,255,255,0.2);
        backdrop-filter: blur(12px);
      }
      .season-card { min-height: 9.2rem; padding: 1rem; background: rgba(255,255,255,0.06); }
      .season-card strong { display: block; margin-bottom: 0.25rem; font-size: 1.12rem; }
      .season-card span { color: var(--cream); font-size: 0.95rem; line-height: 1.55; overflow-wrap: anywhere; }
      .season-number { color: var(--yellow); font-weight: 700; }

      section { padding-block: clamp(4.5rem, 9vw, 8rem); }
      .section-head { display: grid; gap: 1.2rem; margin-bottom: 2.6rem; }
      .section-head p:last-child { max-width: 60ch; color: var(--muted); font-size: 1.08rem; line-height: 1.7; }

      .services { background: var(--cream); }
      .service-grid { display: grid; gap: 1rem; }
      .service-card {
        position: relative;
        isolation: isolate;
        overflow: hidden;
        display: flex;
        min-height: 18rem;
        flex-direction: column;
        justify-content: flex-start;
        gap: 1.5rem;
        padding: 1.5rem;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: rgba(255,255,255,0.58);
      }
      .service-card > div { display: flex; flex-direction: column; flex: 1; }
      .service-card > div > .service-quote-link { margin-top: auto; padding-top: 1.15rem; }
      .service-card.featured { background: var(--forest); color: var(--cream); }
      .service-card.with-photo { border-color: transparent; background: var(--forest); color: var(--cream); }
      .service-card.with-photo::after {
        content: "";
        position: absolute;
        z-index: 1;
        inset: 0;
        background: linear-gradient(180deg, rgba(6,15,10,0.28), rgba(6,15,10,0.9) 72%, rgba(6,15,10,0.96));
        pointer-events: none;
      }
      .service-card > :not(.service-bg) { position: relative; z-index: 2; }
      .service-bg {
        position: absolute;
        z-index: 0;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
      .service-card.fall .service-bg { object-position: 76% center; }
      .service-card.lawn .service-bg { object-position: center 72%; }
      .service-card.project .service-bg { object-position: center 56%; }
      .service-icon {
        display: grid;
        place-items: center;
        width: 3rem;
        aspect-ratio: 1;
        border-radius: 50%;
        background: var(--yellow);
        color: var(--forest);
        font-size: 1.2rem;
        font-weight: 700;
      }
      .service-card p { max-width: 44ch; margin-top: 0.8rem; color: var(--muted); line-height: 1.65; }
      .service-card.featured p,
      .service-card.with-photo p { color: rgba(247,244,233,0.84); }
      .mini-list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.55rem;
        margin: 1.25rem 0 0;
        padding: 0;
        list-style: none;
      }
      .mini-list li { padding: 0.45rem 0.75rem; border: 1px solid currentColor; border-radius: 999px; font-size: 0.875rem; font-weight: 650; }
      .service-quote-link {
        display: inline-flex;
        min-height: 2.75rem;
        align-items: center;
        gap: 0.4rem;
        margin-top: 1.15rem;
        color: var(--yellow);
        font-weight: 750;
        text-decoration-thickness: 2px;
        text-underline-offset: 0.22rem;
      }

      .work { background: var(--paper); }
      .transformation {
        overflow: hidden;
        margin-bottom: 1rem;
        border-radius: var(--radius);
        background: var(--forest);
        color: var(--cream);
        box-shadow: var(--shadow);
      }
      .comparison-grid { display: grid; gap: 2px; background: rgba(255,255,255,0.12); }
      .comparison-shot { position: relative; overflow: hidden; background: var(--forest-2); }
      .comparison-shot img { width: 100%; height: 100%; object-fit: cover; }
      .comparison-shot.before img { object-position: center 74%; }
      .transformation.property-reset .comparison-shot img { object-position: center 55%; }
      .transformation.mulch-job .comparison-shot img { object-position: center 55%; }
      .comparison-label {
        position: absolute;
        top: 1rem;
        left: 1rem;
        padding: 0.48rem 0.75rem;
        border-radius: 999px;
        background: rgba(15,26,20,0.9);
        color: var(--cream);
        font-size: 0.85rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        backdrop-filter: blur(8px);
      }
      .comparison-shot.after .comparison-label { background: var(--yellow); color: var(--forest); }
      .transformation-copy { display: grid; gap: 0.55rem; padding: 1.35rem; }
      .transformation-copy p { color: rgba(247,244,233,0.84); line-height: 1.6; }
      .instagram-cta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        margin-top: 1.5rem;
        padding: 1.25rem;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: var(--cream);
      }
      .instagram-cta p { max-width: 62ch; color: var(--muted); line-height: 1.65; }

      .about { background: var(--green-bright); color: #07110c; }
      .about .eyebrow { color: var(--forest); }
      .about-grid { display: grid; gap: 2rem; }
      .about-copy p { max-width: 58ch; margin-top: 1.2rem; font-size: 1.15rem; line-height: 1.7; }
      .about-note {
        padding: 1.4rem;
        border: 2px solid rgba(7,17,12,0.65);
        border-radius: var(--radius);
        font-size: 1.2rem;
        font-weight: 700;
      }

      .faq { background: var(--paper); }
      .faq-grid { display: grid; gap: 2rem; }
      .faq-list { display: grid; gap: 0.75rem; }
      .faq details {
        border: 1px solid var(--line);
        border-radius: 0.85rem;
        background: var(--cream);
        padding: 1rem 1.1rem;
      }
      .faq summary { display: flex; min-height: 2.75rem; align-items: center; cursor: pointer; font-weight: 700; }
      .faq details p { max-width: 65ch; margin-top: 0.75rem; color: var(--muted); line-height: 1.7; }

      .quote { background: var(--forest); color: var(--cream); }
      .quote-grid { display: grid; gap: 2.4rem; }
      .quote-copy > p { max-width: 55ch; margin-top: 1.1rem; color: rgba(247,244,233,0.84); line-height: 1.7; }
      .direct-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.6rem; }
      .contact-number { margin-top: 1rem; color: var(--cream); font-size: 1.05rem; }
      .quote-form {
        display: grid;
        gap: 1rem;
        padding: clamp(1.2rem, 4vw, 2rem);
        border-radius: var(--radius);
        background: var(--cream);
        color: var(--ink);
        box-shadow: var(--shadow);
      }
      .form-row { display: grid; gap: 1rem; }
      .quote-fields { display: grid; gap: 1rem; border: 0; margin: 0; padding: 0; min-width: 0; }
      .quote-fields:disabled { opacity: 0.65; }
      label { display: grid; gap: 0.42rem; font-size: 0.95rem; font-weight: 700; }
      input, select, textarea {
        font-size: 1rem;
        width: 100%;
        border: 1px solid #66756b;
        border-radius: 0.65rem;
        background: white;
        color: var(--ink);
        padding: 0.82rem 0.9rem;
      }
      textarea { min-height: 7rem; resize: vertical; }
      .form-help { color: var(--muted); font-size: 0.92rem; line-height: 1.6; }
      .prepared-message {
        display: none;
        padding: 1rem;
        border-left: 5px solid var(--green);
        background: #e8f4ee;
        border-radius: 0.4rem;
      }
      .prepared-message.visible { display: grid; gap: 0.8rem; }
      .prepared-message p { white-space: pre-wrap; overflow-wrap: anywhere; }
      .prepared-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
      .send-warning { color: #713c00; font-weight: 700; }

      .mobile-actions {
        position: fixed;
        color: var(--cream);
        z-index: 50;
        right: max(0.75rem, env(safe-area-inset-right));
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        left: max(0.75rem, env(safe-area-inset-left));
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.55rem;
        padding: 0.55rem;
        border: 1px solid rgba(255,255,255,0.16);
        border-radius: 999px;
        background: rgba(15,26,20,0.96);
        box-shadow: 0 12px 36px rgba(0,0,0,0.28);
      }
      .mobile-actions .button { min-height: 2.8rem; padding: 0.7rem 0.85rem; }
      .quote .eyebrow { color: var(--yellow); }
      .quote-form, .form-row > label { min-width: 0; }
      .button { max-width: 100%; overflow-wrap: anywhere; text-align: center; }
      .footer-links { overflow-wrap: anywhere; }
      .faq summary::after { content: '+'; margin-left: auto; padding-left: 0.75rem; }
      .faq details[open] > summary::after { content: '−'; }

      footer { padding: 2.5rem 0; background: #09110c; color: var(--cream); }
      .footer-grid { display: grid; gap: 1.5rem; }
      .footer-links { display: grid; gap: .8rem; min-width: 0; }
      .footer-contact, .footer-socials, .footer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; }
      .footer-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }
      .footer-location { color: rgba(247,244,233,.72); font-size: .95rem; }
      .footer-links a { color: rgba(247,244,233,0.74); }
      .footer-small { color: rgba(247,244,233,0.72); font-size: 0.95rem; }

      @media (min-width: 700px) {
        .nav-links { display: flex; }
        .season-strip { max-width: 620px; }
        .service-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        .comparison-grid { grid-template-columns: 1fr 1fr; }
        .form-row { grid-template-columns: 1fr 1fr; }
        .footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
        .mobile-actions { display: none; }
      }
      @supports (grid-template-rows: subgrid) {
        @media (min-width: 700px) {
          .service-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 1rem; }
          .service-card > div { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 1rem; }
          .service-card h3 { grid-row: 1; }
          .service-card p { grid-row: 2; margin-top: 0; }
          .service-card .mini-list { grid-row: 3; margin-top: 0; align-self: start; }
          .service-card > div > .service-quote-link { grid-row: 4; margin-top: 0; padding-top: 0; align-self: end; }
        }
      }
      @media (max-width: 699px) {
        body { padding-bottom: var(--contact-clearance, calc(6.5rem + env(safe-area-inset-bottom))); }
        .nav { padding-block: 0.75rem; }
        .nav-links { display: flex; flex-wrap: wrap; gap: 1rem; }
        .nav-links > a { min-height: 2.75rem; display: inline-flex; align-items: center; }
        .nav-links .button { display: none; }
        .hero { padding-top: 2.5rem; min-height: auto; }
        .season-strip { grid-template-columns: 1fr; }
        .season-card { min-height: auto; }
      }
      @media (min-width: 700px) { html { scroll-padding-bottom: 1rem; } }
      @media (min-width: 960px) {
        .hero-grid { grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr); align-items: end; }
        .season-strip { grid-template-columns: 1fr; }
        .section-head { grid-template-columns: 1.1fr 0.9fr; align-items: end; }
        .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .service-card.featured { min-height: 28rem; }
        .about-grid { grid-template-columns: 1.35fr 0.65fr; align-items: end; }
        .faq-grid { grid-template-columns: 0.75fr 1.25fr; align-items: start; }
        .quote-grid { grid-template-columns: 0.9fr 1.1fr; align-items: start; }
      }
      @media (prefers-reduced-motion: reduce) {
        html { scroll-behavior: auto; }
        *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
      }
      .social-menu { position: relative; flex: 0 0 auto; }
      .social-menu summary { list-style: none; cursor: pointer; min-height: 44px; padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.35); border-radius: .65rem; font-size: .95rem; font-weight: 700; display: flex; align-items: center; gap: .5rem; }
      .social-menu summary::-webkit-details-marker { display: none; }
      .social-menu summary::after { content: '+'; font-size: 1.2rem; }
      .social-menu[open] summary::after { content: '−'; }
      .social-menu[open] summary, .social-menu summary:hover { background: var(--forest-2); }
      .social-panel { position: absolute; top: calc(100% + .65rem); right: 0; width: min(240px, calc(100vw - 2rem)); padding: .5rem; background: var(--forest); border: 1px solid rgba(255,255,255,.25); border-radius: .8rem; box-shadow: 0 16px 36px rgba(0,0,0,.3); z-index: 30; }
      .social-panel a { display: block; padding: .7rem .8rem; min-height: 44px; border-radius: .4rem; text-decoration: none; }
      .social-panel a:hover { background: var(--forest-2); color: var(--yellow); }
      @media (min-width: 700px) { .nav-links { margin-left: auto; } }
      @media (max-width: 699px) { .nav { display: grid; grid-template-columns: minmax(0, 1fr) auto; } .social-menu { grid-column: 2; grid-row: 1; } .nav-links { grid-column: 1 / -1; } .nav .brand-text { font-size: clamp(.85rem, 3.5vw, 1.1rem); } .nav .brand { min-width: 0; gap: .4rem; } }
      .social-link { display: inline-flex; align-items: center; gap: .45rem; }
      .social-panel .social-link { display: flex; }
      .social-icon { width: 18px; height: 18px; flex: 0 0 18px; vertical-align: middle; }
      /* Colour-only feedback preserves layout and keyboard focus indicators. */
      .nav-links > a:not(.button), .footer-links a, .social-panel a,
      .social-menu summary, .faq summary, .brand { transition: color 160ms ease, background-color 160ms ease; }
      @media (hover: hover) and (pointer: fine) {
        .button:hover { background-color: #ffd34d; }
        .button.dark:hover { background-color: #243b2d; }
        .button.green:hover { background-color: #29b98b; }
        .button.secondary:hover { background-color: rgba(128,150,137,.16); }
        .nav-links > a:not(.button):hover, .footer-links a:hover { color: var(--yellow); text-decoration: underline; text-underline-offset: .25em; }
        .brand:hover { color: var(--yellow); }
        .faq summary:hover { color: var(--green); }
      }
      .button:focus-visible { background-color: #ffd34d; }
      .button.dark:focus-visible { background-color: #243b2d; }
      .button.green:focus-visible { background-color: #29b98b; }
      .button.secondary:focus-visible { background-color: rgba(128,150,137,.16); }
      .button:active { background-color: #edbd35; }
      .button.dark:active { background-color: #304b39; }
      .button.green:active { background-color: #21a77b; }
      .button.secondary:active { background-color: rgba(128,150,137,.28); }
      .nav-links > a:not(.button):focus-visible, .footer-links a:focus-visible { color: var(--yellow); }
      .hero .eyebrow::before { content: ''; display: block; width: 4rem; height: 2px; margin-bottom: 1rem; background: var(--yellow); opacity: .75; }
      .photo-expand { display: block; aspect-ratio: 4 / 3; overflow: hidden; color: inherit; cursor: zoom-in; }
      .photo-expand:focus-visible { outline-offset: -5px; }
      .comparison-label { pointer-events: none; }
      .photo-hint { position: absolute; bottom: .65rem; right: .65rem; padding: .2rem .45rem; border-radius: .35rem; background: rgba(15,26,20,.8); color: var(--cream); font-size: .75rem; line-height: 1.4; pointer-events: none; }
      .photo-viewer { border: 1px solid rgba(247,244,233,.2); border-radius: 1rem; padding: 1rem; background: var(--forest); color: var(--cream); width: min(960px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); }
      .photo-viewer::backdrop { background: rgba(0,0,0,.86); }
      .photo-viewer:not([open]) { display: none; }
      .photo-viewer header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
      .photo-viewer h2 { font-size: 1.1rem; margin: 0; }
      .photo-viewer img { width: 100%; height: min(65dvh, 720px); object-fit: contain; }
      .photo-viewer p { margin-top: .75rem; font-size: .95rem; }
      .photo-controls { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
      /* Google review links and locally hosted, scannable QR codes. */
      .review-intro { margin-top: 1rem; font-size: .95rem; }
      .review-intro a { text-underline-offset: .2em; }
      .reviews { padding: 3rem 0; background: var(--cream); }
      .review-grid { display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: center; gap: 2rem; }
      .review-copy p { max-width: 58ch; }
      .review-qr { margin: 0; text-align: center; }
      .review-qr-link { display: block; width: 200px; max-width: 100%; background: white; border-radius: .5rem; }
      .review-qr-link img { width: 100%; height: auto; border-radius: .5rem; }
      .review-qr figcaption { margin-top: .5rem; font-size: .875rem; }
      .contact-review { margin-top: 1.5rem; }
      .contact-review a { color: var(--cream); text-underline-offset: .2em; }
      .footer-review { margin-top: 1.25rem; }
      .footer-review .review-qr-link { width: 164px; }
      .footer-review p { margin: .4rem 0; font-size: .95rem; }
      @media (max-width: 599px) {
        .review-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
        .review-qr { justify-self: start; }
      }
    /* Approved October 2026 brand refinement; shared by both languages. */
:root { --forest:#1f4d2b; --forest-2:#15361f; --green:#1f4d2b; --green-bright:#dce8d8; --yellow:#efbc8c; --accent:#c4622d; --cream:#f5eedc; --paper:#fffdf8; --ink:#203625; --muted:#4c6051; --line:rgba(31,77,43,.18); --shadow:0 18px 50px rgba(21,54,31,.12); }
body{font-size:1.0625rem} a{ text-underline-offset:.2em; } h1{font-size:clamp(2.7rem,6.7vw,5.9rem);max-width:17ch}h2{font-size:clamp(2rem,4.1vw,3.65rem);line-height:1.1} h3{line-height:1.2} section{padding-block:clamp(3.5rem,7vw,6.5rem)}
.button{background:var(--forest);color:var(--paper);font-weight:700;min-height:48px;border-radius:.65rem}
.button.dark{background:var(--forest);color:var(--paper)} .button.secondary{color:inherit;background:transparent}
.hero .button:not(.secondary),.contact-cta .button:not(.secondary),.nav-quote,.mobile-actions .button:not(.secondary){background:var(--cream);color:var(--forest)}
.button:hover,.button:focus-visible{background:#143820;color:var(--paper)}
.hero .button:not(.secondary):hover,.hero .button:not(.secondary):focus-visible,.contact-cta .button:not(.secondary):hover,.nav-quote:hover,.mobile-actions .button:not(.secondary):hover{background:#fffdf8;color:var(--forest)}
.button.secondary:hover,.button.secondary:focus-visible{background:rgba(128,150,137,.16);color:inherit}
:focus-visible{outline:3px solid white;outline-offset:3px;box-shadow:0 0 0 6px #132f1c}
.hero{min-height:620px;padding-block:4rem;background:var(--forest)} .hero::after{display:none}.hero h1 span{color:var(--cream)}.hero .eyebrow{color:#f3c899}.hero-intro{font-size:clamp(1.05rem,1.8vw,1.25rem);max-width:52ch}.hero-note{max-width:51ch;font-size:1rem}.hero-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:1rem}.hero-aside{display:grid;gap:1rem;align-self:center;min-width:0}.hero-grid{gap:3rem}.season-strip{grid-template-columns:1fr 1fr;background:transparent;gap:0}.season-card{min-height:0;padding:1rem}.season-card strong{font-size:1rem;line-height:1.5;margin:0}.season-number{display:block;color:#f3c899!important}
.trust-list{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;padding:0;margin:1.7rem 0 0;font-size:.88rem;color:var(--cream)}.trust-list li::before{content:'•';margin-right:.5rem;color:#f3c899}
.nav{gap:1rem;padding-block:1rem;min-height:6rem}.brand-logo{object-fit:contain}.brand-text{font-size:1.05rem}.brand-text small{color:#e5e8db;font-size:.7rem}.nav-links{gap:1rem;font-size:.92rem;flex-wrap:wrap}.nav-links>a{min-height:44px;display:inline-flex;align-items:center}.nav-links a[aria-current]{text-decoration:underline;text-decoration-thickness:2px}.nav-links .language-switch{border:1px solid rgba(255,255,255,.35);padding:.25rem .65rem;border-radius:.5rem}.social-menu summary{font-size:.85rem}.social-panel a{color:var(--cream)}
.home-services .service-card{min-height:27rem}.home-services .service-card>div{justify-content:flex-end}.service-grid{grid-template-columns:1fr}.service-card{display:flex!important;min-height:0;padding:1.5rem}.service-card>div{display:flex!important;gap:0}.service-card p{margin-top:.9rem!important}.service-card .mini-list{margin-top:1rem!important}.service-card .service-quote-link{margin-top:auto!important;padding-top:1.5rem!important}.service-quote-link{color:var(--forest);min-height:44px}.service-card.with-photo .service-quote-link{color:var(--cream)}.service-card.with-photo .mini-list{color:var(--cream)}.section-action{margin-top:2rem}.service-card.with-photo::after{background:linear-gradient(180deg,rgba(9,24,14,.12),rgba(9,24,14,.92) 62%)}
.transformation{margin-bottom:2rem}.transformation-copy{padding:1.5rem}.transformation .eyebrow{color:#f3c899}.photo-expand{aspect-ratio:4/3}.photo-viewer{max-height:calc(100dvh - 1.5rem);overflow:auto}.photo-viewer .button{font-size:1rem}.photo-viewer h2{line-height:1.4}.review-copy p{margin:1.25rem 0}.review-qr-link{width:180px}.footer-review .review-qr-link{margin-top:1rem;width:128px}.review-grid{grid-template-columns:minmax(0,1fr) 180px}.about{background:#e4eadc}.about-note{border:1px solid var(--forest);font-size:1.15rem}.about-note .small{font-size:.95rem;margin-top:.75rem;font-weight:400}.coverage{background:var(--paper)}.coverage .button{margin-top:1.5rem}.coverage .section-head{margin-bottom:0}.digital-card{background:#fffdf8}.digital-card .service-quote-link{color:var(--forest);text-decoration:underline}
.page-hero{background:var(--cream);padding-block:4rem}.page-hero h1{font-size:clamp(2.5rem,5vw,4.6rem);max-width:22ch}.page-hero p:not(.eyebrow){max-width:68ch;margin-top:1.5rem;color:var(--muted);font-size:1.15rem}.service-details,.digital-details{padding-top:0}.service-detail{display:grid;gap:2rem;padding-block:3.5rem;border-bottom:1px solid var(--line)}.service-detail h2{font-size:clamp(1.9rem,3vw,2.7rem)}.service-detail p{margin-top:1.2rem;max-width:58ch}.service-detail .button{margin-top:1.5rem}.check-list{padding-left:1.3rem;margin:0 0 1.2rem}.check-list li{margin-bottom:.6rem;padding-left:.2rem}.check-list li::marker{color:var(--forest)}.muted{color:var(--muted)}.process{background:var(--cream)}.process-grid{display:grid;gap:2rem;padding:0;list-style:none;counter-reset:step;margin-top:2rem}.process-grid li{counter-increment:step}.process-grid li::before{content:'0' counter(step);display:block;color:#92431d;font-weight:700;margin-bottom:1rem}.process-grid p{margin-top:1rem;color:var(--muted)}.cta-grid{display:grid;gap:2rem}.contact-cta p{max-width:50ch;margin-top:1.3rem;color:var(--cream)}.contact-cta .direct-actions .button{font-size:.9rem}.contact-cta .direct-actions .button:not(.secondary){background:transparent;color:var(--cream);border-color:currentColor}
.quote-page{background:var(--paper)}.quote-layout{display:grid;gap:2.5rem;align-items:start}.quote-contact{background:var(--forest);color:var(--cream);padding:2rem;border-radius:1rem;min-width:0}.quote-contact h2{font-size:2.25rem;max-width:14ch}.quote-contact .eyebrow{color:#f3c899}.quote-contact p{margin-top:1.25rem;overflow-wrap:anywhere}.quote-contact .direct-actions .button{background:var(--cream);color:var(--forest)}.quote-contact .direct-actions .secondary{background:transparent;color:var(--cream)}.review-text-link{display:inline-flex;margin-top:1.5rem;min-height:44px;align-items:center}.quote-form{box-shadow:none;border:1px solid var(--line)}.quote-fields{gap:1.4rem}.quote-form label{display:block;font-weight:650}.quote-form input,.quote-form textarea,.quote-form select{display:block;margin-top:.45rem}.quote-form input::placeholder,.quote-form textarea::placeholder{color:#607166;opacity:1}.optional{font-size:.82rem;color:var(--muted);font-weight:400;display:inline}.service-choices{border:0;padding:0;margin:0;min-width:0}.service-choices legend{font-weight:700;margin-bottom:.85rem}.checkbox-grid{display:grid;gap:.6rem}.check-option{display:flex!important;gap:.65rem;align-items:center;min-height:48px;padding:.65rem .8rem;background:#fffdf8;border:1px solid #96a38e;border-radius:.55rem;font-size:.92rem;line-height:1.4;cursor:pointer}.check-option:has(:checked){border-color:var(--forest);background:#e3ebdc}.check-option input{appearance:auto;width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--forest)}.form-error{color:#8d201b;background:#fff8f0;padding:.8rem;border-left:4px solid #8d201b;border-radius:.3rem}.prepared-message h2{font-size:1.4rem;line-height:1.3}.prepared-message{background:#e3ebdc}.prepared-message .send-warning{color:#5f361e;font-size:.95rem}.prepared-message .prepared-actions{display:grid}.prepared-actions .button{width:100%;font-size:.95rem}.form-help a{font-weight:700}.privacy-copy{padding-top:2rem}.narrow{max-width:800px}.privacy-copy article{margin-block:2.5rem}.privacy-copy h2{font-size:1.8rem}.privacy-copy p{margin-top:1rem}.error-actions{padding-bottom:4rem}.footer-links a{color:var(--cream)}.footer-contact{align-items:start;flex-direction:column}.footer-small{color:#e0e6db}.footer-actions{gap:.3rem 1rem}.mobile-actions{background:rgba(21,54,31,.97);border-radius:.9rem}.mobile-actions .button{font-size:.92rem;border-radius:.55rem;min-height:48px}.quote-contact a{overflow-wrap:anywhere}.coverage-note{border-top:1px solid rgba(255,255,255,.3);padding-top:1.25rem}
@media(min-width:600px){.checkbox-grid{grid-template-columns:1fr 1fr}.prepared-actions{grid-template-columns:1fr 1fr}.prepared-actions button{grid-column:1/-1}}
@media(min-width:700px){.service-grid{grid-template-columns:1fr 1fr}.process-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-detail{grid-template-columns:1fr 1fr;gap:3rem}.cta-grid{grid-template-columns:1.1fr 1fr;align-items:center}.nav-links{margin-left:auto}.nav-quote{display:none}.hero-grid{grid-template-columns:1.1fr .9fr}.hero-aside{align-self:center}.season-strip{grid-template-columns:1fr}.hero{min-height:600px}.form-row{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.nav-quote{display:inline-flex}.home-services{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-layout{grid-template-columns:.7fr 1.3fr}.hero-grid{grid-template-columns:1.3fr 1fr}.season-strip{grid-template-columns:1fr 1fr}.home-services .service-card{min-height:30rem}.nav{gap:1rem}.nav-links{gap:.8rem}}
@media(max-width:699px){.nav{grid-template-columns:minmax(0,1fr) auto;gap:.8rem}.nav-links{grid-column:1/-1;gap:.25rem .9rem;justify-content:space-between;font-size:.85rem}.nav .brand-text{font-size:.98rem}.nav .brand-logo{width:2.8rem}.nav-links .language-switch{padding:.2rem .5rem}.hero{padding-block:2.5rem}.hero-grid{gap:2rem}.hero-aside{display:none}.hero h1{font-size:clamp(2.7rem,10.8vw,4.4rem)}.hero-actions .button{flex:1 1 180px}.hero-actions .secondary{flex:0 1 auto}.trust-list{gap:.35rem 1rem}.review-grid{grid-template-columns:1fr}.review-qr{justify-self:start}.home-services .service-card{min-height:24rem}.page-hero{padding-block:2.5rem}.quote-contact{padding:1.4rem}.quote-contact h2{max-width:none;font-size:1.8rem}.quote-contact .direct-actions{gap:.6rem}.quote-contact .button{font-size:.9rem}.quote-page{padding-top:2rem}.page-hero p:not(.eyebrow){font-size:1.05rem}.quote-form{padding:1.2rem}.photo-viewer{padding:.7rem}.photo-viewer img{height:min(58dvh,600px)}.photo-controls .button{flex:1;font-size:.9rem}.footer-grid{gap:2rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.button:active{background:#143820;color:#fffdf8}.button.secondary:active{background:rgba(128,150,137,.28);color:inherit}
