/* Revision11: readable body/helper text and labels throughout the three-page adaptation. */
:root { --readable-ink:#354153; --label-ink:#65502f; }
.hero-tag,.hero-tag span,.section-tag,.image-divider-tag,.hero-photo-credit,
.home-index>span,.about-sig-title,.practice-photo figcaption span,
.about .cert-established,.about .cert-cslb,.review-status,.process-reading-note,
.collection-page .collection-eyebrow,.collection-card-kicker,.collection-caption-kicker,
.collection-bio .bio-chapter h3,.contact-page .contact-hero-tag,.contact-page .contact-info-tag,
.contact-page .contact-form-tag,.contact-page .contact-email-label,.contact-page .info-card-label,
.contact-page .field-optional,.contact-page .location-bar-item,
.cta-note,.footer-col-title,.footer-bottom {
 font-size:13px!important; line-height:1.65; letter-spacing:.06em;
}
.hero-tag,.hero-tag span,.section-tag,.home-index>span,.about-sig-title,
.practice-photo figcaption span,.about .cert-established,.about .cert-cslb,
.review-status,.collection-page .collection-eyebrow,.collection-card-kicker,
.collection-bio .bio-chapter h3,.contact-page .contact-hero-tag,.contact-page .contact-info-tag,
.contact-page .contact-form-tag,.contact-page .contact-email-label,.contact-page .info-card-label,
.contact-page .field-optional { color:var(--label-ink); }
.hero-tag { display:inline-block; background:#fffffff2; padding:8px 12px; margin-left:-12px; }
.hero-photo-credit { background:#01173ef2; color:#fff; letter-spacing:.02em; max-width:calc(100% - 34px); }
.practice-photo figcaption { align-items:flex-start; flex-wrap:wrap; }
.practice-photo figcaption span { max-width:28ch; }
.about .cert-licensed,.about .principle p,.experience-intro,.o4-panel-desc,.o4-panel-desc2,
.o4-panel-features li,.reviews-context,.review-card cite,
.process-stage-body .process-step-text,.process-stage-body .process-expect,
.collection-project-copy p,.collection-dry-creek-copy p,.collection-work-card-copy p,
.collection-photo figcaption,.collection-photo figcaption span,
.collection-comparison-photo figcaption,.collection-film-link,.collection-film-link span,
.contact-page .contact-info-desc,.contact-page .contact-email-feature>p:last-child,
.contact-page .info-card-value,.contact-page .info-card-value span,
.contact-page .contact-personal-note,.contact-page .contact-form-sub,
.contact-page .contact-required-note,.contact-page .contact-form-note,
.contact-page .contact-draft-status,.contact-page .contact-open-draft,
.contact-page .contact-draft-help,.contact-page .contact-nojs,
.footer-brand-text,.footer-links a,.footer-links span {
 font-size:16px!important; line-height:1.8;
}
.about .cert-licensed,.about .principle p,.experience-intro,.o4-panel-desc,.o4-panel-desc2,
.o4-panel-features li,.reviews-context,.collection-photo figcaption span,
.collection-film-link span,.contact-page .contact-info-desc,
.contact-page .contact-email-feature>p:last-child,.contact-page .info-card-value span,
.contact-page .contact-personal-note,.contact-page .contact-form-sub,
.contact-page .contact-required-note,.contact-page .contact-form-note,
.contact-page .contact-draft-help,.contact-page .contact-nojs { color:var(--readable-ink); }
.process .section-tag,.process-reading-note { color:#dfcba9; }
.process-stage-body .process-expect { color:#e1e6ee; }
.process-stage-body .process-expect strong { font-size:13px; color:#dfcba9; }
.process-stage .process-stage-heading { font-size:16px; color:#e1e6ee; line-height:1.7; }
.contact-page .location-bar-item { color:#fff; }
.contact-page .form-group label { font-size:16px; line-height:1.6; }
.contact-page .field-optional { color:#4b5665; }
.home-index a,.collection-jump-links a,.text-link,.review-controls button,
#o4Tabs .o4-tab,.btn-gold,.btn-outline,.contact-page .form-submit,.mobile-nav summary,.nav-links a {
 font-size:13px!important;
}
#o4Tabs .o4-tab { letter-spacing:.025em; }
.cta-note,.footer-bottom { color:#354153; }
.footer-col-title { color:#65502f; }
.footer-brand-text[style] { color:#65502f!important; }
#gallery-dialog figcaption { font-size:16px; line-height:1.65; }
@media(max-width:850px) {
 #o4Tabs .o4-tab { padding-left:4px!important; padding-right:4px!important; letter-spacing:0; }
 .experience-heading-group { gap:24px; }
}
@media(max-width:600px) {
 .hero-tag { max-width:100%; margin-bottom:18px; }
 .hero-photo-credit { top:270px; text-align:left; }
 .hero-buttons { align-items:stretch; }
 .hero-buttons a { display:flex; align-items:center; justify-content:center; text-align:center; padding:14px 12px; }
 .about .certificate { grid-template-columns:1fr; gap:0; }
 .about .certificate>*:not(.cert-mark) { grid-column:1; }
 .about .cert-mark { display:none; }
 .about .cert-company { font-size:23px!important; }
 .about .certificate-note { font-size:18px; }
 .review-controls { align-self:flex-start; }
 .process-stage summary h3 { grid-template-columns:34px minmax(0,1fr) 22px; gap:10px; }
 .process-stage-number { font-size:28px; }
 .process-stage-label { font-size:25px; }
 .collection-jump-links { gap:4px 20px; }
 .contact-page .info-cards { grid-template-columns:1fr; gap:24px; }
 .footer-bottom { align-items:flex-start; }
}

.privacy-note { max-width:1232px; margin:0 auto; padding:0 0 64px; scroll-margin-top:110px; }
.privacy-note details { border-top:1px solid #d2c3aa; padding-top:24px; }
.privacy-note summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; }
.privacy-note summary::-webkit-details-marker { display:none; }
.privacy-note h2 { font:400 28px/1.3 var(--serif); color:#01173e; margin:0; }
.privacy-note summary>span { font-size:24px; color:#65502f; }
.privacy-note details[open] summary>span { transform:rotate(45deg); }
.privacy-note-body { max-width:70ch; margin-top:25px; }
.privacy-note p { font-size:16px; color:#354153; line-height:1.85; margin:0 0 18px; }
.privacy-note a { color:#01173e; text-underline-offset:4px; overflow-wrap:anywhere; }
@media(max-width:1350px) { .privacy-note { margin-left:5vw; margin-right:5vw; } }
@media(max-width:600px) { .privacy-note { margin-left:25px; margin-right:25px; padding-bottom:50px; } .privacy-note h2 { font-size:26px; } }

/* Revision23: a quiet solid header action with clear hover, focus and press feedback. */
.nav-links { gap:32px; }
.nav-links a.nav-cta { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 24px!important; background:#01173e!important; color:#fff!important; border:1px solid #01173e!important; border-radius:0!important; font-size:13px!important; font-weight:500!important; letter-spacing:.075em!important; line-height:1.5; box-shadow:none!important; text-decoration:none; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease!important; }
.nav-links a.nav-cta::after { content:none; }
.nav-links a.nav-cta:hover { background:#cab186!important; color:#01173e!important; border-color:#cab186!important; transform:translateY(-1px); }
.nav-links a.nav-cta:focus-visible { outline:2px solid #01173e; outline-offset:4px; }
.nav-links a.nav-cta:active { transform:translateY(1px); background:#b89b6c!important; color:#01173e!important; border-color:#b89b6c!important; }
.nav-links a.nav-cta[aria-current=page] { background:#01173e!important; color:#fff!important; border-color:#01173e!important; box-shadow:none!important; text-decoration:underline; text-decoration-color:#cab186; text-decoration-thickness:1px; text-underline-offset:5px; }
.nav-links a.nav-cta[aria-current=page]:hover { background:#cab186!important; color:#01173e!important; border-color:#cab186!important; text-decoration-color:#01173e; }
.nav-links a.nav-cta[aria-current=page]:active { background:#b89b6c!important; color:#01173e!important; border-color:#b89b6c!important; }
@media(min-width:1001px) and (max-width:1100px) { .nav-links { gap:24px; } }
@media(prefers-reduced-motion:reduce) { .nav-links a.nav-cta { transition:none!important; } .nav-links a.nav-cta:hover,.nav-links a.nav-cta:active { transform:none; } }

/* Revision13: paired photographs share a measured grid; the portrait anchors the story. */
.collection-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 32px; }
.collection-photo:nth-child(2n) { margin-top:0; }
.collection-photo img { height:auto; aspect-ratio:4/3; object-fit:cover; }
.collection-photo:last-child img { aspect-ratio:2/1; }
.collection-work-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:40px; }
.collection-work-grid>article { min-width:0; display:flex; flex-direction:column; padding:0; margin:0; background:transparent; border:0; border-bottom:1px solid #d2c3aa; }
.collection-work-grid .collection-construction-image,.collection-work-grid .collection-dry-creek-original-image { display:block; position:relative; flex:none; width:100%; aspect-ratio:1840/855; margin:0; overflow:hidden; background:#f4f0e8; border:0; }
.collection-work-grid .collection-construction-image img,.collection-page .collection-work-grid .collection-dry-creek-card img[src$="dry-creek-exterior-bluegrey-roof-rev21.png"] { display:block; width:100%; height:100%!important; aspect-ratio:auto; object-fit:cover; object-position:center; filter:none!important; }
.collection-work-grid .collection-work-card-copy,.collection-work-grid .collection-dry-creek-copy { flex:1; padding:26px 0 30px; }
.collection-work-grid .collection-eyebrow { min-height:22px; margin-bottom:14px; }
.collection-story-inner { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:start; gap:54px 64px; }
.collection-story .collection-portrait { width:100%; max-width:none; margin:0; padding:0; border:0; background:transparent; }
.collection-story .collection-portrait img { display:block; width:100%; height:auto; filter:none!important; }
.collection-story-heading { max-width:none; margin-bottom:32px; }
.collection-story-heading h2 { font-size:clamp(35px,3.2vw,46px); max-width:18ch; }
.collection-story-rule { display:none; }
.collection-story-opening .bio-chapter { border-bottom:0; padding-bottom:0; margin-bottom:0; }
.collection-bio-continuation { grid-column:1/-1; max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; }
.collection-bio-continuation .bio-chapter { padding:28px 0 0; margin:0; border:0; border-top:1px solid #c8b895; }
.collection-bio-continuation .bio-chapter:first-child p:first-of-type { font-family:var(--sans); font-size:16px; line-height:1.85; color:#37414b; }
@media(max-width:1000px) { .collection-story-inner { gap:38px; } .collection-bio-continuation { gap:38px; } }
@media(max-width:760px) { .collection-work-grid { grid-template-columns:1fr; gap:38px; } .collection-story-inner { grid-template-columns:1fr; gap:34px; } .collection-bio-continuation { grid-template-columns:1fr; gap:28px; } .collection-story-heading { margin-bottom:28px; } }
@media(max-width:600px) { .collection-photo-grid { grid-template-columns:1fr; gap:30px; } .collection-photo:last-child img { aspect-ratio:4/3; } }

/* Revision14: final-photo cascade resolved; tablet biography gets its own reading column. */
.collection-photo-grid>.collection-photo:last-child:nth-child(odd) img { height:auto; aspect-ratio:2/1; object-fit:cover; }
@media(max-width:1100px) {
 .collection-story-inner { grid-template-columns:1fr; gap:38px; }
 .collection-story .collection-portrait { max-width:520px; margin-inline:auto; }
 .collection-story-opening { width:100%; max-width:65ch; margin-inline:auto; }
 .collection-bio-continuation { width:100%; max-width:65ch; margin-inline:auto; grid-template-columns:1fr; gap:28px; }
}
@media(max-width:600px) { .collection-photo-grid>.collection-photo:last-child:nth-child(odd) img { height:auto; aspect-ratio:4/3; } }

/* Revision18: readable photo caption and a consistent footer heading family. */
.collection-page .collection-featured-card .collection-card-kicker { color:#fff!important; text-shadow:0 1px 5px #01173e99; }
.footer .footer-col-title { font-family:var(--sans)!important; font-weight:600; }

/* Revision31: all roadmap stages start open; the existing native collapse control is quieter. */
.home-page .process-stage-toggle { display:inline-block; color:#65543a; font:400 18px/1 var(--sans); transform:rotate(0deg); transition:none; }
.home-page .process-stage[open] .process-stage-toggle { transform:rotate(180deg); }
.home-page .process-stage summary:focus-visible { outline:2px solid #01173e; outline-offset:6px; }

/* Compact, grouped site footer. */
.footer{background:#fbf9f5;border-top:1px solid #cab186;padding:40px clamp(24px,5vw,76px) 20px;}
.footer .footer-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,1.1fr);gap:36px;align-items:start;}
.footer .footer-grid>div{min-width:0;grid-column:auto;}
.footer .footer-logo{gap:8px;margin-bottom:14px;}
.footer .footer-logo-icon{width:34px;height:38px;}
.footer .footer-logo-word{width:178px;height:46px;}
.footer .footer-brand-text{font-size:14px!important;line-height:1.65;max-width:37ch;}
.footer .footer-brand-text+.footer-brand-text{font-size:12px!important;margin-top:10px!important;}
.footer .footer-col-title{font-size:11px!important;letter-spacing:.13em;color:#65502f;margin:4px 0 10px;padding-bottom:9px;border-bottom:1px solid #dfd3be;}
.footer .footer-links{margin:0;padding:0;}
.footer .footer-links li{margin:0;}
.footer .footer-links a,.footer .footer-links span{display:block;font-size:14px!important;line-height:1.55;padding:5px 0;color:#3e4e65;}
.footer .footer-links a:hover{color:#80633a;text-decoration:underline;text-underline-offset:4px;}
.footer .footer-connect .footer-links li:nth-child(4){margin-top:8px;padding-top:8px;border-top:1px solid #e6ded0;}
.footer .footer-connect .footer-links li:nth-child(n+4) span{font-size:12px!important;line-height:1.5;padding:3px 0;}
.footer .footer-bottom{margin-top:26px;padding-top:15px;border-top:1px solid #dfd3be;font-size:11px!important;line-height:1.6;gap:14px;align-items:center;text-align:left;}
@media(max-width:850px){.footer .footer-grid{grid-template-columns:1fr 1fr;gap:24px;}.footer .footer-grid>.footer-brand{grid-column:1/-1;display:grid;grid-template-columns:220px 1fr;column-gap:24px;align-items:start;}.footer .footer-brand .footer-logo{grid-row:1/3;}.footer .footer-brand-text{max-width:100%;}.footer .footer-brand-text+.footer-brand-text{margin-top:5px!important;}}
@media(max-width:600px){.footer{padding:30px 24px 18px;}.footer .footer-grid{grid-template-columns:1fr;gap:20px;}.footer .footer-grid>.footer-brand{display:block;grid-column:auto;}.footer .footer-logo{margin-bottom:12px;}.footer .footer-logo-icon{width:30px;height:34px;}.footer .footer-logo-word{width:166px;height:42px;}.footer .footer-brand-text{font-size:13px!important;line-height:1.6;max-width:46ch;}.footer .footer-brand-text+.footer-brand-text{font-size:12px!important;margin-top:8px!important;}.footer .footer-col-title{margin-top:0;margin-bottom:6px;padding-bottom:7px;}.footer .footer-explore .footer-links,.footer .footer-connect .footer-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;}.footer .footer-links a,.footer .footer-links span{font-size:13px!important;line-height:1.5;padding:6px 0;}.footer .footer-explore .footer-links a{min-height:32px;}.footer .footer-connect .footer-links li:first-child{grid-column:1/-1;}.footer .footer-connect .footer-links li:nth-child(4){margin-top:5px;padding-top:6px;border:0;}.footer .footer-connect .footer-links li:nth-child(5){margin-top:5px;padding-top:6px;}.footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:4px;margin-top:20px;padding-top:12px;font-size:11px!important;}}
@media(max-width:350px){.footer .footer-connect .footer-links li:first-child a{font-size:12px!important;}}

/* Align the visible artwork, excluding the original PNG transparent margins. */
.nav-logo{--logo-word-width:205px;gap:14px!important;height:56px;transform:translateX(-6px);}
.footer .footer-logo{--logo-word-width:156px;gap:12px!important;height:46px;transform:translateX(-4px);}
.nav-logo .brand-word-crop,.footer .footer-logo .brand-word-crop{display:block;position:relative;overflow:hidden;flex:none;width:var(--logo-word-width);height:calc(var(--logo-word-width)*.2170050761);}
.nav-logo .brand-mark-crop,.footer .footer-logo .brand-mark-crop{display:block;position:relative;overflow:hidden;flex:none;width:calc(var(--logo-word-width)*.218471052);height:calc(var(--logo-word-width)*.2170050761);}
.nav-logo .brand-word-crop img,.footer .footer-logo .brand-word-crop img{position:absolute!important;display:block!important;max-width:none!important;width:calc(var(--logo-word-width)*1.1421319797)!important;height:calc(var(--logo-word-width)*.3629441624)!important;left:calc(var(--logo-word-width)*-.07106598985)!important;top:calc(var(--logo-word-width)*-.05710659898)!important;object-fit:fill!important;object-position:initial!important;margin:0!important;}
.nav-logo .brand-mark-crop img,.footer .footer-logo .brand-mark-crop img{position:absolute!important;display:block!important;max-width:none!important;width:calc(var(--logo-word-width)*.2932501028)!important;height:calc(var(--logo-word-width)*.2932501028)!important;left:calc(var(--logo-word-width)*-.0373893881)!important;top:calc(var(--logo-word-width)*-.03812251337)!important;object-fit:fill!important;object-position:initial!important;margin:0!important;filter:none!important;}
@media(max-width:1100px){.nav-logo{--logo-word-width:184px;}}
@media(max-width:600px){.nav-logo{--logo-word-width:168px;gap:12px!important;height:48px;}.footer .footer-logo{--logo-word-width:145px;height:42px;}}
@media(max-width:360px){.nav-logo{--logo-word-width:144px;}}

@media(min-width:601px) and (max-width:850px){.nav-logo{height:54px;}}

/* Raise the roof slightly above the lettering; keep the house base aligned. */
.nav-logo .brand-mark-crop,.footer .footer-logo .brand-mark-crop{transform:scale(1.06);transform-origin:center bottom;}
