/* ===== BEST PLUMBING NEWPORT BEACH — GLOBAL STYLES ===== */

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'DM Sans',system-ui,-apple-system,sans-serif;color:#1e293b;background:#fff;line-height:1.7;font-size:16px;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* --- CSS Variables --- */
:root{
  --navy:#0f2b4c;
  --navy-deep:#091d35;
  --blue:#1a6fb5;
  --blue-light:#e8f2fc;
  --blue-accent:#2d8fd5;
  --slate:#475569;
  --slate-light:#64748b;
  --gray-100:#f8fafc;
  --gray-200:#f1f5f9;
  --gray-300:#e2e8f0;
  --white:#ffffff;
  --orange:#e67e22;
  --green:#16a34a;
  --red:#dc2626;
  --shadow-sm:0 1px 3px rgba(15,43,76,.08);
  --shadow-md:0 4px 16px rgba(15,43,76,.1);
  --shadow-lg:0 8px 32px rgba(15,43,76,.12);
  --radius:8px;
  --radius-lg:12px;
  --max-w:1200px;
  --transition:all .25s ease;
}

/* --- Typography --- */
h1,h2,h3,h4,h5,h6{font-family:'Playfair Display','Georgia',serif;color:var(--navy);line-height:1.25;font-weight:700}
h1{font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:.75rem}
h2{font-size:clamp(1.6rem,3.5vw,2.4rem);margin-bottom:.6rem}
h3{font-size:clamp(1.2rem,2.5vw,1.6rem);margin-bottom:.5rem}
p{margin-bottom:1rem;color:var(--slate)}

/* --- Layout --- */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 24px}
.section{padding:72px 0}
.section--alt{background:var(--gray-100)}
.section--navy{background:var(--navy);color:var(--white)}
.section--navy h2,.section--navy h3,.section--navy p{color:var(--white)}
.section--blue-light{background:var(--blue-light)}

/* --- Buttons --- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--radius);font-weight:600;font-size:1rem;transition:var(--transition);text-align:center;white-space:nowrap}
.btn--primary{background:var(--blue);color:var(--white)}
.btn--primary:hover{background:var(--navy);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn--secondary{background:var(--white);color:var(--navy);border:2px solid var(--navy)}
.btn--secondary:hover{background:var(--navy);color:var(--white)}
.btn--orange{background:var(--orange);color:var(--white)}
.btn--orange:hover{background:#cf6d17;transform:translateY(-1px)}
.btn--white{background:var(--white);color:var(--navy)}
.btn--white:hover{background:var(--gray-200)}
.btn--sm{padding:10px 20px;font-size:.9rem}
.btn--lg{padding:16px 36px;font-size:1.1rem}
.btn--block{display:flex;justify-content:center;width:100%}

/* --- Header --- */
.header{position:sticky;top:0;z-index:1000;background:var(--white);border-bottom:1px solid var(--gray-300);box-shadow:var(--shadow-sm)}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;max-width:var(--max-w);margin:0 auto}
.header__brand{display:flex;flex-direction:column}
.header__brand-name{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;color:var(--navy);line-height:1.2}
.header__brand-tag{font-size:.72rem;color:var(--slate-light);font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.header__nav{display:flex;align-items:center;gap:28px}
.header__nav a{font-weight:500;color:var(--navy);font-size:.95rem;transition:var(--transition);position:relative}
.header__nav a:hover{color:var(--blue)}
.header__nav a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--blue);transition:var(--transition)}
.header__nav a:hover::after{width:100%}
.header__cta{display:flex;align-items:center;gap:12px}
.header__phone{font-weight:700;color:var(--blue);font-size:.95rem}
.header__phone svg{width:18px;height:18px;vertical-align:middle;margin-right:4px}

/* Mobile menu */
.header__toggle{display:none;flex-direction:column;gap:5px;padding:8px}
.header__toggle span{display:block;width:24px;height:2.5px;background:var(--navy);border-radius:2px;transition:var(--transition)}

@media(max-width:960px){
  .header__nav,.header__cta .btn--primary{display:none}
  .header__toggle{display:flex}
  .header__nav.active{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--white);padding:24px;border-bottom:2px solid var(--blue);box-shadow:var(--shadow-lg);gap:16px}
  .header__nav.active a{font-size:1.1rem;padding:8px 0}
}

/* --- Hero --- */
.hero{background:linear-gradient(135deg,var(--navy) 0%,#163a5f 50%,var(--blue) 100%);color:var(--white);padding:80px 0 72px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(26,111,181,.2) 0%,transparent 70%);border-radius:50%}
.hero::after{content:'';position:absolute;bottom:-30%;left:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.04) 0%,transparent 70%);border-radius:50%}
.hero__content{position:relative;z-index:1;max-width:760px}
.hero h1{color:var(--white);font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:1rem}
.hero p{color:rgba(255,255,255,.88);font-size:1.15rem;margin-bottom:1.5rem;max-width:600px}
.hero__btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:1.5rem}
.hero__trust{display:flex;flex-wrap:wrap;gap:20px;font-size:.9rem;color:rgba(255,255,255,.8)}
.hero__trust span{display:flex;align-items:center;gap:6px}
.hero__trust span::before{content:'✓';color:var(--green);font-weight:700}

/* --- Service Cards Grid --- */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{background:var(--white);border-radius:var(--radius-lg);padding:28px;border:1px solid var(--gray-300);transition:var(--transition)}
.card:hover{box-shadow:var(--shadow-md);border-color:var(--blue);transform:translateY(-3px)}
.card__icon{width:48px;height:48px;background:var(--blue-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:1.5rem}
.card h3{margin-bottom:8px}
.card p{font-size:.93rem;margin-bottom:12px;color:var(--slate-light)}
.card a.card__link{font-weight:600;color:var(--blue);font-size:.9rem;display:inline-flex;align-items:center;gap:4px}
.card a.card__link:hover{gap:8px}

/* --- Trust Strip --- */
.trust-strip{background:var(--gray-100);border-top:1px solid var(--gray-300);border-bottom:1px solid var(--gray-300);padding:40px 0}
.trust-strip__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;text-align:center}
.trust-strip__item{display:flex;flex-direction:column;align-items:center;gap:8px}
.trust-strip__icon{width:44px;height:44px;background:var(--blue);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700}
.trust-strip__item h4{font-size:.95rem;font-family:'DM Sans',sans-serif;color:var(--navy)}
.trust-strip__item p{font-size:.82rem;color:var(--slate-light)}

/* --- Two Column --- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:768px){.two-col{grid-template-columns:1fr;gap:24px}}

/* --- FAQ --- */
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--gray-300);padding:0}
.faq-item__q{display:flex;justify-content:space-between;align-items:center;padding:20px 0;cursor:pointer;font-weight:600;color:var(--navy);font-size:1.05rem;gap:12px;font-family:'DM Sans',sans-serif}
.faq-item__q::after{content:'+';font-size:1.4rem;color:var(--blue);transition:var(--transition);flex-shrink:0}
.faq-item.active .faq-item__q::after{content:'−'}
.faq-item__a{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}
.faq-item__a p{padding:0 0 20px;color:var(--slate);font-size:.95rem}
.faq-item.active .faq-item__a{max-height:400px}

/* --- Steps / How It Works --- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px;counter-reset:step}
.step{text-align:center;position:relative}
.step::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--blue);color:var(--white);font-size:1.4rem;font-weight:700;border-radius:50%;margin:0 auto 16px;font-family:'Playfair Display',serif}
.step h3{margin-bottom:8px}
.step p{font-size:.93rem;color:var(--slate-light)}

/* --- Service List --- */
.service-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.service-list__item{display:flex;gap:16px;padding:20px;background:var(--white);border-radius:var(--radius);border:1px solid var(--gray-300);transition:var(--transition)}
.service-list__item:hover{border-color:var(--blue);box-shadow:var(--shadow-sm)}
.service-list__item .icon{flex-shrink:0;width:40px;height:40px;background:var(--blue-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--blue);font-weight:700}
.service-list__item h4{font-size:1rem;font-family:'DM Sans',sans-serif;margin-bottom:4px}
.service-list__item p{font-size:.88rem;margin-bottom:0;color:var(--slate-light)}

/* --- Problems Grid --- */
.problems-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.problem-tag{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--white);border-radius:var(--radius);border:1px solid var(--gray-300);font-weight:500;color:var(--navy);font-size:.95rem}
.problem-tag::before{content:'🔧';font-size:1.1rem}

/* --- Area Tags --- */
.area-tags{display:flex;flex-wrap:wrap;gap:10px}
.area-tag{display:inline-block;padding:8px 16px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.88rem;font-weight:500;color:var(--navy);transition:var(--transition)}
.area-tag:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}

/* --- CTA Banner --- */
.cta-banner{background:linear-gradient(135deg,var(--navy),var(--blue));padding:56px 0;text-align:center;color:var(--white)}
.cta-banner h2{color:var(--white);margin-bottom:12px}
.cta-banner p{color:rgba(255,255,255,.85);font-size:1.1rem;margin-bottom:24px;max-width:600px;margin-left:auto;margin-right:auto}
.cta-banner__btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}

/* --- Footer --- */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.7);padding:56px 0 0}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
@media(max-width:768px){.footer__grid{grid-template-columns:1fr 1fr;gap:24px}}
@media(max-width:480px){.footer__grid{grid-template-columns:1fr}}
.footer h4{color:var(--white);font-family:'DM Sans',sans-serif;font-size:1rem;margin-bottom:16px;font-weight:600}
.footer a{color:rgba(255,255,255,.65);font-size:.9rem;transition:var(--transition)}
.footer a:hover{color:var(--white)}
.footer ul li{margin-bottom:8px}
.footer__brand p{font-size:.9rem;line-height:1.6}
.footer__bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;text-align:center;font-size:.82rem;color:rgba(255,255,255,.45)}
.footer__phone{color:var(--blue-accent);font-weight:600;font-size:1.1rem}

/* --- Breadcrumbs --- */
.breadcrumbs{padding:12px 0;font-size:.85rem;color:var(--slate-light)}
.breadcrumbs a{color:var(--blue);font-weight:500}
.breadcrumbs a:hover{text-decoration:underline}
.breadcrumbs span{margin:0 8px;color:var(--gray-300)}

/* --- Page Header --- */
.page-header{background:linear-gradient(135deg,var(--navy) 0%,#163a5f 100%);color:var(--white);padding:56px 0 48px}
.page-header h1{color:var(--white);margin-bottom:8px}
.page-header p{color:rgba(255,255,255,.8);font-size:1.05rem;max-width:640px}

/* --- Content Layout --- */
.content-body{max-width:800px}
.content-body h2{margin-top:2rem}
.content-body h3{margin-top:1.5rem}
.content-body ul{margin:1rem 0;padding-left:0}
.content-body ul li{padding:6px 0 6px 24px;position:relative;color:var(--slate)}
.content-body ul li::before{content:'→';position:absolute;left:0;color:var(--blue);font-weight:700}
.content-body a{color:var(--blue);font-weight:500}
.content-body a:hover{text-decoration:underline}

/* --- NAP Block --- */
.nap-block{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-lg);padding:28px;margin:2rem 0}
.nap-block h3{margin-bottom:12px}
.nap-block p{margin-bottom:6px;font-size:.95rem}

/* --- Blog Cards --- */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px}
.blog-card{background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-lg);padding:28px;transition:var(--transition)}
.blog-card:hover{box-shadow:var(--shadow-md);border-color:var(--blue)}
.blog-card__tag{display:inline-block;background:var(--blue-light);color:var(--blue);font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:4px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}
.blog-card h3{margin-bottom:8px;font-size:1.15rem}
.blog-card p{font-size:.9rem;color:var(--slate-light);margin-bottom:12px}
.blog-card a.card__link{font-weight:600;color:var(--blue);font-size:.9rem}

/* --- Sidebar --- */
.page-with-sidebar{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}
@media(max-width:960px){.page-with-sidebar{grid-template-columns:1fr}}
.sidebar{position:sticky;top:100px}
.sidebar__box{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px}
.sidebar__box h4{font-size:1rem;font-family:'DM Sans',sans-serif;margin-bottom:12px;color:var(--navy)}
.sidebar__box ul li{margin-bottom:6px}
.sidebar__box ul li a{font-size:.9rem;color:var(--slate);display:flex;align-items:center;gap:6px}
.sidebar__box ul li a:hover{color:var(--blue)}
.sidebar__box ul li a::before{content:'→';color:var(--blue);font-size:.8rem}

/* --- Mobile Sticky CTA --- */
.mobile-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:999;background:var(--blue);padding:12px 20px;box-shadow:0 -2px 12px rgba(0,0,0,.15)}
.mobile-cta a{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--white);font-weight:700;font-size:1.05rem}
@media(max-width:768px){.mobile-cta{display:block}body{padding-bottom:56px}}

/* --- Image Content Sections --- */
.img-text-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.img-text-row--reverse .img-text-row__img{order:2}
.img-text-row--reverse .img-text-row__text{order:1}
.img-text-row__img{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.img-text-row__img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
.img-text-row__text h2{margin-bottom:16px}
.img-text-row__text p{margin-bottom:12px}
.img-text-row__text .check-list{margin:16px 0}
.img-text-row__text .check-list li{padding:8px 0 8px 28px;position:relative;color:var(--slate);font-size:.95rem}
.img-text-row__text .check-list li::before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:700;font-size:1.05rem}
@media(max-width:768px){
  .img-text-row{grid-template-columns:1fr;gap:28px}
  .img-text-row--reverse .img-text-row__img{order:0}
  .img-text-row--reverse .img-text-row__text{order:0}
}

/* --- Hero with Image --- */
.hero--split{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero--split .hero__img{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.hero--split .hero__img img{width:100%;height:100%;object-fit:cover;display:block;min-height:380px}
@media(max-width:860px){
  .hero--split{grid-template-columns:1fr}
  .hero--split .hero__img{max-height:320px}
  .hero--split .hero__img img{min-height:240px}
}

/* --- Service Grid Cards Enhanced --- */
.service-cards-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.svc-card-v2{padding:24px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-lg);transition:var(--transition)}
.svc-card-v2:hover{border-color:var(--blue);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.svc-card-v2 h3{font-size:1.1rem;margin-bottom:8px;font-family:'DM Sans',sans-serif;color:var(--navy)}
.svc-card-v2 p{font-size:.9rem;color:var(--slate-light);margin-bottom:10px}
.svc-card-v2 a{font-weight:600;font-size:.88rem;color:var(--blue)}

/* --- Tip Box --- */
.tip-box{background:var(--blue-light);border-left:4px solid var(--blue);border-radius:0 var(--radius) var(--radius) 0;padding:20px 24px;margin:24px 0}
.tip-box h4{color:var(--navy);font-family:'DM Sans',sans-serif;font-size:1rem;margin-bottom:6px}
.tip-box p{font-size:.93rem;margin-bottom:0;color:var(--slate)}

/* --- Process Steps V2 --- */
.process-v2{counter-reset:proc;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.proc-step{position:relative;padding:28px 24px 24px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-lg);transition:var(--transition)}
.proc-step:hover{border-color:var(--blue);box-shadow:var(--shadow-sm)}
.proc-step::before{counter-increment:proc;content:counter(proc);position:absolute;top:-16px;left:24px;width:32px;height:32px;background:var(--blue);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.proc-step h4{font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--navy);margin-bottom:6px}
.proc-step p{font-size:.9rem;color:var(--slate-light);margin-bottom:0}

/* --- Emergency Banner --- */
.emergency-bar{background:linear-gradient(135deg,#b91c1c 0%,#dc2626 50%,#ef4444 100%);color:var(--white);padding:48px 0;position:relative;overflow:hidden}
.emergency-bar::before{content:'';position:absolute;top:-50%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 70%);border-radius:50%}
.emergency-bar h2{color:var(--white);margin-bottom:12px}
.emergency-bar p{color:rgba(255,255,255,.9)}

/* --- Area Highlight --- */
.area-highlight{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.area-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--white);border:1px solid var(--gray-300);border-radius:50px;font-size:.9rem;font-weight:500;color:var(--navy);transition:var(--transition)}
.area-chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}
.area-chip::before{content:'📍';font-size:.85rem}

/* --- Utilities --- */
.text-center{text-align:center}
.text-blue{color:var(--blue)}
.text-navy{color:var(--navy)}
.text-white{color:var(--white)}
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}
.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}
.flex-center{display:flex;align-items:center;justify-content:center}
.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}

/* --- Section Titles --- */
.section__title{text-align:center;margin-bottom:48px}
.section__title p{max-width:600px;margin:8px auto 0;font-size:1.05rem}
.section__title--left{text-align:left}
.section__title--left p{margin-left:0}

/* --- Responsive --- */
@media(max-width:480px){
  .section{padding:48px 0}
  .hero{padding:56px 0 48px}
  .btn--lg{padding:14px 24px;font-size:1rem}
  .footer__grid{gap:20px}
}

/* --- Semantic heading fixes (SEO hierarchy) --- */
.sidebar__heading{font-size:1rem;font-family:'DM Sans',sans-serif;font-weight:600;color:var(--navy);margin-bottom:12px}
.footer__heading{color:var(--white);font-family:'DM Sans',sans-serif;font-size:1rem;margin-bottom:16px;font-weight:600}

/* --- Mobile hardening (Technical SEO) --- */
@media(max-width:480px){
  .hero--split{padding-bottom:0}
  .img-text-row__img img{aspect-ratio:16/9;min-height:auto}
  .service-cards-v2{grid-template-columns:1fr}
  .problems-grid{grid-template-columns:1fr}
  .area-highlight{justify-content:flex-start}
  .emergency-bar ul li{font-size:.88rem}
  .process-v2{grid-template-columns:1fr}
  .faq-item__q{font-size:.95rem;padding:16px 0}
}
@media(max-width:360px){
  .container{padding:0 16px}
  .hero__btns{flex-direction:column}
  .hero__btns .btn{width:100%;justify-content:center}
  .cta-banner__btns{flex-direction:column;align-items:center}
  .cta-banner__btns .btn{width:100%}
}
