/* Homepage-only layout refinements. Existing typeface, palette and component shapes stay in use. */
.home-refresh .section { padding-block: 80px; }
.home-refresh .section-head { margin-bottom: 36px; }
.home-refresh .lead { color: #52616b; }
.home-refresh .section--inverse .lead { color: #d3dce1; }
.home-refresh .hero { height: auto; min-height: 620px; }
.home-refresh .hero__layout { min-height: 620px; grid-template-columns: minmax(0,1.5fr) minmax(280px,1fr); gap: 32px; }
.home-refresh .hero__copy { max-width: 46rem; padding: 64px 0; }
.home-refresh .hero h1 { font-size: clamp(40px,3.85vw,56px); line-height: 1.1; }
.home-refresh .hero .lead { margin-block: 24px 28px; max-width: 43rem; }
.home-refresh .hero__figure { min-height: 100%; position: relative; margin:0; padding:0; }
.home-refresh .hero__portrait { height: 92%; max-width: 100%; object-fit: contain; bottom:0; }
.home-refresh .hero__caption { position:absolute; bottom:24px; right:0; z-index:3; margin:0; padding:14px 18px; background:rgba(255,255,255,.96); border:1px solid var(--border-default); border-radius:var(--radius-button); font-size:14px; line-height:1.5; }
.home-refresh .hero__caption strong,.home-refresh .hero__caption span { display:block; }
.home-refresh .home-brands { background:#fff; border-bottom:1px solid var(--border-default); padding:28px 0; }
.home-brands__label { margin:0 0 20px; font-size:14px; text-align:center; color:#52616b; }
.home-brands__list { list-style:none; margin:0 auto; padding:0; display:flex; justify-content:space-around; align-items:center; gap:32px; max-width:1040px; }
.home-brands__list li { flex:1; display:flex; justify-content:center; min-width:0; }
.home-brands__list img { width:180px; height:48px; object-fit:contain; }
.home-refresh .cases,.home-refresh .contact { position:relative; }
.home-anchor { position:absolute; top:0; width:1px; height:1px; pointer-events:none; }
.home-refresh .cases-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; perspective:none; }
.home-refresh .home-project { position:relative; top:auto; display:flex; flex-direction:column; min-height:0; box-shadow:var(--shadow-soft); will-change:auto; }
.home-refresh .home-project .case-card__media { flex-shrink:0; width:100%; min-height:0; aspect-ratio:3/2; }
.home-refresh .home-project .case-card__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.home-refresh .home-project .home-project__publications img { width:175%; height:auto; max-width:none; left:auto; right:0; top:50%; bottom:auto; transform:translateY(-50%); }
.home-refresh .case-card__body { flex:1; padding:24px; align-items:stretch; }
.home-refresh .case-card__brand { margin-bottom:18px; }
.home-refresh .case-card__name { font-size:18px; }
.home-refresh .case-card__scope { font-size:14px; color:#52616b; }
.home-refresh .case-card__body h3 { font-size:23px; line-height:1.25; }
.home-refresh .case-card__body>p { font-size:16px; line-height:1.6; color:#52616b; }
.home-refresh .case-stats { display:block; margin-top:auto; padding-top:24px; }
.home-refresh .case-stat { align-items:flex-start; }
.home-refresh .case-stat__value { font-size:30px; line-height:1.2; }
.home-refresh .case-stat__label { font-size:15px; color:var(--brand-navy); }
.home-refresh .case-card__body .case-card__source,.home-refresh .case-card__body .home-project__note { font-size:14px; line-height:1.5; color:#52616b; margin:12px 0 0; }
.home-refresh .case-card__body .btn { margin-top:24px; font-size:14px; padding:14px 16px; text-align:left; justify-content:space-between; }
.home-refresh .cases-footer { margin-top:28px; }
.home-routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.home-route { border-top:1px solid #536775; padding-top:24px; display:flex; flex-direction:column; }
.home-route h3 { font-size:24px; line-height:1.3; margin:0 0 16px; color:#fff; }
.home-route p { margin:0 0 24px; color:#d3dce1; }
.home-route a { color:var(--brand-green); font-weight:700; margin-top:auto; }
.home-route a:hover { text-decoration:underline; }
.home-refresh .services-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.home-refresh .service-card { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(0,1.8fr) minmax(180px,.75fr); gap:28px; padding:28px; min-height:0; box-shadow:none; align-items:start; }
.home-refresh .service-card:first-child { background:var(--surface-success-soft); }
.home-refresh .service-card h3 { margin:0; font-size:24px; }
.home-refresh .service-card p { margin:0; font-size:16px; color:#52616b; }
.home-refresh .service-card__list { display:flex; flex-wrap:wrap; gap:6px 16px; margin:16px 0 0; padding:0; }
.home-refresh .service-card__list li { display:block; padding:0; font-size:14px; color:#52616b; }
.home-refresh .service-card__list li::before { display:none; }
.home-refresh .service-card__list a,.home-text-link { text-decoration:underline; text-underline-offset:3px; color:var(--brand-navy); }
.home-refresh .service-card__link { align-self:center; margin:0; padding:0; font-size:15px; }
.home-service-cost { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:20px 0 0; }
.home-service-cost h3 { margin:0 0 8px; font-size:20px; }
.home-service-cost p { margin:0; color:#52616b; }
.home-service-cost .btn { flex-shrink:0; }
.home-refresh .about__layout { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); align-items:center; gap:56px; }
.home-refresh .about__main,.home-refresh .about__aside { display:block; }
.home-refresh .about__intro { margin:0; }
.home-refresh .about__intro .lead { margin-top:24px; font-size:16px; line-height:1.75; }
.home-refresh .about__photo { width:100%; max-width:460px; margin:0 auto; }
.home-refresh .about__photo img { width:100%; height:auto; aspect-ratio:570/460; object-fit:cover; border-radius:var(--radius-large); opacity:1; transform:none; filter:none; }
.home-refresh .process-step { background:transparent; border:none; border-top:1px solid #536775; border-radius:0; padding:24px 0 0; }
.home-refresh .process-step p { font-size:16px; color:#d3dce1; }
.home-refresh .process-step__num { width:36px; height:36px; font-size:16px; }
.home-refresh .faq__layout { display:grid; grid-template-columns:1fr; max-width:960px; gap:32px; }
.home-refresh .faq__intro { position:static; }
.home-refresh .faq-item summary { font-size:18px; }
.home-refresh .faq-item__body { font-size:16px; }
.home-refresh .faq-item[open] .faq-item__panel { grid-template-rows:1fr; opacity:1; }
.home-refresh .contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); grid-template-rows:auto 1fr; column-gap:56px; row-gap:24px; }
.home-refresh .contact-info { grid-column:1; grid-row:1; }
.home-refresh .contact-form { grid-column:2; grid-row:1/3; }
.home-contact-alternative { grid-column:1; grid-row:2; }
.home-contact-alternative>p { margin:0 0 16px; }
.home-refresh .contact-points { margin:0; }
.field__help { margin:8px 0 0; font-size:14px; color:#52616b; }
.home-refresh .hero__copy>* { opacity:1; transform:none; }
body.home .site-footer .footer-rise { opacity:1; transform:none; }
body.home .site-header.is-hidden { transform:none; }
@media (max-width:1100px) and (min-width:768px) {
 .home-refresh .cases-grid { gap:16px; }
 .home-refresh .case-card__body { padding:20px; }
 .home-refresh .service-card { grid-template-columns:minmax(140px,.7fr) minmax(0,1.3fr); }
 .home-refresh .service-card__link { grid-column:2; }
}
@media (max-width:1023px) {
 .home-refresh .hero,.home-refresh .hero__layout { min-height:0; height:auto; }
 .home-refresh .hero__layout { grid-template-columns:1fr; gap:0; }
 .home-refresh .hero__copy { padding:32px 0 20px; max-width:720px; }
 .home-refresh .hero h1 { font-size:40px; }
 .home-refresh .hero .lead { margin-block:20px 24px; font-size:16px; line-height:1.6; }
 .home-refresh .hero__figure { display:flex; justify-content:flex-start; gap:20px; align-items:center; min-height:0; height:auto; padding:0 0 24px; }
 .home-refresh .hero__portrait { position:static; width:82px; height:100px; margin:0; border-radius:12px; object-fit:cover; object-position:center 8%; filter:none; background:#dcefe2; }
 .home-refresh .hero__caption { position:static; padding:0; border:0; background:transparent; }
 .home-refresh .hero__art { opacity:.35; }
 .home-refresh .about__layout { gap:32px; }
 .home-refresh .contact-grid { column-gap:32px; }
}
@media (max-width:767px) {
 .home-refresh .section { padding-block:48px; }
 .home-refresh .section-head { margin-bottom:28px; }
 .home-refresh h2 { font-size:32px; line-height:1.2; }
 .home-refresh .hero h1 { font-size:36px; line-height:1.12; }
 .home-refresh .hero__actions { gap:12px; }
 .home-refresh .hero__actions .btn { width:100%; justify-content:center; }
 .home-refresh .hero__figure { padding-top:4px; }
 .home-brands__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .home-brands__list img { width:150px; height:42px; }
 .home-refresh .cases-grid,.home-routes { grid-template-columns:1fr; gap:24px; }
 .home-refresh .case-card__body h3 { font-size:24px; }
 .home-refresh .case-card__body .btn { font-size:15px; }
 .home-refresh .service-card { grid-template-columns:1fr; gap:16px; padding:24px; }
 .home-refresh .service-card__link { padding-top:4px; }
 .home-service-cost { flex-direction:column; align-items:stretch; gap:20px; }
 .home-refresh .about__layout { grid-template-columns:1fr; }
 .home-refresh .about__photo { max-width:360px; }
 .home-refresh .process-step { display:grid; grid-template-columns:36px minmax(0,1fr); column-gap:16px; }
 .home-refresh .process-step__num { grid-row:1/3; margin:0; }
 .home-refresh .process-step h3 { grid-column:2; }
 .home-refresh .process-step p { grid-column:2; }
 .home-refresh .contact-grid { display:flex; flex-direction:column; gap:28px; }
 .home-refresh .contact-form,.home-contact-alternative { width:100%; }
 .home-refresh .contact-form { padding:24px 20px; }
 .home-refresh .contact-form .form-grid { grid-template-columns:1fr; }
 .home-refresh .faq-item summary { font-size:17px; padding-right:52px; }
}

.home-refresh .hero__copy h1 { max-width:none; }
.home-refresh .section-head h2 { max-width:26ch; }
.home-refresh .faq__intro { max-width:none; }
.home-refresh .faq__intro h2 { max-width:none; }
.home-refresh .about__photo { aspect-ratio:570/460; }
.home-refresh .contact-form.reveal { opacity:1; transform:none; }
@media(max-width:767px) { .home-refresh .contact-form__grid { grid-template-columns:1fr; } }

.home-refresh .case-stat__value { color:#236b38; }
.home-refresh .check-field__text a { color:#236b38; }
.home-refresh .contact-form__grid { align-items:end; }
