/* More photographic detail and a tighter, connected page rhythm. */
.process-plan-link{display:inline-flex;gap:20px;color:#d8eeff;font-size:13px;border-bottom:1px solid #89b5d6;padding-bottom:6px;margin-top:30px}.process-plan-link:hover{color:#fff}.process-plan-link:focus-visible{outline-color:#b8dcf2}
.section{padding-block:64px}.section-heading{margin-bottom:28px}.page-intro{padding-block:44px 36px}.tight-top{padding-top:8px}
.home-hero{padding-block:42px 48px}.hero-image{height:510px}.hero-proof{gap:18px}.hero-project-link{margin-left:auto;font-size:11px;color:#c5e6fb;white-space:nowrap}.hero-project-link>span{border:none;padding:0;color:inherit;font-size:17px}.hero-project-link:hover{color:#fff}
.visual-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.route-card{display:flex;flex-direction:column;border:1px solid #96bad570;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,#f1f9ff,#cfe6f7);box-shadow:0 10px 30px #163c6010;transition:transform .2s,box-shadow .2s}.route-card:hover{color:var(--navy);transform:translateY(-3px);box-shadow:0 17px 35px #163c601e}.route-card figure{height:210px;overflow:hidden;background:#c1def3}.route-card img{height:100%;object-fit:cover;transition:transform .3s}.route-card:hover img{transform:scale(1.035)}.route-copy{padding:25px;display:flex;flex:1;flex-direction:column}.route-copy .eyebrow{font-size:9px;margin-bottom:13px}.route-copy h3{font-size:29px;line-height:1.15;margin-bottom:15px}.route-copy>p:not(.eyebrow){font-size:14px;line-height:1.6;margin-bottom:22px}.route-copy .text-link{margin-top:auto;align-self:start;font-size:12px;gap:12px}
.service-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:26px;padding-top:24px;border-top:1px solid #abc7dc}.service-shortcuts>span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#365775;margin-right:auto}.service-shortcuts>a{font-size:12px;font-weight:600;padding-block:7px;color:#173e60}.service-shortcuts>a:hover{color:#276c9d;text-decoration:underline;text-underline-offset:5px}
.work-focus{display:grid;grid-template-columns:1fr .85fr .85fr;gap:24px;align-items:center;padding-bottom:64px}.focus-copy{padding-right:12px}.focus-copy h2{font-size:38px}.focus-copy>p:not(.eyebrow){margin-top:20px;font-size:14px}.focus-copy .text-link{margin-top:24px}.work-focus figure{position:relative;border-radius:12px;overflow:hidden;background:#a4c9e5;border:1px solid #9ebdd4}.work-focus figure img{height:300px;object-fit:cover}.work-focus figcaption{position:absolute;bottom:0;inset-inline:0;padding:30px 16px 16px;background:linear-gradient(transparent,#071d39e8);color:#e5f4ff;font-size:11px}.work-focus figure:last-child{margin-top:40px}
.detail-showcase{padding-top:24px}.detail-intro{margin-top:18px;font-size:15px;max-width:620px}.detail-photos{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.detail-photos figure{position:relative;border-radius:14px;overflow:hidden;background:#b8d7ed;border:1px solid #9ebdd4;box-shadow:0 12px 25px #163c6015}.detail-photos img{height:350px;object-fit:cover}.detail-photos figcaption{position:absolute;bottom:0;inset-inline:0;padding:40px 22px 20px;background:linear-gradient(transparent,#071d39e8);font-size:13px;color:#edf7ff}
.prepare-section,.planning-feature{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}.prepare-section figure,.planning-feature figure{overflow:hidden;border:1px solid #9bbcd5;border-radius:14px;box-shadow:0 12px 28px #163c6010;background:#d0e7f7}.prepare-section figure img,.planning-feature figure img{aspect-ratio:4/3;object-fit:cover}.prepare-section figcaption,.planning-feature figcaption{padding:15px 18px;font-size:12px;color:#365775}.prepare-section h2,.planning-feature h2{font-size:37px}.planning-feature{padding-bottom:64px}.planning-questions{display:grid;grid-template-columns:1fr 1fr;gap:70px}.planning-questions h2{margin-bottom:20px}.planning-questions>div>p:not(.eyebrow){max-width:460px}.contact-team-photo{margin-top:30px;overflow:hidden;border-radius:12px;background:#d1e7f7;border:1px solid #abc8dd}.contact-team-photo img{aspect-ratio:3/2;object-fit:cover}.contact-team-photo figcaption{padding:12px 15px;font-size:11px}.commitment-photo figure{position:relative;border-radius:14px;overflow:hidden;border:1px solid #9ebdd4}.commitment-photo img{height:350px;object-fit:cover;object-position:center 45%}.commitment-photo figcaption{position:absolute;inset-inline:0;bottom:0;padding:50px 26px 22px;background:linear-gradient(transparent,#081d36e8);font-size:13px;color:#e7f6ff}
@media(min-width:1400px){.hero-image{height:550px}}
@media(max-width:1050px){.hero-proof{gap:12px}.hero-proof span{padding-left:12px}.hero-project-link{display:none}.route-copy{padding:20px}.route-copy h3{font-size:25px}.route-card figure{height:190px}.work-focus{grid-template-columns:1fr 1fr;gap:20px}.focus-copy{grid-column:1/-1;max-width:680px}.work-focus figure:last-child{margin-top:0}.work-focus figure img{height:280px}.service-shortcuts>span{flex-basis:100%}.prepare-section,.planning-feature{gap:30px}}
@media(max-width:820px){.visual-routes{gap:14px}.route-copy{padding:18px}.route-copy h3{font-size:24px}.route-copy .text-link{font-size:11px}.route-copy>p:not(.eyebrow){font-size:13px}.route-card figure{height:175px}.detail-photos img{height:290px}.prepare-section h2,.planning-feature h2{font-size:32px}.planning-questions{gap:35px}}
@media(max-width:600px){.section{padding-block:42px}.tight-top{padding-top:4px}.page-intro{padding-block:30px 26px}.home-hero{padding-block:28px}.hero-image{height:300px}.hero-copy h1{font-size:48px}.hero-copy .lead{font-size:14px}.visual-routes{grid-template-columns:1fr;gap:18px}.route-card{display:grid;grid-template-columns:1fr}.route-card figure{height:185px}.route-copy{padding:23px}.route-copy h3{font-size:30px}.route-copy .eyebrow{font-size:9px}.route-copy>p:not(.eyebrow){font-size:14px;margin-bottom:17px}.route-copy .text-link{font-size:12px}.service-shortcuts{gap:5px 17px;margin-top:20px;padding-top:18px}.service-shortcuts>span{margin-bottom:5px}.service-shortcuts>a{font-size:12px}.work-focus{padding-bottom:42px;gap:12px}.focus-copy h2{font-size:34px}.focus-copy{padding-right:0;margin-bottom:10px}.work-focus figure img{height:225px}.work-focus figcaption{font-size:10px;padding:28px 12px 12px}.detail-showcase{padding-top:8px}.detail-photos{grid-template-columns:1fr 1fr;gap:12px}.detail-photos img{height:230px}.detail-photos figcaption{font-size:10px;padding:30px 12px 12px}.detail-intro{font-size:14px;margin-top:14px}.prepare-section,.planning-feature,.planning-questions{grid-template-columns:1fr;gap:25px}.prepare-section h2,.planning-feature h2{font-size:33px}.planning-feature{padding-bottom:42px}.planning-feature figcaption,.prepare-section figcaption{font-size:11px}.contact-team-photo{margin-top:24px}.commitment-photo img{height:230px}.commitment-photo figcaption{font-size:11px;padding:38px 18px 15px}}
@media(max-width:360px){.hero-copy h1{font-size:42px}.hero-image{height:260px}.detail-photos{grid-template-columns:1fr}.work-focus figure img{height:190px}}
@media(prefers-reduced-motion:reduce){.route-card,.route-card img{transition:none}.route-card:hover,.route-card:hover img{transform:none}}

/* Portrait project photographs: preserve the full supplied composition. */
.portrait-showcase{grid-template-columns:1fr 1fr;align-items:stretch}
.portrait-showcase figure{display:flex;flex-direction:column}
.portrait-showcase img{height:0;min-height:0;flex:1;object-fit:cover}
.portrait-showcase .portrait-detail img{height:auto;flex:none;aspect-ratio:3/4;object-fit:contain}
.portrait-showcase figcaption{position:static;background:linear-gradient(120deg,#102c4d,#22577a);padding:17px 20px;font-size:13px}
.page-gallery .project-photo{aspect-ratio:3/4;height:auto}
.page-gallery .project-photo img{height:100%;aspect-ratio:3/4;object-fit:cover}
.page-gallery .portrait-project img{object-fit:contain}
@media(max-width:600px){.portrait-showcase{grid-template-columns:1fr;gap:20px}.portrait-showcase img{height:auto;flex:none;aspect-ratio:3/4}.portrait-showcase figcaption{font-size:12px;padding:15px 18px}}

/* Full team portrait; keep every person visible at every viewport size. */
.about-team-photo{margin:0;overflow:hidden;border-radius:16px;border:1px solid #9ebdd4;background:#d0e7f7;box-shadow:0 15px 35px #163c6018}
.about-team-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
@media(max-width:600px){.about-team-photo{border-radius:10px}}

.digital-card{max-width:680px;margin:0 auto;padding:20px 24px 48px}.digital-intro{text-align:center;padding:12px 0 30px}.digital-intro h1{font-size:clamp(40px,7vw,58px)}.digital-intro>p:last-child{margin-top:20px;font-size:15px}.digital-panel{background:linear-gradient(135deg,#f6fbff,#d7ebfa);border:1px solid #abc9df;border-radius:18px;padding:26px;margin-bottom:20px;box-shadow:0 10px 30px #102b4909}.save-contact,.estimate-link{width:100%;border-radius:9px}.save-hint{text-align:center;font-size:12px;margin:10px 0 20px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.quick-actions a{border:1px solid #a7c4d9;border-radius:10px;padding:15px;font-weight:600;background:#ffffff75}.quick-actions span{display:block;font-size:11px;font-weight:400;margin-top:5px;color:#4b667d}.office h2,.qr-panel h2{font-size:27px}.office address{font-style:normal;line-height:1.7;margin:18px 0 12px}.office p,.office>a{font-size:13px}.office>a{display:block;margin-top:12px;overflow-wrap:anywhere}.card-links{display:grid;gap:0}.card-links a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid #b9d1e2}.card-links a:last-child{border:0}.qr-panel{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}.qr-panel img{width:150px;height:150px}.qr-panel p{font-size:12px;margin-top:10px}.qr-panel button{margin-top:15px;font-size:12px}.page-card .compact-header{max-width:680px}.page-card .compact-header .brand{font-size:24px}@media(max-width:480px){.digital-card{padding-inline:16px}.digital-panel{padding:20px}.qr-panel{grid-template-columns:1fr;text-align:center}.qr-panel img{margin:auto}.page-card .compact-header .brand{font-size:21px}}

/* Original portraits; gentle display-only tonal correction preserves identities. */
.staff-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;scroll-margin-top:115px}
.staff-card{overflow:hidden;border:1px solid #9ebed5;border-radius:14px;background:linear-gradient(140deg,#f3faff,#d5eafa);padding:0 0 22px;box-shadow:0 12px 25px #102b490c}
.staff-portrait{margin:0 0 22px;aspect-ratio:4/5;overflow:hidden;background:#c9dfed;position:relative}
.staff-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:brightness(1.08) contrast(1.015)}
.portrait-marco img{filter:brightness(1.13) contrast(1.015)}
.portrait-jaime img{filter:brightness(1.12) contrast(1.01)}
.portrait-refugio img{object-fit:cover;width:180%;height:180%;max-width:none;position:absolute;left:-40%;top:-22%;filter:brightness(1.025)}
.staff-card h3{font-size:23px;line-height:1.2;padding:0 18px;margin:0 0 9px}
.staff-card .eyebrow{padding:0 18px;margin:0 0 15px;color:#315c7c;font-size:10px}
.staff-card>p:not(.eyebrow){padding:0 18px;font-size:13px;line-height:1.6;margin:0}
@media(max-width:1000px){.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.staff-grid{gap:14px}.staff-card h3{font-size:21px}.staff-card h3,.staff-card .eyebrow,.staff-card>p:not(.eyebrow){padding-inline:14px}.staff-portrait{margin-bottom:18px}}
@media(max-width:440px){.staff-grid{grid-template-columns:1fr;gap:24px}.staff-card h3{font-size:27px}.staff-card h3,.staff-card .eyebrow,.staff-card>p:not(.eyebrow){padding-inline:22px}}

/* Natural image proportions, with no cropping or tonal edits. */
.natural-details{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:24px}
.natural-details .natural-photo{display:block;border:1px solid #9bbdd5;border-radius:14px;overflow:hidden;background:#e6f3fc;box-shadow:0 12px 25px #102b4910}
.natural-details .detail-photo-link{display:block;position:relative;overflow:hidden}
.natural-details img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;transform:none}
.natural-details figcaption{position:static;background:linear-gradient(120deg,#102c4d,#22577a);color:#edf7ff;padding:17px 20px;font-size:13px}
.natural-gallery{align-items:start}
.page-gallery .natural-gallery .project-photo{display:block;position:relative;height:auto;aspect-ratio:auto;background:#e6f3fc;border:1px solid #9bbdd5;border-radius:12px;overflow:hidden}
.page-gallery .natural-gallery .project-photo img{height:auto;aspect-ratio:auto;object-fit:contain;transform:none}
.detail-photo-link:focus-visible{outline:3px solid #4c9cca;outline-offset:-4px}
.detail-photo-link .photo-expand{position:absolute;right:12px;bottom:12px;background:#102b49;color:white;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}
.lightbox-close{min-width:90px;min-height:44px}
@media(max-width:600px){.natural-details{grid-template-columns:1fr;gap:22px}.natural-details figcaption{padding:15px 18px;font-size:12px}.natural-gallery{grid-template-columns:1fr}}

/* Cleaned portraits: preserve supplied color and use a natural crop. */
.staff-portrait img.cleaned-staff-photo{width:100%;height:100%;max-width:100%;position:static;object-fit:cover;object-position:center 22%;filter:none}

.staff-portrait.portrait-pending{display:grid;place-items:center;background:linear-gradient(160deg,#e4eff7,#c9dfed)}.staff-portrait.portrait-pending img{width:38%;height:auto;object-fit:contain;opacity:.55;filter:none}
@media(min-width:1001px){.staff-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.staff-grid .staff-card:nth-child(n+5){grid-column:span 1}}

.team-slideshow{position:relative;border-radius:3px;overflow:hidden;background:#0f2a44;border:1px solid #c7d7e2;box-shadow:0 14px 30px #112f5014;width:100%}
.team-slides{list-style:none;margin:0;padding:0;position:relative;width:100%;height:clamp(300px,52vw,700px);aspect-ratio:auto;max-height:none}
.team-slide{position:absolute;inset:0;margin:0;padding:0;opacity:0;transition:opacity .8s ease;pointer-events:none;display:grid;place-items:center;overflow:hidden}
.team-slide.is-active{opacity:1;pointer-events:auto}
.team-slide img{display:block;margin:0 auto}
.team-slide .slide-bg{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;filter:blur(28px) brightness(.72) saturate(1.1);transform:scale(1.04)}
.team-slide .slide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 10px 28px #00000040)}
.team-slide-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid #ffffff99;background:#102f50cc;color:#fff;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 4px;transition:background .2s;z-index:2}
.team-slide-nav:hover{background:#102f50}
.team-slide-nav.prev{left:14px}.team-slide-nav.next{right:14px}
.team-slide-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding-inline:12px;z-index:2}
.team-slide-dots button{width:9px;height:9px;border-radius:50%;border:0;background:#ffffff88;cursor:pointer;padding:0;transition:transform .2s,background .2s}
.team-slide-dots button[aria-current=true]{background:#fff;transform:scale(1.35)}
@media(max-width:600px){.team-slide-nav{width:38px;height:38px;font-size:24px}.team-slides{height:clamp(260px,78vw,480px)}}
@media(prefers-reduced-motion:reduce){.team-slide{transition:none}}

.team-slide-count{position:absolute;top:14px;right:16px;z-index:2;background:#102f50cc;color:#fff;font-size:12px;letter-spacing:.08em;padding:6px 11px;border-radius:999px;font-variant-numeric:tabular-nums}
.team-slide.is-active .slide-img{animation:teamSlideIn 7s ease-out both}
@keyframes teamSlideIn{from{transform:scale(1.015)}to{transform:scale(1)}}
@media(max-width:600px){.team-slide-dots{display:none}}
@media(prefers-reduced-motion:reduce){.team-slide.is-active .slide-img{animation:none}}

/* ---- Home hero rotator ---- */
.hero-rotator{position:relative;overflow:hidden}
.hero-rotator .hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1);pointer-events:none;will-change:opacity}
.hero-rotator .hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-rotator .hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-rotator .hero-slide figcaption{position:absolute;left:0;right:0;bottom:0}
@media(prefers-reduced-motion:reduce){.hero-rotator .hero-slide{transition:none}}
/* ---- About: 40+ years ---- */
.years-hero{background:#f1f6f9;border-bottom:1px solid #d6e3ec;padding-block:clamp(44px,7vw,88px)}
.years-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,6vw,80px);align-items:center}
.years-mark{color:#102f50}
.years-number{margin:0;font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:clamp(120px,19vw,240px);line-height:.82;letter-spacing:-.03em;color:#102f50}
.years-plus{color:#7fb3d9;font-size:.6em;vertical-align:top;line-height:1;margin-left:.04em}
.years-title{margin:10px 0 0;font-weight:700;line-height:1.05}
.years-word{display:block;font-size:clamp(34px,5.4vw,66px);letter-spacing:.14em;text-transform:uppercase;color:#102f50}
.years-sub{display:block;margin-top:10px;font-size:clamp(15px,1.9vw,22px);letter-spacing:.22em;text-transform:uppercase;color:#5b7a93}
.years-est{display:flex;align-items:center;gap:14px;margin:22px 0 0;font-size:clamp(16px,2vw,22px);letter-spacing:.12em;text-transform:uppercase;color:#7fb3d9;font-weight:700}
.years-est span{flex:1;height:2px;background:#102f50;max-width:140px}
.years-inbiz{margin:14px 0 0;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#5b7a93}
.years-taglines{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.years-taglines li{position:relative;padding:18px 22px 18px 30px;background:#fff;border:1px solid #d6e3ec;border-left:4px solid #102f50;font-size:clamp(17px,1.7vw,21px);font-weight:600;color:#102f50;line-height:1.3}
.years-taglines li:nth-child(even){border-left-color:#7fb3d9}
@media(max-width:860px){.years-grid{grid-template-columns:1fr}.years-number{font-size:clamp(110px,30vw,180px)}}
/* ---- team cards: titles only, even portraits ---- */
.staff-card .eyebrow{margin-bottom:0}
.staff-portrait img.cleaned-staff-photo{object-position:center 18%}
