:root{--ink:#0b2b21;--green:#174f3c;--paper:#f6f1e7;--cream:#eee4cc;--coral:#df7657;--line:#a5aa9e;--white:#fffdf8;--shadow:0 12px 35px rgba(22,39,30,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.site-header{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(24px,5vw,82px);border-bottom:1px solid rgba(11,43,33,.15);position:relative;background:rgba(246,241,231,.96);z-index:20}.issue,.site-header nav,.eyebrow,.chapter,.signature{font-size:10px;text-transform:uppercase;letter-spacing:.22em;font-weight:700}.wordmark{font-family:Georgia,serif;font-weight:700;font-size:17px}.site-header nav{display:flex;justify-content:flex-end;gap:24px}.site-header nav a:hover{color:var(--coral)}.menu-button{display:none;background:none;border:0;text-transform:uppercase;letter-spacing:.15em;font-size:11px}.section-pad{padding-left:clamp(24px,8vw,140px);padding-right:clamp(24px,8vw,140px)}h1,h2,.final-word{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:.92;letter-spacing:-.04em;margin:0}h1{font-size:clamp(62px,9vw,136px)}h2{font-size:clamp(44px,6.5vw,96px)}em{font-weight:400;color:var(--coral)}.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:8vw;padding-top:80px;padding-bottom:90px}.hero h1 span{color:var(--coral)}.hero .eyebrow{color:var(--coral);margin-bottom:25px}.hero-aside{align-self:end;max-width:500px}.stilllife{aspect-ratio:1.25;background:repeating-linear-gradient(135deg,#f1ead7,#f1ead7 5px,#eee5ce 5px,#eee5ce 10px);display:flex;align-items:center;justify-content:center;color:#9ba698;font-size:9px;letter-spacing:.3em;text-transform:uppercase}.hero-aside blockquote{font-family:Georgia,serif;font-weight:700;font-style:italic;font-size:17px;margin:28px 0 0}.manifesto{background:var(--white);padding-top:34px;padding-bottom:105px}.manifesto-top{display:flex;justify-content:space-between;align-items:center}.inline-actions{display:flex;align-items:center;gap:18px;font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--green);color:white;min-height:44px;padding:0 28px;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:800;cursor:pointer}.button:hover{background:var(--ink)}.button.dark{background:var(--ink)}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:28px 0;margin-top:45px}.stats strong{font:400 clamp(38px,4vw,64px)/1 Georgia,serif;display:block}.stats span{font-size:10px}.statement{margin:120px auto 0;max-width:650px;position:relative}.statement .chapter{position:absolute;left:-90px;top:0;writing-mode:vertical-rl;color:var(--coral)}.broker{background:var(--white);padding-bottom:100px;display:grid;grid-template-columns:1fr 1fr;gap:50px 8vw}.broker-copy{font-family:Georgia,serif;font-size:19px;max-width:600px}.dropcap:first-letter{color:var(--coral);float:left;font:72px/.72 Georgia,serif;padding:9px 8px 0 0}.benefits{background:var(--paper);padding:30px}.benefits .eyebrow{color:var(--coral)}.benefits ol{list-style:none;padding:0;counter-reset:item}.benefits li{counter-increment:item;padding:10px 0;border-bottom:1px solid rgba(11,43,33,.12)}.benefits li:before{content:counter(item,decimal-leading-zero);color:var(--coral);font:italic 18px Georgia,serif;margin-right:20px}.paper{background:var(--white);box-shadow:var(--shadow);border:1px solid rgba(11,43,33,.1)}.calculator{grid-column:1/-1;padding:32px}.tabs{display:grid;grid-template-columns:1fr 1fr;margin:22px 0}.tabs button,.people button,.dates button,.times button,.reno-options button{border:1px solid rgba(11,43,33,.15);background:transparent;min-height:43px;cursor:pointer}.tabs button.active,.people button.active,.dates button.active,.times button.active,.reno-options button.active{background:var(--green);color:white}.calc-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:20px}.calc-grid label,.calc-grid fieldset{border:0;padding:0;margin:0;font-size:11px}.calc-grid input{width:100%;height:44px;border:1px solid rgba(11,43,33,.15);padding:10px;background:white;margin-top:5px}.people{display:grid;grid-template-columns:repeat(5,1fr);margin-top:5px}.range-label{display:block;font-size:11px;margin-top:20px}.range-label output{float:right}.range-label input{width:100%;accent-color:var(--green)}.price-row{display:grid;grid-template-columns:1fr 1fr;background:var(--paper);padding:20px;margin-top:20px}.price-row div{display:flex;flex-direction:column}.price-row span,.grant-card span,.saving span{font-size:9px;text-transform:uppercase;letter-spacing:.15em}.price-row s{font:24px Georgia,serif;color:#79867f}.price-row strong{font:700 24px Georgia,serif}.saving{display:flex;align-items:end;justify-content:space-between;padding-top:18px}.saving strong{font:700 38px Georgia,serif;color:var(--green)}.broker>.full{grid-column:1/-1}.renovation{padding-top:110px;padding-bottom:120px}.statement.wide{margin:0 auto 100px;max-width:900px}.reno-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:40px}.stilllife.small{aspect-ratio:1.5}.config{padding:26px}.reno-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}.reno-options button{text-align:left;padding:15px;font-size:12px}.reno-options small{display:block;opacity:.7;margin-top:5px;font-size:8px;letter-spacing:.14em}.reno-explain{display:grid;grid-template-columns:1.2fr 1fr;gap:10vw;margin-top:40px}.callout{background:var(--green);color:white;padding:26px;margin-top:30px;max-width:430px}.callout span{font-size:9px;text-transform:uppercase;letter-spacing:.16em}.callout strong{font:400 56px Georgia,serif;display:block}.callout p{margin:0;font-size:11px}.grant-card{align-self:start;display:grid;grid-template-columns:repeat(3,1fr);padding:28px}.grant-card div{display:flex;flex-direction:column}.grant-card strong{font:700 23px Georgia,serif}.grant-card .accent{color:var(--coral)}.grant-card small{grid-column:1/-1;border-top:1px solid rgba(11,43,33,.15);margin-top:22px;padding-top:14px}.special-title{background:var(--green);color:white;padding:105px clamp(24px,8vw,140px)}.special-title em{color:var(--coral)}.services{background:var(--green);color:white;display:grid;grid-template-columns:repeat(3,1fr);gap:8vw;padding-top:25px;padding-bottom:75px}.services article{border-top:1px solid rgba(255,255,255,.35);padding-top:18px}.services b{font:italic 42px Georgia,serif;color:var(--coral)}.services h3{text-transform:uppercase;font-size:10px;letter-spacing:.17em}.services p{font-size:13px;opacity:.85}.testimonials{background:var(--white);padding-top:110px;padding-bottom:140px}.section-heading{max-width:1000px}.section-heading .chapter{color:var(--coral)}.section-heading h2{font-size:clamp(42px,5vw,72px);margin-top:14px}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:100px}.quotes blockquote{margin:0;font:700 italic 20px/1.35 Georgia,serif}.quotes footer{display:flex;justify-content:space-between;align-items:end;font:700 normal 11px Arial,sans-serif;margin-top:30px}.quotes small{font-weight:400;font-size:9px}.quotes strong{text-align:right;font:700 22px Georgia,serif;color:var(--green)}.quotes strong small{display:block;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}.region{background:var(--cream);padding-top:110px;padding-bottom:110px;display:grid;grid-template-columns:.7fr 1.3fr;align-items:center;gap:8vw}.region h2{margin:18px 0 30px}.region>div:first-child p{max-width:420px}.region .chapter{color:var(--coral)}.map{background:#d8e2e1;padding:24px}.map svg{width:100%}.map path{fill:#ece5ce;stroke:#527667;stroke-width:3}.map .route{fill:none;stroke:#c7d4d0;stroke-width:4}.map circle{fill:var(--green);stroke:none}.map text{font:12px Arial;fill:var(--ink)}.map>span{font-size:9px;text-transform:uppercase;letter-spacing:.15em}.contact{background:var(--white);padding-top:100px;display:grid;grid-template-columns:.7fr 1.3fr;gap:40px 7vw}.contact-title .chapter{color:var(--coral)}.contact-title h2{margin-top:18px}.booking{padding:30px}.booking h3{font:700 18px Georgia,serif}.hidden{display:none}.dates{display:grid;grid-template-columns:repeat(5,1fr);margin:20px 0}.dates button{padding:8px;display:flex;flex-direction:column;align-items:center;font:24px Georgia,serif}.dates small,.dates span{font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:20px}.booking label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin:13px 0}.booking input,.booking select,.booking textarea{display:block;width:100%;border:1px solid rgba(11,43,33,.2);background:white;padding:12px;margin-top:6px}.booking .consent{display:flex;align-items:flex-start;text-transform:none;letter-spacing:0}.booking .consent input{width:auto;margin:4px 8px 0 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.topic-list{grid-column:2;display:flex;flex-direction:column}.topic-list h3{font:700 20px Georgia,serif}.topic-list a{border-top:1px solid rgba(11,43,33,.15);padding:16px}.topic-list a span{float:right}.final-word{grid-column:1/-1;background:var(--ink);color:white;margin:60px calc(-1 * clamp(24px,8vw,140px)) 0;padding:55px clamp(24px,8vw,140px);font-size:clamp(52px,7vw,105px)}.site-footer{background:var(--ink);color:white;display:flex;justify-content:space-between;gap:20px;padding:25px clamp(24px,5vw,82px);font-size:9px;text-transform:uppercase;letter-spacing:.14em}.site-footer a:hover{color:var(--coral)}.legal-page main{min-height:calc(100vh - 145px);padding:clamp(70px,9vw,140px) clamp(24px,12vw,190px)}.legal-page main>.eyebrow{color:var(--coral)}.legal-page h1{margin:20px 0 55px}.legal-card{max-width:700px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0;margin-bottom:40px}.legal-card h2{font-size:30px;line-height:1.2;letter-spacing:0}.legal-card address{font-style:normal;margin:20px 0}.legal-card a{text-decoration:underline}
@media(max-width:800px){.site-header{grid-template-columns:1fr auto;height:70px}.issue,.site-header nav{display:none}.menu-button{display:block}.site-header.open nav{display:flex;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;align-items:center}.hero{grid-template-columns:1fr;padding-top:60px}.hero-aside{display:grid;grid-template-columns:1fr}.manifesto-top{align-items:flex-start;gap:20px}.signature{display:none}.stats{grid-template-columns:1fr 1fr}.statement{margin-top:80px}.statement .chapter{position:static;writing-mode:initial;display:block;margin-bottom:18px}.broker,.reno-layout,.reno-explain,.region,.contact{grid-template-columns:1fr}.broker{gap:30px}.calculator{padding:20px}.calc-grid{grid-template-columns:1fr}.reno-options{grid-template-columns:1fr}.grant-card{grid-template-columns:1fr;gap:15px}.services,.quotes{grid-template-columns:1fr}.quotes{margin-top:60px}.region{gap:40px}.contact-title h2 br{display:none}.topic-list{grid-column:1}.site-footer{flex-direction:column}.form-grid{grid-template-columns:1fr}}
@media(max-width:480px){.section-pad{padding-left:20px;padding-right:20px}.hero{min-height:auto}.inline-actions{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr}.price-row{grid-template-columns:1fr;gap:18px}.dates button{font-size:18px;padding:7px 2px}.booking{padding:18px}.times{grid-template-columns:1fr 1fr}.final-word{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.stilllife.photo{display:block;position:relative;margin:0;overflow:hidden;background:var(--cream)}
.stilllife.photo img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.hero-photo img{object-position:center 68%}
.renovation-photo img{object-position:center}
.stilllife.photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 14px 11px;background:linear-gradient(transparent,rgba(8,35,26,.76));color:white;font-size:8px;letter-spacing:.14em;text-transform:uppercase}
.stilllife.photo figcaption a{text-decoration:underline;text-underline-offset:2px}

/* Hero v2: image-led editorial composition */
@media(min-width:801px){
  .hero{position:relative;display:block;overflow:hidden;min-height:calc(100vh - 82px);padding-top:clamp(70px,9vh,120px);padding-bottom:80px}
  .hero-copy{position:relative;z-index:3;width:min(94%,1280px);padding-top:clamp(40px,8vh,100px)}
  .hero .eyebrow{margin-bottom:28px}
  .hero h1{font-size:clamp(88px,10.6vw,164px);line-height:.82;max-width:1200px;letter-spacing:-.065em}
  .hero h1 em{color:var(--coral)}
  .hero h1 .hero-word{color:var(--ink);text-shadow:0 1px 0 rgba(246,241,231,.72),0 0 24px rgba(246,241,231,.34)}
  .hero-aside{position:absolute;z-index:1;top:6%;right:0;bottom:6%;width:65%;max-width:none;overflow:hidden}
  .hero-photo{position:absolute;inset:0;aspect-ratio:auto}
  .hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0%,rgba(246,241,231,.92) 8%,rgba(246,241,231,.22) 35%,transparent 55%);pointer-events:none}
  .hero-photo img{object-position:56% center}
  .hero-photo figcaption{z-index:2;padding-left:clamp(150px,24vw,380px)}
  .hero-aside blockquote{position:absolute;z-index:4;right:clamp(25px,4vw,70px);bottom:38px;width:min(390px,52%);margin:0;padding:20px 22px;background:rgba(246,241,231,.94);box-shadow:0 12px 34px rgba(8,35,26,.14);font-size:15px}
}
@media(max-width:800px){
  .hero h1{line-height:.86}
  .hero h1 .hero-word{display:block;color:var(--ink)}
  .hero-photo{aspect-ratio:1.15}
  .hero-photo img{object-position:57% center}
}

/* PESO brand and personal consultation photography */
.wordmark{display:inline-flex;align-items:center;gap:10px}.wordmark img{width:30px;height:30px;object-fit:contain}
.people-story{grid-column:1/-1;display:grid;grid-template-columns:1.45fr .55fr;align-items:end;gap:clamp(28px,5vw,75px);margin:35px 0 20px}.people-photo{position:relative;margin:0;overflow:hidden;min-height:500px;background:var(--cream)}.people-photo>img{display:block;width:100%;height:100%;min-height:500px;object-fit:cover}.people-photo:after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(transparent,rgba(8,35,26,.72));pointer-events:none}.people-photo figcaption{position:absolute;z-index:2;left:22px;bottom:18px;color:white;font-size:9px;text-transform:uppercase;letter-spacing:.18em}.brand-sign{position:absolute;z-index:2;top:24px;left:24px;width:112px;height:128px;display:flex;align-items:center;justify-content:center;padding:10px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(8,35,26,.15)}.brand-sign img{max-width:100%;max-height:100%;object-fit:contain}.people-copy{padding-bottom:25px}.people-copy .chapter{color:var(--coral)}.people-copy h3{font:400 clamp(36px,4.4vw,66px)/.98 Georgia,serif;letter-spacing:-.035em;margin:18px 0 24px}.people-copy p{max-width:380px}.home-visit-photo{position:relative;margin:0;overflow:hidden;box-shadow:var(--shadow)}.home-visit-photo>img{display:block;width:100%;aspect-ratio:1.45;object-fit:cover}.home-visit-photo figcaption{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:13px;padding:18px 22px;background:rgba(11,43,33,.94);color:white}.home-visit-photo figcaption strong{font:400 34px/1 Georgia,serif;color:var(--coral)}.home-visit-photo figcaption span{font-size:8px;line-height:1.4;text-transform:uppercase;letter-spacing:.14em}
@media(max-width:800px){.wordmark img{width:27px;height:27px}.people-story{grid-template-columns:1fr;margin-top:10px}.people-photo,.people-photo>img{min-height:340px}.brand-sign{width:88px;height:100px;top:14px;left:14px}.people-copy{padding-bottom:10px}.home-visit-photo>img{aspect-ratio:1.1}.home-visit-photo figcaption{padding:13px 15px}.home-visit-photo figcaption strong{font-size:28px}}

/* Readability pass: comfortable type sizes on desktop and especially mobile */
body{font-size:18px;line-height:1.62}
.issue,.site-header nav,.eyebrow,.chapter,.signature{font-size:11px;line-height:1.45}
.wordmark{font-size:18px}
.menu-button{font-size:13px;min-height:44px;padding:0 6px}
.inline-actions{font-size:15px}
.button{min-height:48px;font-size:12px;line-height:1.3;padding:0 30px}
.stats span{display:block;font-size:12px;line-height:1.45;margin-top:7px}
.broker-copy{font-size:21px;line-height:1.58}
.benefits li{font-size:17px;line-height:1.45;padding:13px 0}
.calc-grid label,.calc-grid fieldset,.range-label{font-size:14px;line-height:1.45}
.tabs button,.people button,.times button{font-size:15px;min-height:48px}
.calc-grid input{height:48px;font-size:16px}
.price-row span,.grant-card span,.saving span{font-size:11px;line-height:1.4}
.reno-options button{font-size:15px;line-height:1.4;min-height:52px}
.reno-options small{font-size:11px;line-height:1.4}
.reno-explain p,.region>div:first-child p,.people-copy p{font-size:18px;line-height:1.62}
.callout span{font-size:11px}.callout p{font-size:15px;line-height:1.5}
.grant-card small{font-size:13px;line-height:1.5}
.services h3{font-size:12px}.services p{font-size:16px;line-height:1.6}
.quotes footer{font-size:13px;line-height:1.5}.quotes small{font-size:11px;line-height:1.4}
.dates small,.dates span{font-size:11px;line-height:1.35}
.times button{font-size:15px}
.booking label{font-size:13px;line-height:1.45}
.booking input,.booking select,.booking textarea{font-size:16px;line-height:1.5;min-height:48px}
.booking .consent{font-size:15px;line-height:1.5}
.topic-list a{font-size:16px;line-height:1.45}
.site-footer{font-size:11px;line-height:1.5}
.stilllife.photo figcaption,.people-photo figcaption{font-size:10px;line-height:1.4}
.home-visit-photo figcaption span{font-size:10px;line-height:1.45}
.legal-card{font-size:18px;line-height:1.65}

@media(max-width:800px){
  body{font-size:18px;line-height:1.65}
  .site-header{padding-left:20px;padding-right:20px}
  .wordmark{font-size:18px}
  .site-header.open nav{gap:10px}
  .site-header.open nav a{font-size:14px;line-height:1.4;padding:10px 0}
  .eyebrow,.chapter{font-size:12px;line-height:1.5;letter-spacing:.16em}
  .hero{padding-top:42px;padding-bottom:70px}
  .hero-aside blockquote{font-size:19px;line-height:1.45;margin-top:22px}
  .stilllife.photo figcaption,.people-photo figcaption{font-size:11px;letter-spacing:.11em}
  .inline-actions{font-size:16px}
  .button{width:100%;min-height:52px;font-size:13px;text-align:center}
  .stats span{font-size:13px}
  .broker-copy{font-size:20px;line-height:1.62}
  .benefits{padding:24px 20px}
  .benefits li{font-size:17px;padding:14px 0}
  .calculator,.config,.callout,.grant-card{padding:22px}
  .calc-grid label,.calc-grid fieldset,.range-label{font-size:15px}
  .tabs button,.people button,.times button{font-size:16px;min-height:50px}
  .price-row span,.grant-card span,.saving span{font-size:12px}
  .reno-options button{font-size:16px;padding:16px;min-height:60px}
  .reno-options small{font-size:12px;letter-spacing:.08em}
  .reno-explain p,.region>div:first-child p,.people-copy p{font-size:18px}
  .callout span{font-size:12px}.callout p{font-size:16px}
  .grant-card small{font-size:14px}
  .services h3{font-size:13px}.services p{font-size:17px}
  .quotes blockquote{font-size:21px}.quotes footer{font-size:14px}.quotes small{font-size:12px}
  .dates button{min-height:64px}.dates small,.dates span{font-size:11px}
  .booking h3{font-size:21px}
  .booking label{font-size:14px}
  .booking .consent{font-size:16px}
  .topic-list h3{font-size:22px}.topic-list a{font-size:17px;padding:18px 0}
  .home-visit-photo figcaption span{font-size:11px}
  .site-footer{font-size:12px;line-height:1.6;letter-spacing:.1em}
  .legal-page main{padding-top:60px;padding-bottom:70px}
  .legal-card{font-size:18px}
}

@media(max-width:480px){
  h1{font-size:clamp(56px,17vw,72px)}
  h2{font-size:clamp(42px,13vw,58px)}
  .section-heading h2{font-size:clamp(40px,12vw,52px)}
  .hero h1{font-size:clamp(58px,18vw,76px)}
  .people-copy h3{font-size:clamp(38px,12vw,50px)}
  .dates{grid-template-columns:repeat(3,1fr);gap:6px}
  .dates button{font-size:21px;padding:8px 4px}
  .saving{align-items:flex-start;gap:12px;flex-direction:column}
  .site-footer{padding-top:30px;padding-bottom:30px}
}
