/* Actual BlueStar marks drift behind the content; decorative star glyphs are removed. */
#projects,#testimonials,#partners,#quote,#contact{position:relative;isolation:isolate;overflow:hidden}
#projects>.wrap,#testimonials>.wrap,#partners>.wrap,#quote>.wrap,#contact>.wrap{position:relative;z-index:1}
.brand-atmosphere{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none}
.brand-atmosphere img{position:absolute;left:var(--x);top:var(--y);width:clamp(140px,20vw,var(--size));height:auto;opacity:.23;filter:drop-shadow(0 0 14px #2088d52b);transform:rotate(var(--angle));animation:brand-float 24s ease-in-out infinite alternate;animation-delay:var(--delay);will-change:translate}
#testimonials .brand-atmosphere img,#contact .brand-atmosphere img{opacity:.23;filter:drop-shadow(0 0 14px #2088d52b)}
#projects .project-card{position:relative;overflow:hidden}
#projects .project-card+.project-card{margin-top:28px}
.partner-node{overflow:hidden;background:radial-gradient(circle at 38% 25%,#e0f3ff,#97c8e4);box-shadow:0 0 22px #219fea40,inset 0 1px 0 #ffffff80}
.partner-node>img{display:block;width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 2px 3px #0327444d)}
.partner-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.25fr) repeat(2,minmax(0,1fr));gap:clamp(6px,2vw,20px);max-width:480px;margin:auto;align-items:center;justify-items:center}
.partner-nodes .partner-node{width:100%;height:auto;aspect-ratio:1;max-width:66px}
.partner-nodes .partner-node.center{width:100%;height:auto;aspect-ratio:1;max-width:82px}
.partner-node.center{background:#071c2b;border-color:#56a6dc;overflow:hidden}
.partner-node.center img{width:92%;height:92%;object-fit:contain}
.contact-icon{display:inline-flex;align-items:center}
.contact-icon img{width:32px;height:32px;object-fit:contain}
@keyframes brand-float{0%{translate:-12px -13px;rotate:-3deg}50%{translate:8px 9px;rotate:1deg}100%{translate:18px -3px;rotate:4deg}}

/* Keep each before-and-after pair the same size. */
.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.project-gallery figure:last-child{grid-column:auto;max-width:none}
.project-gallery figure:last-child img{object-position:center}
.project-gallery img,.project-gallery figure:last-child img{height:260px}

/* Individual gallery pages: black with softly floating, solid trade artwork. */
body.gallery-page{background:#000;background-image:none;isolation:isolate}
.gallery-page header{position:relative;z-index:2;background:#030405}
.gallery-page main.wrap,.gallery-page footer{position:relative;z-index:1}
.trade-scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none;background:#000}
.trade-scene img{position:absolute;left:var(--x);top:var(--y);width:clamp(135px,19vw,var(--size));height:auto;opacity:.27;transform:rotate(var(--angle));filter:drop-shadow(0 0 14px #1376c42b);animation:trade-float 30s ease-in-out infinite alternate;animation-delay:var(--delay);will-change:translate}
.trade-scene img:nth-child(3n){animation-duration:36s}
.gallery-page h1,.gallery-page .tag,.gallery-page main.wrap>p{text-shadow:0 2px 10px #000,0 0 24px #000}
.gallery-page .viewer{position:relative;background:#080c10;border-color:#25445b;box-shadow:0 16px 45px #0009}
.gallery-page .viewer img{background:#000}
.gallery-page .caption,.gallery-page .controls{background:#080c10}
.gallery-page footer{background:#0008}
@keyframes trade-float{0%{translate:-12px -12px;rotate:-4deg}50%{translate:10px 8px;rotate:1deg}100%{translate:18px -6px;rotate:5deg}}
@media(max-width:600px){
 .brand-atmosphere img{width:clamp(155px,43vw,200px)}
 .trade-scene img{width:clamp(140px,41vw,185px)}
 .project-gallery{grid-template-columns:1fr;gap:14px}
 .project-gallery img,.project-gallery figure:last-child img{height:260px}
 .gallery-page .back{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
 .brand-atmosphere img,.trade-scene img{animation:none;will-change:auto;translate:none;rotate:none}
}

/* Quote uploads, project filters, and easy-to-reach phone contact. */
/* Detailed, shaded service artwork replaces the single-line symbols. */
#services .service-art{width:86px;height:86px;padding:7px;border-radius:19px;background:radial-gradient(circle at 35% 20%,#f7fcff,#d6eeff 75%);border:1px solid #b4dcf7;box-shadow:inset 0 1px 0 #fff,0 5px 12px #175e9210}
#services .service-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 3px #12365135)}

/* The three city illustrations crossfade on the same continuous timeline. */
#service-area.area{isolation:isolate;background:#061523}
.city-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.city-slide{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% center;opacity:0;animation:city-crossfade 30s linear infinite}
.city-dallas{opacity:1;animation-delay:0s}
.city-houston{animation-delay:-20s}
.city-san-antonio{animation-delay:-10s;object-position:72% center}
.city-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,14,27,.67),rgba(3,14,27,.43))}
#service-area>.wrap{position:relative;z-index:1}
#service-area h2,#service-area p,#service-area .eyebrow{text-shadow:0 2px 9px #0009}
#service-area .area-tags span{background:#08243be8}
#service-area .area-tags span{flex-grow:1;text-align:center}
.area-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;max-width:700px}
.area-footer .skyline-control{flex:1 1 180px;min-width:0;max-width:320px;margin-top:0}
.area-signoff{flex:1 1 130px;min-width:0;color:#c8ecff;font:800 clamp(14px,3.7vw,18px)/1.5 Arial,sans-serif;letter-spacing:.06em;word-spacing:normal;text-transform:uppercase;text-align:center;text-align-last:center;text-shadow:0 2px 9px #0009}
.area-signoff strong{display:block;font-weight:800;color:#f2f9ff}
.skyline-control{margin-top:22px;min-height:44px;padding:10px 15px;border:1px solid #70b9e5;border-radius:7px;background:#062139db;color:#d9f2ff;font:700 12px Arial,sans-serif;cursor:pointer}
.skyline-control:hover{background:#0b3c5e}
.skyline-control:focus-visible{outline:3px solid #b4e5ff;outline-offset:3px}
.skyline-paused .city-slide{animation-play-state:paused}
@keyframes city-crossfade{0%,30%{opacity:1}33.333%,96.666%{opacity:0}100%{opacity:1}}
@media(max-width:600px){#services .service-art{width:74px;height:74px;padding:6px;border-radius:17px}.city-backdrop:after{background:linear-gradient(90deg,rgba(3,14,27,.62),rgba(3,14,27,.52))}}
@media(prefers-reduced-motion:reduce){.city-slide{animation:none;opacity:0}.city-dallas{opacity:1}.skyline-control{display:none!important}}

[hidden]{display:none!important}
.sr-only,.website-field{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
.gallery-filters{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0}
.gallery-filters button{border:1px solid #7aaaca;border-radius:999px;padding:10px 17px;background:#f6fbff;color:#16415f;font:700 14px Arial,sans-serif;cursor:pointer;min-height:44px}
.gallery-filters button[aria-pressed=true]{background:#095c91;color:white;border-color:#095c91}
.gallery-filters button:focus-visible{outline:3px solid #075181;outline-offset:3px}
.gallery-cleaning-group{display:flex;align-items:center;gap:9px;flex:1 1 260px;max-width:340px;min-width:0}
.gallery-signoff{display:flex;align-items:center;gap:9px;flex:1 1 150px;max-width:220px;min-height:44px;color:#1c5275;font:700 12px/1.35 Arial,sans-serif}
.gallery-signoff img{display:block;width:52px;height:52px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px #103f5f2e)}
@media(max-width:600px){
 .gallery-cleaning-group{flex-basis:100%;max-width:none}
 .gallery-signoff{max-width:none;gap:10px;container-type:inline-size}
 .gallery-signoff img{width:clamp(60px,17vw,72px);height:clamp(60px,17vw,72px)}
 .gallery-signoff>span{min-width:0;text-align:left;font-size:clamp(14px,8cqi,24px);line-height:1.25;letter-spacing:0;font-weight:800}
}
.optional{font-weight:400;color:#557188}
.upload-help{display:block;color:#48647a;font-size:13px;font-weight:400;line-height:1.5;margin-top:8px;overflow-wrap:anywhere}
.photo-label input{border:1px dashed #438bbd;background:#f3faff;padding:16px;max-width:100%}
.quote .service-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;margin:0;padding:16px;border:1px solid #b3d3e8;border-radius:12px;background:#eaf6ff80}
.quote .service-questions legend{max-width:100%;padding:0 7px;font-size:15px;font-weight:800;color:#16415f}
.quote .service-questions label{min-width:0}
.quote .service-questions textarea{min-height:90px}
.quote .roadside-request-note{margin:0;padding:14px 16px;border-left:3px solid #168bd0;background:#e4f3ff;color:#173d5b;font-size:14px;line-height:1.6;border-radius:6px}
.quote .roadside-request-note a{color:#085e91;font-weight:700}
@media(max-width:600px){.quote .service-questions{grid-template-columns:1fr;padding:14px}}
.submission-status{font-size:15px;line-height:1.6;margin:2px 0 0;padding:16px;border-radius:9px;background:#e8f3ff;color:#173d5b;overflow-wrap:anywhere}
.submission-status.success{background:#e8f7ee;border:1px solid #87bc9d;color:#184b2d}
.submission-status.error{background:#fff1ec;border:1px solid #d69b8d;color:#8b2d1d}
button:disabled{cursor:wait;opacity:.65}
.published-reviews{margin-bottom:35px;padding-bottom:28px;border-bottom:1px solid #cbdfea}
#review-cards{display:grid;gap:14px;margin-top:24px}
#review-cards blockquote{margin:0;padding:22px;background:#eff8ff;border-left:3px solid #188ad3;border-radius:8px}
#review-cards p{margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
#review-cards cite{font-style:normal;font-weight:bold;color:#1c587f}
.mobile-contact{display:none}
@media(max-width:600px){
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
 .mobile-contact{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#05101cf5;border-top:1px solid #2d6d96;z-index:100;box-shadow:0 -4px 22px #0004;backdrop-filter:blur(10px)}
 .mobile-contact a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:8px;text-decoration:none;font-weight:800;font-size:14px;background:linear-gradient(120deg,#85d5ff,#168ee9);color:#001425}
 .mobile-contact a:last-child{background:#0a2339;border:1px solid #6fbaf0;color:#eaf6ff}
 .mobile-contact a:focus-visible{outline:3px solid white;outline-offset:2px}
 .quote input[type=file]{font-size:14px}
}

/* A clear path from the first request to an agreed job. */
.how-it-works{background:radial-gradient(ellipse at 100% 0%,#12456b,transparent 58%),#071522;border-block:1px solid #285675}
.how-it-works .how-intro{max-width:640px;color:#c4d9e7}
.work-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0;margin:30px 0}
.work-steps li{padding:26px;border:1px solid #397495;border-radius:15px;background:linear-gradient(150deg,#12314b,#081b2b);box-shadow:inset 0 1px 0 #9fdaff16}
.step-number{display:block;color:#87d5ff;font-weight:800;font-size:31px;letter-spacing:-.04em;text-shadow:0 2px 10px #279ad938}
.work-steps h3{font-size:21px;line-height:1.25;margin:17px 0 12px;color:#f2f8ff}
.work-steps p{font-size:15px;line-height:1.7;margin:0;color:#c4d9e7}
.faq-section{background:#050d16;color:#f2f8ff;border-block:1px solid #264b68}
.faq-list{max-width:900px;margin-top:28px;display:grid;gap:12px}
.faq-list details{border:1px solid #305a78;border-radius:12px;background:#0a1e2e;overflow:hidden}
.faq-list summary{padding:20px 24px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-weight:700;line-height:1.4;color:#edf7ff;min-height:64px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:'+';color:#8ad5ff;font-size:23px;font-weight:400;flex-shrink:0}
.faq-list details[open] summary:after{content:'−'}
.faq-list summary:hover{background:#10304a}
.faq-list summary:focus-visible{outline:3px solid #90d8ff;outline-offset:-3px}
.faq-list details p{margin:0;padding:0 24px 23px;max-width:800px;line-height:1.75;color:#bed5e5}
.faq-contact{color:#bed5e5;margin-top:28px}.faq-contact a{display:inline-block;white-space:nowrap;font-weight:700;color:#89d6ff;text-underline-offset:4px}
.owner-link{display:inline-block;margin-left:15px;color:#a7c9df;text-underline-offset:3px}
@media(max-width:700px){.work-steps{grid-template-columns:1fr}.work-steps li{padding:23px}.faq-list summary{padding:19px 20px}.faq-list details p{padding:0 20px 22px}.owner-link{margin-left:0;display:block;margin-top:14px}}

/* One stable job preview keeps the gallery short until a visitor chooses more. */
.project-spotlight{border:1px solid #a7d8f3;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#fff,#e5f6ff);box-shadow:0 14px 35px #083a5d1a}
.spotlight-frame{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;opacity:1;transition:opacity .3s ease}
.project-spotlight.is-changing .spotlight-frame{opacity:0}
.spotlight-photo{display:block;width:100%;height:350px;object-fit:contain;background:#03090e}
.spotlight-copy{padding:26px;display:flex;flex-direction:column;align-items:start;min-width:0}
.spotlight-copy .project-tag{font-size:11px;line-height:1.5;min-height:33px}
.spotlight-copy h3{font-size:clamp(23px,2.6vw,30px);line-height:1.2;margin:12px 0;min-height:3.6em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.spotlight-copy p{font-size:15px;line-height:1.6;color:#4b6578;margin:0 0 20px;min-height:4.8em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.spotlight-copy .button{margin-top:auto;padding:13px 18px;min-height:44px}
.spotlight-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid #bbdcec;background:#eef8ff;color:#31566f;font-size:12px}
.spotlight-tools>div{display:flex;gap:8px;flex-shrink:0}
.spotlight-tools button,.gallery-reset{border:1px solid #6d9fbf;border-radius:8px;min-height:44px;background:#f9fdff;color:#16415f;font:700 13px Arial,sans-serif;padding:10px 14px;cursor:pointer}
.spotlight-tools button:hover,.gallery-reset:hover{background:#def2ff}
.spotlight-tools button:focus-visible,.gallery-reset:focus-visible{outline:3px solid #0968a5;outline-offset:2px}
.gallery-reset{margin:0 0 22px;background:#e9f7ff}
#project-list>.project-card:first-child{margin-top:0}
@media(max-width:700px){.spotlight-frame{grid-template-columns:1fr}.spotlight-photo{height:220px}.spotlight-copy{padding:22px}.spotlight-copy h3{font-size:24px}.spotlight-copy p{font-size:14px;min-height:4.8em}.spotlight-tools{padding:10px 14px;font-size:11px}.spotlight-tools button{padding:10px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.spotlight-frame{transition:none}}
#projects.gallery-highlights .brand-atmosphere img:nth-child(n+6){display:none}
#projects.gallery-highlights .brand-atmosphere img:nth-child(1){left:-12%;top:30%}
#projects.gallery-highlights .brand-atmosphere img:nth-child(2){left:84%;top:68%}
#projects.gallery-highlights .brand-atmosphere img:nth-child(3){left:82%;top:3%}
#projects.gallery-highlights .brand-atmosphere img:nth-child(4){left:-9%;top:72%}
#projects.gallery-highlights .brand-atmosphere img:nth-child(5){left:37%;top:13%}

/* A short introduction to the business, built around the real BlueStar mark. */
.meet-section{background:linear-gradient(135deg,#f1f7fc,#d9edf9);color:#10283d;border-block:1px solid #b3d6ea}
.meet-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr);gap:clamp(30px,5vw,65px);align-items:center}
.meet-brand{padding:32px 24px;text-align:center;background:radial-gradient(circle at 50% 25%,#154b70,#071b2c 70%);border:1px solid #5c9fc8;border-radius:24px;box-shadow:0 16px 35px #0c365026;color:#eaf7ff}
.meet-brand img{display:block;width:100%;max-width:260px;height:auto;margin:0 auto;filter:drop-shadow(0 8px 18px #0005)}
.meet-brand p{font-size:20px;font-weight:700;line-height:1.4;margin:8px 0 10px}
.meet-brand span{display:block;font-size:12px;color:#a5d2ec;letter-spacing:.1em;text-transform:uppercase}
.meet-copy>p{font-size:16px;line-height:1.8;color:#476174;max-width:680px}
.meet-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:26px}
.meet-work-link,.meet-review-link a{color:#08659b;font-weight:700;text-underline-offset:4px}
.meet-copy .meet-review-link{font-size:14px;margin-top:25px}

@media(max-width:700px){.meet-layout{grid-template-columns:1fr;gap:30px}.meet-brand{max-width:360px;width:100%;margin:auto;padding:20px 24px 27px}.meet-brand img{max-width:210px}.meet-copy>p{font-size:15px}.meet-actions{gap:18px}}


/* A single service photo uses the available card width. */
.project-gallery.single-photo{grid-template-columns:1fr}
.project-gallery.single-photo figure{max-width:none;width:100%}
.controls[hidden]{display:none}

/* Only the outer frames of the two cards shown in the owner's screenshots. */
#partners .feature-card,#quote .quote-panel{border:2px solid #298fc7;box-shadow:0 0 0 5px #82cdfa3d,0 16px 36px #17426329,inset 0 1px 0 #ffffff99}
