/* First service-page composition. Shared tokens and controls live in design-system.css. */
body.lsf-service-page h1 { max-width: 760px; font-size: clamp(2.6rem,4.4vw,4.65rem); line-height: 1.04; }
body.lsf-service-page h2 { font-size: clamp(2rem,3.4vw,3.35rem); }
.lsf-service-page .lsf-section { padding-block: clamp(64px,7vw,104px); }
.lsf-service-hero { background: var(--lsf-warm); padding-bottom: 60px; }
.lsf-breadcrumbs { padding-block: 26px; color: #545e66; font-size: .82rem; }
.lsf-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0; list-style: none; }
.lsf-breadcrumbs li+li::before { content: '/'; margin-right: 12px; color: #7c858c; }
.lsf-breadcrumbs a { display: inline-block; padding-block: 5px; }
.lsf-service-hero__grid { display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: clamp(32px,5vw,76px); }
.lsf-service-hero__copy { padding-block: 18px; }
.lsf-service-hero h1 span { color: var(--lsf-red); }
.lsf-service-lead { max-width: 600px; font-size: 1.18rem; line-height: 1.5; font-weight: 620; }
.lsf-service-hero__copy > p:not(.lsf-kicker):not(.lsf-service-lead) { max-width: 640px; color: #535d64; }
.lsf-service-hero .lsf-actions { margin-top: 30px; gap: 10px; }
.lsf-service-hero__image { position: relative; align-self: stretch; min-height: 460px; margin: 0; overflow: hidden; background: #ddd; }
.lsf-service-hero__image img { position: absolute; inset: 0; object-position: 51% center; }
.lsf-service-hero__image figcaption { position: absolute; inset: auto 0 0; padding: 60px 26px 25px; background: linear-gradient(transparent, rgb(0 0 0 / 80%)); color: white; font-size: .92rem; font-weight: 650; }
.lsf-service-notes { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 0; margin: 24px 0 0; list-style: none; color: #555e65; font-size: .78rem; font-weight: 650; }
.lsf-service-notes li::before { content: '•'; margin-right: 8px; color: var(--lsf-red); }
.lsf-section-nav { border-block: 1px solid var(--lsf-line); background: white; }
.lsf-section-nav .lsf-container { display: flex; flex-wrap: wrap; gap: 6px 38px; }
.lsf-section-nav a { min-height: 60px; display: inline-flex; align-items: center; font-size: .83rem; font-weight: 740; text-decoration: none; }
.lsf-section-nav a:hover { color: var(--lsf-red); }
.lsf-materials { background: white; }
.lsf-material-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.lsf-material-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.lsf-material-grid--three .lsf-material-card__body { padding: clamp(24px,2.4vw,34px); }
.lsf-timber-intro { background: #eeece4; }
.lsf-timber-intro__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,6vw,80px); }
.lsf-timber-intro p { color: #414b52; }
.lsf-timber-intro h3:not(:first-child) { margin-top: 30px; }
.lsf-timber-links a { font-weight: 700; }
@media(min-width:781px) and (max-width:1100px) {
 .lsf-material-grid--three { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .lsf-material-card--timber { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
 .lsf-material-card--timber .lsf-material-card__photo { height: 100%; aspect-ratio: auto; min-height: 330px; }
}
.lsf-material-card { min-width: 0; border: 1px solid var(--lsf-line); background: var(--lsf-warm); }
.lsf-material-card__photo { aspect-ratio: 1.8; overflow: hidden; }
.lsf-material-card__photo img { object-position: 50% 48%; }
.lsf-material-card__body { padding: clamp(25px,3vw,42px); }
.lsf-material-index { display: block; margin-bottom: 24px; color: var(--lsf-red); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lsf-material-card h3 { font-size: 1.8rem; }
.lsf-material-card p, .lsf-material-card li { color: #515c64; }
.lsf-material-card ul { padding-left: 20px; margin: 20px 0 30px; }
.lsf-material-card .lsf-text-link { min-height: 48px; font-size: .9rem; }
.lsf-entrance-note { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding: 38px 0 0; }
.lsf-entrance-note h3 { font-size: 1.35rem; }
.lsf-entrance-note p { color: #5a646b; margin-bottom: 0; }
.lsf-entrance-note > div:last-child { flex: 0 0 40%; display: grid; }
.lsf-entrance-note a { display: flex; justify-content: space-between; min-height: 48px; align-items: center; border-bottom: 1px solid var(--lsf-line); font-size: .88rem; font-weight: 720; text-decoration: none; }
.lsf-service-projects { background: var(--lsf-warm); }
.lsf-service-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.lsf-service-project-grid figure { position: relative; min-width: 0; height: clamp(340px,30vw,460px); overflow: hidden; margin: 0; background: #d8d8d5; }
.lsf-service-project-grid img { object-position: 50% 53%; }
.lsf-service-project-grid figcaption { position: absolute; inset: auto 0 0; padding: 65px 25px 24px; background: linear-gradient(transparent, rgb(9 11 12 / 92%)); color: white; font-size: 1rem; font-weight: 760; line-height: 1.4; }
.lsf-service-project-link { display: flex; justify-content: flex-end; padding-top: 26px; }
.lsf-service-pricing { background: var(--lsf-graphite); color: white; }
.lsf-service-pricing__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(40px,8vw,115px); align-items: center; }
.lsf-service-pricing h2 { max-width: 680px; }
.lsf-service-pricing p:not(.lsf-kicker):not(.lsf-price):not(.lsf-price-label), .lsf-service-pricing li { color: #d1d6d8; }
.lsf-service-pricing .lsf-kicker { color: #ff8fa3; }
.lsf-service-price-card { border: 1px solid #51575c; padding: clamp(28px,4vw,54px); background: #25292d; }
.lsf-price-label { font-size: 1.2rem; font-weight: 760; }
.lsf-service-price-card .lsf-price { font-size: 4.6rem; }
.lsf-service-price-card ul { padding: 22px 0 0 20px; margin: 24px 0 0; border-top: 1px solid #51575c; font-size: .86rem; }
.lsf-related { background: white; }
.lsf-related-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.lsf-related-grid > a { position: relative; min-height: 250px; padding: 32px; border: 1px solid var(--lsf-line); background: var(--lsf-warm); text-decoration: none; }
.lsf-related-grid > a:hover { border-color: var(--lsf-red); }
.lsf-related-grid span { display: block; margin-bottom: 32px; color: var(--lsf-red); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lsf-related-grid p { color: #555e65; padding-right: 20px; font-size: .93rem; }
.lsf-related-grid b { position: absolute; bottom: 22px; right: 25px; font-size: 1.3rem; }
.lsf-staging-form-note { padding: 12px 14px; border-left: 3px solid #b79e00; background: #fff8c9; color: #453d10; font-size: .84rem; }
.lsf-service-page [id] { scroll-margin-top: 24px; }
@media(max-width:1000px) {
 .lsf-service-hero__grid { gap: 28px; }
 .lsf-service-hero h1 { font-size: 3rem; }
 .lsf-service-hero .lsf-actions { align-items: stretch; }
 .lsf-service-hero .lsf-text-link { min-height: 48px; }
 .lsf-service-pricing__grid { gap: 36px; }
}
@media(max-width:780px) {
 .lsf-breadcrumbs { padding-block: 18px; }
 .lsf-service-hero { padding-bottom: 36px; }
 .lsf-service-hero__grid,.lsf-material-grid,.lsf-service-pricing__grid,.lsf-related-grid { grid-template-columns: 1fr; }
 .lsf-timber-intro__grid { grid-template-columns: 1fr; }
 body.lsf-service-page h1 { font-size: clamp(2.45rem,9vw,3.6rem); }
 .lsf-service-hero__copy { padding-top: 5px; }
 .lsf-service-hero__image { min-height: 310px; aspect-ratio: 1.3; }
 .lsf-service-lead { font-size: 1.08rem; }
 .lsf-section-nav .lsf-container { gap: 0 24px; padding-block: 8px; }
 .lsf-section-nav a { min-height: 46px; }
 .lsf-entrance-note { align-items: stretch; flex-direction: column; }
 .lsf-service-project-grid { grid-template-columns: 1fr; }
 .lsf-service-project-grid figure { height: 360px; }
 .lsf-service-project-link { justify-content: flex-start; }
 .lsf-related-grid > a { min-height: 215px; }
 .lsf-service-price-card .lsf-price { font-size: 4rem; }
}
@media(prefers-reduced-motion:reduce) { .lsf-service-page * { scroll-behavior: auto !important; } }
