/*
Theme Name: Elite Crete Premium
Theme URI: https://www.elitecrete509.com/
Author: Elite Crete
Description: A lightweight custom WordPress theme for Elite Crete's Spokane concrete services.
Version: 1.4.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: elite-crete-premium
*/

:root { --ink:#171b1c; --paper:#f3f0e9; --copper:#c86d3b; --copper-dark:#a84e21; --brand-blue:#4d96c1; --brand-blue-dark:#327aa4; --brand-blue-wash:#e7f6ff; --brand-silver:#c7c8ca; --muted:#626763; --line:rgba(23,27,28,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.site-header { position:absolute; z-index:10; inset:0 0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:92px; padding:0 4.5vw; color:#fff; border-bottom:1px solid rgba(255,255,255,.22); }
.brand { display:inline-flex; align-items:center; width:max-content; }
.brand-logo { display:block; width:105px; height:78px; background:url('assets/images/elite-crete-current-logo.png') center/contain no-repeat; filter:drop-shadow(0 3px 10px rgba(0,0,0,.18)); }
.brand .custom-logo { display:block; width:105px; height:78px; object-fit:contain; filter:drop-shadow(0 3px 10px rgba(0,0,0,.18)); }
.desktop-nav { display:flex; align-items:center; gap:34px; }
.desktop-nav .elite-menu { display:flex; align-items:center; gap:34px; margin:0; padding:0; list-style:none; }
.desktop-nav a { font-size:13px; font-weight:700; color:rgba(255,255,255,.8); transition:color .2s ease; }
.desktop-nav a:hover,.desktop-nav a:focus-visible { color:#fff; }
.header-cta { justify-self:end; padding:13px 18px; border:1px solid rgba(103,177,218,.72); box-shadow:inset 0 -2px 0 rgba(77,150,193,.42); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; transition:background .2s ease,color .2s ease; }
.header-cta:hover,.header-cta:focus-visible { background:var(--brand-blue); color:#fff; }
.hero { position:relative; min-height:760px; height:min(900px,100vh); display:flex; align-items:center; overflow:hidden; background:#262d2d; color:#fff; }
.hero-backdrop { position:absolute; inset:0; background:#262d2d url('assets/images/projects/hero-real-project.jpg') center/cover no-repeat; transform:scale(1.01); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,15,16,.91) 0%,rgba(11,15,16,.67) 44%,rgba(11,15,16,.1) 76%),linear-gradient(0deg,rgba(11,15,16,.32),transparent 50%); }
.hero-content { position:relative; z-index:1; width:min(750px,90vw); padding:116px 0 30px; margin-left:8.6vw; }
.eyebrow { margin:0; color:var(--copper-dark); font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow.light { color:#77b9de; }
.hero h1 { max-width:740px; margin:22px 0 24px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(58px,6.7vw,104px); font-weight:400; line-height:.95; letter-spacing:-.055em; }
.hero-copy { max-width:580px; margin:0; color:rgba(255,255,255,.76); font-size:clamp(16px,1.35vw,20px); line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:14px; margin-top:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:32px; min-height:54px; padding:0 23px; font-size:13px; font-weight:800; transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--copper); color:#fff; }
.button-primary:hover,.button-primary:focus-visible { background:#db7a44; }
.button-quiet { border:1px solid rgba(98,171,211,.72); box-shadow:inset 0 -2px 0 rgba(77,150,193,.25); color:#fff; }
.button-quiet:hover,.button-quiet:focus-visible { border-color:#81c2e5; background:rgba(77,150,193,.16); }
.hero-reassurance { margin:16px 0 0; color:rgba(255,255,255,.53); font-size:11px; letter-spacing:.06em; }
.hero-caption { position:absolute; z-index:1; right:4.5vw; bottom:34px; display:flex; gap:12px; color:rgba(199,200,202,.78); font-family:Georgia,"Times New Roman",serif; font-size:12px; font-style:italic; }
.hero-caption span+span::before { content:"/"; margin-right:12px; opacity:.45; }
.trust-band { position:relative; display:grid; grid-template-columns:minmax(270px,.75fr) 2fr; gap:6vw; padding:52px 5.5vw 58px; background:linear-gradient(90deg,var(--brand-blue-wash) 0 5px,var(--paper) 5px); border-bottom:1px solid var(--line); }
.trust-intro>p:last-child { max-width:310px; margin:10px 0 0; color:var(--muted); font-family:Georgia,serif; font-size:18px; line-height:1.45; }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.trust-item { display:flex; gap:18px; padding:2px 2vw 2px 0; border-right:1px solid var(--line); }
.trust-item+.trust-item { padding-left:2vw; }
.trust-item:last-child { border-right:0; }
.trust-item>span { color:var(--brand-blue-dark); font-family:Georgia,serif; font-size:13px; font-style:italic; }
.trust-item h2 { margin:0 0 7px; font-size:14px; }
.trust-item p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }

.about-section { display:grid; grid-template-columns:.55fr 1.45fr; gap:8vw; align-items:center; padding:110px 8vw; background:linear-gradient(135deg,var(--brand-blue-wash) 0 12%,#dfd9ce 12.2% 100%); }
.about-number { justify-self:end; color:rgba(23,27,28,.11); font-family:Georgia,"Times New Roman",serif; font-size:clamp(150px,20vw,300px); line-height:.72; letter-spacing:-.1em; }
.about-number span { color:var(--copper); font-size:.33em; vertical-align:top; }
.about-copy { max-width:820px; }
.about-copy h2 { margin:16px 0 28px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(44px,5vw,76px); font-weight:400; line-height:1; letter-spacing:-.05em; }
.about-copy>p:not(.eyebrow) { max-width:680px; margin:0; color:var(--muted); font-size:16px; line-height:1.8; }
.about-actions { display:flex; align-items:center; gap:28px; margin-top:34px; }
.dark-button { background:var(--ink); color:#fff; }
.dark-button:hover,.dark-button:focus-visible { background:#303737; }
.text-link { border-bottom:1px solid rgba(77,150,193,.55); padding:8px 0; color:var(--brand-blue-dark); font-size:12px; font-weight:800; }

.services-section { padding:110px 5.5vw 0; overflow:hidden; }
.section-heading { display:grid; grid-template-columns:1.3fr .7fr; gap:8vw; align-items:end; max-width:1350px; margin:0 auto 58px; }
.section-heading h2 { max-width:820px; margin:14px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,4.6vw,70px); font-weight:400; line-height:1.02; letter-spacing:-.045em; }
.section-heading>p { max-width:440px; margin:0; color:var(--muted); font-size:15px; line-height:1.75; }
.service-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; max-width:1450px; margin:0 auto; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-card { position:relative; padding:26px 1.35vw 36px; background:var(--paper); }
.service-number { display:block; margin-bottom:20px; color:var(--copper-dark); font-family:Georgia,serif; font-size:13px; font-style:italic; }
.service-visual { position:relative; height:220px; overflow:hidden; margin-bottom:25px; background:#7d817c center/cover no-repeat; }
.service-visual::before,.service-visual::after { content:""; position:absolute; inset:0; }
.service-visual::before { background:linear-gradient(135deg,rgba(77,150,193,.13),transparent 44%); opacity:1; }
.service-visual::after { background:linear-gradient(0deg,rgba(15,18,18,.5),transparent 60%); }
.service-visual-1 { background-image:url('assets/images/projects/active-pour.jpg'); background-position:50% center; }
.service-visual-2 { background-image:url('assets/images/projects/finished-porch.jpg'); background-position:center; }
.service-visual-3 { background-image:url('assets/images/projects/reinforced-slab.jpg'); background-position:48% center; }
.service-visual-4 { background-image:url('assets/images/projects/concrete-steps.jpg'); background-position:center; }
.service-visual-5 { background-image:url('assets/images/projects/finished-driveway.jpg'); background-position:54% center; }
.service-visual span { position:absolute; z-index:1; left:18px; bottom:16px; color:rgba(255,255,255,.8); font-family:Georgia,serif; font-size:13px; font-style:italic; }
.service-copy h3 { margin:0 0 10px; font-family:Georgia,"Times New Roman",serif; font-size:24px; font-weight:400; line-height:1.15; }
.service-copy p { min-height:72px; margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.65; }
.service-copy a { display:inline-flex; gap:12px; border-bottom:1px solid var(--line); padding-bottom:5px; color:var(--ink); font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.projects-block { max-width:1450px; margin:110px auto 0; padding:78px 5vw 60px; background:#171b1c; color:#fff; }
.projects-heading { display:grid; grid-template-columns:1.35fr .65fr; gap:8vw; align-items:end; padding-bottom:54px; border-bottom:1px solid rgba(255,255,255,.15); }
.projects-heading h2 { max-width:800px; margin:15px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(40px,4vw,66px); font-weight:400; line-height:1.03; letter-spacing:-.045em; }
.projects-heading>div:last-child>p { margin:0 0 22px; color:rgba(255,255,255,.58); font-size:14px; line-height:1.75; }
.projects-heading a { display:inline-flex; gap:12px; border-bottom:1px solid rgba(77,150,193,.58); padding-bottom:6px; color:#79bde3; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.project-area-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.project-area-grid article { padding:40px 2.2vw 10px; border-right:1px solid rgba(255,255,255,.13); }
.project-area-grid article:first-child { padding-left:0; }
.project-area-grid article:last-child { border-right:0; }
.project-symbol { position:relative; height:140px; margin-bottom:28px; overflow:hidden; background:#303637 center/cover no-repeat; }
.project-symbol::before,.project-symbol::after { content:""; position:absolute; }
.project-symbol span { position:absolute; z-index:2; left:14px; bottom:12px; color:rgba(255,255,255,.58); font-family:Georgia,serif; font-size:12px; font-style:italic; }
.project-symbol::before { inset:0; background:linear-gradient(0deg,rgba(10,14,15,.7),rgba(10,14,15,.02) 70%); }
.project-symbol::after { inset:0; border-top:3px solid rgba(77,150,193,.65); }
.project-symbol-1 { background-image:url('assets/images/projects/long-driveway.jpg'); background-position:center 48%; }
.project-symbol-2 { background-image:url('assets/images/projects/finished-walkway.jpg'); background-position:center 46%; }
.project-symbol-3 { background-image:url('assets/images/projects/porch-slab.jpg'); background-position:center 50%; }
.project-symbol-4 { background-image:url('assets/images/projects/garage-slab.jpg'); background-position:center 55%; }
.project-area-grid h3 { margin:0 0 11px; font-family:Georgia,"Times New Roman",serif; font-size:23px; font-weight:400; }
.project-area-grid p { min-height:84px; margin:0 0 20px; color:rgba(255,255,255,.52); font-size:12px; line-height:1.7; }
.project-area-grid a { color:#79bde3; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.process-panel { display:grid; grid-template-columns:.8fr 1.4fr; gap:8vw; max-width:1450px; margin:110px auto 0; padding:78px 5vw; background:var(--ink); color:#fff; }
.process-title h2 { margin:16px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(34px,3.2vw,54px); font-weight:400; line-height:1.08; letter-spacing:-.035em; }
.process-steps { display:grid; grid-template-columns:repeat(3,1fr); }
.process-steps article { padding:0 2.2vw; border-left:1px solid rgba(255,255,255,.16); }
.process-steps span { color:#79bde3; font-family:Georgia,serif; font-size:13px; font-style:italic; }
.process-steps h3 { margin:28px 0 11px; font-size:15px; }
.process-steps p { margin:0; color:rgba(255,255,255,.56); font-size:12px; line-height:1.7; }

.faq-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:9vw; padding:110px 8vw; background:var(--paper); }
.faq-intro h2 { margin:15px 0 22px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,4.4vw,68px); font-weight:400; line-height:1.02; letter-spacing:-.045em; }
.faq-intro>p:last-child { max-width:470px; margin:0; color:var(--muted); font-size:14px; line-height:1.75; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:82px; cursor:pointer; list-style:none; font-family:Georgia,"Times New Roman",serif; font-size:20px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span:last-child { color:var(--copper-dark); font-family:Arial,Helvetica,sans-serif; font-size:20px; transition:transform .2s ease; }
.faq-list details[open] summary span:last-child { transform:rotate(45deg); }
.faq-list details>p { max-width:720px; margin:0; padding:0 45px 26px 0; color:var(--muted); font-size:13px; line-height:1.75; }

.estimate-section { display:grid; grid-template-columns:.82fr 1.18fr; gap:9vw; padding:120px 8vw; background:#dfd9ce; }
.estimate-intro h2 { max-width:570px; margin:16px 0 22px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(50px,5vw,78px); font-weight:400; line-height:.98; letter-spacing:-.05em; }
.estimate-lead { max-width:480px; margin:0 0 46px; color:var(--muted); font-size:17px; line-height:1.65; }
.estimate-promise { display:flex; align-items:flex-start; gap:15px; max-width:450px; padding:20px 0; border-top:1px solid var(--line); }
.estimate-promise>span { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; margin-top:2px; border-radius:50%; background:var(--brand-blue); color:#fff; font-size:11px; }
.estimate-promise p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
.estimate-promise strong { color:var(--ink); font-size:14px; }
.lead-card { align-self:center; overflow:hidden; background:#fff; box-shadow:0 30px 80px rgba(35,30,23,.11); border-top:4px solid var(--brand-blue); }
.lead-card-top { display:flex; align-items:center; gap:18px; padding:34px 40px 30px; border-bottom:1px solid var(--line); }
.lead-logo { display:block; flex:0 0 82px; width:82px; height:62px; background:url('assets/images/elite-crete-current-logo.png') center/contain no-repeat; filter:drop-shadow(0 5px 10px rgba(23,27,28,.14)); }
.lead-status { display:flex; align-items:center; gap:8px; margin:8px 0 0; color:var(--muted); font-size:12px; }
.lead-status span { width:7px; height:7px; border-radius:50%; background:#5d9a65; box-shadow:0 0 0 4px rgba(93,154,101,.12); }
.lead-card-copy { padding:38px 40px 32px; }
.lead-card-copy h3 { margin:0 0 14px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(31px,3vw,45px); font-weight:400; line-height:1.08; letter-spacing:-.035em; }
.lead-card-copy>p { max-width:560px; margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.lead-options { display:grid; grid-template-columns:repeat(3,1fr); margin-top:30px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.lead-options span { display:grid; gap:8px; min-height:92px; align-content:center; padding:16px; border-right:1px solid var(--line); color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:14px; }
.lead-options span:last-child { border-right:0; }
.lead-options strong { color:var(--brand-blue-dark); font:800 10px Arial,Helvetica,sans-serif; letter-spacing:.12em; }
.lead-button { display:flex; align-items:center; justify-content:space-between; min-height:68px; margin:0 40px; background:var(--copper); padding:0 24px; color:#fff; font-size:13px; font-weight:800; letter-spacing:.02em; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.lead-button:hover,.lead-button:focus-visible { transform:translateY(-2px); background:var(--copper-dark); box-shadow:0 12px 26px rgba(168,78,33,.2); }
.lead-button span { font-size:20px; }
.lead-note { margin:18px 40px 28px; color:#7d817d; font-size:10px; line-height:1.5; text-align:center; }
.contact-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); color:#fff; }
.contact-strip>div { display:grid; min-height:132px; align-content:center; gap:9px; padding:24px 3vw; background:#171b1c; }
.contact-strip span { color:#79bde3; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.contact-strip a,.contact-strip p { margin:0; color:rgba(255,255,255,.76); font-family:Georgia,"Times New Roman",serif; font-size:16px; line-height:1.4; }
.contact-strip a:hover,.contact-strip a:focus-visible { color:#fff; }
footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:36px 5.5vw; background:#111516; color:#fff; }
.footer-brand .brand-logo { width:100px; height:70px; }
footer>p { margin:0; color:rgba(255,255,255,.46); font-family:Georgia,serif; font-size:13px; font-style:italic; }
.footer-links { justify-self:end; display:flex; align-items:center; gap:24px; }
.footer-links a { color:#e9a478; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.footer-links a:first-child { color:#79bde3; }
.mobile-estimate { display:none; }
*:focus-visible { outline:3px solid #f0a778; outline-offset:4px; }
@media(max-width:1200px){ .service-grid{grid-template-columns:repeat(3,1fr)}.project-area-grid{grid-template-columns:1fr 1fr}.project-area-grid article:nth-child(2){border-right:0}.project-area-grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.13)}.contact-strip{grid-template-columns:1fr 1fr} }
@media(max-width:1050px){ .about-section{grid-template-columns:.4fr 1.6fr;padding-inline:5vw}.process-panel{grid-template-columns:1fr}.estimate-section{gap:5vw;padding-inline:5vw} }
@media(max-width:900px){ .site-header{grid-template-columns:1fr auto;padding:0 24px}.desktop-nav{display:none}.hero-content{margin-left:24px}.trust-band{grid-template-columns:1fr;gap:34px}.about-section{grid-template-columns:1fr}.about-number{justify-self:start;font-size:160px}.section-heading,.projects-heading{grid-template-columns:1fr;gap:24px}.service-grid{grid-template-columns:1fr 1fr}.process-steps{gap:0}.faq-section{grid-template-columns:1fr}.estimate-section{grid-template-columns:1fr}.lead-card{max-width:720px}.footer-brand .brand-name{display:none} }
@media(max-width:650px){ body{padding-bottom:58px}.site-header{min-height:76px}.brand-logo{width:88px;height:68px}.header-cta{display:none}.hero{height:auto;min-height:730px;align-items:flex-end}.hero-backdrop{background-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(11,15,16,.88),rgba(11,15,16,.46)),linear-gradient(0deg,rgba(11,15,16,.88),transparent 70%)}.hero-content{margin:0;padding:130px 22px 76px}.hero h1{font-size:clamp(49px,15vw,72px)}.hero-actions{align-items:stretch;flex-direction:column}.button{width:100%}.hero-caption{display:none}.trust-band{padding:42px 22px}.trust-grid{grid-template-columns:1fr}.trust-item,.trust-item+.trust-item{padding:20px 0;border-right:0;border-bottom:1px solid var(--line)}.trust-item:last-child{border-bottom:0}.about-section{padding:78px 22px}.about-number{font-size:130px}.about-actions{align-items:stretch;flex-direction:column}.text-link{text-align:center}.services-section{padding:82px 22px 0}.service-grid{grid-template-columns:1fr}.service-card{padding:24px 0 32px}.service-visual{height:250px}.service-copy p{min-height:0}.projects-block{margin:70px -22px 0;padding:58px 22px}.project-area-grid{grid-template-columns:1fr}.project-area-grid article,.project-area-grid article:first-child{padding:28px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}.project-area-grid article:last-child{border-bottom:0}.project-area-grid p{min-height:0}.process-panel{margin:70px -22px 0;padding:58px 22px}.process-steps{grid-template-columns:1fr}.process-steps article{padding:24px 0;border-left:0;border-top:1px solid rgba(255,255,255,.16)}.process-steps h3{margin:11px 0 8px}.faq-section{padding:82px 22px}.faq-list summary{font-size:18px}.estimate-section{padding:82px 22px}.lead-card-top,.lead-card-copy{padding:26px 22px}.lead-options{grid-template-columns:1fr}.lead-options span{min-height:66px;border-right:0;border-bottom:1px solid var(--line)}.lead-options span:last-child{border-bottom:0}.lead-button{margin:0 22px}.lead-note{margin:16px 22px 24px}.lead-note span{display:none}.contact-strip{grid-template-columns:1fr}.contact-strip>div{min-height:105px;padding:22px}footer{grid-template-columns:1fr;padding:30px 22px}.footer-brand{display:none}footer>p{text-align:left}.footer-links{display:none}.mobile-estimate{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 22px;background:var(--copper);color:#fff;font-size:13px;font-weight:800;box-shadow:0 -8px 28px rgba(19,19,17,.18)} }
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important} }

/* WordPress integration */
.admin-bar .site-header { top:32px; }
.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.content-shell { width:min(1100px,calc(100% - 44px)); min-height:60vh; margin:0 auto; padding:150px 0 90px; }
.content-shell h1 { margin:0 0 30px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(44px,6vw,76px); font-weight:400; letter-spacing:-.04em; }
.content-shell .entry-content { font-size:16px; line-height:1.8; }
.content-shell .entry-content img { max-width:100%; height:auto; }
.inner-page .site-header { position:relative; background:#171b1c; }
.page-hero { position:relative; min-height:590px; display:flex; align-items:flex-end; padding:150px 8vw 84px; background:#202829 url('assets/images/projects/garage-apron.jpg') center/cover no-repeat; color:#fff; }
.page-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,16,17,.9),rgba(12,16,17,.48) 56%,rgba(12,16,17,.1)); }
.page-hero>div { position:relative; z-index:1; max-width:850px; }
.page-hero h1 { margin:18px 0 24px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(54px,7vw,96px); font-weight:400; line-height:.96; letter-spacing:-.055em; }
.page-hero>div>p:not(.eyebrow) { max-width:640px; margin:0 0 30px; color:rgba(255,255,255,.74); font-size:18px; line-height:1.7; }
.project-page-hero { background-image:url('assets/images/projects/hero-real-project.jpg'); }
.about-page-hero { background-image:url('assets/images/projects/covered-patio.jpg'); }
.faq-page-hero { background-image:url('assets/images/projects/finished-walkway.jpg'); }
.contact-page-hero { background-image:url('assets/images/projects/long-driveway.jpg'); }
.page-section { padding:110px 5.5vw; }
.page-heading { max-width:920px; margin:0 auto 55px; text-align:center; }
.page-heading h2 { margin:15px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,5vw,70px); font-weight:400; line-height:1.03; letter-spacing:-.045em; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; max-width:1320px; margin:auto; }
.detail-card { overflow:hidden; background:#fff; box-shadow:0 18px 55px rgba(35,30,23,.08); }
.detail-card:last-child { grid-column:1/-1; display:grid; grid-template-columns:.8fr 1.2fr; }
.detail-card img { display:block; width:100%; height:310px; object-fit:cover; }
.detail-card:last-child img { height:100%; min-height:340px; }
.detail-card>div { padding:32px; }
.detail-card h2,.gallery-grid h2,.story-section h2,.values-grid h2 { margin:0 0 13px; font-family:Georgia,"Times New Roman",serif; font-size:29px; font-weight:400; }
.detail-card p { margin:0 0 22px; color:var(--muted); font-size:14px; line-height:1.7; }
.detail-card a { color:var(--brand-blue-dark); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; max-width:1320px; margin:auto; }
.gallery-grid article { position:relative; min-height:430px; overflow:hidden; background:#171b1c; color:#fff; }
.gallery-grid img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.gallery-grid article:hover img { transform:scale(1.025); }
.gallery-grid article::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,13,14,.82),transparent 62%); }
.gallery-grid article>div { position:absolute; z-index:2; left:28px; right:28px; bottom:25px; }
.gallery-grid h2 { margin:0 0 4px; }
.gallery-grid p { margin:0; color:rgba(255,255,255,.66); font-size:12px; }
.story-section { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; padding:110px 8vw; background:#dfd9ce; }
.story-image img { display:block; width:100%; min-height:540px; object-fit:cover; }
.story-section h2 { margin:16px 0 25px; font-size:clamp(42px,5vw,70px); line-height:1.03; letter-spacing:-.045em; }
.story-section>div>p:not(.eyebrow) { color:var(--muted); font-size:15px; line-height:1.8; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; padding:0 8vw 110px; background:var(--line); }
.values-grid article { padding:46px 38px; background:var(--paper); }
.values-grid span { color:var(--brand-blue-dark); font-family:Georgia,serif; font-style:italic; }
.values-grid h2 { margin-top:28px; }
.values-grid p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; }
.faq-page-section { padding:100px 12vw; }
.faq-page-section .faq-list { max-width:1000px; margin:auto; }
.page-cta { padding:90px 8vw; background:#171b1c; color:#fff; text-align:center; }
.page-cta h2 { max-width:880px; margin:15px auto 15px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(40px,5vw,70px); font-weight:400; line-height:1.04; letter-spacing:-.045em; }
.page-cta>p:not(.eyebrow) { margin:0 0 28px; color:rgba(255,255,255,.62); }
.page-estimate { padding-top:110px; }
@media(max-width:782px){ .admin-bar .site-header{top:46px} }
@media(max-width:900px){ .detail-grid,.gallery-grid,.story-section{grid-template-columns:1fr}.detail-card:last-child{grid-column:auto;display:block}.values-grid{grid-template-columns:1fr}.story-image img{min-height:400px} }
@media(max-width:650px){ .page-hero{min-height:560px;padding:130px 22px 64px}.page-hero h1{font-size:50px}.page-section{padding:78px 22px}.detail-card img{height:260px}.gallery-grid article{min-height:350px}.story-section{padding:78px 22px}.values-grid{padding:0 22px 78px}.faq-page-section{padding:78px 22px}.page-cta{padding:70px 22px} }

/* Premium Concrete Knowledge articles */
.knowledge-article { background:#f7f4ee; }
.article-hero { --article-image:url('assets/images/projects/hero-real-project.jpg'); position:relative; min-height:720px; display:flex; align-items:flex-end; isolation:isolate; background:#171b1c var(--article-image) center/cover no-repeat; color:#fff; }
.article-hero-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(10,14,15,.93) 0%,rgba(10,14,15,.76) 48%,rgba(10,14,15,.18) 82%),linear-gradient(0deg,rgba(10,14,15,.62),transparent 62%); }
.article-hero-inner { width:min(1120px,calc(100% - 11vw)); margin:0 auto; padding:150px 0 78px; }
.article-hero h1 { max-width:980px; margin:18px 0 25px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(54px,6.6vw,92px); font-weight:400; line-height:.98; letter-spacing:-.052em; }
.article-deck { max-width:750px; margin:0; color:rgba(255,255,255,.72); font-family:Georgia,"Times New Roman",serif; font-size:clamp(18px,1.65vw,24px); line-height:1.55; }
.article-meta { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:34px; padding-top:24px; border-top:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.56); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.article-layout { display:grid; grid-template-columns:260px minmax(0,780px); justify-content:center; gap:7vw; padding:110px 6vw 95px; }
.article-aside { align-self:start; position:sticky; top:40px; padding:30px 0; border-top:3px solid var(--brand-blue); border-bottom:1px solid var(--line); }
.article-aside>p:not(.eyebrow) { margin:15px 0 24px; color:var(--muted); font-family:Georgia,"Times New Roman",serif; font-size:15px; line-height:1.68; }
.article-aside>a { display:inline-flex; gap:13px; padding-bottom:6px; border-bottom:1px solid rgba(77,150,193,.55); color:var(--brand-blue-dark); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.article-content { color:#333938; font-family:Georgia,"Times New Roman",serif; font-size:18px; line-height:1.82; }
.article-content .article-lead { margin:0 0 43px; color:var(--ink); font-size:clamp(23px,2vw,30px); line-height:1.52; letter-spacing:-.015em; }
.article-content h2 { margin:64px 0 20px; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(32px,3.1vw,48px); font-weight:400; line-height:1.1; letter-spacing:-.035em; }
.article-content p { margin:0 0 25px; }
.article-content ul,.article-content ol { margin:28px 0 34px; padding-left:1.25em; }
.article-content li { margin:0 0 14px; padding-left:7px; }
.article-content strong { color:var(--ink); }
.article-content a { color:var(--brand-blue-dark); text-decoration:underline; text-decoration-color:rgba(77,150,193,.38); text-underline-offset:4px; }
.article-callout { margin:45px 0; padding:31px 34px; border-left:4px solid var(--copper); background:#ebe5da; color:#484d4a; font-family:Arial,Helvetica,sans-serif; font-size:15px; line-height:1.72; }
.article-sources { padding-top:25px!important; border-top:1px solid var(--line); font-family:Arial,Helvetica,sans-serif; font-size:13px; line-height:1.6; }
.article-sources li::marker { color:var(--brand-blue-dark); }
.article-cta { display:grid; grid-template-columns:1fr auto; align-items:end; gap:60px; width:min(1320px,calc(100% - 11vw)); margin:0 auto; padding:75px 6vw; background:#171b1c; color:#fff; }
.article-cta h2 { max-width:850px; margin:15px 0 18px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(38px,4.2vw,64px); font-weight:400; line-height:1.03; letter-spacing:-.045em; }
.article-cta>div>p:last-child { max-width:660px; margin:0; color:rgba(255,255,255,.58); font-size:14px; line-height:1.75; }
.article-cta .button { white-space:nowrap; }
.article-return { width:min(1120px,calc(100% - 44px)); margin:0 auto; padding:42px 0 65px; }
.article-return a { color:var(--brand-blue-dark); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
@media(max-width:900px){ .article-layout{grid-template-columns:1fr;padding-inline:8vw}.article-aside{position:static;max-width:560px}.article-cta{grid-template-columns:1fr;align-items:start}.article-cta .button{width:max-content} }
@media(max-width:650px){ .article-hero{min-height:650px}.article-hero-inner{width:calc(100% - 44px);padding:130px 0 60px}.article-hero h1{font-size:46px}.article-deck{font-size:18px}.article-meta{display:grid}.article-layout{padding:75px 22px 70px}.article-content{font-size:17px}.article-content h2{margin-top:52px}.article-callout{padding:26px 23px}.article-cta{width:100%;padding:60px 22px}.article-cta .button{width:100%} }

/* Homepage knowledge showcase */
.knowledge-section { padding:115px 5.5vw 110px; background:#e9e4da; }
.knowledge-heading { display:grid; grid-template-columns:1.3fr .7fr; gap:8vw; align-items:end; max-width:1320px; margin:0 auto 52px; }
.knowledge-heading h2 { max-width:820px; margin:15px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(44px,5vw,72px); font-weight:400; line-height:1.01; letter-spacing:-.05em; }
.knowledge-heading>p { max-width:470px; margin:0; color:var(--muted); font-size:15px; line-height:1.75; }
.knowledge-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:1px; max-width:1320px; margin:auto; background:rgba(23,27,28,.17); }
.knowledge-card { display:grid; grid-template-rows:220px 1fr; background:#f7f4ee; }
.knowledge-card:nth-child(4),.knowledge-card:nth-child(5) { grid-column:span 1; }
.knowledge-featured { grid-row:span 2; grid-template-rows:430px 1fr; }
.knowledge-image { display:block; overflow:hidden; background:#303637; }
.knowledge-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease,filter .5s ease; }
.knowledge-card:hover .knowledge-image img { transform:scale(1.025); filter:saturate(1.05); }
.knowledge-copy { display:flex; flex-direction:column; align-items:flex-start; padding:29px 28px 32px; }
.knowledge-featured .knowledge-copy { padding:38px 40px 42px; }
.knowledge-label { margin:0 0 16px; color:var(--brand-blue-dark); font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.knowledge-copy h3 { margin:0 0 15px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(24px,2vw,34px); font-weight:400; line-height:1.13; letter-spacing:-.025em; }
.knowledge-featured .knowledge-copy h3 { font-size:clamp(34px,3.2vw,52px); }
.knowledge-copy>p:not(.knowledge-label) { margin:0 0 25px; color:var(--muted); font-size:12px; line-height:1.7; }
.knowledge-link { display:inline-flex; gap:12px; margin-top:auto; padding-bottom:5px; border-bottom:1px solid rgba(77,150,193,.48); color:var(--ink); font-size:9px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.knowledge-all { max-width:1320px; margin:34px auto 0; text-align:right; }
.knowledge-all a { display:inline-flex; gap:15px; padding-bottom:7px; border-bottom:1px solid var(--ink); color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }

/* Knowledge archive */
.knowledge-archive-hero { position:relative; min-height:620px; display:flex; align-items:flex-end; padding:150px 8vw 82px; isolation:isolate; background:#171b1c url('assets/images/projects/hero-real-project.jpg') center/cover no-repeat; color:#fff; }
.knowledge-archive-hero::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(10,14,15,.93),rgba(10,14,15,.62) 58%,rgba(10,14,15,.12)),linear-gradient(0deg,rgba(10,14,15,.52),transparent 62%); }
.knowledge-archive-hero>div { max-width:980px; }
.knowledge-archive-hero h1 { margin:18px 0 24px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(54px,6.5vw,92px); font-weight:400; line-height:.97; letter-spacing:-.052em; }
.knowledge-archive-hero>div>p:last-child { max-width:700px; margin:0; color:rgba(255,255,255,.68); font-family:Georgia,"Times New Roman",serif; font-size:20px; line-height:1.6; }
.knowledge-archive { padding:110px 5.5vw; background:#f7f4ee; }
.archive-intro { max-width:1320px; margin:0 auto 50px; }
.archive-intro h2 { margin:14px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,5vw,70px); font-weight:400; line-height:1.02; letter-spacing:-.045em; }
.archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; max-width:1320px; margin:auto; }
.archive-grid article { display:grid; grid-template-rows:330px 1fr; background:#fff; box-shadow:0 18px 55px rgba(35,30,23,.07); }
.archive-image { overflow:hidden; }
.archive-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.archive-grid article:hover img { transform:scale(1.025); }
.archive-grid article>div { display:flex; flex-direction:column; align-items:flex-start; padding:34px 35px 38px; }
.archive-grid h2 { margin:0 0 16px; font-family:Georgia,"Times New Roman",serif; font-size:32px; font-weight:400; line-height:1.14; letter-spacing:-.03em; }
.archive-grid article>div>p:not(.knowledge-label) { margin:0 0 26px; color:var(--muted); font-size:13px; line-height:1.72; }
.archive-pagination { max-width:1320px; margin:45px auto 0; }
.archive-pagination .nav-links { display:flex; gap:8px; }
.archive-pagination a,.archive-pagination span { display:grid; place-items:center; min-width:42px; height:42px; border:1px solid var(--line); font-size:12px; }
.archive-pagination .current { background:var(--ink); color:#fff; }
.knowledge-archive+.article-cta { margin-top:0; }

/* Related reading */
.related-knowledge { width:min(1320px,calc(100% - 11vw)); margin:100px auto 0; }
.related-heading { margin-bottom:38px; }
.related-heading h2 { margin:14px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(38px,4vw,60px); font-weight:400; line-height:1.04; letter-spacing:-.045em; }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.related-grid article { display:grid; grid-template-rows:230px 1fr; background:#fff; }
.related-image { overflow:hidden; }
.related-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.related-grid article:hover img { transform:scale(1.025); }
.related-grid article>div { display:flex; flex-direction:column; align-items:flex-start; padding:26px 27px 30px; }
.related-grid h3 { margin:0 0 24px; font-family:Georgia,"Times New Roman",serif; font-size:24px; font-weight:400; line-height:1.16; }

@media(max-width:1050px){ .knowledge-grid{grid-template-columns:1fr 1fr}.knowledge-featured{grid-column:1/-1;grid-row:auto;grid-template-rows:440px auto}.knowledge-card{grid-template-rows:250px 1fr}.related-grid{grid-template-columns:1fr 1fr}.related-grid article:last-child{display:none} }
@media(max-width:900px){ .knowledge-heading{grid-template-columns:1fr;gap:24px}.archive-grid{grid-template-columns:1fr} }
@media(max-width:650px){ .knowledge-section{padding:78px 22px}.knowledge-grid{grid-template-columns:1fr}.knowledge-featured{grid-column:auto;grid-template-rows:290px auto}.knowledge-card{grid-template-rows:240px auto}.knowledge-copy,.knowledge-featured .knowledge-copy{padding:28px 24px 32px}.knowledge-all{text-align:left}.knowledge-archive-hero{min-height:600px;padding:130px 22px 62px}.knowledge-archive-hero h1{font-size:48px}.knowledge-archive{padding:78px 22px}.archive-grid article{grid-template-rows:250px auto}.archive-grid article>div{padding:28px 24px 32px}.related-knowledge{width:calc(100% - 44px);margin-top:75px}.related-grid{grid-template-columns:1fr}.related-grid article:last-child{display:grid} }
