/* ============================================
   Sipho's Plumbing  Modern UI Refresh 2026
   Mobile-first, WCAG 2.1 AA, prefers-reduced-motion
   ============================================ */

/* Reset & Base */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --color-primary: #0B5FFF;
  --color-primary-dark: #0645CC;
  --color-primary-light: #E8F0FF;
  --color-primary-50: #F5F8FF;
  --color-accent: #F97316;
  --color-accent-dark: #C2410C;
  --color-accent-light: #FFF7ED;
  --color-whatsapp: #25D366;
  --color-whatsapp-dark: #1DA851;
  --color-bg: #FFFFFF;
  --color-surface: #F8FAFC;
  --color-surface-alt: #F1F5F9;
  --color-border: #E2E8F0;
  --color-text: #0F172A;
  --color-text-muted: #475569;
  --color-text-light: #94A3B8;
  --color-error: #DC2626;
  --color-error-bg: #FEF2F2;
  --color-success: #16A34A;
  --color-success-bg: #F0FDF4;
  --color-focus: #3399FF;
  --font-display: 'Outfit', 'Playfair Display', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.5vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(3rem, 2.5rem + 1vw, 4.5rem);
  --text-4xl: clamp(3.75rem, 3rem + 2vw, 6rem);
  --space-xs: 0.5rem; --space-sm: 0.75rem; --space-md: 1rem; --space-lg: 1.5rem;
  --space-xl: 2rem; --space-2xl: 3rem; --space-3xl: 4rem; --space-4xl: 6rem;
  --space-5xl: 8rem; --space-6xl: 10rem;
  --max-width: 1200px; --header-height: 72px;
  --radius-sm:4px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-2xl:24px; --radius-full:9999px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);
  --shadow-hover: 0 20px 40px -12px rgba(11,95,255,0.15);
  --transition-fast:150ms ease; --transition-base:250ms ease; --transition-slow:350ms ease;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}
a:hover{color:var(--color-primary-dark)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}
.skip-link{position:absolute;top:-100%;left:var(--space-md);background:var(--color-primary);color:white;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);z-index:1000;font-weight:600}
.skip-link:focus{top:var(--space-md)}
.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--space-lg)}
@media(min-width:768px){.container{padding-inline:var(--space-2xl)}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0.875rem 1.75rem;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;line-height:1;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);text-decoration:none;white-space:nowrap;min-height:48px}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--color-primary);color:white}
.btn--primary:hover{background:var(--color-primary-dark);color:white}
.btn--whatsapp{background:var(--color-whatsapp);color:white}
.btn--whatsapp:hover{background:var(--color-whatsapp-dark);color:white}
.btn--phone{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.btn--phone:hover{background:var(--color-primary);color:white}
.btn--lg{padding:1rem 2rem;font-size:var(--text-base);border-radius:var(--radius-lg)}
.btn--full{width:100%}
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.98);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);height:var(--header-height)}
.header__inner{display:flex;align-items:center;height:100%;gap:var(--space-lg)}
.logo{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;color:var(--color-text);flex-shrink:0}
.logo__text{font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-0.02em}
.logo__accent{color:var(--color-primary)}
.nav__list{display:none;list-style:none;margin-left:auto;gap:var(--space-xl)}
.nav__link{color:var(--color-text);font-weight:500;font-size:var(--text-sm);padding:var(--space-xs) 0;position:relative}
.nav__link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-primary);transition:width var(--transition-base)}
.nav__link:hover::after,.nav__link:focus-visible::after{width:100%}
.nav__toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;background:none;border:none;cursor:pointer;padding:0}
.nav__burger,.nav__burger::before,.nav__burger::after{display:block;width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:all var(--transition-base)}
.nav__burger{position:relative}
.nav__burger::before,.nav__burger::after{content:'';position:absolute;left:0}
.nav__burger::before{top:-7px}
.nav__burger::after{top:7px}
.nav__toggle[aria-expanded="true"] .nav__burger{background:transparent}
.nav__toggle[aria-expanded="true"] .nav__burger::before{top:0;transform:rotate(45deg)}
.nav__toggle[aria-expanded="true"] .nav__burger::after{top:0;transform:rotate(-45deg)}
.header__cta{margin-left:auto;display:none}
@media(min-width:1024px){.nav__list{display:flex}.nav__toggle{display:none}.header__cta{display:block}}
@media(max-width:1023px){.nav__list{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:white;flex-direction:column;padding:var(--space-2xl);gap:var(--space-lg);transform:translateX(100%);transition:transform var(--transition-base)}.nav__list.is-open{transform:translateX(0)}.nav__link{font-size:var(--text-lg);padding:var(--space-md) 0}}
.hero{position:relative;min-height:calc(100vh - var(--header-height));display:flex;align-items:center;background:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-primary-light) 100%);overflow:hidden;padding:var(--space-3xl)0}
.hero__bg{position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(11,95,255,0.08)0%,transparent50%),radial-gradient(circle at 20% 80%,rgba(249,115,22,0.06)0%,transparent40%);pointer-events:none}
.hero__inner{display:grid;gap:var(--space-3xl);align-items:center}
@media(min-width:768px){.hero__inner{grid-template-columns:1.2fr 0.8fr}}
.hero__content{max-width:600px}
.hero__badge{display:inline-flex;align-items:center;gap:var(--space-sm);background:white;color:var(--color-primary);font-size:var(--text-xs);font-weight:600;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);margin-bottom:var(--space-lg);box-shadow:var(--shadow-sm)}
.hero__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:1.1;margin-bottom:var(--space-lg);letter-spacing:-0.02em}
@media(min-width:768px){.hero__title{font-size:var(--text-4xl)}}
.hero__highlight{color:var(--color-primary)}
.hero__subtitle{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-2xl);max-width:480px}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-2xl)}
.hero__trust{padding-top:var(--space-xl);border-top:1px solid var(--color-border)}
.trust-items{display:flex;flex-wrap:wrap;gap:var(--space-lg)}
.trust-item{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-muted)}
.trust-item svg{color:#f59e0b}
.hero__visual{position:relative;display:none}
@media(min-width:768px){.hero__visual{display:block}}
.hero__media{position:relative;border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-lg);background:#ddd}
.hero__media img{width:100%;height:auto;display:block}
.section-header{text-align:center;max-width:640px;margin-inline:auto;margin-bottom:var(--space-3xl)}
.section-tag{display:inline-block;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-primary);background:var(--color-primary-light);padding:6px 14px;border-radius:var(--radius-full);margin-bottom:var(--space-sm)}
.section-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:1.2;margin-bottom:var(--space-md);letter-spacing:-0.02em}
.section-title--light{color:white}
.section-subtitle{font-size:var(--text-base);color:var(--color-text-muted)}
.services{padding:var(--space-4xl)0;background:white}
.services__grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.service-card{background:white;border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);display:flex;flex-direction:column;gap:var(--space-md);position:relative;overflow:hidden}
.service-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}
.service-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-hover);transform:translateY(-4px)}
.service-card:hover::before{transform:scaleX(1)}
.service-card__icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md)}
.service-card__title{font-size:var(--text-lg);font-weight:600}
.service-card__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6;flex:1}
.service-card__tag{display:inline-block;font-size:var(--text-xs);font-weight:600;color:var(--color-accent-dark);background:var(--color-accent-light);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);align-self:flex-start}
.areas{padding:var(--space-4xl)0;background:var(--color-surface)}
.areas__grid{display:grid;gap:var(--space-2xl);grid-template-columns:1fr;margin-bottom:var(--space-2xl)}
@media(min-width:768px){.areas__grid{grid-template-columns:1fr 2fr}}
.area-map{background:white;border-radius:var(--radius-xl);padding:var(--space-2xl);border:1px solid var(--color-border);min-height:300px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}
.area-group{background:white;border-radius:var(--radius-xl);padding:var(--space-2xl);border:1px solid var(--color-border)}
.area-group__title{font-size:var(--text-lg);font-weight:600;color:var(--color-primary);margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-primary-light);display:flex;align-items:center;gap:var(--space-sm)}
.area-list{list-style:none;display:grid;gap:var(--space-sm)}
.area-list li{font-size:var(--text-sm);color:var(--color-text-muted);padding-left:var(--space-lg);position:relative;transition:color var(--transition-fast)}
.area-list li::before{content:'→';position:absolute;left:0;color:var(--color-primary)}
.area-list li:hover{color:var(--color-text)}
.areas__note{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}
.why-us{padding:var(--space-4xl)0;background:linear-gradient(135deg,var(--color-primary)0%,var(--color-primary-dark)100%);color:white}
.why-us__inner{display:grid;gap:var(--space-3xl);align-items:center}
@media(min-width:768px){.why-us__inner{grid-template-columns:1.3fr 1fr}}
.why-us__text{font-size:var(--text-base);opacity:0.9;margin-bottom:var(--space-2xl);max-width:520px}
.reasons-list{display:grid;gap:var(--space-xl);list-style:none}
.reason{display:grid;gap:var(--space-sm)}
.reason__label{display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-lg);font-weight:600}
.reason__label svg{color:#fbbf24}
.reason__desc{font-size:var(--text-sm);opacity:0.8;padding-left:2.5rem}
.stat-card{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);border-radius:var(--radius-xl);padding:var(--space-2xl);text-align:center}
.stat-card--accent{background:white;color:var(--color-text)}
.stat-card--accent .stat-card__number{color:var(--color-primary)}
.stat-card__number{display:block;font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:white;line-height:1;margin-bottom:var(--space-sm)}
.stat-card__label{font-size:var(--text-sm);opacity:0.9}
.testimonials{padding:var(--space-4xl)0;background:white}
.testimonials__grid{display:grid;gap:var(--space-lg);grid-template-columns:1fr}
@media(min-width:768px){.testimonials__grid{grid-template-columns:repeat(3,1fr)}}
.testimonial{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-lg);border-left:4px solid var(--color-accent)}
.testimonial__stars{color:#f59e0b;font-size:var(--text-lg);letter-spacing:2px}
.testimonial__text{font-size:var(--text-base);color:var(--color-text);line-height:1.7;flex:1}
.testimonial__author{display:flex;flex-direction:column;gap:2px;padding-top:var(--space-md);border-top:1px solid var(--color-border)}
.testimonial__name{font-weight:600;font-style:normal;color:var(--color-text)}
.testimonial__location{font-size:var(--text-sm);color:var(--color-text-muted)}
.contact{padding:var(--space-4xl)0;background:var(--color-surface)}
.contact__inner{display:grid;gap:var(--space-3xl)}
@media(min-width:768px){.contact__inner{grid-template-columns:1fr 1.2fr;align-items:start}}
.contact__info{max-width:480px}
.contact__text{font-size:var(--text-base);color:var(--color-text-muted);margin-bottom:var(--space-2xl)}
.contact__methods{display:grid;gap:var(--space-lg)}
.contact-method{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:white;border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:all var(--transition-fast);min-height:56px}
.contact-method:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}
.contact-method__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);flex-shrink:0}
.contact-method__label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.05em}
.contact-method__value{display:block;font-size:var(--text-base);font-weight:600;color:var(--color-text)}
.test-mode-notice{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-sm)}
.contact-form{background:white;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2xl)}
.form-group{margin-bottom:var(--space-lg)}
.form-row{display:grid;gap:var(--space-lg);grid-template-columns:1fr}
@media(min-width:480px){.form-row{grid-template-columns:1fr 1fr}}
.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-sm)}
.form-label--inline{display:inline;margin-bottom:0;font-weight:400}
.form-input{width:100%;padding:0.75rem var(--space-md);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:white;border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:48px}
.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(11,95,255,0.15);outline:none}
.form-input::placeholder{color:var(--color-text-light)}
.form-textarea{resize:vertical;min-height:120px}
.form-group--checkbox{display:flex;align-items:flex-start;gap:var(--space-sm)}
.form-checkbox{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--color-primary)}
.contact-form__note{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;margin-top:var(--space-lg)}
.footer{background:var(--color-text);color:rgba(255,255,255,0.8);padding:var(--space-3xl)0;border-top:4px solid var(--color-accent)}
.footer__inner{display:grid;gap:var(--space-2xl);text-align:center}
@media(min-width:640px){.footer__inner{grid-template-columns:1fr auto 1fr;align-items:center;text-align:left}}
.logo__text--light{color:white}
.footer__tagline{font-size:var(--text-sm);opacity:0.7;margin-top:var(--space-sm)}
.footer__nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-lg)}
.footer__nav a{color:rgba(255,255,255,0.8);font-size:var(--text-sm)}
.footer__nav a:hover{color:white}
.footer__legal{font-size:var(--text-xs);opacity:0.6}
.footer__reg{margin-top:var(--space-xs)}
.sticky-ctas{position:fixed;bottom:0;left:0;right:0;display:flex;z-index:50;padding:var(--space-md);background:linear-gradient(to top, rgba(255,255,255,1)60%, rgba(255,255,255,0));pointer-events:none}
.sticky-btn{flex:1;max-width:200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-full);font-weight:600;font-size:var(--text-sm);text-decoration:none;pointer-events:all;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}
.sticky-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.sticky-btn--call{background:var(--color-primary);color:white}
.sticky-btn--whatsapp{background:var(--color-whatsapp);color:white}
@media(min-width:768px){.sticky-ctas{display:none}}
.reveal{opacity:0;transform:translateY(20px);transition:opacity 400ms ease,transform 400ms ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.reveal{opacity:1;transform:none}}
@media print{.header,.sticky-ctas,.nav__toggle{display:none}body{color:black;background:white}.hero{min-height:auto;padding:var(--space-2xl)0;background:none}}
