/* Expertise overview: imagery first, with a calm service explorer. */
.expertise-page .ex-opening { padding-block: 140px 54px; }
.expertise-page .ex-hero-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(36px,5vw,86px); align-items:center; }
.expertise-page .ex-hero-copy { min-width:0; }
.expertise-page .ex-opening h1 { font-size:clamp(3.3rem,6.6vw,7.4rem); line-height:1.04; letter-spacing:-.058em; margin:28px 0; }
.expertise-page .ex-opening h1>span { display:block; }
.expertise-page .ex-hero-copy>p:not(.rp-eyebrow) { max-width:440px; font-size:1.06rem; line-height:1.75; color:var(--rp-secondary); margin-bottom:26px; }
.expertise-page .ex-hero-copy .rp-link { gap:42px; font-size:.88rem; }
.expertise-page .ex-hero-image { display:block; overflow:hidden; background:var(--brand-line); }
.expertise-page .ex-hero-image img { display:block; aspect-ratio:1.13; height:auto; object-position:52% 50%; transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }
.expertise-page .ex-hero-image:hover img { transform:scale(1.025); }
.expertise-page .ex-hero-photo figcaption { padding-block:12px 0; font-size:.75rem; color:var(--rp-secondary); }
.expertise-page .ex-hero-photo figcaption span:last-child { text-align:right; }
.expertise-page .ex-category-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:44px; }
.expertise-page .ex-category-nav a { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--rp-rule); padding:20px 0 4px; font-size:.94rem; }
.expertise-page .ex-category-nav svg { width:18px; height:18px; flex:none; transition:transform .5s ease; }
.expertise-page .ex-category-nav a:hover svg { transform:translate(4px,-4px); }
.expertise-page .ex-residential { padding-block:42px 90px; }
.expertise-page .ex-section-top { grid-template-columns:1fr 1fr; gap:12px 6vw; align-items:end; padding-top:28px; margin-bottom:40px; }
.expertise-page .ex-section-top>.rp-eyebrow { grid-column:1/-1; }
.expertise-page .ex-section-top>.rp-title { font-size:clamp(2.5rem,4vw,4.6rem); }
.expertise-page .ex-section-top>p:last-child { max-width:460px; font-size:.94rem; line-height:1.75; }
.expertise-page .ex-residential-grid { grid-template-columns:1fr 1.04fr; gap:6vw; }
.expertise-page .ex-detail { top:120px; max-width:none; }
.expertise-page .ex-preview-frame { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--brand-line); }
.expertise-page .ex-preview-frame img { position:absolute; inset:0; width:100%; height:100%; opacity:0; transform:scale(1.018); object-position:50% 50%; transition:opacity 460ms ease,transform 900ms cubic-bezier(.22,.61,.36,1); }
.expertise-page .ex-preview-frame img.is-active { opacity:1; transform:scale(1); }
.expertise-page .ex-detail figcaption { align-items:center; padding-block:16px; gap:12px; }
.expertise-page .ex-detail figcaption [data-preview-title] { font-size:1rem; }
.expertise-page .ex-detail figcaption small { font-size:.74rem; }
.expertise-page .ex-detail figcaption a { font-size:.81rem; gap:10px; }
.expertise-page .ex-services a { grid-template-columns:minmax(0,1fr) 24px; gap:22px; padding:22px 0; }
.expertise-page .ex-services h3 { font-size:clamp(1.5rem,2.1vw,2.35rem); margin:0 0 7px; transition:color .4s ease,transform .5s ease; }
.expertise-page .ex-services p { font-size:.88rem; line-height:1.65; }
.expertise-page .ex-row-arrow { font-size:1.35rem; padding-top:4px; transition:transform .5s ease,color .4s ease; }
.expertise-page .ex-services li { transition:border-color .4s ease; }
.expertise-page .ex-services a:is(:hover,:focus-visible) .ex-row-arrow { transform:translate(5px,-5px); color:var(--rp-accent); }
.expertise-page .ex-services a:is(:hover,:focus-visible) h3 { transform:translateX(5px); color:var(--rp-accent); }
.expertise-page .ex-services li.is-previewed { border-bottom-color:var(--rp-accent); }
.expertise-page .ex-services li.is-previewed h3 { color:var(--rp-accent); }
.expertise-page .ex-commercial { padding-block:78px; background:var(--paper); color:var(--ink); border-top:1px solid var(--brand-line); --rp-rule:var(--brand-line); --rp-secondary:var(--brand-text-soft); --rp-accent:var(--brand-accent); }
.expertise-page .ex-commercial>.rp-shell { gap:36px 6vw; align-items:start; }
.expertise-page .ex-commercial .ex-services { align-self:start; margin-top:clamp(24px,4vw,60px); }
.expertise-page .ex-commercial .ex-section-top { margin-bottom:0; }
.expertise-page .ex-business-image>img { aspect-ratio:1.45; }
.expertise-page .ex-commercial-stage { position:relative; aspect-ratio:1.45; overflow:hidden; background:var(--brand-line); touch-action:pan-y; }
.expertise-page [data-commercial-slide] { position:absolute; inset:0; opacity:0; pointer-events:none; transform:translateX(2%); transition:opacity 1s ease,transform 1.2s cubic-bezier(.22,.61,.36,1); }
.expertise-page [data-commercial-slide].is-active { opacity:1; pointer-events:auto; transform:translateX(0); z-index:1; }
.expertise-page [data-commercial-slide] img { width:100%; height:100%; object-fit:cover; }
.expertise-page .ex-business-image figcaption { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 20px; align-items:center; }
.expertise-page .ex-commercial-meta { min-width:0; }
.expertise-page .ex-commercial-controls { display:flex; align-items:center; gap:6px; }
.expertise-page .ex-commercial-controls button { display:grid; place-items:center; width:48px; height:48px; padding:0; border:1px solid var(--rp-rule); border-radius:0; color:var(--ink); background:transparent; cursor:pointer; transition:color .3s,border-color .3s; }
.expertise-page .ex-commercial-controls button:hover { color:var(--rp-accent); border-color:var(--rp-accent); }
.expertise-page .ex-commercial-controls button svg { width:20px; height:20px; }
.expertise-page .ex-commercial-controls [data-commercial-toggle] { width:32px; height:32px; margin-inline:4px; border:0; }
.expertise-page .ex-commercial-controls [data-commercial-count] { font-size:.7rem; letter-spacing:.08em; color:var(--rp-secondary); margin-right:4px; font-variant-numeric:tabular-nums; }
.expertise-page [data-commercial-toggle] .ex-play { display:none; }
.expertise-page [data-commercial-toggle][data-paused="true"] .ex-play { display:block; }
.expertise-page [data-commercial-toggle][data-paused="true"] .ex-pause { display:none; }
.expertise-page .ex-business-image figcaption>[data-commercial-link] { grid-column:1/-1; justify-self:start; min-height:32px; font-size:.82rem; }
.ex-commercial-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.expertise-page .ex-commercial .ex-services a { grid-template-columns:minmax(0,1fr) 24px; padding-block:28px; }
.expertise-page .ex-commercial .ex-services h3 { font-size:clamp(2rem,3vw,3.5rem); }
.expertise-page .ex-commercial .ex-services p { font-size:1rem; }
.expertise-page .ex-delivery { grid-template-columns:.8fr 1.2fr; gap:8vw; padding-block:100px; }
.expertise-page .ex-delivery .rp-title { max-width:450px; }
.expertise-page .ex-delivery>div>p:last-child { margin-top:24px; font-size:1rem; }
.expertise-page .ex-residential,.expertise-page .ex-commercial,.expertise-page .ex-delivery { scroll-margin-top:110px; }

@media (max-width:1000px) {
  .expertise-page .ex-hero-grid { gap:30px; }
  .expertise-page .ex-opening h1 { font-size:clamp(3.1rem,6.6vw,5rem); }
  .expertise-page .ex-opening { padding-top:128px; }
  .expertise-page .ex-residential-grid { gap:36px; }
  .expertise-page .ex-detail figcaption { flex-wrap:wrap; }
}
@media (max-width:800px) {
  .expertise-page .ex-hero-grid { grid-template-columns:1fr; gap:32px; }
  .expertise-page .ex-opening h1 { font-size:clamp(3.3rem,10vw,5.6rem); margin-block:20px; }
  .expertise-page .ex-hero-copy>p:not(.rp-eyebrow) { max-width:580px; margin-bottom:16px; }
  .expertise-page .ex-hero-image img { aspect-ratio:1.5; }
  .expertise-page .ex-category-nav { margin-top:30px; gap:20px; }
  .expertise-page .ex-category-nav a { font-size:.84rem; align-items:flex-start; }
  .expertise-page .ex-section-top { grid-template-columns:1fr; gap:16px; }
  .expertise-page .ex-residential-grid,.expertise-page .ex-delivery { grid-template-columns:1fr; gap:32px; }
  .expertise-page .ex-detail { position:static; }
  .expertise-page .ex-preview-frame { aspect-ratio:1.5; }
  .expertise-page .ex-detail figcaption small { display:none; }
  .expertise-page .ex-commercial>.rp-shell { display:block; }
  .expertise-page .ex-commercial .ex-section-top { margin-bottom:30px; }
  .expertise-page .ex-commercial .ex-services { margin-top:20px; }
  .expertise-page .ex-delivery { padding-block:72px; }
}
@media (max-width:480px) {
  .expertise-page .ex-opening { padding-top:110px; padding-bottom:28px; }
  .expertise-page .ex-opening h1 { font-size:clamp(2.9rem,11vw,3.8rem); }
  .expertise-page .ex-hero-copy>p:not(.rp-eyebrow) { font-size:.96rem; }
  .expertise-page .ex-hero-photo figcaption { gap:10px; font-size:.68rem; }
  .expertise-page .ex-category-nav { gap:14px; }
  .expertise-page .ex-category-nav a { flex-wrap:wrap; gap:10px; padding-top:15px; font-size:.79rem; line-height:1.5; }
  .expertise-page .ex-services a { padding-block:20px; gap:16px; }
  .expertise-page .ex-services h3 { font-size:1.65rem; }
  .expertise-page .ex-services p { font-size:.85rem; }
  .expertise-page .ex-residential { padding-block:35px 64px; }
  .expertise-page .ex-commercial { padding-block:60px; }
  .expertise-page .ex-business-image figcaption { grid-template-columns:1fr; }
  .expertise-page .ex-commercial-controls { justify-self:start; }
}
@media (prefers-reduced-motion:reduce) {
  .expertise-page .ex-preview-frame img,.expertise-page .ex-hero-image img,
  .expertise-page .ex-services h3,.expertise-page .ex-row-arrow,.expertise-page .ex-category-nav svg { transition:none; transform:none!important; }
  .expertise-page [data-commercial-slide] { transition:none; transform:none; }
}
