@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Newsreader:opsz,wght@6..72,300;6..72,400&display=swap');
:root{--ink:#183229;--paper:#f3f1e9;--cream:#e5e1d4;--green:#23483b;--pale:#dfe4dd;--line:#c7c7be;--white:#fbfaf6;--serif:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}a{color:inherit}.site-header{height:112px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:15px;text-decoration:none;font-size:17px;letter-spacing:.02em}.mark{width:58px;height:58px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:32px var(--serif)}.site-header nav{display:flex;gap:34px}.site-header nav a{text-decoration:none;font-size:13px;border-bottom:1px solid transparent;padding:8px 0}.site-header nav a:hover{border-color:var(--ink)}
.hero{min-height:calc(100vh - 112px);display:grid;grid-template-columns:48% 52%;border-bottom:1px solid var(--line)}.hero-copy{display:flex;align-items:center;padding:9vh 5vw 8vh 7vw}.hero-inner{max-width:610px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:500}.hero-eyebrow{margin-bottom:28px}.hero h1{font:300 clamp(70px,7.8vw,130px)/.9 var(--serif);letter-spacing:-.045em;margin:0}.hero p{font-size:17px;line-height:1.7;max-width:520px;margin:42px 0 0}.hero-image{background:url('images/hove-hallway.jpg') center/cover no-repeat;min-height:620px}
.section-pad{padding:125px 4.5vw}.services>.eyebrow,.pricing>.eyebrow{text-align:center;margin-bottom:22px}.services h2,.pricing h2{font:300 clamp(52px,6vw,92px)/.94 var(--serif);letter-spacing:-.035em;text-align:center;margin:0 0 80px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);max-width:1120px;margin:auto;border-top:1px solid var(--ink)}.service-card{display:grid;grid-template-columns:74px 1fr;gap:22px;padding:34px 30px 50px 0;border-bottom:1px solid var(--line)}.service-card:nth-child(odd){border-right:1px solid var(--line);padding-right:50px}.service-card:nth-child(even){padding-left:50px}.line-icon{width:58px;height:58px}.line-icon svg,.circle-icon svg,.rate-icon svg,.mini-icon svg,.envelope svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.service-card h3{text-transform:uppercase;letter-spacing:.1em;font-size:12px;margin:4px 0 15px}.service-card p{font:300 18px/1.6 var(--serif);margin:0;color:#293b34}
.reasons{background:var(--green);color:var(--white);padding:100px 4.5vw}.reason-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr)}.reason{text-align:left;padding:0 34px;border-left:1px solid rgba(255,255,255,.3)}.reason:first-child{border:0}.circle-icon{width:48px;height:48px;margin-bottom:34px}.reason h3{font:300 34px var(--serif);margin:0 0 15px}.reason p{font-size:13px;line-height:1.65;margin:0}
.pricing{background:var(--white)}.section-intro{max-width:600px;text-align:center;margin:-48px auto 55px;font-size:15px;line-height:1.7}.rate-grid{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.rate-card{display:grid;grid-template-columns:70px 1fr;gap:26px;padding:45px}.rate-card+ .rate-card{border-left:1px solid var(--line)}.rate-icon{width:58px;height:58px}.rate-card strong{display:block;font:300 58px/.9 var(--serif)}.rate-card span{font:300 21px var(--serif)}.rate-card i{display:block;width:28px;border-top:1px solid;margin:17px 0}.rate-card p{font:300 16px/1.5 var(--serif);margin:0}.price-notes{max-width:1100px;margin:70px auto 0;display:grid;grid-template-columns:repeat(3,1fr)}.price-notes article{display:grid;grid-template-columns:44px 1fr;gap:15px;padding:0 32px;border-left:1px solid var(--line)}.price-notes article:first-child{border:0}.mini-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid;border-radius:50%;padding:8px}.price-notes h3{font-size:13px;margin:2px 0 8px}.price-notes p{font:300 14px/1.55 var(--serif);margin:0}
.contact{background:var(--cream);padding:120px 5vw;text-align:center}.contact-inner{max-width:900px;margin:auto}.contact-lead{display:block}.envelope,.vertical-rule{display:none}.contact h2{font:300 clamp(54px,7vw,106px)/.93 var(--serif);letter-spacing:-.04em;margin:0}.contact p{font-size:16px;margin:28px 0 48px}address{font-style:normal;display:flex;justify-content:center;gap:42px;flex-wrap:wrap}address a{text-decoration:none;border-bottom:1px solid;padding-bottom:8px;font-size:16px}address a span{display:none}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:32px 4.5vw;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.site-footer div{display:flex;gap:8px}.site-footer span{font-family:var(--serif);text-transform:none;letter-spacing:0;font-size:13px}
@media(max-width:800px){.site-header{height:90px;padding:0 22px}.wordmark span:last-child{display:none}.mark{width:50px;height:50px}.site-header nav{gap:18px}.hero{display:block}.hero-copy{padding:90px 24px 70px}.hero h1{font-size:20vw}.hero p br{display:none}.hero-image{min-height:68vh}.section-pad{padding:90px 22px}.services h2,.pricing h2{margin-bottom:55px}.service-grid{display:block}.service-card,.service-card:nth-child(odd),.service-card:nth-child(even){border-right:0;padding:30px 0}.reason-grid{grid-template-columns:1fr 1fr;gap:55px 0}.reason:nth-child(3){border:0}.rate-grid{display:block}.rate-card{padding:38px 10px}.rate-card+.rate-card{border-left:0;border-top:1px solid var(--line)}.price-notes{display:block}.price-notes article,.price-notes article:first-child{border-left:0;border-top:1px solid var(--line);padding:26px 0}.contact{padding:95px 22px}address{flex-direction:column;align-items:center;gap:24px}.site-footer{display:block;text-align:center}.site-footer div{justify-content:center;margin:8px 0}}

/* Preserve the original desktop journey and proportions. */
.gold-rule{display:none}
@media(min-width:801px){
  .hero{min-height:575px;grid-template-columns:49% 51%}
  .hero-copy{padding:8vh 4vw 8vh 6vw}
  .hero h1{font-size:clamp(58px,5.6vw,90px);line-height:.96}
  .hero-image{min-height:575px}
  .section-pad{padding:72px 5vw 78px}
  .services h2,.pricing h2{font-size:clamp(42px,4vw,62px);margin-bottom:52px}
  .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1220px}
  .service-card,.service-card:nth-child(odd),.service-card:nth-child(even){display:block;padding:0 30px 28px;border-right:1px solid var(--line);border-bottom:0;text-align:center}
  .service-card:last-child{border-right:0}
  .line-icon{margin:0 auto 22px}
  .service-card p{font-size:16px;line-height:1.65}
  .reasons{padding:58px 5vw}
  .reason{text-align:center}
  .circle-icon{margin:0 auto 20px}
  .reason h3{font-size:28px}
  .pricing{padding-top:72px}
  .contact h2{font-size:clamp(42px,4vw,62px)}
}
@media(max-width:800px){.contact h2{font-size:52px}}
.rate-grid{border:0}
.rate-card+ .rate-card{border-left:0}
@media(max-width:800px){.rate-card+ .rate-card{border-top:0}}
.price-notes{border-top:1px solid var(--line);padding-top:48px}

/* A closer, still-unhurried vertical rhythm. */
@media(min-width:801px){
  .section-pad{padding-top:56px;padding-bottom:60px}
  .services h2,.pricing h2{margin-bottom:38px}
  .reasons{padding-top:44px;padding-bottom:44px}
  .section-intro{margin-top:-28px;margin-bottom:38px}
  .rate-card{padding-top:34px;padding-bottom:34px}
  .price-notes{margin-top:46px;padding-top:34px}
  .contact{padding-top:82px;padding-bottom:82px}
  .contact p{margin-top:22px;margin-bottom:34px}
}
@media(max-width:800px){
  .section-pad{padding-top:70px;padding-bottom:70px}
  /* Give each service its own full-width row on phones. */
  .service-grid{border-top:1px solid var(--ink)}
  .service-card,.service-card:nth-child(odd),.service-card:nth-child(even){
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    column-gap:18px;
    padding:26px 0;
    text-align:left;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .service-card:last-child{border-bottom:0}
  .line-icon{grid-row:span 2;width:48px;height:48px;margin:2px 0 0}
  .service-card h3{margin:4px 0 8px;font-size:11px;line-height:1.3}
  .service-card p{grid-column:2;font-size:17px;line-height:1.55}
  .services h2,.pricing h2{margin-bottom:42px}
  .reasons{padding-top:70px;padding-bottom:70px}
  .price-notes{margin-top:44px;padding-top:28px}
  .contact{padding-top:72px;padding-bottom:72px}
}

/* Final mobile service layout: one full-width item at a time. */
@media screen and (max-width:800px){
  .services .service-grid{display:block !important;width:100% !important}
  .services .service-card,
  .services .service-card:nth-child(odd),
  .services .service-card:nth-child(even){
    display:grid !important;
    grid-template-columns:52px minmax(0,1fr) !important;
    width:100% !important;
    gap:0 16px !important;
    padding:25px 0 !important;
    border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
    text-align:left !important;
  }
  .services .service-card:last-child{border-bottom:0 !important}
  .services .line-icon{grid-column:1;grid-row:1 / span 2;width:46px;height:46px;margin:2px 0 0 !important}
  .services .service-card h3{grid-column:2;margin:3px 0 8px !important}
  .services .service-card p{grid-column:2;max-width:none !important;width:100% !important;margin:0 !important;font-size:17px !important;line-height:1.55 !important}
}
