/* ProFlow Plumbing Solutions — theme.min.css */
:root{--c-navy:hsl(215,45%,18%);--c-navy-light:hsl(215,40%,28%);--c-amber:hsl(38,92%,50%);--c-amber-light:hsl(38,92%,60%);--c-white:hsl(0,0%,100%);--c-off:hsl(210,20%,96%);--c-text:hsl(215,20%,25%);--c-muted:hsl(215,10%,55%);--radius:6px;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.1);--shadow-lg:0 8px 24px rgba(0,0,0,.14);--ff-heading:'Raleway',sans-serif;--ff-body:'Source Sans 3','Source Sans Pro',sans-serif;--transition:0.25s ease}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--ff-body);font-size:1rem;line-height:1.6;color:var(--c-text);background:var(--c-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-heading);font-weight:700;line-height:1.2;color:var(--c-navy)}
h1{font-size:2rem}
h2{font-size:1.65rem}
h3{font-size:1.35rem}
h4{font-size:1.15rem}
a{color:var(--c-amber);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--c-amber-light)}
img,svg{display:block;max-width:100%;height:auto}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
/* Utility */
.text-center{text-align:center}
.mb-2{margin-bottom:1rem}
.mt-2{margin-top:1rem}
.mb-4{margin-bottom:2rem}
/* Wrap */
.wrap,.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1.75rem;font-family:var(--ff-heading);font-weight:600;font-size:.95rem;line-height:1;border:2px solid transparent;border-radius:var(--radius);cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition);text-decoration:none;background:var(--c-amber);color:var(--c-navy);border-color:var(--c-amber)}
.btn:hover{background:var(--c-amber-light);border-color:var(--c-amber-light);box-shadow:var(--shadow-md)}
.btn-outline{background:transparent;color:var(--c-white);border-color:var(--c-white)}
.btn-outline:hover{background:var(--c-white);color:var(--c-navy)}
.btn-sm{min-height:38px;padding:.5rem 1.25rem;font-size:.85rem}
.btn-lg{min-height:52px;padding:1rem 2.5rem;font-size:1.1rem}
/* Site Header */
.site-header{position:sticky;top:0;z-index:1000;background:var(--c-navy);box-shadow:var(--shadow-md)}
.hdr-wrap{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:.65rem 1rem;min-height:60px}
.hdr-brand{display:flex;align-items:center;gap:.5rem;text-decoration:none}
.hdr-brand-icon{width:36px;height:36px;flex-shrink:0}
.hdr-brand-name{font-family:var(--ff-heading);font-weight:700;font-size:1.15rem;color:var(--c-white);letter-spacing:.3px}
.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;z-index:1001}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--c-white);border-radius:2px;transition:transform var(--transition),opacity var(--transition)}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.main-nav{position:fixed;top:0;right:-100%;width:280px;height:100vh;background:var(--c-navy);padding:5rem 1.5rem 2rem;transition:right var(--transition);z-index:999;overflow-y:auto}
.main-nav.open{right:0}
.nav-list{display:flex;flex-direction:column;gap:.25rem}
.nav-list a{display:block;padding:.75rem .5rem;color:var(--c-white);font-weight:500;font-size:1.05rem;border-radius:var(--radius);transition:background var(--transition)}
.nav-list a:hover,.nav-list a.active{color:var(--c-amber)}
.nav-list a.active{position:relative}
.nav-list a.active::after{content:'';position:absolute;bottom:.45rem;left:.5rem;right:.5rem;height:2px;background:var(--c-amber);border-radius:1px}
.nav-cta{margin-top:1rem}
.nav-cta .btn{width:100%;justify-content:center}
/* Hero */
.hero{background:var(--c-navy);color:var(--c-white);padding:3rem 0 2.5rem;overflow:hidden}
.hero-wrap{display:flex;flex-direction:column;gap:2rem}
.hero-headline{font-size:2rem;color:var(--c-white);line-height:1.15}
.hero-headline span{color:var(--c-amber)}
.hero-sub{font-size:1.1rem;color:hsla(0,0%,100%,.8);max-width:540px;line-height:1.6}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}
.hero-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg)}
/* Sections */
.section{padding:3rem 0}
.section-dark{background:var(--c-navy);color:var(--c-white)}
.section-dark h2,.section-dark h3,.section-dark h4{color:var(--c-white)}
.section-dark p{color:hsla(0,0%,100%,.8)}
.section-alt{background:var(--c-off)}
/* Grids */
.grid-2,.grid-3,.grid-4{display:grid;gap:1.5rem}
/* Cards */
.card{background:var(--c-white);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--transition),box-shadow var(--transition)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.card-img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card-body{padding:1.25rem}
.card-title{font-size:1.15rem;margin-bottom:.5rem}
.card-text{color:var(--c-muted);font-size:.95rem;line-height:1.55}
/* Stats Bar */
.stats-bar{display:grid;gap:1.5rem;padding:2rem 0;text-align:center}
.stat-item{padding:1rem}
.stat-num{font-family:var(--ff-heading);font-size:2.25rem;font-weight:700;color:var(--c-amber);line-height:1.1}
.stat-label{font-size:.9rem;color:var(--c-muted);margin-top:.35rem}
.section-dark .stat-label{color:hsla(0,0%,100%,.7)}
/* Testimonial Card */
.testimonial-card{background:var(--c-white);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow-sm);border-left:3px solid var(--c-amber)}
.tc-text{font-size:1rem;font-style:italic;color:var(--c-text);line-height:1.65;margin-bottom:1rem}
.tc-text::before{content:'\201C';font-size:1.5rem;color:var(--c-amber);margin-right:2px}
.tc-author{font-weight:600;color:var(--c-navy);font-size:.95rem}
.tc-role{color:var(--c-muted);font-size:.85rem}
/* FAQ */
.faq-item{border:1px solid hsl(215,15%,90%);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden;transition:box-shadow var(--transition)}
.faq-item[open]{box-shadow:var(--shadow-sm)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;font-family:var(--ff-heading);font-weight:600;font-size:1rem;cursor:pointer;min-height:44px;list-style:none;color:var(--c-navy);transition:background var(--transition)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.4rem;font-weight:300;color:var(--c-amber);flex-shrink:0;margin-left:1rem;transition:transform var(--transition)}
.faq-item[open] summary::after{content:'\2212'}
.faq-item summary:hover{background:var(--c-off)}
.faq-item .faq-body{padding:0 1.25rem 1.25rem;color:var(--c-muted);font-size:.95rem;line-height:1.65}
/* CTA Band */
.cta-band{background:var(--c-amber);padding:3rem 0;text-align:center}
.cta-band h2,.cta-band h3{color:var(--c-navy)}
.cta-band p{color:var(--c-navy);opacity:.85;max-width:600px;margin:0 auto}
.cta-band .btn{background:var(--c-navy);color:var(--c-white);border-color:var(--c-navy);margin-top:1rem}
.cta-band .btn:hover{background:var(--c-navy-light);border-color:var(--c-navy-light)}
/* Footer */
.site-footer{background:var(--c-navy);color:hsla(0,0%,100%,.75);padding:3rem 0 0;font-size:.9rem}
.ftr-wrap{display:grid;gap:2rem;padding-bottom:2rem}
.ftr-col h4{color:var(--c-white);font-size:1rem;margin-bottom:.75rem}
.ftr-col a{color:hsla(0,0%,100%,.7);display:inline-block;padding:.2rem 0;transition:color var(--transition)}
.ftr-col a:hover{color:var(--c-amber)}
.ftr-brand{font-family:var(--ff-heading);font-weight:700;font-size:1.15rem;color:var(--c-white);margin-bottom:.5rem;display:block}
.ftr-bottom{border-top:1px solid hsla(0,0%,100%,.1);padding:1.25rem 0;text-align:center;font-size:.8rem;color:hsla(0,0%,100%,.5)}
/* Contact Form */
.contact-form{max-width:640px;margin:0 auto}
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem;color:var(--c-navy)}
.form-input,.form-textarea{display:block;width:100%;padding:.7rem .9rem;font-size:1rem;border:1px solid hsl(215,15%,85%);border-radius:var(--radius);background:var(--c-white);transition:border-color var(--transition),box-shadow var(--transition);min-height:44px}
.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--c-amber);box-shadow:0 0 0 3px hsla(38,92%,50%,.15)}
.form-textarea{min-height:130px;resize:vertical}
/* Page Banner */
.page-banner{background:var(--c-navy);color:var(--c-white);text-align:center;padding:3.5rem 0 2.5rem}
.page-banner h1{color:var(--c-white);margin-bottom:.5rem}
.page-banner p{color:hsla(0,0%,100%,.75);max-width:560px;margin:0 auto;font-size:1.05rem}
/* Cookie Banner */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--c-navy);color:hsla(0,0%,100%,.85);padding:1rem;z-index:2000;box-shadow:0 -2px 12px rgba(0,0,0,.2)}
.cookie-inner{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
.cookie-inner p{font-size:.88rem;line-height:1.5}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.cookie-actions .btn{min-height:40px;padding:.5rem 1.25rem;font-size:.85rem}
.cookie-settings-btn{position:fixed;bottom:12px;left:12px;z-index:1999;min-width:44px;min-height:44px;padding:.45rem .85rem;font-size:.75rem;background:var(--c-navy-light);color:var(--c-white);border:none;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-md);transition:background var(--transition)}
.cookie-settings-btn:hover{background:var(--c-navy)}
/* Service Detail */
.service-detail{padding:2.5rem 0}
.service-detail h2{margin-bottom:.75rem}
.service-detail p{margin-bottom:1rem;color:var(--c-muted);line-height:1.65}
.service-detail ul{margin-bottom:1.25rem;padding-left:1.25rem}
.service-detail li{position:relative;padding-left:1.25rem;margin-bottom:.5rem;color:var(--c-muted);line-height:1.6}
.service-detail li::before{content:'';position:absolute;left:0;top:.6rem;width:8px;height:8px;background:var(--c-amber);border-radius:50%}
/* Timeline */
.timeline{position:relative;padding:1rem 0 1rem 1.5rem}
.timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:hsl(215,15%,85%)}
.timeline-item{position:relative;padding-bottom:2rem;padding-left:1.5rem}
.timeline-item::before{content:'';position:absolute;left:-1.57rem;top:.35rem;width:14px;height:14px;background:var(--c-amber);border:3px solid var(--c-white);border-radius:50%;box-shadow:var(--shadow-sm);z-index:1}
.timeline-item h3{font-size:1.1rem;margin-bottom:.35rem}
.timeline-item p{color:var(--c-muted);font-size:.95rem;line-height:1.6}
.timeline-item time{font-size:.8rem;font-weight:600;color:var(--c-amber);display:block;margin-bottom:.25rem}
/* Icon Box */
.icon-box{text-align:center;padding:1.5rem 1rem}
.icon-box .ib-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:hsla(38,92%,50%,.12);color:var(--c-amber);margin-bottom:1rem;font-size:1.5rem}
.icon-box h3{font-size:1.1rem;margin-bottom:.5rem}
.icon-box p{color:var(--c-muted);font-size:.9rem;line-height:1.55}
/* Thank You */
.thank-you-section{text-align:center;padding:5rem 0;min-height:50vh;display:flex;align-items:center;justify-content:center}
.thank-you-section h1{color:var(--c-navy);margin-bottom:.75rem}
.thank-you-section p{color:var(--c-muted);max-width:480px;margin:0 auto 1.5rem;font-size:1.05rem}
/* Breakpoint 756px */
@media(min-width:756px){h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.stats-bar{grid-template-columns:repeat(2,1fr)}.hero-headline{font-size:2.5rem}.hero-wrap{flex-direction:row;align-items:center}.hero-img-col{flex:0 0 45%}.hero-text-col{flex:1}.cookie-inner{flex-direction:row;align-items:center;justify-content:space-between}.ftr-wrap{grid-template-columns:repeat(2,1fr)}.timeline{padding-left:2rem}.timeline::before{left:.5rem}.timeline-item{padding-left:2rem}.timeline-item::before{left:-1.07rem}}
/* Breakpoint 1040px */
@media(min-width:1040px){.nav-toggle{display:none}.main-nav{position:static;width:auto;height:auto;padding:0;background:transparent;overflow:visible}.nav-list{flex-direction:row;align-items:center;gap:0}.nav-list a{padding:.5rem .75rem;font-size:.9rem}.nav-cta{margin-top:0;margin-left:.75rem}.nav-cta .btn{width:auto}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.stats-bar{grid-template-columns:repeat(4,1fr)}.hero{padding:4.5rem 0 4rem}.hero-headline{font-size:3rem}.ftr-wrap{grid-template-columns:repeat(4,1fr)}.section{padding:4rem 0}.wrap,.container{padding:0 1.5rem}.timeline{padding-left:0;max-width:700px;margin:0 auto}.timeline::before{left:50%;transform:translateX(-1px)}.timeline-item:nth-child(odd){padding-left:calc(50% + 2rem);padding-right:0}.timeline-item:nth-child(even){padding-left:0;padding-right:calc(50% + 2rem);text-align:right}.timeline-item:nth-child(odd)::before{left:calc(50% - 7px)}.timeline-item:nth-child(even)::before{left:calc(50% - 7px)}}
/* Breakpoint 1460px */
@media(min-width:1460px){.wrap,.container{max-width:1360px}.grid-4{grid-template-columns:repeat(4,1fr)}.hero-headline{font-size:3.5rem}.hero{padding:5rem 0 4.5rem}}
/* Additional layout classes */
.two-col{display:flex;flex-direction:column;gap:2rem}
.two-col__text{flex:1}
.two-col__media{flex:1}
.two-col__media img,.col-media img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
@media(min-width:756px){.two-col{flex-direction:row;align-items:center}.two-col__text,.two-col__media{flex:1}}
.col-text{flex:1}.col-media{flex:1}
.hero-grid{display:flex;flex-direction:column;gap:2rem}
.hero-text{flex:1}.hero-media{flex:0 0 45%}
.hero-media img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
@media(min-width:756px){.hero-grid{flex-direction:row;align-items:center}}
.hero-btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}
.section-header,.section-title{margin-bottom:.5rem}
.section-intro{color:var(--c-muted);max-width:640px;margin-bottom:2rem;font-size:1.05rem;line-height:1.6}
.text-center .section-intro{margin-left:auto;margin-right:auto}
.text-accent{color:var(--c-amber)}
.grid{display:grid;gap:1.5rem}
.card-grid{display:grid;gap:1.5rem}
.card-grid--3{display:grid;gap:1.5rem}
.card-grid--4{display:grid;gap:1.5rem}
@media(min-width:756px){.card-grid--3{grid-template-columns:repeat(2,1fr)}.card-grid--4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.card-grid--3{grid-template-columns:repeat(3,1fr)}.card-grid--4{grid-template-columns:repeat(4,1fr)}}
.card__body{padding:1.25rem}
.card__body h3{font-size:1.15rem;margin-bottom:.5rem}
.card__body p{color:var(--c-muted);font-size:.95rem;line-height:1.55}
.step-card{text-align:center;padding:1.5rem 1rem;background:var(--c-white);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.step-card__num{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--c-amber);color:var(--c-navy);font-family:var(--ff-heading);font-weight:700;font-size:1.2rem;margin-bottom:.75rem}
.step-card h3{font-size:1.05rem;margin-bottom:.35rem}
.step-card p{color:var(--c-muted);font-size:.9rem;line-height:1.5}
.contact-card{background:var(--c-white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem}
.contact-list{list-style:none;padding:0}
.contact-list li{padding:.5rem 0;color:var(--c-text);font-size:.95rem}
.contact-list li strong{color:var(--c-navy)}
.hours-list{list-style:none;padding:0}
.hours-list li{padding:.3rem 0;color:var(--c-muted);font-size:.9rem}
.breadcrumb{display:flex;align-items:center;justify-content:center;gap:.5rem;list-style:none;padding:0;font-size:.9rem;color:hsla(0,0%,100%,.6);margin-top:.5rem}
.breadcrumb a{color:hsla(0,0%,100%,.7)}
.breadcrumb a:hover{color:var(--c-amber)}
.breadcrumb li+li::before{content:'/';margin-right:.5rem;color:hsla(0,0%,100%,.4)}
.faq-list{max-width:780px;margin:0 auto}
.icon-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:756px){.icon-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.icon-grid{grid-template-columns:repeat(3,1fr)}}
.icon-box-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:hsla(38,92%,50%,.12);color:var(--c-amber);margin-bottom:1rem;font-size:1.5rem}
.testimonial-body{font-size:1rem;font-style:italic;color:var(--c-text);line-height:1.65;margin-bottom:1rem}
.testimonial-body::before{content:'\201C';font-size:1.5rem;color:var(--c-amber);margin-right:2px}
.testimonial-footer strong{color:var(--c-navy);font-size:.95rem}
.testimonial-footer span{display:block;color:var(--c-muted);font-size:.85rem}
.timeline-year{font-size:.8rem;font-weight:600;color:var(--c-amber);display:block;margin-bottom:.25rem}
.thank-you-icon{font-size:3.5rem;color:var(--c-amber);margin-bottom:1rem;display:block}
.ftr-about p{margin-top:.5rem;color:hsla(0,0%,100%,.6);font-size:.88rem;line-height:1.55}
.ftr-links ul,.ftr-legal ul{list-style:none;padding:0}
.ftr-links li,.ftr-legal li{padding:.2rem 0}
.ftr-contact p{padding:.15rem 0}
/* Scrolled header */
.site-header.scrolled{background:var(--c-navy);box-shadow:var(--shadow-md)}
/* Form error */
.form-group.error .form-input,.form-group.error .form-textarea{border-color:hsl(0,70%,55%)}
span.form-error{display:block;color:hsl(0,70%,55%);font-size:.85rem;margin-top:.25rem}
/* Icon grid */
.icon-grid-4{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:756px){.icon-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.icon-grid-4{grid-template-columns:repeat(4,1fr)}}
/* Reduced motion */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
