/* Calculator Engine v3.0.0 — public frontend. A small, deliberate design system rather than
   default WordPress theme styling: warm neutral background, one confident teal accent, generous
   spacing, restrained shadows. System font stack only (no webfont request) to keep page weight
   and Core Web Vitals in check. Every color is defined once as a custom property so the whole
   look can be retuned from one place. */
:root{
  --cev1-accent:#1a6e68; --cev1-accent-dark:#125650; --cev1-accent-light:#5fc9c0; --cev1-accent-bg:#eaf6f4;
  --cev1-ink:#1c2624; --cev1-ink-soft:#5b6866; --cev1-border:#e2e8e6; --cev1-bg:#ffffff; --cev1-bg-soft:#f7faf9;
  --cev1-danger:#b3261e; --cev1-radius:14px; --cev1-radius-sm:9px;
  --cev1-shadow:0 1px 2px rgba(20,40,38,.04),0 8px 28px rgba(20,40,38,.07);
  --cev1-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.cev1-calculator{width:100%;margin:22px 0;font-family:var(--cev1-font);color:var(--cev1-ink)}
.cev1-card{max-width:760px;margin:0 auto;padding:28px;background:var(--cev1-bg);border:1px solid var(--cev1-border);border-radius:var(--cev1-radius);box-shadow:var(--cev1-shadow)}
.cev1-title{margin:0 0 8px;font-size:26px;line-height:1.25;font-weight:700;letter-spacing:-.01em}
.cev1-description{margin:0 0 24px;color:var(--cev1-ink-soft);font-size:15px;line-height:1.5}

.cev1-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cev1-field label{display:block;font-weight:600;font-size:13.5px;margin-bottom:7px;color:var(--cev1-ink)}
.cev1-input-wrap{display:flex;align-items:stretch;border:1.5px solid var(--cev1-border);border-radius:var(--cev1-radius-sm);overflow:hidden;background:var(--cev1-bg);transition:border-color .15s}
.cev1-input-wrap:focus-within{border-color:var(--cev1-accent)}
.cev1-input-wrap span{padding:0 12px;display:flex;align-items:center;color:var(--cev1-ink-soft);background:var(--cev1-bg-soft);font-size:14px;white-space:nowrap}
.cev1-input-wrap input,.cev1-input-wrap select{width:100%;border:0!important;box-shadow:none!important;padding:11px 12px;background:transparent;font-size:15px;color:var(--cev1-ink);font-family:inherit}
.cev1-input-wrap input:focus,.cev1-input-wrap select:focus{outline:none}
.cev1-input-wrap--unit select{flex:0 0 auto;max-width:46%;border-left:1.5px solid var(--cev1-border)!important;background:var(--cev1-bg-soft);font-size:13.5px;cursor:pointer}
.cev1-help{font-size:12.5px;color:var(--cev1-ink-soft);margin-top:6px;line-height:1.4}
.cev1-card input[type=checkbox]{width:auto}

.cev1-actions{display:flex;justify-content:flex-end;gap:10px;margin:22px 0 4px}
.cev1-actions button,.cev1-reset{appearance:none;border:1.5px solid var(--cev1-border);background:var(--cev1-bg);color:var(--cev1-ink-soft);font-weight:600;font-size:13.5px;padding:9px 18px;border-radius:999px;cursor:pointer;transition:all .15s;font-family:inherit}
.cev1-actions button:hover,.cev1-reset:hover{border-color:var(--cev1-accent);color:var(--cev1-accent-dark);background:var(--cev1-accent-bg)}

.cev1-results{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.cev1-result{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 18px;background:var(--cev1-bg-soft);border-radius:var(--cev1-radius-sm);border:1px solid var(--cev1-border)}
.cev1-result-label{font-size:14px;color:var(--cev1-ink-soft);font-weight:500}
.cev1-result-value{display:flex;align-items:center;gap:8px}
.cev1-result strong{font-size:19px;font-weight:700;letter-spacing:-.01em}
.cev1-result.cev1-highlight{background:var(--cev1-accent-bg);border-color:var(--cev1-accent-light)}
.cev1-result.cev1-highlight strong{color:var(--cev1-accent-dark);font-size:23px}
.cev1-result-currency{border:1px solid var(--cev1-border);border-radius:6px;background:var(--cev1-bg);font-size:12px;font-weight:600;color:var(--cev1-ink-soft);padding:4px 6px;cursor:pointer;font-family:inherit}

.cev1-disclaimer{margin-top:18px;font-size:12.5px;color:var(--cev1-ink-soft);line-height:1.5;padding-top:14px;border-top:1px dashed var(--cev1-border)}
/* v3.3.0: shown above a country-specific regulatory calculator (GST, income tax, VAT, ...) to
   make clear which tax year/rate set it reflects and when it was last checked. */
.cev1-regulatory-notice{max-width:760px;margin:0 auto 18px;display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:var(--cev1-accent-bg);border:1px solid var(--cev1-accent-light);border-radius:var(--cev1-radius-sm);font-size:13px;line-height:1.55;color:var(--cev1-ink)}
.cev1-regulatory-icon{flex:0 0 auto;font-size:16px;line-height:1.5}
.cev1-regulatory-notice a{color:var(--cev1-accent-dark)}
.cev1-notice{padding:14px 16px;border:1px solid var(--cev1-border);border-radius:var(--cev1-radius-sm);color:var(--cev1-ink-soft)}
.cev1-preview .cev1-card{max-width:none}
@media(max-width:640px){.cev1-fields{grid-template-columns:1fr}.cev1-card{padding:20px}.cev1-title{font-size:22px}.cev1-actions{justify-content:stretch}.cev1-actions button{flex:1}}

/* V3 public calculator library/pages */
.cev1-single-calculator,.cev1-library-page{padding:36px 16px 60px;font-family:var(--cev1-font);color:var(--cev1-ink)}
.cev1-single-container,.cev1-library-container{max-width:980px;margin:0 auto}
.cev1-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;margin-bottom:20px;color:var(--cev1-ink-soft)}
.cev1-breadcrumbs a{text-decoration:none;color:var(--cev1-ink-soft)}
.cev1-breadcrumbs a:hover{color:var(--cev1-accent-dark)}
.cev1-breadcrumbs span[aria-current]{color:var(--cev1-ink);font-weight:600}
.cev1-single-header h1{margin:0 0 12px;font-size:34px;letter-spacing:-.015em;line-height:1.15}
.cev1-single-header p,.cev1-single-intro{max-width:760px;color:var(--cev1-ink-soft);font-size:16px;line-height:1.6}
.cev1-single-intro p{margin:0 0 10px}
.cev1-seo-content{margin-top:36px;line-height:1.75;font-size:16px;max-width:760px}
.cev1-seo-content h2,.cev1-seo-content h3{letter-spacing:-.01em}
.cev1-related{margin-top:36px}
.cev1-related h2,.cev1-examples h2,.cev1-faqs h2,.cev1-sources h2{font-size:21px;letter-spacing:-.01em}
.cev1-related-grid,.cev1-library-grid,.cev1-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.cev1-related-grid a,.cev1-library-card,.cev1-category-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--cev1-border);border-radius:var(--cev1-radius-sm);text-decoration:none;color:var(--cev1-ink);background:var(--cev1-bg);transition:border-color .15s,box-shadow .15s}
.cev1-related-grid a:hover,.cev1-library-card:hover,.cev1-category-card:hover{border-color:var(--cev1-accent-light);box-shadow:var(--cev1-shadow)}
.cev1-related-grid a span,.cev1-library-card span,.cev1-category-card span{font-size:13.5px;color:var(--cev1-ink-soft);opacity:1}
.cev1-category-grid{margin:0 0 32px}
.cev1-library-grid{margin-top:22px}
.cev1-library-card strong,.cev1-category-card strong,.cev1-related-grid strong{line-height:1.35;font-size:15.5px}

/* Category archive pages (/calculators/{category}/): calculators as a single-column list
   instead of the card grid used on the "all calculators" index. */
.cev1-library-list{display:flex;flex-direction:column;gap:10px}
.cev1-library-list .cev1-library-card{flex-direction:row;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}
.cev1-library-list .cev1-library-card strong{flex:0 0 auto;min-width:0;max-width:46%}
.cev1-library-list .cev1-library-card span{flex:1;min-width:0;text-align:right}
.cev1-library-list .cev1-library-card::after{content:"→";flex:0 0 auto;margin-left:4px;color:var(--cev1-ink-soft);transition:transform .15s,color .15s}
.cev1-library-list .cev1-library-card:hover::after{transform:translateX(3px);color:var(--cev1-accent-dark)}
@media(max-width:640px){
  .cev1-library-list .cev1-library-card{flex-direction:column;align-items:flex-start;gap:4px}
  .cev1-library-list .cev1-library-card strong,.cev1-library-list .cev1-library-card span{max-width:100%;text-align:left}
  .cev1-library-list .cev1-library-card::after{display:none}
}

/* V3 examples / FAQs / sources */
.cev1-examples,.cev1-faqs,.cev1-sources{margin-top:36px;max-width:760px}
.cev1-examples h2,.cev1-faqs h2,.cev1-sources h2{margin:0 0 14px}
.cev1-examples ul,.cev1-sources ul{margin:0;padding-left:20px}
.cev1-examples li,.cev1-sources li{margin-bottom:9px;line-height:1.6}
.cev1-faq-item{padding:18px 0;border-top:1px solid var(--cev1-border)}
.cev1-faq-item:first-of-type{border-top:none;padding-top:6px}
.cev1-faq-item h3{margin:0 0 7px;font-size:16.5px;font-weight:600}
.cev1-faq-item p{margin:0;color:var(--cev1-ink-soft);line-height:1.6}
.cev1-sources a{text-decoration:underline;color:var(--cev1-accent-dark)}

/* V3.1 homepage: hero search + category grid */
/* This widget already renders its own <h1>, so hide the theme's redundant page-title header
   (e.g. Astra's "Home"/"entry-title") wherever this shortcode is used as the site's front page. */
body.home .entry-header{display:none}
.cev1-home{font-family:var(--cev1-font);color:var(--cev1-ink)}
.cev1-home-hero{max-width:820px;margin:0 auto;padding:56px 20px 40px;text-align:center}
.cev1-home-eyebrow{margin:0 0 10px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cev1-accent-dark)}
.cev1-home-title{margin:0 0 14px;font-size:42px;line-height:1.15;letter-spacing:-.02em;color:var(--cev1-ink)}
.cev1-home-subtitle{margin:0 auto 30px;max-width:600px;color:var(--cev1-ink-soft);font-size:16.5px;line-height:1.6}
.cev1-home-search{position:relative;max-width:560px;margin:0 auto;text-align:left}
.cev1-home-search-box{display:flex;align-items:center;gap:10px;border:1.5px solid var(--cev1-border);border-radius:999px;background:var(--cev1-bg);padding:6px 8px 6px 20px;box-shadow:var(--cev1-shadow);transition:border-color .15s}
.cev1-home-search-box:focus-within{border-color:var(--cev1-accent)}
.cev1-home-search-icon{width:18px;height:18px;color:var(--cev1-ink-soft);flex:0 0 auto}
.cev1-home-search-input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;background:transparent;font-size:16px;padding:12px 4px;color:var(--cev1-ink);font-family:inherit}
.cev1-home-search-results{position:absolute;left:0;right:0;top:calc(100% + 10px);background:var(--cev1-bg);border:1px solid var(--cev1-border);border-radius:var(--cev1-radius);box-shadow:var(--cev1-shadow);max-height:360px;overflow-y:auto;z-index:20}
.cev1-home-search-item{display:flex;flex-direction:column;gap:3px;padding:13px 18px;text-decoration:none;color:var(--cev1-ink);border-bottom:1px solid var(--cev1-border)}
.cev1-home-search-item:last-child{border-bottom:0}
.cev1-home-search-item:hover,.cev1-home-search-item:focus{background:var(--cev1-bg-soft)}
.cev1-home-search-item strong{font-size:14.5px}
.cev1-home-search-item span{font-size:12.5px;color:var(--cev1-ink-soft)}
.cev1-home-search-empty{padding:16px 18px;font-size:13.5px;color:var(--cev1-ink-soft)}
.cev1-home-categories{max-width:1080px;margin:0 auto;padding:8px 20px 60px}
.cev1-home-section-title{text-align:center;margin:0 0 26px;font-size:26px;letter-spacing:-.01em}
.cev1-home-viewall{text-align:center;margin:28px 0 0;font-size:14.5px}
.cev1-home-viewall a{color:var(--cev1-accent-dark);text-decoration:none;font-weight:600}
.cev1-home-viewall a:hover{text-decoration:underline}
@media (max-width:600px){.cev1-home-title{font-size:32px}.cev1-home-hero{padding:40px 16px 30px}}

/* V3.2 responsive pass — every plugin-rendered page (single calculator, library/category,
   homepage) audited for phone/tablet widths. Layout-affecting boxes are sized so nothing
   overflows the viewport on small screens, regardless of what the active theme does. */
.cev1-calculator,.cev1-single-calculator,.cev1-library-page,.cev1-home{box-sizing:border-box;max-width:100%}
.cev1-calculator *,.cev1-single-calculator *,.cev1-library-page *,.cev1-home *{box-sizing:border-box}
.cev1-card,.cev1-single-container,.cev1-library-container{max-width:100%}
@media(max-width:900px){
  .cev1-single-header h1{font-size:29px}
}
@media(max-width:640px){
  .cev1-single-calculator,.cev1-library-page{padding:26px 14px 44px}
  .cev1-single-header h1{font-size:25px;line-height:1.2}
  .cev1-single-header p,.cev1-single-intro{font-size:15px}
  .cev1-breadcrumbs{font-size:12.5px;gap:6px}
  .cev1-result{flex-wrap:wrap;gap:8px 14px}
  .cev1-result strong{font-size:17px}
  .cev1-result.cev1-highlight strong{font-size:20px}
  .cev1-related-grid,.cev1-library-grid,.cev1-category-grid{grid-template-columns:1fr}
  .cev1-seo-content{font-size:15px}
}
@media(max-width:420px){
  .cev1-card{padding:16px}
  .cev1-title{font-size:20px}
  .cev1-input-wrap--unit select{max-width:38%;font-size:12.5px}
}
