.inner-page { background: var(--canvas); }
.inner-header { background: rgba(11,15,20,.96); }
.page-hero { min-height: 72svh; padding: 180px max(6vw,40px) 90px; color: white; background: linear-gradient(90deg,rgba(7,10,15,.94) 0%,rgba(7,10,15,.72) 54%,rgba(7,10,15,.28)), url('assets/wm-hero-architecture.jpg') center 46%/cover no-repeat; display: flex; align-items: end; position: relative; overflow: hidden; }
.page-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.08) 25%); }
.page-hero > div { position:relative; z-index:1; width:min(1040px,90%); }
.page-hero h1 { font-size:clamp(3.8rem,8vw,8rem); }
.page-hero p:last-child { max-width:680px; margin:34px 0 0; font-size:1.1rem; color:rgba(255,255,255,.64); line-height:1.7; }
.breadcrumb { margin-bottom:38px; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:#739dea; }
.breadcrumb a { color:rgba(255,255,255,.55); }
.inner-section { width:var(--content); margin:0 auto; padding:120px 0; }
.intro-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:10vw; align-items:start; }
.intro-grid h2,.route-heading h2 { font-size:clamp(2.7rem,5vw,5.2rem); line-height:1.03; letter-spacing:-.05em; }
.intro-copy { font-size:1.05rem; color:#525a64; line-height:1.75; }
.route-grid { margin-top:75px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.route-card { min-height:330px; padding:35px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; }
.route-card .number { color:var(--blue); font:600 .7rem Montserrat,sans-serif; }
.route-card h3 { margin-top:auto; font-size:1.65rem; letter-spacing:-.03em; }
.route-card p { min-height:65px; margin:17px 0 28px; color:var(--gray); line-height:1.6; }
.route-card small { padding-top:18px; border-top:1px solid var(--line); color:var(--blue); font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; }
.route-card { transition:background .3s,color .3s,transform .3s; }
.route-card:hover { background:white; transform:translateY(-4px); }
.route-cta { background:var(--graphite); color:white; padding:110px max(6vw,40px); display:grid; grid-template-columns:1.4fr .6fr; align-items:end; gap:8vw; }
.route-cta h2 { font-size:clamp(2.8rem,5.5vw,6rem); line-height:1; letter-spacing:-.05em; }
.route-cta div:last-child { display:grid; gap:12px; }
.notice-panel { padding:26px 28px; border-left:2px solid var(--blue); background:rgba(18,59,146,.06); color:#505760; line-height:1.7; }
.catalog { margin:90px 0 38px; display:grid; grid-template-columns:.55fr 1.45fr; border:1px solid var(--line); background:white; }
.catalog-tabs { display:flex; flex-direction:column; border-right:1px solid var(--line); }
.catalog-tab { min-height:82px; padding:0 26px; display:flex; align-items:center; gap:20px; border:0; border-bottom:1px solid var(--line); color:var(--graphite); background:transparent; font:600 1rem Inter,sans-serif; text-align:left; cursor:pointer; transition:background .25s,color .25s,padding .25s; }
.catalog-tab:last-child { border-bottom:0; }
.catalog-tab span { width:28px; color:var(--blue); font:600 .65rem Montserrat,sans-serif; }
.catalog-tab:hover { padding-left:32px; background:var(--canvas); }
.catalog-tab.active { color:white; background:var(--graphite); }
.catalog-tab.active span { color:#7fa8f1; }
.catalog-panel { min-width:0; display:grid; grid-template-columns:1fr 1fr; }
.catalog-panel.is-changing .catalog-visual img,.catalog-panel.is-changing .catalog-copy { opacity:0; transform:translateY(10px); }
.catalog-visual { min-height:570px; position:relative; overflow:hidden; background:var(--graphite); }
.catalog-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(11,15,20,.72)); }
.catalog-visual img { width:100%; height:100%; object-fit:cover; transition:opacity .25s,transform .25s; }
.catalog-visual span { position:absolute; z-index:2; bottom:25px; left:28px; color:white; font:500 5rem Montserrat,sans-serif; letter-spacing:-.07em; }
.catalog-copy { padding:55px 44px; align-self:center; transition:opacity .25s,transform .25s; }
.catalog-copy h3 { font-size:clamp(2.3rem,4vw,4.4rem); letter-spacing:-.05em; }
.catalog-copy > p:not(.eyebrow) { min-height:82px; color:var(--gray); line-height:1.7; }
.catalog-specs { margin:35px 0; border-top:1px solid var(--line); }
.catalog-specs div { padding:15px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.catalog-specs dt { color:var(--gray); }.catalog-specs dd { margin:0; font-weight:600; }
.project-empty { min-height:500px; border:1px solid var(--line); display:grid; place-content:center; text-align:center; padding:40px; background:linear-gradient(135deg,rgba(18,59,146,.08),transparent); }
.project-empty span { font:500 8rem Montserrat,sans-serif; color:rgba(18,59,146,.1); }
.project-empty h2 { font-size:2rem; }
.project-empty p { max-width:580px; color:var(--gray); line-height:1.7; }
.process-list { border-top:1px solid var(--line); }
.process-item { display:grid; grid-template-columns:80px 1fr 1fr; gap:35px; padding:38px 0; border-bottom:1px solid var(--line); align-items:start; }
.process-item > span { color:var(--blue); font:600 .7rem Montserrat,sans-serif; }
.process-item h3 { font-size:1.55rem; }
.process-item p { margin:0; color:var(--gray); line-height:1.7; }
.quote-shell { width:var(--content); margin:0 auto; padding:145px 0; display:grid; grid-template-columns:.65fr 1.35fr; gap:9vw; }
.quote-aside h1 { font-size:clamp(3.1rem,5.5vw,6rem); color:var(--graphite); }
.quote-aside p { color:var(--gray); line-height:1.7; }
.quote-progress { margin-top:50px; display:flex; gap:7px; }
.quote-progress i { width:44px; height:3px; background:#d1d5da; }
.quote-progress i.active { background:var(--blue); }
.quote-form { padding:46px; background:white; border:1px solid var(--line); }
.quote-step { display:none; }.quote-step.active { display:block; }
.step-label { margin-bottom:38px; color:var(--blue); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; }
.quote-step h2 { margin-bottom:35px; font-size:clamp(2rem,3.5vw,3.4rem); line-height:1.1; letter-spacing:-.04em; }
.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.choice { min-height:92px; padding:22px; border:1px solid var(--line); background:transparent; color:var(--graphite); text-align:left; font:600 1rem Inter,sans-serif; cursor:pointer; }
.choice { transition:border-color .25s,background .25s,color .25s,transform .25s; }
.choice:hover,.choice.selected { border-color:var(--blue); color:var(--blue); background:rgba(18,59,146,.04); transform:translateY(-2px); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:grid; gap:9px; margin-bottom:20px; }
.field label { font-size:.75rem; color:var(--gray); }
.field label span { opacity:.65; font-weight:400; }
.field input,.field select { width:100%; min-height:54px; padding:0 15px; border:1px solid var(--line); background:var(--canvas); font:1rem Inter,sans-serif; }
.field small { color:var(--gray); font-size:.72rem; line-height:1.45; }
.field [aria-invalid="true"] { border-color:#a12b2b; box-shadow:0 0 0 1px #a12b2b; }
.field .field-error { color:#922222; font-weight:600; }
.consent .field-error { flex-basis:100%; color:#922222; font-weight:600; }
.form-alert { margin-bottom:28px; padding:20px 22px; color:#651c1c; background:#fff1f1; border-left:3px solid #a12b2b; line-height:1.55; }
.form-alert[hidden] { display:none; }
.form-alert ul { margin:9px 0 0; padding-left:18px; }
.consent { margin-top:8px; padding:18px; display:flex; flex-wrap:wrap; align-items:flex-start; gap:13px; border:1px solid var(--line); color:#515962; font-size:.82rem; line-height:1.5; cursor:pointer; }
.consent > span { flex:1; }
.consent input { flex:0 0 auto; width:18px; height:18px; margin:1px 0 0; accent-color:var(--blue); }
.consent:has(input[aria-invalid="true"]) { border-color:#a12b2b; }
.quote-actions { display:flex; justify-content:space-between; gap:12px; margin-top:34px; }
.button-dark { background:var(--graphite); color:white; border:0; cursor:pointer; }
.button-light { background:transparent; color:var(--graphite); border:1px solid var(--line); cursor:pointer; }
.summary-list { margin:35px 0; border-top:1px solid var(--line); }
.summary-list div { display:flex; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.summary-list dt { color:var(--gray); }.summary-list dd { margin:0; font-weight:600; text-align:right; }
.flow-note { margin-top:24px; color:var(--gray); font-size:.82rem; line-height:1.6; }
.quote-success { text-align:left; }
.quote-success p { color:var(--gray); line-height:1.7; }
.success-mark { width:64px; height:64px; margin-bottom:28px; display:grid; place-items:center; color:white; background:var(--blue); font-size:1.8rem; }
@media(max-width:900px){.intro-grid,.route-cta,.quote-shell{grid-template-columns:1fr}.route-grid{grid-template-columns:1fr 1fr}.catalog{grid-template-columns:1fr}.catalog-tabs{overflow-x:auto;flex-direction:row;border-right:0;border-bottom:1px solid var(--line)}.catalog-tab{min-width:180px;border-bottom:0;border-right:1px solid var(--line)}.catalog-panel{grid-template-columns:1fr}.catalog-visual{min-height:440px}.process-item{grid-template-columns:50px 1fr}.process-item p{grid-column:2}.quote-shell{padding-top:115px}.quote-aside h1{font-size:4rem}}
@media(max-width:560px){.page-hero{min-height:68svh;padding:145px 6vw 70px}.page-hero h1{font-size:3.7rem}.inner-section{width:88vw;padding:90px 0}.route-grid{grid-template-columns:1fr}.route-card{min-height:270px}.catalog{margin-top:60px}.catalog-panel{display:block}.catalog-visual{min-height:340px}.catalog-copy{padding:40px 24px}.catalog-copy .button{width:100%}.route-cta{padding:90px 6vw}.process-item{grid-template-columns:32px 1fr;gap:15px}.quote-shell{width:88vw;padding:110px 0 80px}.quote-form{padding:28px 20px}.choice-grid,.form-row{grid-template-columns:1fr}.quote-actions{flex-direction:column-reverse}.quote-actions .button{width:100%}}
