/*
Theme Name: Hepure New Design
Theme URI: https://hepure.com
Author: Hepure Technologies
Description: Custom theme for Hepure Technologies — soil and groundwater remediation chemical supplier. Converted from the approved 2026 static site redesign. Each page carries its complete page-specific CSS inline for pixel-identical rendering; this stylesheet provides the shared design system (navigation, footer, buttons) so the PHP header and footer render instantly.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
Text Domain: hepure-new-design
*/

/* ============================================================
   SHARED DESIGN SYSTEM — base layer
   Page-specific styles live inline in each page's content and
   intentionally override these where they differ.
   ============================================================ */

:root{--navy:#0a1628;--navy-mid:#11213d;--navy-light:#1a2f52;--teal:#00c9a7;--teal-bright:#00e6be;--teal-dark:#00a88c;--cyan:#00b4d8;--slate:#8892a4;--offwhite:#f4f6f9;--white:#fff;--font-display:'Instrument Serif',Georgia,serif;--font-body:'DM Sans',sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
a{text-decoration:none;color:inherit}
.container{max-width:1280px;margin:0 auto;padding:0 40px}
.section-label{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--teal);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.section-label::before{content:'';width:24px;height:2px;background:var(--teal)}
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 0;background:rgba(10,22,40,.95);backdrop-filter:blur(20px);box-shadow:0 4px 30px rgba(0,0,0,.2)}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:10px}
.nav-links{display:flex;align-items:center;gap:32px;list-style:none}
.nav-cta{padding:10px 24px;border-radius:6px;background:var(--teal);color:var(--navy)!important;font-weight:600!important}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;cursor:pointer;background:none;border:none;z-index:1001}
.nav-hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:all .3s}
.nav-hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav-hamburger.active span:nth-child(2){opacity:0}
.nav-hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-menu{display:none;position:fixed;inset:0;z-index:999;background:var(--navy);padding:100px 32px 40px;flex-direction:column;overflow-y:auto}
.mobile-menu.open{display:flex}
.mobile-menu .mobile-cta{margin-top:24px;padding:16px 32px;background:var(--teal);color:var(--navy);font-weight:700;border-radius:8px;border-bottom:none;text-align:center}
.btn-primary{background:var(--teal);color:var(--navy)}
.page-hero{padding:140px 0 64px;background:var(--navy);position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 30%,transparent 80%)}
.breadcrumb{font-size:13px;color:var(--slate);margin-bottom:16px}
.breadcrumb a{color:var(--teal)}
.page-hero h1 em{font-style:italic;color:var(--teal)}
.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:64px}
.content p{font-size:16px;line-height:1.8;color:#5a6476;margin-bottom:16px}
.cta-banner-box{background:linear-gradient(135deg,var(--navy),var(--navy-light));border-radius:24px;padding:64px;text-align:center;position:relative;overflow:hidden}
.cta-banner-box::before{content:'';position:absolute;top:-100px;right:-100px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(0,201,167,.12),transparent 70%)}
.cta-banner-box h2{font-family:var(--font-display);font-size:clamp(28px,3vw,40px);color:#fff;margin-bottom:16px;position:relative}
.btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative}
.footer{background:var(--navy);padding:64px 0 32px;border-top:1px solid rgba(255,255,255,.06)}
.footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-col h4{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:20px}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:12px}
.footer-col ul li a{font-size:14px;color:var(--slate)}
.footer-col ul li a:hover{color:var(--teal)}
.footer-bottom{padding-top:32px;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center}
.footer-bottom p{font-size:13px;color:rgba(255,255,255,.3)}
body{font-family:var(--font-body);color:var(--navy);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased}
.nav-links a{font-size:14px;font-weight:500;color:rgba(255,255,255,.7)}
.nav-links a:hover{color:#fff}
.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .3s var(--ease)}
.mobile-menu a{display:block;padding:18px 0;font-size:18px;color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.06)}
.footer-brand p{font-size:14px;line-height:1.7;color:var(--slate);margin-top:16px;max-width:280px}
.page-hero h1{font-family:var(--font-display);font-size:clamp(36px,4.5vw,56px);line-height:1.1;color:#fff;margin-bottom:20px}
.page-hero p{font-size:18px;line-height:1.7;color:var(--slate);max-width:580px}
.page-hero-content{position:relative;max-width:720px}
.related-card{padding:24px;border-radius:12px;background:var(--white);border:1px solid rgba(0,0,0,.04);transition:all .3s}
.related-link{font-size:13px;font-weight:600;color:var(--teal-dark)}
.rmi-form{padding:24px;border-radius:12px;background:linear-gradient(135deg,rgba(0,201,167,.08),rgba(0,180,216,.08));border:1px solid rgba(0,201,167,.15)}
.rmi-form h4{font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal-dark);margin-bottom:12px}
.rmi-form p{font-size:14px;line-height:1.6;color:#5a6476;margin-bottom:16px}
.sidebar-card{padding:28px;border-radius:12px;background:var(--offwhite);border:1px solid rgba(0,0,0,.04);margin-bottom:16px}
.sidebar-card h4{font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal-dark);margin-bottom:12px}

/* ============================================================
   WordPress essentials
   ============================================================ */
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: #8892a4; text-align: center; }
.sticky, .bypostauthor { /* required theme-check classes */ }

/* ============================================================
   Blog fallback (index.php / archives / search results)
   Styled with Hepure design tokens for any future posts.
   ============================================================ */
.hepure-blog-wrap { max-width: 880px; margin: 0 auto; padding: 140px 40px 80px; }
.hepure-blog-wrap article { padding: 32px 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.hepure-blog-wrap h1, .hepure-blog-wrap h2 { font-family: var(--font-display, Georgia, serif); color: var(--navy, #0a1628); }
.hepure-blog-wrap h2 a { color: var(--navy, #0a1628); }
.hepure-blog-wrap h2 a:hover { color: var(--teal-dark, #00a88c); }
.hepure-blog-wrap .entry-meta { font-size: 13px; color: #8892a4; margin: 6px 0 12px; }
.hepure-blog-wrap p { font-size: 16px; line-height: 1.8; color: #5a6476; }
.hepure-page-content { /* wrapper for page.php output */ }

/* ============================================================
   "Hepure Standard Page" template — styles for NEW pages
   created in WordPress (template-hepure-standard.php).
   Typography mirrors the design's .content rules so plain
   block-editor content conforms to the approved design.
   ============================================================ */
.cta-banner { padding: 100px 0; background: var(--white); }
.hepure-std-content { padding: 80px 0; }
.hepure-std-body { max-width: 800px; }
.hepure-std-body h2 { font-family: var(--font-display); font-size: 32px; color: var(--navy); margin: 48px 0 20px; }
.hepure-std-body h2:first-child { margin-top: 0; }
.hepure-std-body h3 { font-size: 20px; font-weight: 700; color: var(--navy); margin: 32px 0 12px; }
.hepure-std-body h4 { font-size: 15px; font-weight: 700; margin: 20px 0 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--teal-dark); }
.hepure-std-body p { font-size: 16px; line-height: 1.8; color: #5a6476; margin-bottom: 16px; }
.hepure-std-body a { color: var(--teal-dark); }
.hepure-std-body ul, .hepure-std-body ol { padding: 0 0 0 2px; list-style: none; margin-bottom: 20px; }
.hepure-std-body ul li, .hepure-std-body ol li { font-size: 15px; line-height: 1.7; color: #5a6476; padding: 6px 0 6px 20px; position: relative; }
.hepure-std-body ul li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--teal); position: absolute; left: 0; top: 14px; }
.hepure-std-body ol { counter-reset: hepure-ol; }
.hepure-std-body ol li { counter-increment: hepure-ol; }
.hepure-std-body ol li::before { content: counter(hepure-ol) "."; color: var(--teal-dark); font-weight: 700; font-size: 13px; position: absolute; left: 0; top: 8px; }
.hepure-std-body img { max-width: 100%; height: auto; border-radius: 12px; }
.hepure-std-body blockquote { border-left: 3px solid var(--teal); padding: 8px 0 8px 20px; margin: 20px 0; color: #5a6476; font-style: italic; }
.hepure-std-body table { width: 100%; border-collapse: collapse; margin: 20px 0; background: var(--offwhite); border-radius: 8px; overflow: hidden; }
.hepure-std-body table th { background: var(--navy); color: #fff; padding: 14px 18px; text-align: left; font-size: 13px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; }
.hepure-std-body table td { padding: 14px 18px; font-size: 15px; color: #5a6476; border-bottom: 1px solid rgba(0,0,0,0.06); }
.hepure-std-body table tr:last-child td { border-bottom: none; }

/* Safety-net readability for new pages left on the DEFAULT template
   (no hero/CTA, but content stays readable and on-brand). Imported
   pages are unaffected: their own section markup takes over. */
.hepure-page-content > p,
.hepure-page-content > h1,
.hepure-page-content > h2,
.hepure-page-content > h3,
.hepure-page-content > ul,
.hepure-page-content > ol,
.hepure-page-content > table,
.hepure-page-content > blockquote,
.hepure-page-content > figure {
  max-width: 800px; margin-left: auto; margin-right: auto;
  padding-left: 40px; padding-right: 40px;
}
.hepure-page-content > p:first-child { padding-top: 140px; }
.hepure-page-content > p { font-size: 16px; line-height: 1.8; color: #5a6476; margin-bottom: 16px; }

@media (max-width: 768px) {
  .cta-banner { padding: 72px 0; }
  .hepure-std-content { padding: 60px 0; }
  .hepure-std-body h2 { font-size: 26px; }
}

/* ============================================================
   WordPress menu output support
   wp_nav_menu puts classes on <li> (not <a>) and uses
   current-menu-item for the active page. These rules make the
   menu render identically whether it comes from a WP menu or
   the hardcoded fallback.
   ============================================================ */
/* Active state (WP adds current-menu-item / current_page_item to <li>) */
.nav-links li.current-menu-item > a,
.nav-links li.current_page_item > a { color: #fff; }
/* CTA button styling when the class sits on the <li> (WP menu) */
.nav-links li.nav-cta { padding: 0; }
.nav-links li.nav-cta > a {
  padding: 10px 24px; border-radius: 6px;
  background: var(--teal); color: var(--navy) !important; font-weight: 600 !important;
}
.nav-links li.nav-cta > a:hover { background: var(--teal-bright); }

/* Mobile menu rendered as a <ul> from wp_nav_menu */
.mobile-menu .mobile-menu-list,
.mobile-menu ul { list-style: none; padding: 0; margin: 0; width: 100%; }
.mobile-menu .mobile-menu-list li { width: 100%; }
/* CTA item in the mobile drawer */
.mobile-menu li.nav-cta > a {
  margin-top: 24px; padding: 16px 32px; background: var(--teal);
  color: var(--navy); font-weight: 700; border-radius: 8px;
  border-bottom: none; text-align: center;
}

/* Footer menus output a <ul> identical to the original markup —
   existing .footer-col ul rules already style these. */
