@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap');
:root{--ink:#151715;--paper:#f3efe6;--white:#fff;--red:#9f2e23;--rust:#c84d2b;--sand:#d1af79;--line:rgba(21,23,21,.15);--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.65}img{max-width:100%;display:block}a{color:inherit}button,a{touch-action:manipulation}.skip{position:absolute;left:-999px;z-index:100;background:#fff;padding:1rem}.skip:focus{left:1rem;top:1rem}.site-header{height:82px;padding:0 max(24px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(23,24,23,.97);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-size:1.25rem;font-weight:800;line-height:1}.brand img{width:54px;height:54px;object-fit:contain}.brand small{display:block;color:#d8cbb0;letter-spacing:.12em;font-size:.72rem;margin-top:5px}.site-header nav{display:flex;align-items:center;gap:30px}.site-header nav a{text-decoration:none;font-size:.88rem;font-weight:600}.site-header nav>a:not(.nav-call):hover{color:#e2caa0}.nav-call{background:var(--red);padding:11px 17px;border-radius:3px}.menu-button{display:none;background:transparent;color:#fff;border:1px solid #777;padding:9px 12px;font:inherit}.hero{min-height:calc(100vh - 82px);position:relative;display:grid;align-items:center;color:#fff;overflow:hidden}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,15,13,.9) 0%,rgba(15,15,13,.58) 48%,rgba(15,15,13,.15) 100%),linear-gradient(0deg,rgba(0,0,0,.4),transparent 45%)}.hero-content{position:relative;width:min(var(--max),calc(100% - 48px));margin:auto;padding:90px 0;max-width:var(--max)}.eyebrow{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.19em;color:var(--rust);margin:0 0 16px}.hero .eyebrow,.contact .eyebrow{color:#e2c392}.hero h1,.gallery-hero h1{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-size:clamp(4.2rem,10vw,8.6rem);line-height:.82;letter-spacing:-.035em;margin:0;max-width:900px}.lede{font-size:clamp(1.05rem,2vw,1.3rem);max-width:670px;margin:32px 0;color:#eee}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 23px;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:800;border:1px solid transparent;border-radius:2px}.button.primary{background:var(--red);color:#fff}.button.primary:hover{background:#c03d2e}.button.secondary{border-color:rgba(255,255,255,.6);color:#fff}.button.secondary.dark{border-color:var(--ink);color:var(--ink)}.trust{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin:27px 0 0}.trust span{margin:0 8px;color:var(--rust)}.section{padding:110px max(24px,calc((100vw - var(--max))/2))}.section-heading{display:grid;grid-template-columns:1fr 1.35fr;column-gap:80px;align-items:end;margin-bottom:55px}.section-heading .eyebrow{grid-column:1}.section-heading h2{grid-column:1;margin:0}.section-heading>p:last-child{grid-column:2;grid-row:1/3;margin:0;font-size:1.1rem;color:#54534e;max-width:590px}h2{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-size:clamp(2.7rem,5.2vw,5rem);line-height:.95;margin:0 0 25px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-grid article{padding:42px 34px 45px 0}.service-grid article+article{border-left:1px solid var(--line);padding-left:34px}.number{color:var(--red);font:700 .8rem Inter}.service-grid h3{font:700 2rem 'Barlow Condensed';text-transform:uppercase;margin:28px 0 12px}.service-grid p{color:#5d5b56;margin:0}.split{display:grid;grid-template-columns:1fr 1fr;min-height:700px;background:#20211f;color:#fff}.rock-image{background:linear-gradient(rgba(20,20,18,.05),rgba(20,20,18,.22)),url('../images/sign_596x300.png') center/72% auto no-repeat,#bba87f}.rock-copy{padding:100px clamp(35px,7vw,105px);display:flex;flex-direction:column;justify-content:center}.rock-copy p:not(.eyebrow){color:#d1d0ca}.rock-copy ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;padding:25px 0 35px;margin:0;list-style:none;border-top:1px solid #444}.rock-copy li:before{content:'+';color:#d27a52;margin-right:10px}.text-link{color:#fff;font-weight:700;text-underline-offset:5px}.proof{background:var(--red);color:#fff;display:flex;justify-content:space-between;align-items:end;padding-top:80px;padding-bottom:80px}.proof h2{margin:0}.proof .eyebrow{color:#f0cbbb}.proof .button.secondary.dark{color:#fff;border-color:#fff}.quote{text-align:center;max-width:1000px;margin:auto}.stars{color:#b5442f;letter-spacing:.18em}.quote blockquote{font:600 clamp(1.8rem,4vw,3.2rem)/1.25 'Barlow Condensed';margin:20px auto;max-width:900px}.quote>p:last-child{font-size:.86rem}.quote a{color:var(--red)}.about{padding:105px max(24px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;gap:80px;background:#ded6c5}.about p{margin-top:0}.contact{background:#1d1e1c;color:#fff;padding:85px max(24px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between}.contact h2{margin:0}.contact>div>p:last-child{color:#bbb}.contact-actions{display:flex;border:1px solid #555}.contact-actions a{padding:22px 30px;text-decoration:none;color:#ccc;font-size:.8rem}.contact-actions a+a{border-left:1px solid #555}.contact-actions strong{color:#fff;font-size:1.2rem}.contact.compact{padding-top:65px;padding-bottom:65px}.contact.compact .button{align-self:center}footer{background:#121311;color:#aaa;padding:32px max(24px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;gap:30px;font-size:.78rem}footer strong{color:#fff}.gallery-hero{background:#222320;color:#fff;padding:100px max(24px,calc((100vw - var(--max))/2)) 80px}.gallery-hero h1{font-size:clamp(4rem,8vw,7rem)}.gallery-hero>p:last-child{max-width:650px;color:#ccc;font-size:1.08rem}.gallery-section{padding:60px max(18px,calc((100vw - var(--max))/2)) 100px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:35px}.filters button{border:1px solid var(--line);background:transparent;padding:10px 15px;font:700 .72rem Inter;text-transform:uppercase;letter-spacing:.07em;cursor:pointer}.filters button:hover,.filters button.active{background:var(--ink);color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery-item{border:0;padding:0;background:#ddd;cursor:zoom-in;position:relative;aspect-ratio:4/3;overflow:hidden}.gallery-item[hidden]{display:none}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.gallery-item:hover img{transform:scale(1.035)}#lightbox{width:min(1100px,94vw);height:min(86vh,820px);border:0;background:transparent;padding:0;color:white;overflow:visible}#lightbox::backdrop{background:rgba(0,0,0,.92)}#lightbox img{width:100%;height:100%;object-fit:contain}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;z-index:2}.lightbox-close{right:0;top:0;width:48px;height:48px;font-size:2rem}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:48px;height:64px;font-size:2.5rem}.lightbox-prev{left:0}.lightbox-next{right:0}#lightbox p{position:absolute;bottom:-35px;left:0;right:0;text-align:center;margin:0;font-size:.8rem}
@media(max-width:800px){.site-header{height:70px}.brand img{width:44px;height:44px}.menu-button{display:block}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:#1a1b19;padding:22px 24px;flex-direction:column;align-items:stretch;gap:0}.site-header nav.open{display:flex}.site-header nav a{padding:13px 0;border-bottom:1px solid #363634}.nav-call{text-align:center;margin-top:10px;border-bottom:0!important}.hero{min-height:calc(100vh - 70px)}.hero-content{width:calc(100% - 40px);padding:60px 0}.hero h1{font-size:clamp(3.8rem,19vw,6.2rem)}.section{padding:75px 24px}.section-heading{display:block}.section-heading h2{margin-bottom:24px}.service-grid{grid-template-columns:1fr}.service-grid article,.service-grid article+article{padding:30px 0;border-left:0;border-top:1px solid var(--line)}.service-grid article:first-child{border-top:0}.service-grid h3{margin-top:14px}.split{grid-template-columns:1fr;min-height:0}.rock-image{min-height:400px;background-size:min(75%,500px)}.rock-copy{padding:70px 24px}.proof{align-items:flex-start;flex-direction:column;gap:30px}.about{grid-template-columns:1fr;gap:20px;padding:75px 24px}.contact{align-items:flex-start;flex-direction:column;gap:30px;padding:70px 24px}.contact-actions{width:100%;flex-direction:column}.contact-actions a+a{border-left:0;border-top:1px solid #555}.contact-actions a{padding:17px 20px}.gallery-grid{grid-template-columns:repeat(2,1fr)}footer{flex-direction:column}.gallery-hero{padding:70px 24px 55px}}
@media(max-width:480px){.brand span{font-size:1rem}.gallery-grid{grid-template-columns:1fr}.rock-copy ul{grid-template-columns:1fr}.actions .button{width:100%}.trust{line-height:1.8}.filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}.filters button{flex:0 0 auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-item img{transition:none}.hero video{display:none}.hero{background:#24231f}}
.business-link{color:#e2caa0}.referral .rock-image{background-size:min(72%,500px)}
.reviews{max-width:var(--max);margin:auto}.reviews-heading{text-align:center;max-width:780px;margin:0 auto 48px}.review-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;text-align:left}.review-card{display:flex;flex-direction:column;align-items:flex-start;min-height:360px;padding:42px;background:#fff;border-top:4px solid var(--red);box-shadow:0 12px 35px rgba(23,24,23,.08)}.review-card .review-type{margin:0 0 18px;color:#777;font-size:.76rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.review-card .stars{margin:0 0 20px;color:#b5442f;letter-spacing:.18em}.review-card blockquote{margin:0 0 28px;font:600 clamp(1.45rem,2.5vw,2.15rem)/1.3 'Barlow Condensed';}.review-card .rating-statement{margin:8px 0 38px;font:700 clamp(1.8rem,3vw,2.6rem)/1.1 'Barlow Condensed';text-transform:uppercase}.review-author{margin:auto 0 18px}.review-author strong,.review-author span{display:block}.review-author span{color:#777;font-size:.84rem}.review-card>a{color:var(--red);font-size:.8rem;font-weight:700;text-underline-offset:4px}
@media(max-width:800px){.review-grid{grid-template-columns:1fr}.review-card{min-height:0;padding:30px}}
.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}.footer-meta a{color:#d1c3a5;text-decoration:none}.footer-meta a:hover{text-decoration:underline;text-underline-offset:3px}@media(max-width:800px){.footer-meta{align-items:flex-start;text-align:left}}
.reviews{max-width:none;margin:0}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}@media(max-width:800px){.review-grid{grid-template-columns:1fr}}

/* Curated project gallery */
.gallery-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.gallery-toolbar .filters{margin-bottom:18px}
.gallery-status{flex:0 0 auto;margin:10px 0 0;color:#777;font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:8px;gap:18px;align-items:start}
.gallery-item{display:block;width:100%;height:auto;aspect-ratio:auto;overflow:hidden;border-radius:3px;background:#262724;box-shadow:0 10px 28px rgba(23,24,23,.12);isolation:isolate}
.gallery-item.featured{grid-column:span 2}
.gallery-item img{width:100%;height:auto;object-fit:contain;transition:transform .45s ease,filter .45s ease}
.gallery-item:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(11,12,10,.78));opacity:0;transition:opacity .3s ease;pointer-events:none}
.gallery-label{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;color:#fff;text-align:left;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(7px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.025);filter:saturate(1.08)}
.gallery-item:hover:after,.gallery-item:focus-visible:after,.gallery-item:hover .gallery-label,.gallery-item:focus-visible .gallery-label{opacity:1}
.gallery-item:hover .gallery-label,.gallery-item:focus-visible .gallery-label{transform:translateY(0)}
.gallery-item:focus-visible{outline:3px solid var(--rust);outline-offset:4px}
#lightbox{width:min(1180px,94vw);height:min(88vh,900px)}
.lightbox-caption{position:absolute;left:0;right:0;bottom:-38px;display:flex;justify-content:space-between;gap:20px;color:#ddd;font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
#lightbox-category{text-align:left}#lightbox-count{text-align:right}
@media(max-width:800px){.gallery-toolbar{display:block}.gallery-status{margin:-8px 0 18px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-item.featured{grid-column:span 2}.gallery-label{opacity:1;transform:none}.gallery-item:after{opacity:.8}}
@media(max-width:480px){.gallery-grid{grid-template-columns:1fr;gap:12px}.gallery-item.featured{grid-column:span 1}.lightbox-caption{bottom:-45px;display:block;text-align:center}.lightbox-caption span{display:block;text-align:center!important}.lightbox-prev,.lightbox-next{width:42px}}

/* Companion brand system */
.brand{flex:0 0 auto}.brand img{width:176px;height:72px;object-fit:contain}.rock-image{display:block;background-image:linear-gradient(rgba(20,20,18,.05),rgba(20,20,18,.22)),url('../images/farragut-rock-products-logo.png');background-size:auto,78% auto}
@media(max-width:800px){.brand img{width:145px;height:62px}}
