@font-face{font-family:DM Sans;src:url('assets/dm-sans.woff2') format('woff2'),url('assets/dm-sans.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('assets/dm-sans-bold.woff2') format('woff2'),url('assets/dm-sans-bold.ttf') format('truetype');font-style:normal;font-weight:600 800;font-display:swap}
:root{--navy:#0e224f;--ink:#142d41;--green:#087b48;--bright:#1eb35d;--mint:#e7f5ed;--pale:#f4f8f6;--line:#dce5e1;--muted:#5e6d71;--white:#fff;--radius:18px;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:var(--white);color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{color:var(--navy);line-height:1.12;font-weight:600;letter-spacing:-.045em}p{color:var(--muted)}h1{font-size:clamp(3rem,5.9vw,5.3rem)}h2{font-size:clamp(2.1rem,3.5vw,3.3rem)}h3{font-size:1.5rem;letter-spacing:-.025em}::selection{background:#bde7ce;color:var(--navy)}:focus-visible{outline:3px solid #0b98be;outline-offset:5px}.wrap{max-width:var(--max);padding:0 32px;margin:auto}.section{padding:104px 0}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--green);margin-bottom:23px;display:block}.editorial{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:italic;color:var(--green);letter-spacing:-.06em}.lede{font-size:1.125rem;line-height:1.7;max-width:600px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:16px 24px;min-height:54px;border:1px solid transparent;border-radius:7px;font-weight:700;font-size:.925rem;line-height:1.4;background:var(--navy);color:white;transition:background .2s,transform .2s}.btn:hover{background:#1b3a65;transform:translateY(-2px)}.btn svg,.text-link svg{width:19px;height:19px}.btn-green{background:var(--green)}.btn-green:hover{background:#06643b}.btn-light{background:white;color:var(--navy);border-color:var(--line)}.btn-light:hover{background:var(--pale)}.text-link{display:inline-flex;gap:13px;align-items:center;font-weight:700;font-size:.94rem;padding:8px 0;border-bottom:1px solid var(--ink);line-height:1.4}.text-link:hover{color:var(--green);border-color:var(--green)}.buttons{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.skip{position:fixed;left:20px;top:-100px;background:var(--navy);color:white;z-index:100;padding:12px 24px}.skip:focus{top:10px}.site-header{height:99px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97);position:sticky;top:0;z-index:20}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{width:220px;flex-shrink:0}.logo img{width:100%;height:auto}.nav{display:flex;gap:29px;align-items:center}.nav a{font-size:.9rem;position:relative;padding:10px 0;color:#53616c}.nav a:hover,.nav a[aria-current]{color:var(--navy)}.nav a[aria-current]:after{content:'';position:absolute;bottom:2px;left:0;width:100%;height:2px;background:var(--green)}.header-cta{padding:13px 19px;min-height:46px;font-size:.85rem;gap:20px}.menu-toggle{display:none;align-items:center;justify-content:center;width:45px;height:45px;border:1px solid var(--line);background:white;border-radius:7px;color:var(--navy)}
.hero{padding:56px 0 68px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:50px;align-items:center}.hero-copy{padding:25px 0}.hero-copy h1{font-size:clamp(3.2rem,5.3vw,4.7rem);line-height:1.075;letter-spacing:-.055em}.hero-copy .lede{margin:26px 0 31px;max-width:490px}.hero-copy .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:24px}.mini-rule{width:26px;height:1px;background:var(--green)}.hero-note{margin-top:24px;font-size:.8rem;display:flex;align-items:center;gap:7px}.hero-note svg{height:16px;width:16px;color:var(--green)}.hero-visual{position:relative;padding:0 0 26px 16px}.hero-visual:before{content:'';position:absolute;top:23px;bottom:0;left:0;right:-28px;background:var(--mint);border-radius:180px 22px 22px 22px}.hero-photo{position:relative;width:100%;height:545px;object-fit:cover;object-position:48% center;border-radius:180px 18px 18px 18px}.image-note{position:absolute;left:-12px;bottom:55px;background:#fff;padding:19px 23px;border-radius:12px;box-shadow:0 12px 45px #10294019;display:flex;align-items:center;gap:15px}.image-note-icon{width:44px;height:44px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center}.image-note-icon svg{width:22px;height:22px}.image-note strong{display:block;font-size:.95rem;color:var(--navy)}.image-note span{display:block;font-size:.78rem;color:var(--muted)}.promise-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.promise-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}.promise-label{font-size:.75rem;max-width:125px;line-height:1.6;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.promise-item{display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:600;color:var(--navy)}.promise-item svg{width:21px;height:21px;color:var(--green)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:44px}.section-head h2{max-width:670px}.section-head p{max-width:350px}.section-head .eyebrow{margin-bottom:16px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:27px}.service-card{border-top:1px solid var(--line);padding:27px 0 5px}.service-icon{width:45px;height:45px;border-radius:12px;background:var(--mint);color:var(--green);display:grid;place-items:center;margin-bottom:29px}.service-icon svg{width:23px;height:23px}.service-card h3{font-size:1.3rem;line-height:1.25;letter-spacing:-.035em;margin-bottom:14px}.service-card p{font-size:.95rem;line-height:1.75;margin-bottom:19px}.service-card a{font-size:.88rem}.tinted{background:var(--pale)}.work-feature{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.work-art{position:relative;min-height:450px;overflow:hidden;background:#eecebc}.work-art img{width:100%;height:100%;object-fit:cover;position:absolute;transition:transform .5s}.work-feature:hover .work-art img{transform:scale(1.025)}.work-art:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#461d1273)}.project-title{position:absolute;z-index:1;bottom:35px;left:35px;color:white;font-family:Georgia,serif;font-size:3.4rem;line-height:1;letter-spacing:-.05em}.project-title small{display:block;font-family:DM Sans,sans-serif;font-size:.7rem;letter-spacing:.17em;margin-bottom:15px}.work-copy{padding:55px 52px;align-self:center}.work-copy .eyebrow{font-size:.75rem}.work-copy h3{font-size:2.35rem;margin:20px 0;line-height:1.14}.work-copy p{margin-bottom:26px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{border:1px solid var(--line);border-radius:25px;padding:5px 12px;font-size:.75rem;line-height:1.4;color:#526363}.work-copy .text-link{margin-top:27px}.intro-split{display:grid;grid-template-columns:.92fr 1fr;gap:90px;align-items:start}.intro-split h2{max-width:520px}.intro-split .lede{margin-bottom:25px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:55px}.step{padding-top:23px;border-top:1px solid #cbded2}.step-number{font-size:.8rem;color:var(--green);display:block;margin-bottom:26px}.step h3{margin-bottom:16px}.step p{font-size:.96rem}.pricing-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.mini-plan{padding:29px;border:1px solid var(--line);border-radius:12px;background:white}.mini-plan.featured{background:var(--mint);border-color:#8ac5a3}.mini-plan h3{font-size:1.5rem;margin-bottom:15px}.mini-plan p{font-size:.9rem}.mini-price{margin:24px 0 14px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mini-price strong{font-size:2.5rem;letter-spacing:-.06em;line-height:1.1;color:var(--navy)}.mini-price span{font-size:.875rem;color:var(--muted)}.mini-plan .text-link{margin-top:23px;font-size:.88rem}.pricing-footnote{font-size:.8rem;margin-top:22px;max-width:950px}.cta{padding:76px 0}.cta-panel{background:var(--mint);border-radius:20px;padding:63px 62px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start;position:relative}.cta-panel h2{font-size:clamp(2rem,3.5vw,3.25rem)}.cta-panel .eyebrow{margin-bottom:16px}.cta-intro>p{margin-top:18px;font-size:1rem;max-width:560px}.cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;justify-self:end}.cta-actions .btn{min-width:255px}.cta-actions small{font-size:.8rem;color:var(--muted)}.footer-top{border-top:1px solid var(--line);padding:46px 0;display:flex;gap:70px;justify-content:space-between}.footer-brand .logo{display:block;width:215px;margin-bottom:19px}.footer-brand p{max-width:310px;font-size:.88rem}.footer-nav{display:flex;gap:65px}.footer-nav strong{display:block;font-size:.82rem;margin-bottom:14px;color:var(--navy)}.footer-nav a{display:block;font-size:.84rem;color:var(--muted);margin:7px 0}.footer-nav a:hover{color:var(--green)}.footer-bottom{padding:20px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}.page-intro{padding:70px 0 65px}.page-intro h1{max-width:940px}.page-intro .lede{margin-top:26px;max-width:660px}.breadcrumb{font-size:.8rem;color:var(--muted);display:flex;gap:13px;align-items:center;margin-bottom:30px}.breadcrumb a:hover{color:var(--green)}.breadcrumb span:last-child{color:var(--navy)}.about-hero{padding:20px 0 50px}.about-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.about-hero-grid img{width:100%;height:490px;object-fit:cover;border-radius:14px 120px 14px 14px}.about-hero-grid h2{font-size:2.5rem;margin-bottom:26px}.about-hero-grid p+p{margin-top:19px}.about-hero-grid .text-link{margin-top:25px}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.value{padding-top:26px;border-top:1px solid var(--line)}.value h3{margin:18px 0}.value-index{font-size:.8rem;color:var(--green)}.about-note{font-size:1.3rem;line-height:1.65;color:var(--navy);padding:30px 0 30px 29px;border-left:3px solid var(--green);max-width:750px;margin:50px auto 0}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}.region{border:1px solid var(--line);padding:28px 30px;border-radius:12px}.region span{display:block;font-size:.82rem;color:var(--green);margin-bottom:10px}.region h3{margin-bottom:12px}.region a{font-size:.95rem;text-decoration:underline;text-underline-offset:5px}
.package-intro{padding-bottom:35px}.package-tabs{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.package-tabs a{border:1px solid var(--line);border-radius:30px;font-size:.82rem;padding:7px 14px}.package-tabs a:hover{background:var(--mint);border-color:var(--green)}.pricing-full{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;padding-bottom:80px}.plan{border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;padding:29px 27px;background:white;scroll-margin-top:120px}.plan.featured{border:2px solid #70b28a;background:#f1f9f4;padding:28px 26px}.plan-badge{display:inline-block;align-self:start;border-radius:4px;padding:4px 9px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);background:var(--mint);margin-bottom:22px;font-weight:700}.plan .plan-badge.neutral{color:#52677c;background:#edf1f7}.plan h2{font-size:1.6rem;letter-spacing:-.025em;margin-bottom:12px}.plan-description{font-size:.875rem;min-height:66px}.price{margin-top:26px;color:var(--muted);font-size:.9rem}.price strong{font-size:3.3rem;line-height:1.1;color:var(--navy);letter-spacing:-.07em;margin-right:7px}.recurring{font-size:.94rem;margin-top:7px}.recurring strong{font-weight:700;color:var(--navy)}.plan-terms{font-size:.77rem;line-height:1.6;min-height:89px;margin:13px 0 20px}.plan-features{padding:22px 0 0;margin:0;list-style:none;border-top:1px solid var(--line);flex:1}.plan-features li{position:relative;padding-left:23px;margin-bottom:19px;font-size:.86rem;line-height:1.65;color:var(--muted)}.plan-features li:before{content:'✓';position:absolute;left:0;top:0;color:var(--green);font-weight:700}.plan-features strong{color:var(--navy)}.plan .btn{margin-top:24px;width:100%;gap:12px;padding:15px 12px;font-size:.84rem}.service-list{margin-top:47px}.service-row{padding:30px 0;display:grid;grid-template-columns:60px 1fr 1.1fr;gap:35px;border-top:1px solid var(--line)}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row .service-icon{margin:0}.service-row h3{font-size:1.5rem;margin-top:8px}.service-row p{font-size:.95rem}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq-layout .lede{font-size:1rem;margin-top:21px}.faq{border-bottom:1px solid var(--line)}.faq:first-child{border-top:1px solid var(--line)}.faq summary{display:flex;justify-content:space-between;gap:25px;list-style:none;cursor:pointer;padding:24px 0;font-size:1rem;font-weight:700;color:var(--navy)}summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-size:1.6rem;color:var(--green);line-height:1}.faq[open] summary:after{content:'−'}.faq>div{padding:0 35px 24px 0;font-size:.94rem;color:var(--muted)}
.work-page .work-feature{grid-template-columns:1.2fr 1fr}.work-page .work-art{min-height:550px}.work-page .work-copy{padding:46px}.project-details{display:grid;grid-template-columns:.75fr 1.25fr;gap:75px;padding:70px 0 0}.detail-list{display:grid;gap:27px}.detail-list div{padding-bottom:25px;border-bottom:1px solid var(--line)}.detail-list h3{font-size:1.2rem;margin-bottom:12px}.detail-list p{font-size:.95rem}.work-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.work-principles h3{margin:19px 0 12px}.work-principles span{color:var(--green);font-size:.8rem}.news-feature{display:grid;grid-template-columns:1.06fr 1fr;border-radius:18px;overflow:hidden;background:var(--pale)}.news-feature-image{min-height:380px;position:relative}.news-feature-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.news-feature-copy{padding:47px;align-self:center}.news-meta{display:flex;gap:15px;font-size:.76rem;color:var(--green);margin-bottom:19px;align-items:center}.news-meta span+span{padding-left:15px;border-left:1px solid #b9cfc2;color:var(--muted)}.news-feature h2{font-size:2.6rem;margin-bottom:20px}.news-feature p{font-size:1rem;margin-bottom:24px}.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:30px}.news-card{display:block;border:1px solid var(--line);border-radius:13px;padding:35px;transition:border-color .2s,background .2s}.news-card:hover{border-color:#7bb992;background:var(--pale)}.news-card h3{font-size:1.65rem;max-width:460px;line-height:1.2;margin-bottom:18px}.news-card p{font-size:.95rem}.news-card .text-link{margin-top:25px}.journal-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:100px}.journal-label{position:sticky;top:145px;align-self:start}.journal-label p{margin-top:20px}.article{border-bottom:1px solid var(--line);scroll-margin-top:130px}.article:first-child{border-top:1px solid var(--line)}.article summary{list-style:none;cursor:pointer;padding:30px 0;display:flex;align-items:start;justify-content:space-between;gap:20px}.article summary h3{font-size:1.6rem;line-height:1.25}.article summary:after{content:'+';font-size:1.8rem;line-height:1;color:var(--green)}.article[open] summary:after{content:'−'}.article-body{padding:0 0 35px}.article-body p{margin-bottom:20px}.article-body h4{font-size:1.1rem;margin:27px 0 12px;letter-spacing:-.015em}.article-body ul{padding-left:22px;color:var(--muted)}.article-body li{margin-bottom:9px}.article-body .text-link{margin-top:6px}.news-date{font-size:.75rem;color:var(--muted);display:block;margin-bottom:10px}.top-link{display:inline-flex;gap:8px;align-items:center}.top-link svg{width:16px;height:16px}
@media(min-width:1500px){.hero{padding-top:70px;padding-bottom:85px}.hero-photo{height:590px}}
@media(max-width:1100px){.nav{gap:20px}.logo{width:190px}.hero-grid{gap:28px}.hero-copy h1{font-size:4rem}.hero-photo{height:505px}.service-grid{gap:20px}.work-copy{padding:35px}.plan{padding:24px 21px}.plan.featured{padding:23px 20px}.plan-terms{min-height:112px}.plan-description{min-height:84px}.plan-features li{font-size:.84rem}.pricing-full{gap:15px}.cta-panel{padding:45px;gap:30px}.footer-nav{gap:40px}}
@media(max-width:900px){.site-header{height:84px}.wrap{padding:0 26px}.header-cta{margin-left:auto}.menu-toggle{display:flex}.nav{display:none;position:absolute;top:83px;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:20px 26px;box-shadow:0 16px 20px #0e224f0a;align-items:stretch;gap:2px}.nav.is-open{display:flex;flex-direction:column}.nav a{padding:12px}.nav a[aria-current]:after{left:12px;width:25px}.hero-grid{grid-template-columns:1fr 1fr;gap:24px}.hero-copy h1{font-size:3.25rem}.hero-copy .lede{font-size:1rem}.hero-photo{height:465px;border-top-left-radius:130px}.hero-visual:before{border-top-left-radius:130px}.hero .buttons{gap:16px}.hero .btn{padding:15px 18px}.image-note{padding:14px;left:-10px}.image-note strong{font-size:.8rem}.image-note span{font-size:.7rem}.image-note-icon{width:35px;height:35px}.promise-label{display:none}.promise-item{font-size:.8rem;gap:8px}.promise-inner{gap:15px}.service-grid{grid-template-columns:1fr 1fr;gap:28px 40px}.section{padding:75px 0}.intro-split{gap:45px}.work-copy h3{font-size:1.95rem}.work-copy{padding:30px}.work-art{min-height:420px}.steps{gap:28px}.mini-plan{padding:24px}.mini-plan h3{font-size:1.3rem}.cta-panel{grid-template-columns:1fr;gap:27px}.cta-actions{justify-self:start}.cta-actions .btn{min-width:230px}.cta-panel .buttons{display:flex}.footer-top{gap:35px}.footer-nav{gap:30px}.footer-brand p{max-width:250px}.about-hero-grid{gap:38px}.about-hero-grid img{height:490px}.about-hero-grid h2{font-size:2rem}.pricing-full{grid-template-columns:1fr;max-width:670px;margin:auto;gap:26px}.plan{padding:33px}.plan.featured{padding:32px}.plan-description,.plan-terms{min-height:0}.plan-features{display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.plan .btn{align-self:start;max-width:350px}.service-row{grid-template-columns:45px 1fr 1.2fr;gap:24px}.faq-layout{gap:35px;grid-template-columns:.85fr 1.15fr}.work-page .work-feature{grid-template-columns:1fr 1fr}.work-page .work-art{min-height:510px}.work-page .work-copy{padding:30px}.project-details{gap:45px}.news-feature-copy{padding:35px}.news-feature h2{font-size:2.1rem}.journal-layout{gap:45px;grid-template-columns:.7fr 1.3fr}}
@media(max-width:650px){.wrap{padding:0 21px}.site-header{height:78px}.logo{width:178px}.header-inner{gap:12px}.header-cta{display:none}.menu-toggle{margin-left:auto}.nav{top:77px}.hero{padding:25px 0 42px}.hero-grid{grid-template-columns:1fr;gap:18px}.hero-copy{padding:15px 0 0}.hero-copy h1{font-size:clamp(2.8rem,11.2vw,4.2rem);max-width:540px}.hero-copy .eyebrow{font-size:.71rem;margin-bottom:23px;gap:9px}.hero-copy .lede{font-size:1.02rem;margin:22px 0 25px;max-width:460px}.hero-note{margin-top:18px;font-size:.75rem}.hero-photo{height:360px;border-radius:110px 12px 12px 12px;object-position:center}.hero-visual{padding:0 8px 20px 14px;margin-top:21px}.hero-visual:before{right:0;top:18px;border-radius:110px 12px 12px 12px}.image-note{bottom:42px;left:0;padding:14px 18px}.image-note strong{font-size:.9rem}.image-note span{font-size:.74rem}.promise-inner{display:grid;grid-template-columns:1fr 1fr;padding-top:20px;padding-bottom:20px;gap:15px}.promise-item{font-size:.75rem}.promise-item:last-child{grid-column:1/-1}.section{padding:60px 0}.section-head{display:block;margin-bottom:33px}.section-head p{margin-top:20px}.section-head>.text-link{margin-top:22px}.eyebrow{margin-bottom:17px;font-size:.72rem}.service-grid{gap:25px}.service-card{padding-top:22px}.service-icon{margin-bottom:20px}.service-card h3{font-size:1.17rem}.service-card p{font-size:.875rem}.service-card .text-link{font-size:.8rem;gap:8px}.work-feature,.work-page .work-feature{grid-template-columns:1fr}.work-art,.work-page .work-art{min-height:340px}.work-copy,.work-page .work-copy{padding:30px 25px}.work-copy h3{font-size:2rem}.project-title{font-size:2.9rem;bottom:27px;left:26px}.intro-split{grid-template-columns:1fr;gap:28px}.intro-split .lede{font-size:1rem}.steps{grid-template-columns:1fr;gap:30px;margin-top:32px}.step-number{margin-bottom:13px}.step h3{font-size:1.4rem;margin-bottom:11px}.pricing-preview{grid-template-columns:1fr;gap:17px}.mini-plan{padding:27px}.mini-plan h3{font-size:1.55rem}.mini-price{margin-top:20px}.mini-plan .text-link{margin-top:17px}.cta{padding:30px 0 55px}.cta-panel{padding:34px 25px;gap:28px;border-radius:14px}.cta-panel h2{font-size:2.2rem}.cta-actions{width:100%}.cta-actions .btn{width:100%;min-width:0}.footer-top{flex-direction:column;gap:30px;padding:36px 0}.footer-nav{gap:55px}.footer-brand p{max-width:300px}.footer-bottom{font-size:.69rem;gap:20px;align-items:start;line-height:1.6}.footer-bottom>span{max-width:215px}.page-intro{padding:40px 0 43px}.page-intro h1{font-size:2.95rem}.page-intro .lede{font-size:1.03rem;margin-top:21px}.breadcrumb{margin-bottom:26px;font-size:.75rem}.about-hero{padding-top:0;padding-bottom:10px}.about-hero-grid{grid-template-columns:1fr;gap:33px}.about-hero-grid img{height:350px;border-top-right-radius:90px}.about-hero-grid h2{font-size:2.1rem}.about-hero-grid p{font-size:.98rem}.values{grid-template-columns:1fr;gap:30px}.value{padding-top:23px}.value h3{margin:14px 0}.about-note{font-size:1.15rem;margin-top:35px;padding:15px 0 15px 23px}.region-grid{grid-template-columns:1fr;margin-top:28px}.region{padding:25px}.pricing-full{padding-bottom:50px;gap:24px}.plan,.plan.featured{padding:26px}.plan.featured{padding:25px}.plan-badge{margin-bottom:18px}.plan h2{font-size:1.7rem}.plan-description{font-size:.9rem}.price{margin-top:22px}.price strong{font-size:3rem}.plan-terms{font-size:.79rem;margin-top:14px;margin-bottom:22px}.plan-features{display:block}.plan-features li{font-size:.89rem}.plan .btn{max-width:none;margin-top:15px;font-size:.9rem}.service-row{grid-template-columns:45px 1fr;gap:16px 22px;padding:27px 0}.service-row p{grid-column:2}.service-row h3{font-size:1.25rem;margin-top:10px}.faq-layout{grid-template-columns:1fr;gap:35px}.faq summary{font-size:.95rem;padding:22px 0}.faq>div{font-size:.9rem}.project-details{grid-template-columns:1fr;gap:35px;padding-top:45px}.work-principles{grid-template-columns:1fr;gap:30px}.news-feature{grid-template-columns:1fr}.news-feature-image{min-height:280px}.news-feature-copy{padding:30px 25px}.news-feature h2{font-size:2.2rem}.news-grid{grid-template-columns:1fr;gap:20px}.news-card{padding:28px}.news-card h3{font-size:1.55rem}.journal-layout{grid-template-columns:1fr;gap:33px}.journal-label{position:static}.article summary h3{font-size:1.45rem}.article-body{font-size:.95rem}.news-meta{font-size:.71rem}.page-intro .package-tabs{gap:8px}.package-tabs a{font-size:.75rem;padding:7px 11px}}
@media(min-width:651px) and (max-width:820px){.hero-grid{grid-template-columns:1fr;gap:32px}.hero-copy{max-width:650px}.hero-copy h1{font-size:4rem}.hero-photo{height:460px}.hero-visual{max-width:640px;width:100%;margin:0 auto}.hero-copy .lede{max-width:520px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Full-width brand artwork: readable copy over the image's open left side. */
.hero-banner{position:relative;isolation:isolate;overflow:hidden;background:#f8fafb;min-height:600px;display:flex;align-items:center}
.hero-banner-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:-2}
.hero-banner-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(249,252,254,.6) 0%,rgba(249,252,254,.88) 36%,rgba(249,252,254,.8) 45%,rgba(249,252,254,0) 63%)}
.hero-banner-inner{width:100%;padding-top:60px;padding-bottom:64px}
.hero-banner-copy{max-width:605px;width:51%}
.hero-banner-copy .eyebrow{display:flex;align-items:center;gap:11px;font-size:.78rem;margin-bottom:27px}
.hero-banner-copy h1{font-size:clamp(3.2rem,5.2vw,4.7rem);line-height:1.075;letter-spacing:-.055em}
.hero-banner-copy .lede{max-width:490px;margin:27px 0 31px;font-size:1.1rem;color:#465d65}
.hero-banner-copy .hero-note{color:#425b64;margin-top:25px}
.hero-banner-copy .text-link{color:var(--navy)}
.hero-banner-copy .text-link:hover{color:var(--green)}
@media(min-width:1600px){.hero-banner{min-height:650px}.hero-banner-image{object-position:right center}}
@media(min-width:901px) and (max-width:1100px){.hero-banner{min-height:570px}.hero-banner-copy{width:53%}.hero-banner-copy h1{font-size:3.7rem}.hero-banner-copy .lede{font-size:1rem;max-width:420px}.hero-banner-copy .buttons{gap:20px}.hero-banner-copy .btn{padding:16px 19px}.hero-banner-image{object-position:right center}.hero-banner-shade{background:linear-gradient(90deg,rgba(249,252,254,.94) 0%,rgba(249,252,254,.94) 43%,rgba(249,252,254,0) 70%)}}
@media(max-width:900px){.hero-banner{min-height:0;display:block;padding-bottom:430px;background:#fff}.hero-banner-inner{padding-top:48px;padding-bottom:24px}.hero-banner-copy{width:100%;max-width:610px}.hero-banner-copy h1{font-size:clamp(3rem,7.5vw,4rem)}.hero-banner-copy .lede{max-width:510px}.hero-banner-image{top:auto;bottom:0;height:430px;object-position:right center}.hero-banner-shade{top:auto;bottom:0;height:430px;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.28) 14%,rgba(255,255,255,0) 30%)}.hero-banner-copy .hero-note{font-size:.8rem}}
@media(max-width:650px){.hero-banner{padding-bottom:360px}.hero-banner-inner{padding-top:36px;padding-bottom:20px}.hero-banner-copy h1{font-size:clamp(2.75rem,10.8vw,3.7rem)}.hero-banner-copy .eyebrow{font-size:.69rem;gap:8px;margin-bottom:23px}.hero-banner-copy .lede{font-size:1.02rem;margin:23px 0 26px;max-width:440px}.hero-banner-copy .buttons{gap:18px}.hero-banner-copy .btn{padding:15px 18px}.hero-banner-copy .text-link{font-size:.88rem;gap:10px}.hero-banner-copy .hero-note{font-size:.74rem;margin-top:21px}.hero-banner-image{height:360px;object-position:right center}.hero-banner-shade{height:360px}}

/* ==========================================================================
   Added September 2026: contact form, founder, timeline, à la carte, legal
   pages, articles, news list, Site Report Card, 404, footer links.
   Status colors used below (all at least 4.5:1 on white):
   error/fail #b42318, warning #8a5a00, pass var(--green)
   ========================================================================== */

[hidden] { display: none !important; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.btn:active { transform: translateY(0); }
.btn:disabled { opacity: .7; cursor: progress; transform: none; }
.text-link:active { opacity: .75; }
button.text-link {
  background: none;
  border: 0;
  border-bottom: 1px solid var(--ink);
  color: var(--ink);
  cursor: pointer;
}

/* ---------- Contact form (inside the "Let's talk" panel) ---------- */
.cta-intro { padding-top: 10px; }
.cta-intro > .contact-options-label {
  margin-top: 36px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--navy);
}
.contact-options { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 2px; }
.contact-options a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  font-size: .95rem;
  font-weight: 700;
  color: var(--navy);
  overflow-wrap: anywhere;
  transition: color .2s;
}
.contact-options a:hover { color: var(--green); }
.contact-options a:active { opacity: .75; }
.contact-options svg { width: 20px; height: 20px; color: var(--green); }

.contact-card {
  background: #fff;
  border-radius: 14px;
  padding: 32px;
  box-shadow: 0 1px 2px rgba(14, 34, 79, .06), 0 22px 44px -22px rgba(14, 34, 79, .28);
}
.contact-form { position: relative; display: grid; gap: 18px; }
.contact-form-title { font-size: 1.3rem; letter-spacing: -.025em; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display: grid; gap: 7px; align-content: start; }
.field label { font-size: .85rem; font-weight: 700; color: var(--navy); }
.optional { font-weight: 400; color: var(--muted); }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid #c3d2cb;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.4;
  transition: border-color .2s, box-shadow .2s;
}
.field textarea { min-height: 116px; resize: vertical; }
.field textarea::placeholder { color: #6b7a7e; }
.field select {
  appearance: none;
  padding-right: 42px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e224f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 18px;
  cursor: pointer;
}
.field input:hover,
.field select:hover,
.field textarea:hover { border-color: #93ada2; }
.field input:focus-visible,
.field select:focus-visible,
.field textarea:focus-visible { outline: 3px solid #0b98be; outline-offset: 1px; border-color: var(--navy); }
.field [aria-invalid=true] { border-color: #b42318; box-shadow: 0 0 0 1px #b42318; }
.field-error { font-size: .85rem; font-weight: 600; color: #b42318; }
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-submit { justify-self: start; min-width: 210px; margin-top: 4px; }
.form-status {
  padding: 12px 14px;
  border-radius: 7px;
  background: #fdf0ee;
  font-size: .9rem;
  font-weight: 600;
  color: #b42318;
}
.form-status a { text-decoration: underline; text-underline-offset: 3px; }
.form-note { font-size: .8rem; }
.form-note a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.form-note a:hover { color: var(--green); }
.form-success { padding: 8px 0; }
.form-success-icon {
  width: 52px;
  height: 52px;
  margin-bottom: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--mint);
  color: var(--green);
}
.form-success-icon svg { width: 26px; height: 26px; }
.form-success h3 { font-size: 1.6rem; margin-bottom: 10px; }
.form-success h3:focus { outline: none; }
.form-success a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Timeline (homepage + about) ---------- */
.steps { list-style: none; padding-left: 0; margin-bottom: 0; }
.step-list { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 9px; }
.step-list li { position: relative; padding-left: 24px; font-size: .9rem; line-height: 1.55; color: var(--muted); }
.step-list li:before {
  content: '';
  position: absolute;
  left: 2px;
  top: .45em;
  width: 10px;
  height: 5px;
  border-left: 1.6px solid var(--green);
  border-bottom: 1.6px solid var(--green);
  transform: rotate(-45deg);
}
.guarantee {
  max-width: 820px;
  margin-top: 50px;
  padding: 24px 28px;
  border-left: 3px solid var(--green);
  border-radius: 0 12px 12px 0;
  background: var(--mint);
}
.tinted .guarantee { background: #fff; }
.guarantee-title { margin-bottom: 6px; font-size: 1.15rem; font-weight: 700; color: var(--navy); }
.guarantee p:not(.guarantee-title) { font-size: .95rem; }
.guarantee a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.guarantee a:hover { color: var(--green); }

/* ---------- Founder (about) ---------- */
.founder { scroll-margin-top: 100px; }
.founder-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 72px; align-items: center; }
.founder-photo { margin: 0; }
.founder-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 120px 14px 14px 14px;
  background: var(--mint);
}
.founder-copy h2 { margin-bottom: 24px; }
.founder-copy .lede { margin-bottom: 18px; color: var(--ink); }
.founder-copy p + p { margin-top: 16px; }
.founder-contact { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 4px 28px; }
.founder-contact a,
.founder-contact span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  font-size: .92rem;
  font-weight: 700;
  color: var(--navy);
  overflow-wrap: anywhere;
}
.founder-contact a { transition: color .2s; }
.founder-contact a:hover { color: var(--green); }
.founder-contact svg { width: 19px; height: 19px; color: var(--green); }

/* ---------- À la carte price list (services) ---------- */
.menu-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.menu-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 250px;
  gap: 48px;
  align-items: start;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.menu-main h3 { margin-bottom: 10px; font-size: 1.35rem; letter-spacing: -.03em; }
.menu-main p { max-width: 660px; font-size: .95rem; }
.menu-main .menu-note { margin-top: 10px; font-size: .85rem; font-weight: 600; color: var(--green); }
.menu-side { display: grid; justify-items: end; gap: 12px; text-align: right; }
.menu-price strong { display: block; font-size: 2rem; line-height: 1.1; letter-spacing: -.05em; color: var(--navy); }
.menu-price span { display: block; margin-top: 4px; font-size: .82rem; color: var(--muted); }
.menu-footnote { margin-top: 28px; font-size: .95rem; }
.menu-footnote a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.menu-footnote a:hover { color: var(--green); }

/* ---------- Shared reading styles (legal pages + articles) ---------- */
.prose { max-width: 720px; font-size: 1.05rem; line-height: 1.75; color: var(--muted); }
.prose > * + *,
.legal-section > * + * { margin-top: 1.1em; }
.prose ul,
.prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .5em; }
.prose li::marker { color: var(--green); }
.prose h2 { margin-top: 2em; font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.2; letter-spacing: -.035em; }
.prose h3 { margin-top: 1.8em; font-size: 1.3rem; }
.prose h4 { margin-top: 1.6em; font-size: 1.1rem; letter-spacing: -.015em; }
.prose > h2:first-child,
.prose > h3:first-child,
.legal-section > h2 { margin-top: 0; }
.prose strong { color: var(--navy); }
.prose a:not(.text-link) {
  color: var(--navy);
  text-decoration: underline;
  text-decoration-color: #7fbf9b;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: color .2s, text-decoration-color .2s;
}
.prose a:not(.text-link):hover { color: var(--green); text-decoration-color: currentColor; }
.prose .text-link { color: var(--navy); }
.prose .text-link:hover { color: var(--green); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.prose table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .92rem; line-height: 1.5; }
.prose th,
.prose td { padding: 13px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.prose thead th { background: var(--pale); font-size: .85rem; font-weight: 700; color: var(--navy); }
.prose tbody th { font-weight: 700; color: var(--navy); }
.prose tr:last-child > * { border-bottom: 0; }

/* ---------- Legal pages ---------- */
.legal-intro { padding-bottom: 44px; }
.legal-date { margin-top: 18px; font-size: .85rem; font-weight: 600; color: var(--green); }
.legal-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 80px; align-items: start; padding-bottom: 90px; }
.legal-toc { position: sticky; top: 130px; padding-top: 20px; border-top: 1px solid var(--line); }
.legal-toc-title { margin-bottom: 10px; font-size: .8rem; font-weight: 700; color: var(--navy); }
.legal-toc ol { list-style: none; padding: 0; margin: 0; }
.legal-toc a { display: block; padding: 6px 0; font-size: .88rem; line-height: 1.4; color: var(--muted); transition: color .2s; }
.legal-toc a:hover { color: var(--green); }
.legal-body { font-size: 1rem; }
.legal-section { scroll-margin-top: 120px; }
.legal-section + .legal-section { margin-top: 44px; padding-top: 40px; border-top: 1px solid var(--line); }
.legal-section h2 { font-size: clamp(1.45rem, 2.2vw, 1.75rem); }

/* ---------- Articles ---------- */
.post-wrap { max-width: 744px; }
.post-header { padding-bottom: 40px; }
.post-header .news-meta { margin-bottom: 0; }
.post-header h1 { margin-top: 18px; font-size: clamp(2.4rem, 4.4vw, 3.6rem); line-height: 1.1; letter-spacing: -.045em; }
.post-header .lede { margin-top: 22px; max-width: none; }
.post-byline { margin-top: 22px; font-size: .9rem; }
.post-byline a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.post-byline a:hover { color: var(--green); }
.post { padding-bottom: 80px; }
.post .prose { max-width: none; }
.post-figure { margin: 0 0 44px; }
.post-figure img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 18px; }
.post-callout { padding: 26px 28px; border-radius: 14px; background: var(--mint); }
.prose > .post-callout { margin-top: 2em; }
.post-callout p { color: var(--ink); }
.post-callout .text-link { margin-top: 14px; }
.post-faq { margin-top: 60px; padding-top: 44px; border-top: 1px solid var(--line); }
.post-faq h2 { margin-bottom: 18px; font-size: clamp(1.6rem, 2.4vw, 2rem); }
.post-faq .faq:first-of-type { border-top: 1px solid var(--line); }
.faq > div p + p { margin-top: 10px; }
.tinted .news-card { background: #fff; }
.tinted .news-card:hover { background: #fff; }

/* ---------- News: insights list ---------- */
.post-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid #cddcd4; }
.post-row {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr) 32px;
  gap: 32px;
  align-items: start;
  padding: 30px 0;
  border-bottom: 1px solid #cddcd4;
}
.post-row time { padding-top: 3px; font-size: .85rem; color: var(--muted); }
.post-row-category { display: block; margin-bottom: 8px; font-size: .78rem; font-weight: 700; color: var(--green); }
.post-row-title { display: block; font-size: 1.45rem; font-weight: 600; line-height: 1.25; letter-spacing: -.03em; color: var(--navy); transition: color .2s; }
.post-row-summary { display: block; max-width: 680px; margin-top: 10px; font-size: .95rem; color: var(--muted); }
.post-row-arrow { justify-self: end; padding-top: 4px; color: var(--navy); }
.post-row-arrow svg { width: 22px; height: 22px; transition: transform .2s; }
.post-row:hover .post-row-title { color: var(--green); }
.post-row:hover .post-row-arrow svg { transform: translateX(4px); }
.post-row:active .post-row-title { opacity: .75; }

/* ---------- Site Report Card ---------- */
.report-intro { padding-bottom: 70px; }
.report-form {
  max-width: 740px;
  margin-top: 36px;
  padding: 26px 28px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(14, 34, 79, .05), 0 22px 44px -26px rgba(14, 34, 79, .3);
}
.report-form label { display: block; margin-bottom: 9px; font-size: .85rem; font-weight: 700; color: var(--navy); }
.report-form-row { display: flex; gap: 12px; }
.report-form input {
  flex: 1;
  min-width: 0;
  min-height: 54px;
  padding: 13px 16px;
  border: 1px solid #c3d2cb;
  border-radius: 7px;
  color: var(--ink);
  font-size: 1.05rem;
  transition: border-color .2s;
}
.report-form input:hover { border-color: #93ada2; }
.report-form input:focus-visible { outline: 3px solid #0b98be; outline-offset: 1px; border-color: var(--navy); }
.report-form input[aria-invalid=true] { border-color: #b42318; box-shadow: 0 0 0 1px #b42318; }
.report-form .field-error { margin-top: 10px; }
.report-hint { margin-top: 12px; font-size: .82rem; }
.report-status { padding-bottom: 70px; }
.report-loading,
.report-error { max-width: 740px; padding: 30px 32px; border: 1px solid var(--line); border-radius: 14px; }
.report-loading h2,
.report-error h2 { margin-bottom: 18px; font-size: 1.5rem; letter-spacing: -.03em; overflow-wrap: anywhere; }
.report-error h2:focus { outline: none; }
.report-error p + p { margin-top: 10px; }
.report-error .btn { margin-top: 22px; }
.report-error a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.loading-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.loading-steps li { position: relative; padding-left: 30px; font-size: .95rem; color: var(--muted); }
.loading-steps li:before {
  content: '';
  position: absolute;
  left: 0;
  top: .3em;
  width: 16px;
  height: 16px;
  border: 2px solid #c3d2cb;
  border-radius: 50%;
}
.loading-steps li[data-state=active] { font-weight: 600; color: var(--navy); }
.loading-steps li[data-state=active]:before { border-color: var(--green); border-right-color: transparent; animation: report-spin .8s linear infinite; }
.loading-steps li[data-state=done] { color: var(--ink); }
.loading-steps li[data-state=done]:before { border-color: var(--green); background: var(--green); box-shadow: inset 0 0 0 3px #fff; }
@keyframes report-spin { to { transform: rotate(360deg); } }

.report-results { padding: 10px 0 90px; scroll-margin-top: 110px; }
.report-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  padding: 38px 44px;
  border-radius: 20px;
  background: var(--mint);
}
.report-grade {
  min-width: 1.5em;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(5rem, 11vw, 8.5rem);
  font-style: italic;
  line-height: .9;
  letter-spacing: -.06em;
  text-align: center;
  color: var(--green);
}
.report-grade[data-status=warn] { color: #8a5a00; }
.report-grade[data-status=fail] { color: #b42318; }
.report-for { font-size: .85rem; overflow-wrap: anywhere; }
.report-for span { font-weight: 700; color: var(--navy); }
.report-summary h2 { margin: 8px 0 10px; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.report-summary h2:focus { outline: none; }
.report-summary .buttons { margin-top: 24px; gap: 24px; }
.score-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 26px; }
.score-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.score-ring { width: 92px; height: 92px; }
.ring-track { fill: none; stroke: #e2ebe6; stroke-width: 10; }
.ring-arc { fill: none; stroke: #93ada2; stroke-width: 10; stroke-linecap: round; transition: stroke-dashoffset 1s cubic-bezier(.2, .8, .2, 1); }
.score-ring[data-status=pass] .ring-arc { stroke: var(--green); }
.score-ring[data-status=warn] .ring-arc { stroke: #b7791f; }
.score-ring[data-status=fail] .ring-arc { stroke: #b42318; }
.ring-grade { font: 600 26px 'DM Sans', Arial, sans-serif; fill: var(--navy); text-anchor: middle; }
.ring-score { display: none; } /* the score is already shown as text next to each ring */
.score-card h3 { font-size: 1.3rem; }
.score-card h3 span { display: block; margin-top: 2px; font-size: .8rem; font-weight: 400; letter-spacing: 0; color: var(--muted); }
.score-card-grade { margin-top: 8px; font-size: .9rem; font-weight: 700; }
.score-card-grade[data-status=pass] { color: var(--green); }
.score-card-grade[data-status=warn] { color: #8a5a00; }
.score-card-grade[data-status=fail] { color: #b42318; }
.check-list,
.detail-list { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 9px; }
.check { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; align-items: start; font-size: .88rem; line-height: 1.45; color: var(--ink); }
.check-icon { width: 20px; height: 20px; margin-top: 1px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 700; }
.check-pass .check-icon { background: var(--mint); color: var(--green); }
.check-warn .check-icon { background: #fbf1dc; color: #8a5a00; }
.check-fail .check-icon { background: #fce9e6; color: #b42318; }
.check-body { min-width: 0; overflow-wrap: anywhere; }
.check-label { font-weight: 600; }
.check-detail { display: block; margin-top: 3px; font-size: .86rem; color: var(--muted); }
.check-points { font-size: .78rem; white-space: nowrap; color: var(--muted); }
.report-details { margin-top: 50px; }
.report-details > h2 { margin-bottom: 14px; font-size: 1.6rem; }
.report-detail { border-bottom: 1px solid var(--line); }
.report-detail:first-of-type { border-top: 1px solid var(--line); }
.report-detail summary {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 0;
  list-style: none;
  cursor: pointer;
  font-weight: 700;
  color: var(--navy);
}
.report-detail summary:hover { color: var(--green); }
.report-detail summary:after { content: '+'; font-size: 1.6rem; line-height: 1; color: var(--green); }
.report-detail[open] summary:after { content: '−'; }
.report-detail-score { margin-left: auto; font-size: .9rem; font-weight: 600; color: var(--muted); }
.detail-list { margin: 0; padding-bottom: 26px; gap: 16px; }
.detail-list .check { font-size: .92rem; }

/* ---------- 404 ---------- */
.error-intro { padding-bottom: 100px; }
.error-links {
  list-style: none;
  max-width: 1000px;
  padding: 0;
  margin: 44px 0 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 32px;
}
.error-links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); color: var(--navy); }
.error-links strong { display: block; font-size: 1.05rem; transition: color .2s; }
.error-links span span { display: block; font-size: .85rem; color: var(--muted); }
.error-links svg { width: 20px; height: 20px; transition: transform .2s; }
.error-links a:hover strong { color: var(--green); }
.error-links a:hover svg { transform: translateX(4px); }
.error-links a:active { opacity: .75; }

/* ---------- Footer: social and legal links ---------- */
.social-links { list-style: none; padding: 0; margin: 20px 0 0; display: flex; gap: 8px; }
.social-links a {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--navy);
  transition: color .2s, border-color .2s, background .2s;
}
.social-links a:hover { color: var(--green); border-color: var(--green); background: var(--mint); }
.social-links a:active { opacity: .75; }
.social-links svg { width: 17px; height: 17px; }
.footer-bottom { align-items: center; gap: 12px 24px; flex-wrap: wrap; }
.legal-links { display: flex; gap: 20px; }
.legal-links a,
.top-link { padding: 6px 0; transition: color .2s; }
.legal-links a:hover,
.top-link:hover { color: var(--green); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .score-card { grid-template-columns: 1fr; }
  .founder-grid { gap: 48px; }
  .legal-layout { gap: 50px; }
}
@media (max-width: 900px) {
  .contact-card { padding: 28px; }
  .score-grid { grid-template-columns: 1fr; }
  .score-card { grid-template-columns: 92px minmax(0, 1fr); }
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .legal-toc { position: static; }
  .legal-toc ol { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
  .error-links { grid-template-columns: 1fr 1fr; }
  .menu-item { grid-template-columns: minmax(0, 1fr) 200px; gap: 32px; }
}
@media (max-width: 650px) {
  .cta-panel { padding: 30px 18px; }
  .contact-card { padding: 24px 18px; }
  .field-row { grid-template-columns: 1fr; }
  .contact-submit { width: 100%; }
  .guarantee { margin-top: 36px; padding: 20px; }
  .founder-grid { grid-template-columns: 1fr; gap: 30px; }
  .founder-photo img { max-height: 440px; border-top-left-radius: 90px; }
  .menu-item { grid-template-columns: 1fr; gap: 14px; padding: 26px 0; }
  .menu-side { justify-items: start; text-align: left; }
  .menu-price strong { font-size: 1.7rem; }
  .prose { font-size: 1rem; }
  .legal-toc ol { grid-template-columns: 1fr; }
  .post-header h1 { font-size: 2.3rem; }
  .post-callout { padding: 22px 20px; }
  .post-row { grid-template-columns: minmax(0, 1fr) 24px; gap: 6px 16px; padding: 24px 0; }
  .post-row time { grid-column: 1 / -1; padding-top: 0; }
  .post-row-title { font-size: 1.2rem; }
  .report-form { padding: 20px 18px; }
  .report-form-row { flex-direction: column; }
  .report-form .btn { width: 100%; }
  .report-loading,
  .report-error { padding: 24px 20px; }
  .report-summary { grid-template-columns: 1fr; gap: 6px; padding: 28px 22px; }
  .report-grade { text-align: left; }
  .score-card { grid-template-columns: 72px minmax(0, 1fr); padding: 20px; }
  .score-ring { width: 72px; height: 72px; }
  .check { grid-template-columns: 20px minmax(0, 1fr); }
  .check-points { grid-column: 2; }
  .error-links { grid-template-columns: 1fr; }
  .footer-bottom { font-size: .75rem; }
}

/* ==========================================================================
   Touch and small-screen refinements (mobile audit, September 2026):
   44px tap targets on touch-size screens, no text under 12px on phones,
   and a non-sticky header on phones turned sideways.
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.prose { overflow-wrap: break-word; }
.plan-badge { font-size: .75rem; }
.project-title small { font-size: .75rem; }

/* Touch screens have no real hover, so don't leave buttons "lifted" after a tap. */
@media (hover: none) {
  .btn:hover { transform: none; }
  .work-feature:hover .work-art img { transform: none; }
}

@media (max-width: 900px) {
  .breadcrumb { margin-top: -12px; margin-bottom: 14px; }
  .breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
  .text-link,
  button.text-link { min-height: 44px; }
  .package-tabs a { display: inline-flex; align-items: center; min-height: 44px; }
  .legal-toc a { padding: 12px 0; }
  .footer-nav a { display: flex; align-items: center; min-height: 44px; margin: 0; }
  .legal-links a,
  .top-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; }
}

@media (max-width: 650px) {
  .eyebrow,
  .hero-copy .eyebrow,
  .hero-banner-copy .eyebrow { font-size: .75rem; }
  .news-meta { font-size: .75rem; flex-wrap: wrap; row-gap: 4px; }
  .news-meta span { white-space: nowrap; }
  .hero-note,
  .hero-banner-copy .hero-note { font-size: .75rem; }
  .field textarea { min-height: 150px; }

  /* Tables become one labeled card per row. */
  .table-wrap { overflow: visible; border: 0; border-radius: 0; }
  .prose .stack-table { min-width: 0; }
  .stack-table,
  .stack-table tbody,
  .stack-table tr,
  .stack-table th,
  .stack-table td { display: block; }
  .stack-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .stack-table tr { padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; }
  .stack-table tr + tr { margin-top: 10px; }
  .prose .stack-table th,
  .prose .stack-table td { padding: 0; border: 0; }
  .stack-table tbody tr > :first-child { margin-bottom: 8px; font-size: 1rem; font-weight: 700; color: var(--navy); }
  .stack-table td[data-label] + td[data-label] { margin-top: 8px; }
  .stack-table td[data-label]::before { content: attr(data-label); display: block; font-size: .75rem; font-weight: 700; color: var(--green); }
}

@media (max-width: 479px) {
  .service-grid { grid-template-columns: 1fr; }
}

@media (orientation: landscape) and (max-height: 500px) {
  .site-header { position: relative; }
  html { scroll-padding-top: 16px; }
  /* Keep the hero from running past two screens when a phone is held sideways. */
  /* Wide but short: use the desktop treatment (photo behind the copy) instead of a band. */
  .hero-banner { display: flex; align-items: center; min-height: 0; padding-bottom: 0; background: #f8fafb; }
  .hero-banner-inner { padding-top: 30px; padding-bottom: 34px; }
  .hero-banner-copy { width: 54%; max-width: 460px; }
  .hero-banner-copy .lede { max-width: 420px; }
  .hero-banner-image { top: 0; bottom: 0; height: 100%; object-position: right center; }
  .hero-banner-shade {
    top: 0; bottom: 0; height: 100%;
    background: linear-gradient(90deg, rgba(249,252,254,.95) 0%, rgba(249,252,254,.94) 52%, rgba(249,252,254,.55) 70%, rgba(249,252,254,0) 88%);
  }
}
