:root{
    --pg-yellow:#ffd100;
    --pg-yellow-dark:#b89200;
    --pg-black:#050505;
    --pg-black-soft:#0c0c0c;
    --pg-panel:#101010;
    --pg-border:rgba(255,255,255,.12);
    --pg-muted:#b9b9b9;
    --pg-white:#f6f6f6;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;width:100%;}
body{
    margin:0;
    background:var(--pg-black);
    color:var(--pg-white);
    font-family:'Montserrat',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    overflow-x:hidden;
    max-width:100%;
    width:100%;
}
body::selection{background:var(--pg-yellow);color:#000;}
a{text-decoration:none;}
img{max-width:100%;display:block;}

.site-header,
main,
.site-footer{
    max-width:100%;
    overflow-x:hidden;
}
.offcanvas{
    max-width:100vw;
}

.site-header{
    background:linear-gradient(180deg,rgba(0,0,0,.88),rgba(0,0,0,.15));
    transition:background .25s ease,border-color .25s ease;
    border-bottom:1px solid transparent;
}
.site-header.header-solid{
    background:rgba(0,0,0,.94);
    border-bottom:1px solid rgba(255,209,0,.16);
    backdrop-filter:blur(12px);
}
.navbar{padding:18px 0;}
.navbar-brand{
    display:flex;
    align-items:center;
    gap:12px;
    letter-spacing:.04em;
}
.brand-mark{
    display:inline-flex;
    width:42px;
    height:34px;
    align-items:center;
    justify-content:center;
    border:2px solid var(--pg-yellow);
    color:var(--pg-yellow);
    font-weight:700;
    font-size:.9rem;
    line-height:1;
}
.brand-text{
    font-weight:700;
    font-size:.92rem;
    color:#fff;
}
.nav-link{
    color:#fff!important;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
    position:relative;
    padding-left:0!important;
    padding-right:0!important;
}
.nav-link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:2px;
    width:0;
    height:2px;
    background:var(--pg-yellow);
    transition:width .25s ease;
}
.nav-link:hover::after{width:100%;}
.ig-link{color:var(--pg-yellow)!important;font-size:1rem;}
.ig-link::after{display:none;}
.navbar-toggler{
    border:1px solid rgba(255,209,0,.4);
    border-radius:0;
    box-shadow:none!important;
    padding:10px 12px;
}

.mobile-menu{
    background:#030303;
    color:#fff;
    border-left:1px solid rgba(255,209,0,.25);
}
.mobile-menu .offcanvas-header{
    border-bottom:1px solid rgba(255,255,255,.12);
}
.mobile-menu .offcanvas-title{
    font-weight:700;
    letter-spacing:.08em;
    font-size:.9rem;
}
.mobile-menu .offcanvas-body{
    display:flex;
    flex-direction:column;
    gap:0;
    padding:0;
}
.mobile-menu .offcanvas-body a{
    display:block;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.09em;
    font-size:.85rem;
    font-weight:700;
    padding:22px 24px;
    border-bottom:1px solid rgba(255,255,255,.1);
    transition:background .2s ease,color .2s ease;
}
.mobile-menu .offcanvas-body a:hover{
    background:var(--pg-yellow);
    color:#000;
}
.mobile-menu .mobile-quote-link{
    margin:22px 22px 10px;
    padding:17px 20px!important;
    background:var(--pg-yellow);
    color:#000!important;
    border:2px solid var(--pg-yellow)!important;
    text-align:center;
    box-shadow:0 16px 36px rgba(255,209,0,.22);
}
.mobile-menu .mobile-quote-link:hover{
    background:#fff;
    color:#000!important;
    border-color:#fff!important;
}
.mobile-menu .offcanvas-body a:not(.mobile-quote-link){
    border-left:4px solid transparent;
}
.mobile-menu .offcanvas-body a:not(.mobile-quote-link):hover{
    border-left-color:var(--pg-yellow);
}
.mobile-menu .mobile-ig i{color:var(--pg-yellow);margin-right:8px;}
.mobile-menu .mobile-ig:hover i{color:#000;}

.hero-section{
    position:relative;
    min-height:52vh;
    background-size:cover;
    background-position:center;
    isolation:isolate;
    overflow:hidden;
}
.hero-shade,
.hero-grid,
.hero-accent{
    position:absolute;
    inset:0;
    pointer-events:none;
}
.hero-shade{
    background:
        linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.62) 48%,rgba(0,0,0,.15)),
        linear-gradient(135deg,rgba(255,209,0,.08),rgba(255,209,0,.25));
    z-index:1;
}
.hero-grid{
    z-index:2;
    opacity:.7;
    background-image:
        linear-gradient(rgba(255,209,0,.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,209,0,.16) 1px, transparent 1px);
    background-size:46px 46px;
    mask-image:linear-gradient(90deg,transparent 0%,#000 30%,#000 100%);
}
.hero-accent{
    z-index:3;
    background:radial-gradient(circle at 78% 40%,rgba(255,209,0,.45),transparent 30%);
    mix-blend-mode:screen;
    opacity:.45;
}
.hero-inner{
    position:relative;
    z-index:5;
}
.hero-inner .hero-row{min-height:52vh;padding:104px 0 48px;}
.eyebrow,
.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--pg-yellow);
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:.16em;
    font-weight:700;
    margin-bottom:18px;
}
.eyebrow::before,
.section-kicker::before{
    content:"";
    width:32px;
    height:2px;
    background:var(--pg-yellow);
}
.hero-title{
    font-size:clamp(2.25rem,5vw,4.65rem);
    line-height:.98;
    letter-spacing:-.04em;
    font-weight:700;
    text-transform:uppercase;
    margin:0 0 26px;
    max-width:820px;
}
.hero-copy{
    color:#efefef;
    max-width:650px;
    font-size:clamp(.98rem,1.35vw,1.15rem);
    line-height:1.6;
    margin-bottom:32px;
}
.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}
.btn{
    border-radius:0!important;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:700;
    padding:14px 23px;
    border-width:2px;
    transition:transform .22s ease,background .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-main{
    background:var(--pg-yellow);
    color:#000;
    border-color:var(--pg-yellow);
    box-shadow:0 15px 42px rgba(255,209,0,.18);
}
.btn-main:hover{
    background:#fff;
    border-color:#fff;
    color:#000;
}
.btn-outline-main{
    background:rgba(0,0,0,.38);
    color:#fff;
    border-color:rgba(255,255,255,.45);
}
.btn-outline-main:hover{
    background:#fff;
    color:#000;
    border-color:#fff;
}
.hero-spec-card{
    border:1px solid rgba(255,209,0,.34);
    background:rgba(0,0,0,.56);
    backdrop-filter:blur(12px);
    padding:26px;
    max-width:330px;
    margin-left:auto;
}
.hero-spec-card span{
    display:block;
    color:var(--pg-yellow);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.7rem;
    font-weight:700;
    margin-bottom:8px;
}
.hero-spec-card strong{
    display:block;
    color:#fff;
    font-size:1.35rem;
    line-height:1.1;
    text-transform:uppercase;
    margin-bottom:12px;
}
.hero-spec-card p{color:#d5d5d5;margin:0;line-height:1.55;}

.section-pad{padding:96px 0;}
.section-title{
    font-size:clamp(1.85rem,3.75vw,3.75rem);
    line-height:1;
    letter-spacing:-.055em;
    font-weight:700;
    text-transform:uppercase;
    margin:0 0 22px;
}
.section-copy{
    color:var(--pg-muted);
    font-size:1.02rem;
    line-height:1.78;
    margin:0;
    max-width:720px;
}
.mesh-intro{background:#050505;}
.info-card{
    height:100%;
    background:var(--pg-panel);
    border:1px solid var(--pg-border);
    padding:28px;
    transition:transform .22s ease,border-color .22s ease,background .22s ease;
}
.info-card:hover{
    transform:translateY(-5px);
    border-color:rgba(255,209,0,.62);
    background:#151515;
}
.info-card i{
    color:var(--pg-yellow);
    font-size:1.65rem;
    margin-bottom:22px;
    display:inline-block;
}
.info-card h3,
.step-card h3{
    font-size:1rem;
    font-weight:700;
    letter-spacing:-.02em;
    text-transform:uppercase;
    margin:0 0 12px;
}
.info-card p,
.step-card p{color:var(--pg-muted);line-height:1.65;margin:0;}

.material-section{
    background:
        linear-gradient(180deg,#080808,#030303),
        radial-gradient(circle at 20% 20%,rgba(255,209,0,.18),transparent 26%);
}
.dark-panel{
    border:1px solid rgba(255,209,0,.25);
    background:linear-gradient(145deg,rgba(255,209,0,.08),rgba(255,255,255,.035));
    padding:34px;
}
.spec-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    height:100%;
}
.spec-item{
    background:#111;
    border:1px solid var(--pg-border);
    padding:24px;
    min-height:132px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    transition:transform .22s ease,border-color .22s ease;
}
.spec-item:hover{transform:translateY(-4px);border-color:rgba(255,209,0,.55);}
.spec-item span{
    color:var(--pg-yellow);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.7rem;
    font-weight:700;
    margin-bottom:16px;
}
.spec-item strong{
    color:#fff;
    font-size:1rem;
    line-height:1.35;
}

.process-section{background:#080808;}
.section-head{text-align:center;max-width:860px;margin:0 auto 48px;}
.section-head .section-kicker{justify-content:center;}
.section-head .section-kicker::before{display:none;}
.section-head .section-copy{margin-left:auto;margin-right:auto;}
.step-card{
    min-height:260px;
    background:#101010;
    border:1px solid var(--pg-border);
    padding:30px;
    position:relative;
    overflow:hidden;
    transition:transform .22s ease,border-color .22s ease;
}
.step-card::after{
    content:"";
    position:absolute;
    right:-50px;
    top:-50px;
    width:110px;
    height:110px;
    border:1px solid rgba(255,209,0,.25);
    transform:rotate(45deg);
}
.step-card:hover{transform:translateY(-5px);border-color:rgba(255,209,0,.55);}
.step-card span{
    display:block;
    color:var(--pg-yellow);
    font-size:2rem;
    line-height:1;
    font-weight:700;
    margin-bottom:42px;
}

.installation-band{
    background:var(--pg-yellow);
    color:#000;
    padding:58px 0;
}
.installation-band h2{
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:-.045em;
    font-size:clamp(2rem,4vw,4rem);
    margin:0 0 12px;
}
.installation-band p{font-size:1.05rem;line-height:1.65;max-width:700px;margin:0;color:#191919;}
.installation-band .btn-main{background:#000;border-color:#000;color:#fff;box-shadow:none;}
.installation-band .btn-main:hover{background:#fff;border-color:#fff;color:#000;}

.vinyl-section{
    background:
        linear-gradient(180deg,#050505,#090909),
        radial-gradient(circle at 85% 20%,rgba(255,209,0,.12),transparent 28%);
}
.vinyl-panel{
    border-color:rgba(255,209,0,.18);
}
.vinyl-list{
    display:grid;
    gap:14px;
    height:100%;
}
.vinyl-item{
    display:flex;
    align-items:flex-start;
    gap:18px;
    background:#111;
    border:1px solid var(--pg-border);
    padding:26px;
    min-height:138px;
    transition:transform .22s ease,border-color .22s ease,background .22s ease;
}
.vinyl-item:hover{
    transform:translateY(-4px);
    border-color:rgba(255,209,0,.55);
    background:#151515;
}
.vinyl-item i{
    color:var(--pg-yellow);
    font-size:1.5rem;
    line-height:1;
    margin-top:2px;
}
.vinyl-item h3{
    margin:0 0 8px;
    color:#fff;
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:-.015em;
    font-weight:700;
}
.vinyl-item p{
    margin:0;
    color:var(--pg-muted);
    line-height:1.65;
}

.gallery-section{background:#050505;}
.gallery-card{
    width:100%;
    height:300px;
    border:0;
    padding:0;
    background:#111;
    overflow:hidden;
    position:relative;
    cursor:pointer;
}
.gallery-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.9) contrast(1.05);
    transition:transform .35s ease,filter .35s ease;
}
.gallery-card::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.82));
    opacity:.75;
    transition:opacity .25s ease;
}
.gallery-card span{
    position:absolute;
    left:18px;
    bottom:18px;
    z-index:2;
    color:var(--pg-yellow);
    font-size:.75rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-weight:700;
    transform:translateY(8px);
    opacity:0;
    transition:transform .25s ease,opacity .25s ease;
}
.gallery-card:hover img{transform:scale(1.055);filter:saturate(1.05) contrast(1.1);}
.gallery-card:hover::after{opacity:1;}
.gallery-card:hover span{transform:translateY(0);opacity:1;}

.quote-section{
    background:
        linear-gradient(180deg,#0a0a0a,#040404),
        radial-gradient(circle at 85% 15%,rgba(255,209,0,.14),transparent 30%);
}
.quote-copy{position:sticky;top:120px;}
.contact-stack{display:grid;gap:13px;margin-top:28px;}
.contact-stack a,
.contact-stack span{
    color:#fff;
    display:flex;
    align-items:center;
    gap:11px;
    font-weight:700;
    word-break:break-word;
}
.contact-stack i{color:var(--pg-yellow);}
.contact-stack a:hover{color:var(--pg-yellow);}
.quote-form-wrap{
    background:#101010;
    border:1px solid rgba(255,255,255,.13);
    padding:30px;
}
.quote-form label{
    color:#fff;
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:700;
    margin-bottom:8px;
}
.form-control,
.form-select{
    border-radius:0!important;
    background:#050505;
    color:#fff;
    border:1px solid rgba(255,255,255,.18);
    min-height:52px;
    box-shadow:none!important;
}
.form-control:focus,
.form-select:focus{
    background:#050505;
    color:#fff;
    border-color:var(--pg-yellow);
}
.form-control::placeholder{color:#6d6d6d;}
.form-select option{background:#050505;color:#fff;}
.check-row{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:52px;
    padding:14px 16px;
    background:#050505;
    border:1px solid rgba(255,255,255,.18);
    cursor:pointer;
    margin:2px 0 0!important;
    transition:border-color .2s ease,background .2s ease;
}
.check-row:hover{
    border-color:var(--pg-yellow);
    background:#080808;
}
.check-row input{
    width:20px;
    height:20px;
    border-radius:0;
    accent-color:var(--pg-yellow);
    flex:0 0 auto;
}
.check-row span{
    color:#fff;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:700;
}
.hp-field{
    position:absolute!important;
    left:-9999px!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
}
.square-alert{border-radius:0;border:0;font-weight:700;}

.site-footer{
    background:#000;
    border-top:1px solid rgba(255,209,0,.2);
    padding:48px 0 28px;
}
.footer-brand{
    font-weight:700;
    letter-spacing:-.03em;
    font-size:1.35rem;
    margin-bottom:10px;
}
.site-footer p{color:var(--pg-muted);margin:0;line-height:1.65;}
.footer-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:18px 24px;
}
@media (min-width:992px){.footer-links{justify-content:flex-end;}.footer-links-clean{justify-content:flex-end;}}
.footer-links a,
.footer-links button{
    background:transparent;
    border:0;
    padding:0;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.76rem;
    font-weight:700;
    transition:color .2s ease,transform .2s ease;
}
.footer-links a:hover,
.footer-links button:hover{color:var(--pg-yellow);transform:translateY(-2px);}
.footer-links .footer-social{color:var(--pg-yellow);font-size:1.2rem;line-height:1;}
.footer-bottom{
    border-top:1px solid rgba(255,255,255,.1);
    margin-top:34px;
    padding-top:22px;
    color:#8b8b8b;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.pg-modal .modal-content,
.gallery-modal .modal-content{
    background:#070707;
    color:#fff;
    border:1px solid rgba(255,209,0,.25);
    border-radius:0;
}
.pg-modal .modal-header{
    border-bottom:1px solid rgba(255,255,255,.12);
    border-radius:0;
}
.pg-modal .modal-title{
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.pg-modal .modal-body{padding:30px;}
.faq-item{
    border-bottom:1px solid rgba(255,255,255,.1);
    padding:0 0 20px;
    margin-bottom:20px;
}
.faq-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.faq-item h6{
    color:var(--pg-yellow);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:700;
    margin-bottom:8px;
}
.faq-item p,
.pg-modal .modal-body p{color:#d0d0d0;line-height:1.75;}
.gallery-modal .modal-content{position:relative;background:#000;}
.gallery-close{position:absolute;right:14px;top:14px;z-index:3;background-color:rgba(0,0,0,.65);border-radius:0;opacity:1;padding:12px;}
#galleryModalImage{width:100%;height:auto;max-height:84vh;object-fit:contain;background:#000;}

.reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .55s ease,transform .55s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}

@media (max-width:991.98px){
    .brand-text{font-size:.82rem;}
    .hero-inner .hero-row{min-height:54vh;padding:104px 0 44px;align-items:center!important;}
    .section-pad{padding:70px 0;}
    .spec-grid{grid-template-columns:1fr;}
    .quote-copy{position:static;}
    .gallery-card{height:250px;}
}
@media (max-width:575.98px){
    .navbar{padding:14px 0;}
    .brand-mark{width:38px;height:31px;font-size:.78rem;}
    .brand-text{max-width:160px;line-height:1.1;}
    .hero-title{font-size:2.55rem;}
    .hero-actions .btn{width:100%;}
    .quote-form-wrap{padding:22px;}
    .footer-links{flex-direction:column;align-items:flex-start;}
}

.footer-social i,
.footer-email i{
    color:var(--pg-yellow);
    margin-right:8px;
}
.footer-social span,
.footer-email span{
    vertical-align:middle;
}

/* Final form + scroll fixes */
html,
body{
    overflow-x:clip!important;
}
@supports not (overflow-x:clip){
    html,
    body{overflow-x:hidden!important;}
}
.site-header,
main,
.site-footer,
section{
    max-width:100%;
    overflow-x:clip;
}
@supports not (overflow-x:clip){
    .site-header,
    main,
    .site-footer,
    section{overflow-x:hidden;}
}
.form-status{
    margin-bottom:18px;
}
.form-status:empty{
    display:none;
}
.quote-form .is-invalid,
.quote-form .form-control.is-invalid,
.quote-form .form-select.is-invalid{
    border-color:#ff4d4d!important;
    box-shadow:0 0 0 2px rgba(255,77,77,.14)!important;
    background-image:none!important;
}
.quote-form .invalid-feedback{
    color:#ffb3b3;
    font-size:.78rem;
    font-weight:600;
    margin-top:7px;
}
.quote-form .btn[disabled]{
    opacity:.75;
    cursor:not-allowed;
    transform:none!important;
}
.mobile-menu .mobile-quote-link{
    font-weight:800;
    letter-spacing:.12em;
    box-shadow:0 18px 44px rgba(255,209,0,.32);
}
