@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--green:#153d2c;--dark:#0d2a1e;--gold:#b89a59;--cream:#f8f6f0;--text:#20332a;--muted:#5d6b63;--line:#dfe6df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c99b37;outline-offset:3px}img{max-width:100%;display:block}h1,h2,h3,.brand-name{font-family:'Libre Baskerville',Georgia,serif;line-height:1.2}h1{font-size:clamp(2.65rem,5.6vw,5.5rem);letter-spacing:-.045em;margin:.25em 0}h2{font-size:clamp(2rem,3.4vw,3.3rem);letter-spacing:-.035em;margin:.25em 0 .55em}h3{font-size:1.26rem;margin:.7em 0 .5em}p{margin:.3em 0 1.2em}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:10px;z-index:100}.skip:focus{left:10px}.top{background:var(--dark);color:#f3eee2;font-size:.78rem;padding:7px 0}.top .wrap{display:flex;justify-content:space-between;gap:12px}.top a{text-decoration:underline;text-underline-offset:3px}.header{position:sticky;top:0;background:white;z-index:30;box-shadow:0 1px 15px #11271b15}.head{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:10px;align-items:center;color:var(--green)}.brand img{width:56px;height:56px}.brand-name{display:block;font-size:1.12rem;letter-spacing:-.03em}.brand-small{display:block;font-size:.67rem;letter-spacing:.38em;color:#967d47;text-align:center;font-weight:800}.nav{display:flex;align-items:center;gap:23px;font-size:.9rem;font-weight:700}.nav a:hover,.footer a:hover{color:var(--gold)}.mobile-toggle{display:none;border:0;background:none;font-size:1.7rem;color:var(--green);cursor:pointer}.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:14px 22px;border:1px solid var(--gold);border-radius:3px;background:var(--gold);color:#12291c;font-weight:800;cursor:pointer;transition:.2s;text-align:center}.btn:hover{background:#d7bb7b;border-color:#d7bb7b}.btn-ghost{background:transparent;border-color:#ffffffa8;color:white}.btn-ghost:hover{background:white;color:var(--green)}.btn-outline{background:transparent;border-color:var(--green);color:var(--green)}.btn-outline:hover{background:var(--green);color:white}.eyebrow{text-transform:uppercase;letter-spacing:.19em;color:var(--gold);font-size:.77rem;font-weight:800}.hero{background:var(--dark);color:white;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;min-height:620px}.hero-copy{padding:94px 42px 95px max(22px,calc((100vw - 1160px)/2));display:flex;flex-direction:column;justify-content:center}.hero-copy h1{max-width:720px}.hero-copy p{max-width:560px;color:#e0e9e2;font-size:1.1rem}.hero-photo{position:relative;background:url('assets/blue-blanket-chair.webp') center 38%/cover}.hero-photo:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0d2a1e25,transparent 40%)}.hero-tag{position:absolute;bottom:25px;left:25px;background:#ffffffef;color:var(--green);padding:15px 19px;max-width:310px;font-weight:700;font-size:.85rem}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.ribbon{background:#ede8dc;padding:20px 0}.ribbon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;text-align:center;font-weight:800;font-size:.83rem;letter-spacing:.07em;text-transform:uppercase;color:var(--green)}.ribbon-grid span+span{border-left:1px solid #c8c2b5}.section{padding:88px 0}.cream{background:var(--cream)}.section-lead{max-width:720px;margin-bottom:38px}.section-lead>p{color:var(--muted);font-size:1.06rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:32px;background:white;border:1px solid var(--line);box-shadow:0 12px 30px #123a2a08}.card-number{color:#987b3f;font-weight:800;letter-spacing:.1em}.card p{color:var(--muted)}.card a{color:var(--green);font-weight:800;text-decoration:underline;text-underline-offset:5px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.split>img{width:100%;height:510px;object-fit:cover}.checks{list-style:none;padding:0;margin:18px 0 25px}.checks li{margin:10px 0;font-weight:700}.checks li:before{content:'✓';margin-right:13px;color:#9b7b3f}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.work{border:1px solid var(--line);background:white;overflow:hidden}.work img{width:100%;height:290px;object-fit:cover;transition:transform .3s}.work a:hover img{transform:scale(1.035)}.work .work-caption{padding:15px 18px;font-weight:700}.gallery-grid .work:first-child{grid-column:span 2}.gallery-grid .work:first-child img{height:350px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.step-num{width:47px;height:47px;background:var(--green);color:white;display:grid;place-items:center;font-weight:800;border-radius:50%}.cta{background:var(--green);color:white;text-align:center;padding:85px 0}.cta h2{max-width:770px;margin:.25em auto}.cta p{color:#e4eae5}.footer{background:#0c241a;color:#d7e1d9;padding:62px 0 28px}.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer h3{color:white}.footer p{margin:.35em 0 .85em}.copyright{margin-top:45px;border-top:1px solid #ffffff29;padding-top:18px;font-size:.82rem;color:#b6c8bc}.page-hero{background:var(--green);color:white;padding:78px 0}.page-hero h1{font-size:clamp(2.4rem,4.7vw,4.6rem)}.page-hero p{max-width:740px;color:#e2eae4}.faq details{padding:19px 0;border-bottom:1px solid var(--line)}.faq summary{font-weight:800;cursor:pointer}.faq details p{color:var(--muted);padding:8px 0}.form-layout{display:grid;grid-template-columns:1.45fr .75fr;gap:55px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:1/-1}.field label{font-size:.88rem;font-weight:800}.field input,.field select,.field textarea{padding:13px;border:1px solid #bac8bd;border-radius:3px;background:#fff;font:inherit;width:100%}.field textarea{min-height:125px}.sidebar{background:var(--cream);padding:31px;align-self:start}.sidebar a{color:var(--green);font-weight:800}.small{font-size:.85rem;color:var(--muted)}.alert{background:#e9f1e9;border-left:4px solid var(--gold);padding:16px;margin:20px 0}.pill{display:inline-block;background:#e8e5da;color:var(--green);font-size:.8rem;padding:7px 12px;font-weight:700}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}.filter{border:1px solid #b8c9bc;background:white;color:var(--green);padding:9px 17px;border-radius:3px;cursor:pointer;font-weight:700}.filter[aria-pressed=true]{background:var(--green);color:white}.lightbox{border:0;padding:12px;max-width:min(92vw,1050px);max-height:92vh;background:#fff;box-shadow:0 20px 80px #0007}.lightbox::backdrop{background:#000b}.lightbox img{max-height:75vh;margin:auto;object-fit:contain}.lightbox .close{float:right;background:var(--green);color:white;border:0;padding:7px 14px;cursor:pointer}.work button{border:0;padding:0;background:none;cursor:zoom-in;width:100%;text-align:left;color:inherit;font:inherit}.work button:hover img{transform:scale(1.035)}@media(max-width:950px){.head>.btn{display:none}.mobile-toggle{display:block}.nav{display:none;position:absolute;top:88px;left:0;right:0;background:white;box-shadow:0 15px 25px #0002;padding:22px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:70px 28px}.hero-photo{min-height:360px}.split,.form-layout{grid-template-columns:1fr}.split>img{height:420px}.footer-cols{grid-template-columns:1fr 1fr}}@media(max-width:640px){.top .wrap{flex-direction:column;gap:2px}.brand img{width:44px;height:44px}.brand-name{font-size:.95rem}.hero-copy{padding:60px 22px}.hero-photo{min-height:300px}.ribbon-grid,.cards,.gallery-grid,.how-grid,.form-grid,.footer-cols{grid-template-columns:1fr}.ribbon-grid span+span{border-left:0;border-top:1px solid #c8c2b5;padding-top:15px}.section{padding:62px 0}.gallery-grid .work:first-child{grid-column:auto}.gallery-grid .work:first-child img{height:290px}.split>img{height:330px}.page-hero{padding:55px 0}.cta{padding:65px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* Premium brand refinement */
.header{background:#fbfaf6}.head{min-height:98px}.brand{gap:0}.brand-logo{width:clamp(225px,28vw,345px);height:auto;max-height:79px;object-fit:contain}.hero-copy{background:linear-gradient(125deg,#0b3322,#17452f);padding-top:76px;padding-bottom:82px}.hero-copy h1{font-size:clamp(2.45rem,4.25vw,4.5rem);letter-spacing:-.035em}.hero-copy h1 em{color:#d4b15b;font-style:normal}.hero-photo{background-image:url('assets/blue-blanket-chair.webp');background-position:center 48%}.hero-grid{min-height:575px}.service-ribbon{background:#f8f6f0;border-bottom:1px solid #e5dfd0}.service-ribbon-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:20px 0}.service-ribbon-grid a{padding:12px 14px;display:flex;flex-direction:column;align-items:center;text-align:center;border-right:1px solid #e5dfd0;gap:5px}.service-ribbon-grid a:last-child{border-right:0}.service-ribbon-grid a>span{font-size:2rem;color:#ae8d44;line-height:1.25}.service-ribbon-grid strong{font-size:.91rem;line-height:1.3}.service-ribbon-grid small{font-size:.78rem;color:#59675e;line-height:1.35}.service-ribbon-grid a:hover{background:#eee9dc}.hero-copy .actions{flex-wrap:wrap}.hero-copy .small strong{color:white}.nav a:hover{color:#a68137}@media(max-width:960px){.service-ribbon-grid{grid-template-columns:repeat(3,1fr)}.service-ribbon-grid a:nth-child(3){border-right:0}}@media(max-width:600px){.service-ribbon-grid{grid-template-columns:repeat(2,1fr)}.service-ribbon-grid a:nth-child(3){border-right:1px solid #e5dfd0}.service-ribbon-grid a:nth-child(even){border-right:0}.brand-logo{width:230px}.hero-copy{padding:58px 24px}.hero-copy h1{font-size:2.5rem}}

/* Refined Charter Oak wordmark, cream-backed for consistent branding */
.brand-logo{width:clamp(225px,28vw,345px)!important;height:auto!important;max-height:82px!important;object-fit:contain}.brand{flex-shrink:0}@media(max-width:600px){.brand-logo{width:210px!important;max-height:67px!important}}

/* Four distinct service categories in the homepage feature ribbon */
.service-ribbon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:960px){.service-ribbon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-ribbon-grid a:nth-child(2){border-right:0}.service-ribbon-grid a:nth-child(3){border-right:1px solid #e5dfd0}}
@media(max-width:600px){.service-ribbon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-ribbon-grid a:nth-child(2){border-right:0}.service-ribbon-grid a:nth-child(3){border-right:1px solid #e5dfd0}}

/* Service cards without numbering */
.card h3{margin-top:0}

/* Professional refinement and accessibility */
:root{--oak:#153d2c;--gold:#b99b5b}body{line-height:1.65}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b99b5b;outline-offset:3px}.card{display:flex;flex-direction:column;gap:10px}.card p{flex:1}.card a{align-self:flex-start}.work img{object-fit:cover}.nav a[aria-current="page"]{color:#a17b34;text-decoration:underline;text-underline-offset:7px}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.field input,.field select,.field textarea{font-size:16px}.header{box-shadow:0 1px 10px rgba(15,42,27,.06)}@media(max-width:640px){.head{min-height:78px}.hero-copy h1{font-size:clamp(2rem,9vw,2.5rem)}.cards{gap:16px}.card{padding:25px}.top .wrap{font-size:.82rem}.nav a{padding:10px 0}}

/* Professional four-column footer */
.footer-cols{grid-template-columns:1.45fr 1fr 1.35fr 1.1fr;gap:34px}
.footer-brand h3{font-family:'Libre Baskerville',Georgia,serif;font-size:1.35rem;margin-top:0}
.footer-tagline{color:#d4b878;font-size:.94rem}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin:0 0 8px}
.footer-cols h3{font-size:1.03rem;margin:0 0 15px}
.footer-cols a{text-decoration:none;overflow-wrap:anywhere}
@media(max-width:900px){.footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.footer-cols{grid-template-columns:1fr;gap:26px}}

/* Five distinct services, consistently displayed across the site */
.service-ribbon-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:950px){.service-ribbon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.service-ribbon-grid{grid-template-columns:1fr}}

/* Editorial FAQ page — grouped, scannable and accessible */
.faq-hero{padding:78px 0 82px}.faq-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);gap:70px;align-items:center}.faq-hero h1{max-width:780px;font-size:clamp(2.6rem,4.6vw,4.9rem)}.faq-hero p{max-width:680px;font-size:1.1rem}.faq-hero-aside{padding:30px;border:1px solid #ffffff55;background:#ffffff0d}.faq-hero-aside h2{font-size:1.5rem;letter-spacing:-.025em;margin:14px 0}.faq-hero-aside p{font-size:.95rem}.faq-aside-note{font-family:Georgia,serif;font-style:italic;color:#e5c97e!important}.faq-section-heading{max-width:730px;margin-bottom:35px}.faq-section-heading>p{color:var(--muted);font-size:1.06rem}.faq-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.faq-steps>div{background:white;border:1px solid var(--line);padding:27px}.faq-steps h3{margin:18px 0 8px}.faq-steps p{color:var(--muted);margin:0}.faq-category{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,1.7fr);gap:55px;padding:39px 0;border-top:1px solid #d7ddd4}.faq-category-label{color:#99783a;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800}.faq-category-intro h3{font-size:1.45rem;margin:13px 0}.faq-category-intro p{color:var(--muted)}.faq-items{background:white;border:1px solid var(--line);padding:0 24px}.faq-items details{border-bottom:1px solid var(--line);padding:0}.faq-items details:last-child{border:0}.faq-items summary{list-style:none;cursor:pointer;font-weight:800;padding:22px 33px 22px 0;position:relative;line-height:1.4}.faq-items summary::-webkit-details-marker{display:none}.faq-items summary:after{content:'+';position:absolute;right:0;top:18px;font-size:1.45rem;color:#9e7f41;font-weight:500}.faq-items details[open] summary:after{content:'−'}.faq-items details[open] summary{color:var(--green)}.faq-items details p{color:var(--muted);margin:0;padding:0 15px 22px 0;max-width:720px}.faq-contact-band{background:#f6f2e9}.faq-contact-grid{display:flex;justify-content:space-between;align-items:center;gap:45px}.faq-contact-grid>div:first-child{max-width:670px}.faq-contact-grid p{color:var(--muted)}.faq-contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:245px}.faq-contact-phone{font-size:1.5rem;color:var(--green);font-weight:800}.faq-contact-actions span{font-size:.85rem;color:var(--muted)}@media(max-width:850px){.faq-hero-grid,.faq-category{grid-template-columns:1fr;gap:20px}.faq-steps{grid-template-columns:1fr}.faq-contact-grid{flex-direction:column;align-items:flex-start}.faq-hero-aside{max-width:650px}}@media(max-width:600px){.faq-items{padding:0 16px}.faq-hero{padding:55px 0}.faq-hero h1{font-size:2.45rem}.faq-category{padding:30px 0}.faq-steps>div{padding:22px}}
