/*
Theme Name: Electric Kitten
Theme URI: https://electrickitten.com
Author: Electric Kitten Hosting
Description: Modern block theme for Electric Kitten Hosting. Coral brand, dark hero, rounded cards, editable with the block editor.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: electrickitten
*/

:root {
  --ek-coral: #F44840; --ek-coral-dark: #D9342C; --ek-ink: #0B1020; --ek-ink-2: #141B2E;
  --ek-slate: #475569; --ek-muted: #94A3B8; --ek-mist: #F6F7FB; --ek-line: #E7E9F1;
  --ek-radius: 28px; --ek-shadow: 0 30px 60px -25px rgba(11,16,32,.25);
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
main.ek-main { margin-top: 0 !important; }
main.ek-main > .wp-block-post-content > * { margin-block-start: 0; }
img { max-width: 100%; height: auto; }

/* ---------- Header ---------- */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.ek-header { position: relative; background: rgba(255,255,255,.86); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid rgba(11,16,32,.06); transition: box-shadow .3s; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.ek-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(11,16,32,.35); }
.ek-topbar { background: var(--ek-ink); color: #CBD5E1; font-size: .78rem; font-weight: 600; letter-spacing: .02em; }
.ek-topbar a { color: #fff; text-decoration: none; }
.ek-topbar a:hover { color: var(--ek-coral); }
.ek-topbar p { margin: 0; }
.ek-header .wp-block-site-logo img { width: 210px; height: auto; display: block; }
@media (max-width: 600px) { .ek-header .wp-block-site-logo img { width: 170px; } .ek-topbar .ek-hide-sm { display: none; } }
.ek-header .wp-block-navigation { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: #334155; }
.ek-header .wp-block-navigation a:hover, .ek-header .wp-block-navigation .current-menu-item > a { color: var(--ek-coral); }
.ek-header .wp-block-navigation__submenu-container { border: 1px solid var(--ek-line) !important; border-radius: 18px; padding: .5rem !important; box-shadow: var(--ek-shadow); min-width: 240px !important; text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 700; }
.ek-header .wp-block-navigation__submenu-container a { border-radius: 10px; padding: .6rem .9rem !important; }
.ek-header .wp-block-navigation__submenu-container a:hover { background: var(--ek-mist); }
.ek-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.ek-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { font-size: 1.15rem; gap: 1rem; }
.ek-header .wp-block-button__link { padding: .75rem 1.25rem; font-size: .85rem; border-radius: 12px; white-space: nowrap; }
@media (max-width: 600px) { .ek-header .wp-block-button__link { padding: .6rem .9rem; font-size: .78rem; } .ek-stats { grid-template-columns: 1fr 1fr !important; } .ek-stat-num { font-size: 1.35rem; } }
.ek-btn-ghost .wp-block-button__link { background: transparent !important; color: var(--ek-ink) !important; border: 1.5px solid var(--ek-line); }
.ek-btn-ghost .wp-block-button__link:hover { border-color: var(--ek-ink); }
@media (max-width: 781px) { .ek-header .ek-login { display: none; } }

/* ---------- Shared pieces ---------- */
.ek-kicker { color: var(--ek-coral); font-weight: 800; text-transform: uppercase; letter-spacing: .2em; font-size: .78rem !important; margin-bottom: .75rem !important; }
.ek-title { font-size: clamp(2rem, 4.2vw, 3.25rem) !important; font-weight: 900 !important; letter-spacing: -.04em !important; line-height: 1.05 !important; }
.ek-sub { color: var(--ek-slate); font-size: 1.15rem; font-weight: 500; }
.ek-section { padding-top: clamp(4rem, 9vw, 7rem) !important; padding-bottom: clamp(4rem, 9vw, 7rem) !important; }
.ek-section-mist { background: var(--ek-mist); }
.ek-head { max-width: 760px; margin-left: auto !important; margin-right: auto !important; text-align: center; margin-bottom: 3.5rem !important; }
.ek-coral { color: var(--ek-coral); }

/* ---------- Hero ---------- */
.ek-hero { position: relative; overflow: hidden; background: var(--ek-ink); color: #CBD5E1; padding-top: clamp(4.5rem, 10vw, 8rem) !important; padding-bottom: clamp(4.5rem, 10vw, 8rem) !important; isolation: isolate; }
.ek-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 75%); }
.ek-hero::after { content: ""; position: absolute; z-index: -1; width: 900px; height: 900px; right: -300px; top: -350px; background: radial-gradient(circle, rgba(244,72,64,.35), transparent 60%); }
@keyframes ekPulse { 0%,100% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } }
.ek-hero h1, .ek-hero h2, .ek-hero h3 { color: #fff; }
.ek-hero-title { font-size: clamp(2.6rem, 6vw, 4.75rem) !important; font-weight: 900 !important; letter-spacing: -.05em !important; line-height: .95 !important; margin-top: 1.5rem !important; }
.ek-hero-title .ek-coral { display: inline-block; }
.ek-lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: #CBD5E1; max-width: 36rem; font-weight: 500; }
.ek-badge { display: inline-flex !important; align-items: center; gap: .6rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); padding: .55rem 1.1rem !important; border-radius: 999px; font-size: .72rem !important; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--ek-coral) !important; backdrop-filter: blur(8px); }
.ek-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ek-coral); box-shadow: 0 0 0 4px rgba(244,72,64,.25); animation: ekBlink 2s ease-in-out infinite; }
@keyframes ekBlink { 50% { box-shadow: 0 0 0 7px rgba(244,72,64,.05); } }
.ek-hero .ek-btn-ghost .wp-block-button__link { color: #fff !important; border-color: rgba(255,255,255,.25); }
.ek-hero .ek-btn-ghost .wp-block-button__link:hover { border-color: #fff; }
.ek-hero .wp-block-button:not(.ek-btn-ghost) .wp-block-button__link { box-shadow: 0 20px 40px -12px rgba(244,72,64,.6); }
.ek-hero-card { background: rgba(20,27,46,.75) !important; border: 1px solid rgba(255,255,255,.1); border-radius: var(--ek-radius); padding: 2rem !important; backdrop-filter: blur(16px); box-shadow: 0 40px 80px -30px rgba(0,0,0,.7); }
.ek-hero-card h3 { font-size: 1.1rem !important; letter-spacing: 0 !important; }
.ek-hero-card .ek-big { font-size: 3.25rem; font-weight: 900; color: #fff; letter-spacing: -.04em; line-height: 1; margin: .25rem 0 .25rem; }
.ek-hero-card .ek-big small { font-size: 1rem; color: var(--ek-muted); font-weight: 600; letter-spacing: 0; }
.ek-stats { border-top: 1px solid rgba(255,255,255,.1); padding-top: 2rem !important; margin-top: 3rem !important; }
.ek-stats p { margin: 0; }
.ek-stat-num { color: #fff; font-weight: 900; font-size: 1.6rem; letter-spacing: -.03em; line-height: 1.1; }
.ek-stat-label { color: var(--ek-muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; }

/* ---------- Page hero (inner pages) ---------- */
.ek-page-hero { background: var(--ek-ink); position: relative; overflow: hidden; isolation: isolate; padding-top: clamp(4rem, 9vw, 6.5rem) !important; padding-bottom: clamp(3.5rem, 8vw, 5.5rem) !important; }
.ek-page-hero::after { content: ""; position: absolute; z-index: -1; width: 700px; height: 700px; right: -250px; top: -300px; background: radial-gradient(circle, rgba(244,72,64,.3), transparent 60%); filter: blur(30px); }
.ek-page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(90deg, #000, transparent 70%); -webkit-mask-image: linear-gradient(90deg, #000, transparent 70%); }
.ek-page-hero .wp-block-post-title { color: #fff; font-size: clamp(2.4rem, 6vw, 4.25rem); font-weight: 900; letter-spacing: -.05em; line-height: 1; margin: 0; }
.ek-page-hero .wp-block-post-excerpt__excerpt { color: #CBD5E1; font-size: 1.2rem; max-width: 40rem; margin-top: 1.25rem; }
.ek-page-hero .wp-block-post-excerpt__more-text { display: none; }

/* ---------- Cards ---------- */
.ek-card { background: var(--ek-mist); border: 1px solid #EEF0F6; border-radius: var(--ek-radius); padding: clamp(1.75rem, 3vw, 2.5rem) !important; transition: transform .3s ease, box-shadow .3s ease, background .3s; height: 100%; }
.ek-card:hover { background: #fff; transform: translateY(-4px); box-shadow: var(--ek-shadow); }
.ek-section-mist .ek-card { background: #fff; }
.ek-card h3 { font-size: 1.35rem !important; font-weight: 900 !important; margin-top: 0 !important; }
.ek-card p { color: var(--ek-slate); }
.ek-card-dark { background: var(--ek-ink) !important; border-color: rgba(255,255,255,.06) !important; color: var(--ek-muted); }
.ek-card-dark:hover { background: var(--ek-ink-2) !important; }
.ek-card-dark h3 { color: #fff !important; }
.ek-card-dark p { color: var(--ek-muted); }
.ek-card-dark .ek-more a, .ek-more a { color: var(--ek-coral); font-weight: 800; text-transform: uppercase; letter-spacing: .15em; font-size: .75rem; text-decoration: none; }
.ek-more a::after { content: " →"; display: inline-block; transition: transform .2s; }
.ek-card:hover .ek-more a::after { transform: translateX(4px); }
.ek-from { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .15em; color: var(--ek-coral); }

/* Icons (CSS masks so they stay editable as plain paragraphs) */
.ek-icon { width: 54px; height: 54px; border-radius: 16px; background: rgba(244,72,64,.1); position: relative; margin: 0 0 1.5rem !important; font-size: 0 !important; }
.ek-icon::after { content: ""; position: absolute; inset: 14px; background: var(--ek-coral); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.ek-card-dark .ek-icon { background: rgba(255,255,255,.06); }
.ek-i-support { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E"); }
.ek-i-speed { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.ek-i-shield { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ek-i-scale { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7 13.5 15.5 8.5 10.5 2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E"); }
.ek-i-globe { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E"); }
.ek-i-cloud { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.5 19H9a7 7 0 1 1 6.7-9h1.8a4.5 4.5 0 1 1 0 9z'/%3E%3C/svg%3E"); }
.ek-i-server { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='8' rx='2'/%3E%3Crect x='2' y='14' width='20' height='8' rx='2'/%3E%3Cpath d='M6 6h.01M6 18h.01'/%3E%3C/svg%3E"); }
.ek-i-rack { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M8 6h8M8 10h8M8 14h8M12 18h.01'/%3E%3C/svg%3E"); }
.ek-i-money { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3Cpath d='M12 7v10M15 9.5c0-1.4-1.3-2-3-2s-3 .8-3 2.2 1.3 1.8 3 2.3 3 .9 3 2.3-1.3 2.2-3 2.2-3-.7-3-2'/%3E%3C/svg%3E"); }
.ek-i-box { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8 12 3 3 8v8l9 5 9-5V8z'/%3E%3Cpath d='m3 8 9 5 9-5M12 13v8'/%3E%3C/svg%3E"); }
.ek-i-transfer { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3l4 4-4 4'/%3E%3Cpath d='M3 7h18'/%3E%3Cpath d='M7 21l-4-4 4-4'/%3E%3Cpath d='M21 17H3'/%3E%3C/svg%3E"); }
.ek-i-backup { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14c0 1.7 4 3 9 3s9-1.3 9-3V5'/%3E%3Cpath d='M3 12c0 1.7 4 3 9 3s9-1.3 9-3'/%3E%3C/svg%3E"); }
.ek-i-mail { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.ek-i-phone { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.ek-i-pin { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }

/* ---------- Check lists ---------- */
ul.ek-checks { list-style: none; padding-left: 0 !important; margin: 1.25rem 0; }
ul.ek-checks li { position: relative; padding-left: 2rem; margin: .7rem 0; font-weight: 600; }
ul.ek-checks li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: rgba(244,72,64,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F44840' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 62% no-repeat; }
.ek-hero ul.ek-checks li, .ek-card-dark ul.ek-checks li { color: #E2E8F0; }
ul.ek-checks.ek-cols-2 { columns: 2; column-gap: 2rem; }
@media (max-width: 640px) { ul.ek-checks.ek-cols-2 { columns: 1; } }

/* ---------- Pricing ---------- */
.ek-price { background: #fff; border: 1px solid var(--ek-line); border-radius: var(--ek-radius); padding: 2.25rem 2rem !important; position: relative; height: 100%; display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; }
.ek-price:hover { transform: translateY(-4px); box-shadow: var(--ek-shadow); }
.ek-price h3 { font-size: 1rem !important; text-transform: uppercase; letter-spacing: .15em !important; font-weight: 900 !important; margin: 0 !important; }
.ek-price .ek-amount { font-size: 3.4rem; font-weight: 900; letter-spacing: -.05em; line-height: 1; color: var(--ek-ink); margin: 1.25rem 0 .25rem !important; }
.ek-price .ek-amount sup { font-size: 1.4rem; vertical-align: top; position: relative; top: .5rem; margin-right: 2px; }
.ek-price .ek-term { color: var(--ek-muted); font-weight: 700; font-size: .85rem; margin-top: 0 !important; }
.ek-price .ek-desc { color: var(--ek-slate); font-size: .95rem; }
.ek-price ul.ek-checks { flex: 1; font-size: .95rem; }
.ek-price .wp-block-buttons { margin-top: auto; }
.ek-price .wp-block-button, .ek-price .wp-block-button__link { width: 100%; }
.ek-price:not(.ek-featured) .wp-block-button__link { background: var(--ek-ink); }
.ek-price:not(.ek-featured) .wp-block-button__link:hover { background: var(--ek-coral); }
.ek-featured { background: var(--ek-ink) !important; border-color: var(--ek-ink) !important; box-shadow: 0 40px 70px -30px rgba(244,72,64,.55); }
.ek-featured h3, .ek-featured .ek-amount { color: #fff !important; }
.ek-featured .ek-desc, .ek-featured ul.ek-checks li { color: #CBD5E1; }
.ek-featured::before { content: "Most popular"; position: absolute; top: -13px; left: 2rem; background: var(--ek-coral); color: #fff; font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .15em; padding: .4rem .85rem; border-radius: 999px; }

/* ---------- Quotes ---------- */
.ek-quote { background: #fff; border: 1px solid var(--ek-line); border-radius: var(--ek-radius); padding: 2.25rem !important; height: 100%; position: relative; }
.ek-quote::before { content: "\201C"; position: absolute; top: .5rem; right: 1.5rem; font-size: 6rem; line-height: 1; font-weight: 900; color: rgba(244,72,64,.15); font-family: Georgia, serif; }
.ek-quote p { color: #334155; font-size: 1.02rem; }
.ek-quote .ek-who { color: var(--ek-ink); font-weight: 900; font-size: .8rem; text-transform: uppercase; letter-spacing: .15em; margin-top: 1.25rem; }
.ek-stars { color: #F59E0B; letter-spacing: .15em; font-size: 1rem; margin-bottom: .5rem !important; }

/* ---------- CTA band ---------- */
.ek-cta { background: var(--ek-coral); position: relative; overflow: hidden; isolation: isolate; color: #fff; }
.ek-cta::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; border-radius: 50%; background: rgba(255,255,255,.14); filter: blur(60px); top: -200px; right: -120px; }
.ek-cta::after { content: ""; position: absolute; z-index: -1; width: 360px; height: 360px; border-radius: 50%; background: rgba(11,16,32,.25); filter: blur(60px); bottom: -180px; left: -100px; }
.ek-cta h2 { color: #fff !important; }
.ek-cta p { color: rgba(255,255,255,.9); }
.ek-cta .wp-block-button__link { background: #fff !important; color: var(--ek-coral) !important; box-shadow: 0 25px 40px -15px rgba(0,0,0,.35); }
.ek-cta .wp-block-button__link:hover { background: var(--ek-ink) !important; color: #fff !important; }
.ek-cta .ek-btn-ghost .wp-block-button__link { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.5); box-shadow: none; }
.ek-cta a:not(.wp-block-button__link) { color: #fff; }

/* ---------- Spec table ---------- */
.ek-table table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--ek-line); border-radius: 20px; overflow: hidden; }
.ek-table th, .ek-table td { border: 0 !important; border-bottom: 1px solid var(--ek-line) !important; padding: 1rem 1.25rem !important; text-align: left; }
.ek-table tr:last-child td { border-bottom: 0 !important; }
.ek-table thead th { background: var(--ek-ink); color: #fff; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.ek-table tbody tr:nth-child(even) td { background: var(--ek-mist); }
.ek-table td:first-child { font-weight: 800; color: var(--ek-ink); }

/* ---------- Prose (policies etc.) ---------- */
.ek-prose { max-width: 780px; margin-left: auto !important; margin-right: auto !important; color: #334155; font-size: 1.06rem; }
.ek-prose h2 { font-size: 1.6rem; font-weight: 900; margin-top: 2.75rem; }
.ek-prose h3 { font-size: 1.2rem; font-weight: 800; margin-top: 2rem; }

/* ---------- Forms ---------- */
.ek-form input[type=text], .ek-form input[type=email], .ek-form input[type=tel], .ek-form select, .ek-form textarea { width: 100%; box-sizing: border-box; background: var(--ek-mist); border: 1px solid var(--ek-line); border-radius: 14px; padding: 1rem 1.25rem; font: 500 1rem/1.5 Inter, sans-serif; color: var(--ek-ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.ek-form input:focus, .ek-form select:focus, .ek-form textarea:focus { border-color: var(--ek-coral); box-shadow: 0 0 0 4px rgba(244,72,64,.12); background: #fff; }
.ek-form label { display: block; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--ek-ink); margin-bottom: .45rem; }
.ek-form .ek-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .ek-form .ek-row { grid-template-columns: 1fr; } }
.ek-form .ek-field { margin-bottom: 1rem; }
.ek-form textarea { min-height: 150px; resize: vertical; }
.ek-form button { width: 100%; background: var(--ek-coral); color: #fff; border: 0; border-radius: 16px; padding: 1.15rem; font: 900 1.05rem/1 Inter, sans-serif; cursor: pointer; box-shadow: 0 20px 40px -15px rgba(244,72,64,.6); transition: background .2s; }
.ek-form button:hover { background: var(--ek-coral-dark); }
.ek-form .ek-hp { position: absolute; left: -9999px; }
.ek-notice { padding: 1rem 1.25rem; border-radius: 14px; font-weight: 700; margin-bottom: 1.5rem; }
.ek-notice.ok { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
.ek-notice.err { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

/* ---------- Footer ---------- */
.ek-footer { background: var(--ek-ink); color: var(--ek-muted); font-size: .95rem; border-top: 1px solid rgba(255,255,255,.05); }
.ek-footer h4 { color: #fff; font-size: .75rem !important; text-transform: uppercase; letter-spacing: .2em; font-weight: 800; margin-bottom: 1.25rem !important; }
.ek-footer a { color: var(--ek-muted); text-decoration: none; transition: color .2s; }
.ek-footer a:hover { color: var(--ek-coral); }
.ek-footer ul { list-style: none; padding: 0; margin: 0; }
.ek-footer li { margin: .65rem 0; }
.ek-footer .ek-logo-light img { width: 220px; height: auto; }
.ek-footer-bottom { border-top: 1px solid rgba(255,255,255,.08); font-size: .82rem; }
.ek-footer-bottom p { margin: 0; }

/* ---------- Reveal ---------- */
.ek-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.ek-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ek-reveal { opacity: 1; transform: none; transition: none; } .ek-hero::after, .ek-badge::before { animation: none; } }
.block-editor-page .ek-reveal, .editor-styles-wrapper .ek-reveal { opacity: 1; transform: none; }

/* Grid helpers for the editor-made grids */
.ek-grid-gap { gap: 1.5rem !important; }
