/*
Theme Name: Eworld NextGen
Theme URI: https://eworld.co.in
Author: Eworld Information Systems
Description: WordPress version of the Eworld NextGen website (converted from the Lovable project). Website design, hosting, digital marketing and AI services.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: eworld
*/

:root {
  --background: oklch(0.985 0.003 240);
  --foreground: oklch(0.25 0.018 250);
  --card: oklch(1 0 0);
  --primary: oklch(0.679 0.145 235.4);
  --primary-fg: oklch(1 0 0);
  --muted-fg: oklch(0.49 0.02 250);
  --accent: oklch(0.93 0.045 229);
  --accent-fg: oklch(0.32 0.075 244);
  --border: oklch(0.88 0.012 240);
  --input: oklch(0.84 0.018 240);
  --destructive: oklch(0.63 0.21 25);
  --ink: oklch(0.245 0.065 247);
  --ink-fg: oklch(0.97 0.008 240);
  --gradient-brand: linear-gradient(100deg, oklch(0.62 0.16 240) 0%, oklch(0.679 0.145 235.4) 58%, oklch(0.76 0.11 220) 100%);
  --shadow-glow: 0 12px 32px -14px oklch(0.679 0.145 235.4 / 0.42);
  --font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --wrap: 80rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--font-display); line-height: 1.2; margin: 0; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
ul, ol { margin: 0; padding: 0; list-style: none; }
address { font-style: normal; }
.ew-icon { width: 1em; height: 1em; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.screen-reader-text { position: absolute; left: -9999px; }

.ew-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 1.25rem; }
.ew-primary { color: var(--primary); }
.ew-muted { color: var(--muted-fg); }

/* ---------- Buttons ---------- */
.ew-btn, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  border-radius: 999px; padding: .65rem 1.4rem; font-size: .875rem; font-weight: 500;
  background: var(--gradient-brand); color: var(--primary-fg); border: 0; cursor: pointer;
  box-shadow: var(--shadow-glow); transition: transform .15s; font-family: inherit;
}
.ew-btn:hover, .wp-block-button__link:hover { transform: scale(1.03); color: var(--primary-fg); }
.ew-btn-lg { padding: .8rem 1.6rem; }
.ew-btn-outline, .is-style-outline > .wp-block-button__link {
  background: transparent; box-shadow: none; color: var(--primary);
  border: 1px solid oklch(0.679 0.145 235.4 / .5);
}
.is-style-outline > .wp-block-button__link:hover { color: var(--primary); }
.ew-btn-ghost { background: transparent; box-shadow: none; color: var(--ink-fg); border: 1px solid oklch(0.97 0.008 240 / .25); }
.ew-btn-ghost:hover { border-color: oklch(0.97 0.008 240 / .6); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }

/* ---------- Header ---------- */
.ew-header { position: sticky; top: 0; z-index: 50; background: oklch(0.985 0.003 240 / .85); backdrop-filter: blur(16px); border-bottom: 1px solid oklch(0.88 0.012 240 / .6); }
.admin-bar .ew-header { top: 32px; }
.ew-topbar { display: none; border-bottom: 1px solid oklch(0.88 0.012 240 / .4); }
.ew-topbar .ew-wrap { display: flex; justify-content: flex-end; gap: .25rem; padding-top: .35rem; padding-bottom: .35rem; }
.ew-topbar a { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .75rem; border-radius: 999px; font-size: .75rem; color: var(--muted-fg); }
.ew-topbar a:hover { background: oklch(0.679 0.145 235.4 / .1); color: var(--primary); }
.ew-headbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .75rem; padding-bottom: .75rem; }
.ew-logo img { height: 3rem; width: auto; display: block; transition: transform .15s; }
.ew-logo:hover img { transform: scale(1.03); }
.ew-nav { display: none; align-items: center; gap: .125rem; }
.ew-nav > li { position: relative; }
.ew-nav > li > a, .ew-nav > li > button {
  display: inline-flex; align-items: center; gap: .25rem; padding: .5rem .65rem; border: 0; background: none;
  font: inherit; font-size: .875rem; color: var(--muted-fg); cursor: pointer; border-radius: 6px;
}
.ew-nav > li:hover > a, .ew-nav > li:hover > button, .ew-nav > li.is-current > a { color: var(--foreground); }
.ew-nav > li.is-current > a { color: var(--primary); }
.ew-drop { position: absolute; top: 100%; right: 0; width: 16rem; visibility: hidden; opacity: 0; transition: opacity .15s; z-index: 60; }
.ew-drop.is-wide { right: auto; left: 50%; transform: translateX(-50%); width: min(46rem, calc(100vw - 2rem)); }
.ew-nav > li:hover > .ew-drop, .ew-nav > li:focus-within > .ew-drop { visibility: visible; opacity: 1; }
.ew-drop-inner { margin-top: .25rem; display: grid; gap: 1rem; padding: 1rem; background: var(--card); border: 1px solid oklch(0.88 0.012 240 / .6); border-radius: 1rem; box-shadow: var(--shadow-glow); grid-template-columns: 1fr; }
.is-wide .ew-drop-inner { grid-template-columns: repeat(4, 1fr); }
.ew-drop h4 { padding: 0 .75rem .25rem; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
.ew-drop a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .75rem; border-radius: 6px; font-size: .875rem; color: var(--muted-fg); }
.ew-drop a:hover { background: oklch(0.679 0.145 235.4 / .1); color: var(--foreground); }
.ew-drop a .ew-icon { opacity: .6; width: .85em; }
.ew-head-actions { display: flex; align-items: center; gap: .5rem; }
.ew-phone-btn { display: none; }
.ew-burger { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--border); border-radius: 6px; background: none; color: inherit; cursor: pointer; font-size: 1.25rem; }
.ew-burger .ew-x { display: none; }
.ew-burger[aria-expanded="true"] .ew-x { display: block; }
.ew-burger[aria-expanded="true"] .ew-menu-i { display: none; }
.ew-mobile { display: none; max-height: 75vh; overflow-y: auto; border-top: 1px solid oklch(0.88 0.012 240 / .6); background: var(--background); padding: 0 1.25rem 1.5rem; }
.ew-mobile.is-open { display: block; }
.ew-mobile .ew-acct { display: flex; flex-wrap: wrap; gap: .5rem; padding: .75rem 0; }
.ew-mobile .ew-acct a { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--border); border-radius: 999px; padding: .35rem .75rem; font-size: .75rem; color: var(--muted-fg); }
.ew-mobile details { border-bottom: 1px solid oklch(0.88 0.012 240 / .4); }
.ew-mobile summary, .ew-mobile > nav > a { display: flex; align-items: center; justify-content: space-between; padding: .75rem 0; font-size: .95rem; cursor: pointer; list-style: none; }
.ew-mobile summary::-webkit-details-marker { display: none; }
.ew-mobile details a { display: block; padding: .5rem .75rem; font-size: .875rem; color: var(--muted-fg); }
.ew-mobile h4 { padding: .5rem .75rem 0; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
@media (min-width: 1280px) {
  .ew-topbar { display: block; }
  .ew-nav { display: flex; }
  .ew-burger, .ew-mobile { display: none !important; }
}
@media (min-width: 1536px) { .ew-phone-btn { display: inline-flex; } }
@media (min-width: 640px) { .ew-logo img { height: 3.5rem; } }
@media (max-width: 782px) { .admin-bar .ew-header { top: 46px; } }

/* ---------- Hero ---------- */
.ew-ink { background-color: var(--ink); color: var(--ink-fg);
  background-image: linear-gradient(oklch(0.97 0.008 240 / .05) 1px, transparent 1px), linear-gradient(90deg, oklch(0.97 0.008 240 / .05) 1px, transparent 1px);
  background-size: 56px 56px; }
.ew-hero .ew-wrap { display: grid; gap: 2.5rem; align-items: center; padding-top: 4rem; padding-bottom: 4rem; }
.ew-eyebrow { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; color: var(--primary); }
.ew-hero h1 { margin-top: 1rem; font-size: clamp(1.9rem, 4.5vw, 3rem); font-weight: 700; letter-spacing: -.01em; }
.ew-hero-body { margin-top: 1.25rem; max-width: 36rem; color: oklch(0.97 0.008 240 / .7); font-size: 1.05rem; }
.ew-hero-actions { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.ew-hero-img { overflow: hidden; border-radius: 1.5rem; border: 1px solid oklch(0.97 0.008 240 / .15); }
.ew-hero-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) { .ew-hero .ew-wrap.has-img { grid-template-columns: 1fr 1fr; padding-top: 5rem; padding-bottom: 5rem; } }

/* ---------- Content sections ---------- */
.ew-content > * { margin-left: 0; margin-right: 0; }
.ew-section { max-width: var(--wrap); margin: 0 auto; padding: 4rem 1.25rem; }
.ew-section.ew-narrow, .ew-narrow > .ew-section { max-width: 56rem; }
.ew-section.ew-tight { padding-bottom: 1rem; }
.ew-band { background: oklch(1 0 0 / .4); border-top: 1px solid oklch(0.88 0.012 240 / .6); border-bottom: 1px solid oklch(0.88 0.012 240 / .6); }
.ew-band .ew-section { max-width: 48rem; }
.ew-band.is-wide .ew-section { max-width: var(--wrap); }
.ew-band.ew-accent { background: oklch(0.93 0.045 229 / .4); }
.ew-section h2, .ew-band h2 { font-size: clamp(1.5rem, 3vw, 1.9rem); font-weight: 700; letter-spacing: -.01em; }
.ew-section > h2 + p, .ew-band .ew-section > h2 + p { margin-top: .75rem; max-width: 42rem; color: var(--muted-fg); }
.ew-cards, .ew-plans, .ew-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
.ew-plans { margin-top: 2.5rem; }
.ew-grid { margin-top: 2rem; }
@media (min-width: 768px) { .ew-cards, .ew-grid { grid-template-columns: repeat(2, 1fr); } .ew-plans { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .ew-cards, .ew-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.ew-card, .ew-plan { border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: 1rem; padding: 1.5rem; transition: border-color .15s; }
.ew-card:hover { border-color: oklch(0.679 0.145 235.4 / .5); }
.ew-card .ew-num { font-family: var(--font-display); font-size: .75rem; font-weight: 600; color: var(--primary); }
.ew-card h2, .ew-card h3 { margin-top: .5rem; font-size: 1.125rem; font-weight: 600; }
.ew-card p, .ew-plan p, .ew-card li, .ew-plan li { font-size: .875rem; color: var(--muted-fg); }
.ew-card > p + p, .ew-card h2 + p, .ew-card h3 + p { margin-top: .75rem; }
.ew-card .ew-badge { display: inline-block; border-radius: 999px; background: var(--accent); color: var(--accent-fg); padding: .2rem .75rem; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.ew-card strong { color: var(--foreground); font-weight: 500; }
.ew-card a:not(.wp-block-button__link) { color: var(--primary); }
.ew-card a:not(.wp-block-button__link):hover { text-decoration: underline; }
.ew-points, .ew-checks { margin-top: 1rem; display: grid; gap: .4rem; padding: 0; list-style: none; }
.ew-points li, .ew-checks li { position: relative; padding-left: 1.5rem; }
.ew-points li::before, .ew-checks li::before { content: "\2713"; position: absolute; left: 0; color: var(--primary); font-weight: 700; }
.ew-plan { display: flex; flex-direction: column; }
.ew-plan.is-highlight { border-color: oklch(0.679 0.145 235.4 / .7); box-shadow: var(--shadow-glow); }
.ew-plan h3 { font-size: 1.125rem; font-weight: 600; }
.ew-plan .ew-price { margin-top: .75rem; font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--primary); line-height: 1.2; }
.ew-plan .ew-note { margin-top: .25rem; font-size: .75rem; }
.ew-plan .ew-points { flex: 1; margin-top: 1.25rem; }
.ew-plan .wp-block-buttons { margin-top: 1.5rem; }
.ew-plan .wp-block-button { width: 100%; }
.ew-plan .wp-block-button__link { width: 100%; }
.ew-timeline { margin-top: 2rem; border-left: 1px solid var(--border); padding-left: 1.5rem; display: grid; gap: 1.5rem; }
.ew-timeline li { position: relative; }
.ew-timeline li::before { content: ""; position: absolute; left: -1.95rem; top: .45rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--primary); }
.ew-timeline strong { font-family: var(--font-display); font-size: .875rem; color: var(--primary); display: block; }
.ew-timeline span { font-size: .875rem; color: var(--muted-fg); }
.ew-section h2.ew-mt { margin-top: 4rem; }
.ew-split { display: grid; gap: 2rem; grid-template-columns: 1fr; }
.ew-split > div > * + * { margin-top: 1.5rem; }
@media (min-width: 1024px) { .ew-split { grid-template-columns: 1fr 1fr; } }
.ew-pay-grid { margin-top: 2rem; display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .ew-pay-grid { grid-template-columns: repeat(3, 1fr); } }
.ew-paynow { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; border-radius: 1rem; background: var(--ink); color: var(--ink-fg) !important; padding: 2.5rem 1.5rem; text-align: center; box-shadow: var(--shadow-glow); transition: transform .15s; }
.ew-paynow:hover { transform: scale(1.02); }
.ew-paynow strong { font-family: var(--font-display); font-size: 1.125rem; }
.ew-paynow small { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; opacity: .6; }
.ew-callout { margin-top: .75rem; border-radius: 6px; background: var(--accent); color: var(--accent-fg); padding: .5rem .75rem; font-size: .75rem; }
.ew-qr { width: 10rem; border-radius: .75rem; border: 1px solid oklch(0.88 0.012 240 / .6); background: #fff; padding: .5rem; }
.ew-contact-card .ew-icon { width: 1.25rem; height: 1.25rem; color: var(--primary); }
.ew-contact-card h2 { margin-top: .75rem; font-size: 1.125rem; font-weight: 600; }
.ew-contact-card ul { margin-top: .5rem; display: grid; gap: .25rem; font-size: .875rem; color: var(--muted-fg); }
.ew-contact-card a:hover { color: var(--foreground); }
.ew-contact-card .ew-btn { margin-top: 1rem; }

/* ---------- Forms ---------- */
.ew-form { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ew-form.cols-2 { grid-template-columns: 1fr 1fr; } .ew-form .span-2 { grid-column: span 2; } }
.ew-form label { font-size: .875rem; color: var(--muted-fg); display: block; }
.ew-form input, .ew-form select, .ew-form textarea, .ew-pp input {
  margin-top: .25rem; width: 100%; border: 1px solid var(--input); border-radius: .5rem; background: var(--background);
  padding: .55rem .75rem; font: inherit; font-size: .875rem; color: var(--foreground); outline: none;
}
.ew-form input:focus, .ew-form select:focus, .ew-form textarea:focus, .ew-pp input:focus { border-color: var(--primary); }
.ew-hp { position: absolute; left: -9999px; }
.ew-form .ew-btn { width: auto; }
.ew-form-box { border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: 1rem; padding: 1.5rem; }
.ew-form-box h2 { font-size: 1.125rem; font-weight: 600; }
.ew-form-box > p { margin-top: .5rem; font-size: .875rem; color: var(--muted-fg); }
.ew-form-box form { margin-top: 1.5rem; }
.ew-msg { margin-top: .75rem; font-size: .875rem; color: var(--primary); }
.ew-msg.is-error { color: var(--destructive); }
.ew-pp { max-width: 28rem; }
.ew-pp label { display: block; margin-top: 1rem; font-size: .875rem; font-weight: 500; }
.ew-pp label:first-child { margin-top: 0; }
.ew-pp .ew-pp-btn { margin-top: 1rem; min-height: 3rem; }
.ew-pp .ew-msg { padding: .5rem .75rem; border: 1px solid oklch(0.679 0.145 235.4 / .4); border-radius: 6px; background: var(--accent); color: var(--foreground); }

/* ---------- Related / CTA ---------- */
.ew-cta .ew-wrap { max-width: 64rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; padding-top: 3.5rem; padding-bottom: 3.5rem; text-align: center; }
.ew-cta h2 { font-size: clamp(1.5rem, 3vw, 1.9rem); font-weight: 700; }
.ew-cta p { max-width: 42rem; font-size: .875rem; color: oklch(0.97 0.008 240 / .7); }
.ew-related { max-width: var(--wrap); margin: 0 auto; padding: 4rem 1.25rem; }
.ew-related h2 { font-size: 1.25rem; font-weight: 600; }
.ew-related-grid { margin-top: 1.25rem; display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ew-related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ew-related-grid { grid-template-columns: repeat(3, 1fr); } }
.ew-related-grid a { display: flex; align-items: center; justify-content: space-between; border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: .75rem; padding: .75rem 1rem; font-size: .875rem; transition: border-color .15s; }
.ew-related-grid a:hover { border-color: oklch(0.679 0.145 235.4 / .6); }
.ew-related-grid .ew-icon { color: var(--primary); transition: transform .15s; }
.ew-related-grid a:hover .ew-icon { transform: translateX(4px); }

/* ---------- Home ---------- */
.ew-pill { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid oklch(0.97 0.008 240 / .2); background: oklch(0.97 0.008 240 / .1); border-radius: 999px; padding: .35rem 1rem; font-size: .75rem; font-weight: 500; }
.ew-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin: 0; padding: 2.5rem 0 3.5rem; border-top: 1px solid oklch(0.97 0.008 240 / .15); }
@media (min-width: 640px) { .ew-stats { grid-template-columns: repeat(4, 1fr); } }
.ew-stats dt { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--primary); }
.ew-stats dd { margin: .25rem 0 0; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: oklch(0.97 0.008 240 / .6); }
.ew-svc { display: grid; gap: 1.5rem; margin-top: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ew-svc { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ew-svc { grid-template-columns: repeat(4, 1fr); } }
.ew-svc a { display: block; overflow: hidden; border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: 1rem; transition: border-color .15s; }
.ew-svc a:hover { border-color: oklch(0.679 0.145 235.4 / .6); }
.ew-svc img { display: block; width: 100%; height: 10rem; object-fit: cover; }
.ew-svc .body { padding: 1.5rem; }
.ew-svc .ew-icon { width: 1.5rem; height: 1.5rem; color: var(--primary); }
.ew-svc h3 { margin-top: 1rem; font-size: 1.125rem; font-weight: 600; }
.ew-svc p { margin-top: .5rem; font-size: .875rem; color: var(--muted-fg); }
.ew-svc .more { margin-top: 1rem; display: inline-flex; align-items: center; gap: .25rem; font-size: .875rem; color: var(--primary); }
.ew-two { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .ew-two { grid-template-columns: 1fr 1fr; } }
.ew-ticks { margin-top: 1.5rem; display: grid; gap: .75rem; font-size: .875rem; color: var(--muted-fg); }
.ew-ticks li { display: flex; gap: .75rem; }
.ew-ticks .ew-icon { margin-top: .2rem; color: var(--primary); }
.ew-reach { border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--background); border-radius: 1rem; padding: 2rem; }
.ew-reach ul { margin-top: 1rem; display: grid; gap: .5rem; font-size: .875rem; color: var(--muted-fg); }
.ew-reach .ew-btn-outline { margin-top: 1.5rem; }

/* ---------- Footer ---------- */
.ew-footer { background: var(--ink); color: var(--ink-fg); }
.ew-footer .ew-wrap { display: grid; gap: 2.5rem; padding-top: 3.5rem; padding-bottom: 3.5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ew-footer .ew-wrap { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ew-footer .ew-wrap { grid-template-columns: repeat(4, 1fr); } }
.ew-footer h2 { font-size: 1.125rem; font-weight: 600; }
.ew-footer .ew-plate { display: inline-block; background: #fff; border-radius: 6px; padding: .5rem .65rem; }
.ew-footer .ew-plate img { height: 2.75rem; width: auto; display: block; }
.ew-footer ul { margin-top: 1rem; display: grid; gap: .5rem; font-size: .875rem; color: oklch(0.97 0.008 240 / .7); }
.ew-footer li.ew-row { display: flex; gap: .75rem; margin-top: .25rem; }
.ew-footer li.ew-row .ew-icon { margin-top: .25rem; color: var(--primary); }
.ew-footer a:hover { color: var(--ink-fg); }
.ew-footer a.blk { display: block; }
.ew-footer p.about { margin-top: 1.25rem; font-size: .875rem; color: oklch(0.97 0.008 240 / .7); }
.ew-copy { border-top: 1px solid oklch(0.97 0.008 240 / .15); padding: 1.5rem 1.25rem; text-align: center; font-size: .75rem; color: oklch(0.97 0.008 240 / .6); }

/* ---------- Generic posts ---------- */
.ew-post { max-width: 48rem; margin: 0 auto; padding: 4rem 1.25rem; }
.ew-post article + article { margin-top: 3rem; }
.ew-post h2 { font-size: 1.5rem; }
.ew-post .entry p { margin-top: 1rem; }

/* ---------- Block-editor compatibility ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: transparent !important; color: var(--primary) !important; box-shadow: none !important;
  border: 1px solid oklch(0.679 0.145 235.4 / .5) !important; padding: .65rem 1.4rem !important;
}
.wp-block-button__link { font-size: .875rem !important; }
.ew-card p.ew-eyebrow { color: var(--primary); font-size: .75rem; font-weight: 600; letter-spacing: .1em; }
.ew-card .ew-callout { color: var(--accent-fg); }
.ew-card p.ew-callout { margin-top: .75rem; }
.ew-card .ew-qr { display: block; margin-top: .75rem; }
.ew-col > * + * { margin-top: 1.5rem; }
.custom-logo { height: 3rem; width: auto; }
.ew-section > .wp-block-buttons { margin-top: 0; }
.ew-content .wp-block-group { margin-top: 0; margin-bottom: 0; }
.ew-section > h2 + .ew-plans { margin-top: 2.5rem; }
.ew-section > h2 + p + .ew-plans { margin-top: 2.5rem; }

/* =====================================================================
   ELEMENTOR PAGES  (classes prefixed .ewe- are set on Elementor
   containers/widgets under Advanced > CSS Classes)
   ===================================================================== */
.elementor [class*="ewe-"] > .elementor-widget { margin-block-end: 0 !important; margin-bottom: 0 !important; }
.elementor .e-con[class*="ewe-"] { --gap: 0px; --widgets-spacing: 0px; }
.elementor [class*="ewe-"] .elementor-heading-title { color: inherit !important; font-family: var(--font-display) !important; line-height: 1.2 !important; margin: 0; }
.elementor [class*="ewe-"] .elementor-widget-text-editor { color: inherit; font: inherit; }
.elementor [class*="ewe-"] .elementor-widget-text-editor p { margin: 0; }
.elementor [class*="ewe-"] .elementor-widget-text-editor p + p { margin-top: .75rem; }
.elementor [class*="ewe-"] .elementor-widget-container { width: 100%; }

/* layout */
.e-con.ewe-sec { max-width: 80rem; width: 100%; margin: 0 auto !important; padding: 4rem 1.25rem !important; display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: .75rem !important; }
.e-con.ewe-sec.ewe-narrow { max-width: 56rem; }
.e-con.ewe-sec.ewe-w48 { max-width: 48rem; }
.e-con.ewe-sec.ewe-tight { padding-bottom: 1rem !important; }
.e-con.ewe-flush { padding: 0 !important; width: 100%; max-width: none; }
.e-con.ewe-col { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: .75rem !important; padding: 0 !important; }
.e-con.ewe-actions { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: .75rem !important; padding: 0 !important; margin-top: .75rem; align-items: center !important; }
.e-con.ewe-band { width: 100%; padding: 0 !important; background: oklch(1 0 0 / .4); border-top: 1px solid oklch(0.88 0.012 240 / .6); border-bottom: 1px solid oklch(0.88 0.012 240 / .6); }
.e-con.ewe-band.ewe-accent { background: oklch(0.93 0.045 229 / .4); }
.e-con.ewe-grid { display: grid !important; grid-template-columns: 1fr; gap: 1.5rem !important; padding: 0 !important; margin-top: 1.25rem; }
.e-con.ewe-split { display: grid !important; grid-template-columns: 1fr; gap: 2rem !important; padding: 0 !important; align-items: start; }
.ewe-cards-col .elementor-shortcode > .ew-card + .ew-card { margin-top: 1.5rem; }
@media (min-width: 768px) { .e-con.ewe-grid { grid-template-columns: repeat(2, 1fr); } .e-con.ewe-grid.ewe-plans { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .e-con.ewe-grid.ewe-g3 { grid-template-columns: repeat(3, 1fr); } .e-con.ewe-grid.ewe-g4 { grid-template-columns: repeat(4, 1fr); } .e-con.ewe-split { grid-template-columns: 1fr 1fr; } }

/* hero */
.e-con.ewe-hero { width: 100%; padding: 4rem 1.25rem 0 !important; display: flex !important; flex-direction: column !important; align-items: stretch !important; }
.e-con.ewe-hero-in { max-width: 80rem; width: 100%; margin: 0 auto !important; padding: 0 0 4rem !important; display: grid !important; grid-template-columns: 1fr; gap: 2.5rem !important; align-items: center; }
.e-con.ewe-stats { max-width: 80rem; width: 100%; margin: 0 auto !important; padding: 2.5rem 0 3.5rem !important; display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 2rem !important; border-top: 1px solid oklch(0.97 0.008 240 / .15); }
@media (min-width: 640px) { .e-con.ewe-stats { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .e-con.ewe-hero { padding-top: 5rem !important; } .e-con.ewe-hero-in.has-img { grid-template-columns: 1fr 1fr; } }
.ewe-hero h1.elementor-heading-title { font-size: clamp(1.9rem, 4.5vw, 3rem); font-weight: 700; letter-spacing: -.01em; margin-top: .25rem; }
.elementor-widget.ewe-hero-body { color: oklch(0.97 0.008 240 / .7); font-size: 1.05rem; max-width: 36rem; }
.elementor-widget.ewe-eyebrow { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .15em; color: var(--primary); }
.elementor-widget.ewe-pill { align-self: flex-start; width: auto; border: 1px solid oklch(0.97 0.008 240 / .2); background: oklch(0.97 0.008 240 / .1); border-radius: 999px; padding: .35rem 1rem; font-size: .75rem; font-weight: 500; }
.ewe-hero-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 1.5rem; border: 1px solid oklch(0.97 0.008 240 / .15); }
.ewe-stat h3.elementor-heading-title { font-size: 1.9rem; font-weight: 700; color: var(--primary) !important; }
.ewe-stat .elementor-widget-text-editor { margin-top: .25rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: oklch(0.97 0.008 240 / .6); }
.e-con.ewe-stat { padding: 0 !important; }

/* headings and lead text in sections */
.ewe-sec h2.elementor-heading-title { font-size: clamp(1.5rem, 3vw, 1.9rem); font-weight: 700; letter-spacing: -.01em; }
.ewe-sec h2.elementor-heading-title.ewe-mt, .elementor-widget.ewe-mt { margin-top: 4rem !important; }
.elementor-widget.ewe-lead { color: var(--muted-fg); max-width: 42rem; }
.ewe-band .ewe-lead { color: var(--muted-fg); }

/* cards */
.e-con.ewe-card, .e-con.ewe-plan { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: .75rem !important; padding: 1.5rem !important; border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: 1rem; transition: border-color .15s; }
.e-con.ewe-card:hover { border-color: oklch(0.679 0.145 235.4 / .5); }
.e-con.ewe-plan.is-highlight { border-color: oklch(0.679 0.145 235.4 / .7); box-shadow: var(--shadow-glow); }
.ewe-card h2.elementor-heading-title, .ewe-card h3.elementor-heading-title, .ewe-plan h3.elementor-heading-title { font-size: 1.125rem; font-weight: 600; }
.ewe-card .elementor-widget-text-editor, .ewe-plan .elementor-widget-text-editor { font-size: .875rem; color: var(--muted-fg); }
.ewe-card .elementor-widget-text-editor strong { color: var(--foreground); font-weight: 500; }
.ewe-card .elementor-widget-text-editor a { color: var(--primary); }
.elementor-widget.ewe-num { font-family: var(--font-display); font-size: .75rem; font-weight: 600; color: var(--primary); }
.elementor-widget.ewe-price { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--primary); line-height: 1.2; }
.elementor-widget.ewe-note { font-size: .75rem; color: var(--muted-fg); }
.ewe-card .elementor-widget.ewe-eyebrow { font-size: .75rem; letter-spacing: .1em; }
.elementor-widget.ewe-callout { background: var(--accent); color: var(--accent-fg); border-radius: 6px; padding: .5rem .75rem; font-size: .75rem; }
.ewe-card .elementor-widget.ewe-callout { color: var(--accent-fg); }
.elementor-widget.ewe-badge { align-self: flex-start; width: auto; background: var(--accent); color: var(--accent-fg); border-radius: 999px; padding: .2rem .75rem; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.ewe-qr img { width: 10rem; max-width: 100%; border-radius: .75rem; border: 1px solid oklch(0.88 0.012 240 / .6); background: #fff; padding: .5rem; }
.ewe-plan .ewe-points { flex: 1; }
.ewe-plan .elementor-widget-button { margin-top: 1rem !important; }
.ewe-plan .elementor-button { width: 100%; justify-content: center; }

/* icon lists */
.ewe-points .elementor-icon-list-items { display: grid; gap: .4rem; }
.ewe-points .elementor-icon-list-item { align-items: flex-start; }
.ewe-points .elementor-icon-list-icon i { color: var(--primary); font-size: .85rem; }
.ewe-points .elementor-icon-list-icon svg { fill: var(--primary); width: .85rem; }
.ewe-points .elementor-icon-list-text { font-size: .875rem; color: var(--muted-fg) !important; padding-inline-start: .25rem; }

/* buttons */
.ewe-btn .elementor-button, .ewe-btn-ghost .elementor-button, .ewe-btn-outline .elementor-button { border-radius: 999px; padding: .7rem 1.5rem; font-family: var(--font-sans); font-size: .875rem; font-weight: 500; line-height: 1.4; border: 1px solid transparent; transition: transform .15s; }
.ewe-btn .elementor-button { background: var(--gradient-brand); color: #fff; box-shadow: var(--shadow-glow); }
.ewe-btn .elementor-button:hover { transform: scale(1.03); color: #fff; }
.ewe-btn-ghost .elementor-button { background: transparent; color: var(--ink-fg); border-color: oklch(0.97 0.008 240 / .25); }
.ewe-btn-ghost .elementor-button:hover { border-color: oklch(0.97 0.008 240 / .6); color: var(--ink-fg); }
.ewe-btn-outline .elementor-button { background: transparent; color: var(--primary); border-color: oklch(0.679 0.145 235.4 / .5); }
.ewe-btn-outline .elementor-button:hover { color: var(--primary); }
.ewe-more .elementor-button { background: none; padding: 0; box-shadow: none; border: 0; color: var(--primary); font-size: .875rem; font-family: var(--font-sans); }
.ewe-more .elementor-button:hover { color: var(--primary); text-decoration: underline; }

/* home service cards */
.e-con.ewe-svc { display: flex !important; flex-direction: column !important; padding: 0 !important; overflow: hidden; border: 1px solid oklch(0.88 0.012 240 / .6); background: var(--card); border-radius: 1rem; transition: border-color .15s; gap: 0 !important; }
.e-con.ewe-svc:hover { border-color: oklch(0.679 0.145 235.4 / .6); }
.ewe-svc img { display: block; width: 100%; height: 10rem; object-fit: cover; }
.e-con.ewe-svc-body { padding: 1.5rem !important; }
.ewe-svc h3.elementor-heading-title { font-size: 1.125rem; font-weight: 600; margin-top: .5rem; }
.ewe-svc .elementor-widget-text-editor { font-size: .875rem; color: var(--muted-fg); }
.ewe-ico .elementor-icon { color: var(--primary); font-size: 1.5rem; }
.ewe-ico .elementor-icon svg { fill: var(--primary); }
.e-con.ewe-band .ewe-points .elementor-icon-list-text { font-size: .875rem; }
.e-con.ewe-band .ewe-sec { max-width: 80rem; }
.e-con.ewe-band .ewe-sec.ewe-w48 { max-width: 48rem; }

/* shortcode output spacing */
.ewe-sec .elementor-widget-shortcode { margin-top: 1rem; }
