/* V5 keeps the approved white, charcoal and construction-yellow palette. */
.v5-kicker { display:block; color:#777; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:12px; }
.v5-residential-hero { background-image:linear-gradient(90deg,rgba(18,22,23,.94) 0%,rgba(18,22,23,.78) 42%,rgba(18,22,23,.18) 76%),url('/assets/media/v5/hero-residential.jpg'); background-position:center,center 56%; background-size:cover; min-height:530px; padding:72px 0 68px; }
.v5-residential-hero .hero-content { padding-block:0; }
.v5-residential-hero h1 { font-size:52px; line-height:1.15; max-width:790px; margin:0 0 22px; }
.v5-residential-hero .hero-accent { font-size:21px; max-width:650px; margin:0 0 20px; line-height:1.55; }
.v5-hero-points { list-style:none; padding:0; margin:20px 0 30px; display:flex; flex-wrap:wrap; gap:15px 25px; font-size:14px; color:#eee; }
.v5-hero-points li { display:flex; align-items:center; gap:9px; }
.v5-hero-points li::before { content:'✓'; color:#ffd12b; font-weight:700; }
.v5-residential-hero .hero-actions { margin:0; }
.v5-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; padding-top:38px; padding-bottom:38px; border-bottom:1px solid #e8e8e8; }
.v5-benefits article { display:flex; gap:16px; }
.v5-benefits svg { flex:0 0 40px; color:#827124; }
.v5-benefits h2 { font-size:16px; line-height:1.45; margin:0 0 7px; }
.v5-benefits p { font-size:12px; line-height:1.7; margin:0; color:#747474; }

/* Contain the image inside its actual media cell, at every catalog breakpoint. */
.type-card-media { overflow:hidden; display:flex; align-items:center; justify-content:center; }
.type-card-media img { width:100%; height:100%; max-height:100%; object-fit:contain; display:block; }
.type-card { border:1px solid #e4e4e4; transition:border-color .16s,box-shadow .16s,transform .16s; }
.type-card:hover,.type-card:focus-within { border-color:#e9b500; box-shadow:0 5px 0 #ffce2e; transform:translateY(-3px); }
.type-card:hover h3,.type-card:focus-within h3 { color:#7c5c00; }
.v4-purpose-grid article,.v4-variant-grid article { transition:box-shadow .16s,background .16s; }
.v4-purpose-grid article:hover,.v4-purpose-grid article:focus-within,.v4-variant-grid article:hover,.v4-variant-grid article:focus-within { box-shadow:0 0 0 2px #f1c22e; background:#fffdf6; }
.v3-group-summary:hover,.v3-group-summary:focus-visible { background:#ffcd2b; color:#252525; }
.v3-on-page a:hover,.v3-on-page a:focus-visible { background:#fff3c1; }

.v5-section-heading { max-width:800px; margin-bottom:30px; }
.v5-section-heading h2 { font-size:34px; line-height:1.25; margin:0 0 15px; }
.v5-section-heading p { color:#6b6b6b; font-size:15px; line-height:1.75; }
.v5-price-layout { display:block; }
.v5-price-tabs { display:none; }
.v5-tabs-ready .v5-price-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:32px; align-items:start; }
.v5-tabs-ready .v5-price-tabs { display:flex; flex-direction:column; border:1px solid #e0e0e0; }
.v5-price-tabs button { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:64px; padding:18px 22px; font:600 14px/1.5 inherit; font-family:inherit; font-size:14px; font-weight:600; text-align:left; border:0; border-bottom:1px solid #e0e0e0; background:#f7f7f7; cursor:pointer; color:#333; }
.v5-price-tabs button:last-child { border-bottom:0; }
.v5-price-tabs button svg { flex:0 0 18px; }
.v5-price-tabs button[aria-selected=true] { background:#ffcc2b; color:#232323; }
.v5-price-tabs button:hover { background:#fff0bc; }
.v5-price-tabs button[aria-selected=true]:hover { background:#ffcc2b; }
.v5-price-tabs button:focus-visible { outline:3px solid #333; outline-offset:-4px; }
.v5-price-panel { min-width:0; outline-offset:5px; margin:0 0 26px; }
.v5-price-panel[hidden] { display:none; }
.v5-price-panel h3 { font-size:23px; margin:0 0 20px; }
.v5-price-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; }
.v5-price-table th,.v5-price-table td { text-align:left; border-bottom:1px solid #e4e4e4; padding:18px 20px; vertical-align:top; }
.v5-price-table thead { background:#333; color:#fff; font-size:12px; }
.v5-price-table thead th { font-weight:500; padding-block:15px; }
.v5-price-table th:last-child,.v5-price-table td { width:180px; }
.v5-price-table tbody th { font-weight:600; }
.v5-price-table th span { display:block; color:#777; font-size:12px; font-weight:400; line-height:1.6; margin-top:7px; }
.v5-price-table td { font-size:17px; font-weight:650; white-space:normal; }
.v5-price-table tbody tr:nth-child(even) { background:#f7f7f7; }
.v5-price-table a { text-decoration:none; color:#333; }
.v5-price-table a:hover { text-decoration:underline; }
.v5-price-note { font-size:12px; line-height:1.7; color:#777; margin-top:0; max-width:820px; }
.v5-tabs-ready .v5-price-single { grid-template-columns:1fr; }
.v5-price-single .v5-price-tabs { display:none; }

.v5-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:55px; align-items:center; }
.v5-split h2 { font-size:31px; line-height:1.3; margin:0 0 20px; }
.v5-split h3 { font-size:19px; }
.v5-split p { line-height:1.8; font-size:15px; }
.v5-surveys { background:#f7f7f7; }
.v5-technical-image { margin:25px 0 35px; }
.v5-technical-image img { display:block; width:100%; height:auto; max-height:470px; object-fit:contain; background:#fff; }
.v5-technical-image figcaption { font-size:12px; line-height:1.7; color:#777; border-left:2px solid #f1c32f; padding-left:14px; margin-top:16px; }
.v5-stage-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.v5-stage-grid article { min-width:0; border-bottom:2px solid #f1cb44; padding-bottom:20px; }
.v5-stage-grid figure { margin:0 0 20px; }
.v5-stage-grid img { width:100%; height:170px; object-fit:contain; }
.v5-stage-grid h3 { font-size:18px; line-height:1.4; margin:10px 0; }
.v5-stage-grid p { font-size:13px; line-height:1.8; color:#777; }
.v5-stage-number { color:#a58624; font-size:12px; font-weight:700; }
.v5-reading-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:60px; align-items:start; }
.v5-reading-body { width:100%; max-width:820px; min-width:0; }
.v5-reading-body>section { padding:0 0 22px; margin:0 0 22px; }
.v5-reading-body h2 { font-size:28px; line-height:1.4; margin:0 0 20px; }
.v5-reading-body p { margin:0 0 20px; font-size:16px; line-height:1.85; }
.v5-reading-body section[id],.v5-standards { scroll-margin-top:110px; }
.v5-reading-aside { min-width:0; align-self:stretch; }
.v5-sticky { position:sticky; top:90px; max-height:calc(100vh - 105px); overflow-y:auto; scrollbar-width:thin; }
.v5-toc { background:#303234; color:#fff; padding:26px 24px; }
.v5-toc h2 { color:#fff; font-size:19px; margin:0 0 16px; }
.v5-toc a { display:flex; gap:10px; padding:10px 0; color:#dfdfdf; font-size:13px; line-height:1.55; text-decoration:none; border-top:1px solid #48494b; }
.v5-toc a span { font-size:10px; color:#a4a4a4; line-height:2; }
.v5-toc a:hover,.v5-toc a[aria-current] { color:#ffd035; }
.v5-aside-cta { border:1px solid #e2e2e2; padding:23px; margin:20px 0; }
.v5-aside-cta h3 { font-size:20px; line-height:1.4; margin:0 0 12px; }
.v5-aside-cta p { font-size:13px; line-height:1.8; color:#777; }
.v5-aside-cta .button { padding:15px; width:100%; min-width:0; font-size:12px; }
.v5-aside-links { padding:0 20px 20px; }
.v5-aside-links h3 { font-size:16px; }
.v5-aside-links a { display:flex; justify-content:space-between; width:100%; margin:12px 0; font-size:12px; }
.v5-example { background:#fff9e7; padding:28px!important; border-left:3px solid #eac437; }
.v5-example dl>div { margin-bottom:25px; }
.v5-example dt { font-size:27px; font-weight:700; }
.v5-example dd { margin:5px 0 0; }
.v5-example dd p { font-size:14px; margin-top:8px; }
.v5-standards dl>div { display:grid; grid-template-columns:165px minmax(0,1fr); gap:20px; border-top:1px solid #e3e3e3; padding:17px 0; }
.v5-standards dt { font-weight:700; font-size:13px; }
.v5-standards dd { margin:0; font-size:13px; }
.v5-standards dd p { font-size:13px; margin:7px 0 0; }
.v5-documents { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.v5-documents article { background:#f6f6f6; border-top:3px solid #edc63c; padding:28px; display:flex; flex-direction:column; }
.v5-doc-format { color:#777; font-size:11px; letter-spacing:.08em; }
.v5-documents h3 { font-size:22px; line-height:1.4; margin:18px 0 14px; }
.v5-documents p { color:#747474; font-size:14px; line-height:1.8; margin:0 0 24px; }
.v5-documents a { margin-top:auto; align-self:start; }
.v5-docs-section>.text-link { margin-top:25px; }
.v5-document-guide { max-width:850px; margin-top:60px; font-size:16px; line-height:1.9; }
.v5-document-guide h2 { font-size:29px; margin-top:42px; }
.v5-portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.v5-photo-button { border:0; padding:0; background:none; width:100%; cursor:zoom-in; }
.v5-photo-button img { width:100%; height:250px; object-fit:cover; display:block; }
.v5-lightbox { max-width:94vw; max-height:94vh; padding:20px; border:0; }
.v5-lightbox::backdrop { background:#000c; }
.v5-lightbox img { display:block; max-width:85vw; max-height:75vh; object-fit:contain; }
.v5-lightbox button { display:block; margin-left:auto; padding:10px; cursor:pointer; }
.v5-detail-modes { padding-top:25px; display:flex; gap:25px; flex-wrap:wrap; font-size:14px; }
.v5-detail-modes a { padding-bottom:10px; border-bottom:2px solid #ddd; text-decoration:none; }
.v5-detail-modes a[aria-current] { border-color:#eac437; font-weight:700; }
@media(max-width:1100px) {
  .v5-reading-layout { grid-template-columns:minmax(0,1fr) 265px; gap:30px; }
  .v5-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v5-stage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v5-stage-grid img { height:230px; }
  .v5-tabs-ready .v5-price-layout { grid-template-columns:240px minmax(0,1fr); gap:20px; }
  .v5-tabs-ready .v5-price-single { grid-template-columns:1fr; }
  .v5-price-table td,.v5-price-table th:last-child { width:155px; }
  .v5-price-table td { font-size:15px; }
}
@media(max-width:800px) {
  .v5-residential-hero { min-height:0; padding-block:55px; }
  .v5-residential-hero h1 { font-size:40px; }
  .v5-residential-hero .hero-accent { font-size:18px; }
  .v5-reading-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
  .v5-reading-aside { grid-row:1; }
  .v5-sticky { position:static; max-height:none; overflow:visible; }
  .v5-toc { padding:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .v5-toc h2 { grid-column:1/-1; }
  .v5-aside-cta,.v5-aside-links { display:none; }
  .v5-split { grid-template-columns:1fr; gap:20px; }
  .v5-surveys figure { max-width:600px; margin:0 auto; }
  .v5-documents { grid-template-columns:1fr; }
  .v5-tabs-ready .v5-price-layout { grid-template-columns:1fr; gap:25px; }
  .v5-tabs-ready .v5-price-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:0; }
  .v5-tabs-ready .v5-price-single .v5-price-tabs { display:none; }
  .v5-price-tabs button { border-bottom:1px solid #dedede; min-width:0; }
}
@media(max-width:560px) {
  .v5-residential-hero { padding:42px 0 46px; background-position:center,60% center; background-image:linear-gradient(90deg,rgba(18,22,23,.91),rgba(18,22,23,.66)),url('/assets/media/v5/hero-residential.jpg'); }
  .v5-residential-hero h1 { font-size:33px; max-width:100%; }
  .v5-residential-hero .hero-accent { font-size:16px; }
  .v5-hero-points { display:block; margin-bottom:25px; font-size:13px; }
  .v5-hero-points li { margin-bottom:12px; }
  .v5-residential-hero .hero-actions { flex-direction:column; align-items:flex-start; gap:22px; }
  .v5-residential-hero .button { width:100%; }
  .v5-benefits { gap:25px; grid-template-columns:1fr; padding-block:28px; }
  .v5-benefits p { font-size:13px; }
  .v5-section-heading h2 { font-size:28px; }
  .v5-tabs-ready .v5-price-tabs { grid-template-columns:1fr; }
  .v5-price-tabs button { min-height:50px; padding:13px 18px; }
  .v5-price-table th,.v5-price-table td { padding:14px 9px; }
  .v5-price-table td,.v5-price-table th:last-child { width:113px; }
  .v5-price-table tbody th { font-size:13px; }
  .v5-price-table th span { font-size:11px; }
  .v5-price-table td { font-size:13px; white-space:normal; }
  .v5-price-panel h3 { font-size:20px; }
  .v5-split h2 { font-size:27px; }
  .v5-stage-grid { grid-template-columns:1fr; gap:24px; }
  .v5-stage-grid img { height:auto; max-height:250px; }
  .v5-stage-grid p { font-size:14px; }
  .v5-toc { display:block; }
  .v5-toc a { font-size:13px; }
  .v5-reading-body h2 { font-size:25px; }
  .v5-reading-body p { font-size:15px; }
  .v5-example { padding:20px!important; }
  .v5-example dt { font-size:23px; }
  .v5-standards dl>div { grid-template-columns:1fr; gap:8px; }
  .v5-documents article { padding:24px; }
  .v5-portfolio-grid { grid-template-columns:1fr; }
  .v5-technical-image { margin-block:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .type-card,.v4-purpose-grid article,.v4-variant-grid article { transition:none; }
}

.v5-reading-meta { margin-top:-12px; margin-bottom:0; color:#656565; font-size:13px; line-height:1.6; }

/* Detailed foundation estimates and control points. */
.slab-estimate,.slab-acceptance { scroll-margin-top:110px; }
.slab-quantities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 30px; border:1px solid #e1e1e1; }
.slab-quantities>div { padding:23px 26px; border-right:1px solid #e1e1e1; }
.slab-quantities>div:last-child { border:0; background:#fff9e7; }
.slab-quantities dt { font-size:13px; line-height:1.6; color:#626262; }
.slab-quantities dd { margin:8px 0; font-size:30px; font-weight:700; }
.slab-quantities span { display:block; font-size:12px; font-weight:400; color:#626262; line-height:1.65; }
.slab-estimate-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:32px; align-items:start; }
.slab-estimate-main { min-width:0; }
.slab-estimate-table,.slab-control-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; line-height:1.75; }
.slab-estimate-table caption { text-align:left; font-weight:600; margin-bottom:16px; }
.slab-estimate-table th,.slab-estimate-table td,.slab-control-table th,.slab-control-table td { padding:16px 12px; text-align:left; vertical-align:top; border-bottom:1px solid #e0e0e0; overflow-wrap:anywhere; }
.slab-estimate-table thead,.slab-control-table thead { background:#303234; color:#fff; }
.slab-estimate-table thead th,.slab-control-table thead th { font-size:12px; font-weight:500; }
.slab-estimate-table th:first-child { width:37%; }
.slab-estimate-table tbody th span { display:block; margin-top:7px; font-size:12px; font-weight:400; color:#626262; line-height:1.65; }
.slab-estimate-table tbody td:last-child { font-weight:700; }
.slab-estimate-table tbody tr:nth-child(even),.slab-control-table tbody tr:nth-child(even) { background:#f7f7f7; }
.slab-unpriced { font-size:12px; font-weight:400; color:#656565; }
.slab-rate-explanation { margin-top:22px; padding:17px 20px; border:1px solid #e1e1e1; font-size:13px; line-height:1.8; }
.slab-rate-explanation summary { cursor:pointer; font-weight:600; }
.slab-rate-explanation p { margin:14px 0 0; color:#626262; }
.slab-estimate-summary { padding:28px; background:#fff9e7; border-top:3px solid #eac437; }
.slab-estimate-summary>strong { display:block; font-size:32px; line-height:1.35; }
.slab-estimate-summary p,.slab-estimate-summary li { font-size:13px; line-height:1.8; color:#565656; }
.slab-estimate-summary h3 { font-size:17px; line-height:1.5; margin-top:25px; }
.slab-estimate-summary ul { padding-left:18px; }
.slab-estimate-summary li { margin-bottom:10px; }
.slab-estimate-summary .button { width:100%; min-width:0; padding:16px 12px; font-size:12px; margin-top:12px; }
.slab-estimate-summary>.text-link { font-size:12px; margin-top:22px; }
.slab-control-table th:first-child { width:24%; }
.slab-control-table a { color:inherit; text-underline-offset:4px; }
.slab-control-table a:hover { color:#7c5c00; }
.v5-reading-body p.slab-control-note { margin-top:20px; font-size:13px; color:#626262; }
.slab-control-actions { display:flex; flex-wrap:wrap; gap:20px 30px; font-size:13px; }
@media(max-width:1100px) {
  .slab-estimate-layout { grid-template-columns:minmax(0,1fr) 290px; gap:22px; }
  .slab-estimate-summary { padding:24px; }
}
@media(max-width:800px) {
  .slab-estimate-layout { grid-template-columns:1fr; }
  .slab-quantities>div { padding:18px; }
  .slab-quantities dd { font-size:27px; }
}
@media(max-width:560px) {
  .slab-quantities { grid-template-columns:1fr; }
  .slab-quantities>div { border-right:0; border-bottom:1px solid #e1e1e1; }
  .slab-estimate-table thead,.slab-control-table thead { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
  .slab-estimate-table tbody,.slab-estimate-table tr,.slab-estimate-table th,.slab-estimate-table td,.slab-control-table tbody,.slab-control-table tr,.slab-control-table th,.slab-control-table td { display:block; width:100%; box-sizing:border-box; }
  .slab-estimate-table th:first-child,.slab-control-table th:first-child { width:100%; }
  .slab-estimate-table tr,.slab-control-table tr { border:1px solid #e1e1e1; margin-bottom:12px; padding:8px 5px; }
  .slab-estimate-table tbody th,.slab-control-table tbody th { border:0; padding:12px; }
  .slab-estimate-table td { display:flex; justify-content:space-between; gap:15px; padding:8px 12px; border:0; }
  .slab-estimate-table td::before { content:attr(data-label); font-size:12px; font-weight:400; color:#626262; }
  .slab-control-table td { padding:8px 12px 12px; border:0; }
  .slab-control-table td::before { display:block; content:attr(data-label); font-size:12px; font-weight:700; margin-bottom:4px; }
  .slab-control-actions { flex-direction:column; align-items:flex-start; gap:20px; }
}

/* Author-written practical examples: same palette and reading layout. */
.v6-practice { scroll-margin-top:110px; }
.v6-practice-list { margin:28px 0; border-top:2px solid #eac437; }
.v6-practice-list>div { display:grid; grid-template-columns:170px minmax(0,1fr); gap:26px; padding:23px 0; border-bottom:1px solid #e2e2e2; }
.v6-practice-list dt { font-size:15px; line-height:1.7; font-weight:700; }
.v6-practice-list dd { margin:0; color:#555; font-size:16px; line-height:1.9; }
.v6-practice.section>.v5-technical-image { max-width:820px; }
.v6-foundation-estimate>p { max-width:920px; line-height:1.85; color:#555; margin-bottom:30px; }
.slab-quantities .v6-formula { font-size:20px; line-height:1.55; }
.v6-pile-example { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:40px; align-items:start; }
.v6-pile-example h3 { font-size:27px; line-height:1.5; margin:0 0 22px; }
.v6-pile-example p { line-height:1.85; color:#555; }
.v6-type-reading .slab-control-table { margin-bottom:22px; }
@media(max-width:800px) {
  .v6-pile-example { grid-template-columns:1fr; gap:24px; }
}
@media(max-width:560px) {
  .v4-commercial-hero>*,.inquiry-layout>* { min-width:0; }
  .v4-commercial-hero h1,.inquiry-layout h2 { overflow-wrap:anywhere; hyphens:auto; }
  .v6-practice-list>div { grid-template-columns:1fr; gap:8px; padding:20px 0; }
  .v6-practice-list dd { font-size:15px; }
  .v6-pile-example h3 { font-size:24px; }
}

/* Commercial pages use wide service sections. The reading sidebar belongs to articles only. */
.v7-commercial-content { display:block; }
.v7-commercial-content>section { padding:38px 0; margin:0; border-bottom:1px solid #e3e3e3; scroll-margin-top:110px; }
.v7-commercial-content>section:first-child { padding-top:0; }
.v7-commercial-content>section:last-child { border-bottom:0; }
.v7-commercial-content h2 { font-size:32px; line-height:1.35; margin:0 0 24px; overflow-wrap:break-word; }
.v7-commercial-content h3 { font-size:20px; line-height:1.5; }
.v7-commercial-content p { font-size:16px; line-height:1.85; margin:0 0 20px; max-width:920px; }
.v7-commercial-content .fine-print { font-size:13px; color:#707070; }
.v7-commercial-content .v7-detail-illustrated { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; }
.v7-detail-copy { min-width:0; }
.v7-detail-illustrated>.v5-technical-image { margin:0; }
.v7-commercial-content>.v6-practice { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); column-gap:48px; }
.v7-commercial-content>.v6-practice>.v5-kicker,.v7-commercial-content>.v6-practice>h2,.v7-commercial-content>.v6-practice>p { grid-column:1/-1; }
.v7-commercial-content>.v6-practice>.v6-practice-list { grid-column:1; grid-row:4; margin:15px 0 20px; }
.v7-commercial-content>.v6-practice>.v5-technical-image { grid-column:2; grid-row:4; align-self:center; }
.v7-commercial-content .v6-practice-list>div { grid-template-columns:1fr; gap:8px; padding:18px 0; }
.v7-commercial-content .v6-practice-list dd { font-size:15px; }
.v7-commercial-content .slab-control-table { margin-bottom:25px; }
.v7-commercial-content>.v5-example { margin:30px 0; }
@media(max-width:800px) {
  .v7-commercial-content .v7-detail-illustrated { grid-template-columns:1fr; gap:20px; }
  .v7-commercial-content>.v6-practice { display:block; }
  .v7-commercial-content h2 { font-size:27px; }
}
@media(max-width:560px) {
  .v7-commercial-content>section { padding-block:28px; }
  .v7-commercial-content h2 { font-size:25px; hyphens:auto; }
  .v7-commercial-content p { font-size:15px; }
}
