/* Styles for Worthington Sprinklers single page */
.root, :root{
  --bg: #f7fbf7;
  --card-bg: #ffffff;
  --accent: #2b7a2b;
  --accent-600: #1f6b1f;
  --muted: #2f3b36;
  --muted-2: #55615b;
  --radius: 12px;
  --max-width: 980px;
  --header-h: 64px;
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
.body, body{
  margin:0;
  background:var(--bg);
  color:var(--muted);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}
.container{max-width:var(--max-width);margin:0 auto;padding:0 1.15rem}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}
.brand{font-weight:800;color:var(--accent);text-decoration:none;font-size:1.15rem;letter-spacing:0.02em;display:inline-flex;align-items:center;gap:0.5rem}

/* Logo image in the header */
.brand-logo{height:84px;display:block;width:auto}
.site-header{position:fixed;left:0;right:0;top:0;height:var(--header-h);background:transparent;border-bottom:0;z-index:80;display:block;transition:all .22s ease}
/* keep header visually transparent at all times and let hero sit behind it */
.site-header, .site-header .header-inner{background:transparent}
.header-inner{height:100%;display:flex;align-items:center}
.site-header .container{padding-left:1rem;padding-right:1rem}
.nav{display:flex;gap:0.75rem;align-items:center}
.nav a{color:var(--muted);text-decoration:none;padding:0.4rem 0.7rem;border-radius:999px;background:rgba(255,255,255,0.7);backdrop-filter:blur(2px);transition:all .16s ease;font-weight:600}
.nav a:hover{transform:translateY(-2px);background:rgba(255,255,255,0.88)}
.cta{background:linear-gradient(90deg,var(--accent),var(--accent-600));color:white;padding:0.5rem 0.85rem;border-radius:10px;font-weight:700}
.nav-toggle{display:none;background:transparent;border:0;color:var(--muted);font-size:1.4rem}

/* Hero (full-screen) */
.hero.full-hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:0;margin-bottom:1.5rem;overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none}
.hero-decor{width:120%;height:120%;transform:translateY(-6%)}
.hero-decor .drops{animation:floatDrops 18s linear infinite}

.hero-content{position:relative;z-index:4;max-width:980px;margin:0 auto;padding:3.25rem 1.25rem;text-align:center;transform:translateY(-6vh)}
.eyebrow{color:var(--accent);font-weight:700;letter-spacing:0.08em;margin-bottom:0.6rem}
.hero-title{font-size:3.2rem;line-height:1.02;margin:0;color:var(--muted);font-weight:800;letter-spacing:-0.01em}
.hero-sub{color:var(--muted-2);margin-top:0.75rem;font-size:1.06rem;max-width:720px;margin-left:auto;margin-right:auto}
.hero-actions{margin-top:1.5rem;display:flex;gap:0.75rem;justify-content:center}
.btn.primary{padding:0.95rem 1.35rem;font-size:1.02rem;border-radius:12px}

/* Make hero buttons visually consistent on desktop */
.hero-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.88rem 1.15rem;font-size:1.02rem;border-radius:12px}
.hero-actions .btn.ghost{background:transparent;border:1px solid rgba(20,30,20,0.08);color:var(--muted);}

@keyframes floatDrops{
  0%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-12px) scale(1.02)}
  100%{transform:translateY(0) scale(1)}
}

/* a subtle glass spotlight near the center */
.hero.full-hero::before{content:"";position:absolute;left:50%;top:40%;width:60vw;height:60vh;transform:translate(-50%,-40%);background:radial-gradient(ellipse at center, rgba(255,255,255,0.6), rgba(255,255,255,0.15) 30%, transparent 60%);opacity:0.22;pointer-events:none}

/* Cards */
.card{background:var(--card-bg);padding:1.05rem;border-radius:var(--radius);box-shadow:0 10px 30px rgba(25,40,30,0.06);text-align:left;border:1px solid rgba(20,30,20,0.03)}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}
.card h3{margin-top:0;color:var(--accent);font-size:1.05rem}

.section{padding:2rem 0}
.section-title{font-size:1.15rem;color:var(--accent-600);margin-bottom:0.5rem}
.section-sub{margin-top:0;color:var(--muted-2);max-width:68ch}

/* About */
/* removed about-specific styles for simplicity */

/* Testimonials */
.quote{font-size:1rem;color:var(--muted);margin:0}
.who{margin-top:0.6rem;color:var(--muted)}

/* Contact */
.contact-simple{display:flex;gap:1rem;align-items:flex-start}
.contact-form label{display:block;margin-top:0.4rem;font-size:0.95rem;color:var(--muted)}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:0.75rem;margin-top:0.35rem;border-radius:10px;border:1px solid rgba(20,30,20,0.06);background:white;color:var(--muted);box-shadow:0 6px 18px rgba(25,40,30,0.03)}
.contact-form textarea{min-height:96px}
.form-actions{display:flex;gap:0.5rem;margin-top:0.9rem;align-items:center}
.btn{display:inline-block;padding:0.6rem 0.95rem;border-radius:8px;text-decoration:none;border:0;cursor:pointer}
.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-600));color:white}
.btn.ghost{background:transparent;border:1px solid rgba(20,30,20,0.06);color:var(--muted)}
.form-msg{margin-top:0.6rem;color:var(--accent)}
.note{margin-top:0.5rem;color:var(--muted-2);font-size:0.95rem}

/* Testimonials layout (plain text, no card chrome) */
.testimonials .testi-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));padding:0.6rem 0}

/* Layered testimonial layout for larger screens: center main card slightly lower, smaller side cards behind */
@media (min-width:700px){
  .testimonials .testi-grid{display:flex;justify-content:center;align-items:flex-end;gap:1.25rem;padding:0.8rem 0;height:180px}
  .testimonials .testi-card{flex:0 0 320px;max-width:420px;transition:transform .36s cubic-bezier(.2,.9,.2,1),filter .36s ease}
  .testimonials .testi-card:nth-child(2){transform:translateY(14px);z-index:3}
  .testimonials .testi-card:nth-child(1), .testimonials .testi-card:nth-child(3){transform:translateY(-10px);z-index:1;filter:brightness(.985);opacity:0.98}
}
.testi-card{min-width:260px;max-width:420px;flex:0 0 auto;padding:0;margin:0;border-radius:0;background:transparent;box-shadow:none;border:0;color:var(--muted-2);text-align:center;position:relative}
.testi-card::before{content:"“";position:absolute;top:-6px;left:50%;transform:translateX(-50%);font-size:48px;color:var(--accent-600);opacity:0.08;font-weight:700}
.testi-card p{margin:0 0 0.45rem 0;font-size:0.92rem;line-height:1.45;font-weight:300;color:var(--muted-2);letter-spacing:0.12px}
.testi-card footer{font-size:0.82rem;color:var(--accent-600);text-align:center;font-weight:700;letter-spacing:0.08em;margin-top:0.25rem}

@media (min-width:900px){
  .testimonials .testi-grid{padding-left:calc((100% - 980px)/2);padding-right:calc((100% - 980px)/2)}
}

/* Address card */
.address-section .address-card{background:var(--card-bg);padding:1.25rem;border-radius:var(--radius);box-shadow:0 18px 40px rgba(20,30,20,0.06);border:1px solid rgba(20,30,20,0.04);max-width:680px;margin-top:0.75rem}
.address-section address{font-style:normal;color:var(--muted);line-height:1.5}
.address-section a{color:var(--accent-600);text-decoration:underline}
.address-section .btn{margin-top:0.6rem}

/* Contact form card */
.contact-form.minimal{background:var(--card-bg);padding:1.25rem;border-radius:var(--radius);box-shadow:0 18px 40px rgba(20,30,20,0.06);border:1px solid rgba(20,30,20,0.04)}
.contact-form label{display:block;margin-top:0.4rem;font-size:0.95rem;color:var(--muted-2);font-weight:600}
.contact-form select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted-2) 50%),linear-gradient(135deg, var(--muted-2) 50%, transparent 50%);background-position: calc(100% - 1.1rem) calc(1rem + 2px), calc(100% - .7rem) calc(1rem + 2px);background-size: 6px 6px, 6px 6px;background-repeat: no-repeat;padding-right:2.4rem}

/* Make submit area more prominent on narrow screens */
@media (max-width:540px){
  .form-actions{flex-direction:column;align-items:stretch}
  /* make form buttons full width only (avoid globally forcing hero buttons) */
  .form-actions .btn.primary{width:100%}
  .form-actions .btn.ghost{width:100%}
  /* stack hero actions and make those buttons full width in tight viewports */
  .hero-actions{flex-direction:column;gap:0.6rem}
  .hero-actions .btn{width:100%;justify-content:center}
}

/* Button hover/active animations */
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(1px) scale(0.995);opacity:0.98}
.btn.primary:hover{box-shadow:0 10px 30px rgba(43,122,43,0.18)}
.btn.ghost:hover{background:rgba(43,122,43,0.06);border-color:rgba(43,122,43,0.12)}
.btn:focus{outline:3px solid rgba(43,122,43,0.14);outline-offset:3px}

/* Ripple effect element */
.btn .ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(255,255,255,0.45);opacity:0.9;pointer-events:none}
.btn .ripple.dark{background:rgba(0,0,0,0.08);opacity:0.7}
.ripple.animate{animation:ripple 600ms linear}

@keyframes ripple{
  to{transform:scale(4);opacity:0}
}

/* Footer */
.site-footer{padding:1.25rem 0;border-top:1px solid rgba(0,0,0,0.04);margin-top:2rem}
.footer-inner{display:flex;justify-content:center;align-items:center}
.footer-inner p{margin:0;text-align:center}
.footer-nav a{color:var(--muted);text-decoration:none;margin-left:0.8rem}

/* Header scrolled state — when page leaves hero */
.site-header.scrolled .nav a{color:var(--muted);background:transparent}
.site-header.scrolled .brand{color:var(--accent-600)}
.site-header.scrolled .cta{background:var(--accent);color:white}

/* Responsive */
@media (max-width:900px){
  .cards-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  /* Remove navbar on mobile and clear header content */
  .nav{display:none !important}
  /* hide all header items (brand, nav, etc.) on small screens */
  .site-header .header-inner > *{display:none !important}
  .cards-grid{grid-template-columns:1fr}
  .contact-simple{flex-direction:column}
  .hero-simple{padding:1rem}
  .hero-content{transform:translateY(-3vh)}
  .footer-inner{flex-direction:column;gap:0.6rem}
}

@media (max-width:420px){
  .hero-title{font-size:1.5rem}
  .hero-sub{font-size:0.95rem}
}

/* Mobile: stack testimonials vertically (1 column) and adjust spacing */
@media (max-width:700px){
  .testimonials .testi-grid{display:grid;grid-template-columns:1fr;gap:1rem;padding:0.6rem 0}
  .testimonials .testi-card{max-width:100%;padding:0.6rem 0;margin:0;transform:none}
  .testimonials .testi-card::before{left:12px;top:0;font-size:36px;opacity:0.06}
  .testimonials .testi-card p{font-size:0.96rem;line-height:1.45}
  .testimonials .testi-card footer{text-align:left;font-size:0.9rem}
  /* center titles and section text on mobile for a cleaner, focused layout */
  .section-title,.section-sub{margin-left:auto;margin-right:auto;text-align:center}
  .hero-content{padding-left:1rem;padding-right:1rem;text-align:center}
  .hero-actions{justify-content:center}
  .testimonials .testi-card{text-align:center}
  .testimonials .testi-card footer{text-align:center}
  .site-footer .footer-inner{flex-direction:column;align-items:center;text-align:center}
  /* keep form labels left-aligned for readability */
  .contact-form label{text-align:left}
}

/* small niceties */
a:focus{outline:2px solid rgba(43,122,43,0.18);outline-offset:2px}
.btn:active{transform:translateY(1px)}
