/*
Theme Name: Zappy Consults
Theme URI: https://zappyconsults.com
Author: Zappy Consults LLC
Author URI: https://zappyconsults.com
Description: Professional business and management consulting landing page theme for Zappy Consults LLC.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zappy-consults
Tags: business, consulting, landing-page, one-page
*/

/* ============================================================
   ZAPPY CONSULTS — WordPress Theme Stylesheet
   Art direction: Authoritative consulting — precision + trust
   Palette: Brand blues (teal/cobalt) + warm neutral surfaces
   ============================================================ */

:root {
  --color-bg:             #f8f8f6;
  --color-surface:        #ffffff;
  --color-surface-2:      #f3f4f8;
  --color-surface-offset: #eaebf0;
  --color-divider:        #dddee5;
  --color-border:         #d0d2db;
  --color-text:           #1a1c2e;
  --color-text-muted:     #5a5d72;
  --color-text-faint:     #9a9db0;
  --color-text-inverse:   #f8f8f6;
  --color-primary:        #0b7ea3;
  --color-primary-hover:  #085f7a;
  --color-primary-highlight: #d0eaf4;
  --color-accent:         #1a3a8f;
  --color-gradient-start: #0ea5d4;
  --color-gradient-end:   #1a3a8f;
  --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem;
  --radius-xl: 1rem; --radius-2xl: 1.5rem; --radius-full: 9999px;
  --transition: 180ms cubic-bezier(0.16, 1, 0.3, 1);
  --shadow-sm: 0 1px 3px rgba(20,30,80,0.07);
  --shadow-md: 0 4px 16px rgba(20,30,80,0.10);
  --shadow-lg: 0 12px 40px rgba(20,30,80,0.14);
  --shadow-xl: 0 24px 64px rgba(20,30,80,0.18);
  --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
  --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
  --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
  --text-2xl:  clamp(2rem,     1.2rem  + 2.5vw,  3.5rem);
  --text-3xl:  clamp(2.5rem,   1rem    + 4vw,    5rem);
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;
  --content-default: 960px; --content-wide: 1200px;
  --font-display: 'Instrument Serif', Georgia, serif;
  --font-body: 'Plus Jakarta Sans', system-ui, sans-serif;
}

/* ======== RESET ======== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; -webkit-font-smoothing: antialiased; }
body { min-height: 100vh; font-family: var(--font-body); font-size: var(--text-base); color: var(--color-text); background: var(--color-bg); line-height: 1.6; }
img, video, svg { display: block; max-width: 100%; height: auto; }
h1,h2,h3,h4 { text-wrap: balance; line-height: 1.15; font-family: var(--font-display); }
p, li { text-wrap: pretty; } a { color: inherit; text-decoration: none; }
button { cursor: pointer; background: none; border: none; font: inherit; color: inherit; }
ul { list-style: none; }
::selection { background: rgba(11,126,163,0.18); }
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: var(--radius-sm); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }

/* ======== WP CORE OVERRIDES ======== */
.wp-block-image img { border-radius: var(--radius-lg); }
.entry-content { max-width: var(--content-wide); margin: 0 auto; }
.alignwide { max-width: var(--content-wide); margin-inline: auto; }
.alignfull { max-width: 100%; }
p.has-drop-cap::first-letter { font-family: var(--font-display); font-size: 3.5em; float: left; line-height: 0.85; margin-right: var(--space-2); color: var(--color-primary); }
.wp-block-button .wp-block-button__link { border-radius: var(--radius-full) !important; font-weight: 700; background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)) !important; }

/* ======== SKIP LINK ======== */
.skip-link { position: absolute; top: -100%; left: var(--space-4); background: var(--color-primary); color: white; padding: var(--space-2) var(--space-4); border-radius: var(--radius-md); font-size: var(--text-sm); z-index: 9999; }
.skip-link:focus { top: var(--space-2); }

/* ======== NAV ======== */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: rgba(248,248,246,0.92);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--color-divider);
  transition: box-shadow var(--transition);
}
.site-header.scrolled { box-shadow: var(--shadow-md); }
.nav-inner { max-width: var(--content-wide); margin: 0 auto; padding: var(--space-4) var(--space-6); display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); }
.site-branding a { display: flex; align-items: center; }
.site-branding img { height: 44px; width: auto; }
.site-branding .site-title { font-family: var(--font-display); font-size: 1.1rem; color: var(--color-text); }
.main-navigation ul { display: flex; align-items: center; gap: var(--space-6); }
.main-navigation ul li a { font-size: var(--text-sm); font-weight: 500; color: var(--color-text-muted); transition: color var(--transition); }
.main-navigation ul li a:hover { color: var(--color-primary); }
.nav-cta-wrap { display: flex; align-items: center; gap: var(--space-3); }
.nav-book-btn {
  font-size: var(--text-sm); font-weight: 700; padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));
  color: white !important; white-space: nowrap;
  transition: opacity var(--transition), box-shadow var(--transition);
}
.nav-book-btn:hover { opacity: 0.88; box-shadow: var(--shadow-md); }
.menu-toggle { display: none; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: var(--radius-md); background: var(--color-surface-2); border: 1px solid var(--color-border); }
@media (max-width: 768px) {
  .main-navigation { display: none; }
  .nav-book-btn-wrap { display: none; }
  .menu-toggle { display: flex; }
  .main-navigation.toggled { display: block; position: fixed; top: 72px; left: 0; right: 0; background: var(--color-surface); border-bottom: 1px solid var(--color-divider); padding: var(--space-4) var(--space-6); z-index: 99; }
  .main-navigation.toggled ul { flex-direction: column; align-items: flex-start; gap: 0; }
  .main-navigation.toggled ul li { border-bottom: 1px solid var(--color-divider); width: 100%; }
  .main-navigation.toggled ul li a { display: block; padding: var(--space-4) 0; font-size: var(--text-base); }
  .main-navigation.toggled ul li:last-child { border-bottom: none; }
}

/* ======== BUTTONS ======== */
.btn-primary {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--text-sm); font-weight: 700;
  padding: var(--space-4) var(--space-8); border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));
  color: white !important; box-shadow: 0 2px 16px rgba(11,126,163,0.35);
  transition: opacity var(--transition), box-shadow var(--transition), transform var(--transition);
  white-space: nowrap;
}
.btn-primary:hover { opacity: 0.9; box-shadow: 0 6px 28px rgba(11,126,163,0.45); transform: translateY(-1px); }
.btn-ghost { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: 600; padding: var(--space-4) var(--space-8); border-radius: var(--radius-full); border: 1.5px solid var(--color-border); color: var(--color-text); transition: border-color var(--transition), background var(--transition); }
.btn-ghost:hover { border-color: var(--color-primary); background: var(--color-primary-highlight); color: var(--color-primary); }
.btn-white { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: 700; padding: var(--space-4) var(--space-8); border-radius: var(--radius-full); background: white; color: var(--color-accent) !important; box-shadow: 0 2px 16px rgba(0,0,0,0.15); transition: box-shadow var(--transition), transform var(--transition); }
.btn-white:hover { box-shadow: 0 6px 28px rgba(0,0,0,0.22); transform: translateY(-1px); }
.btn-outline-white { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: 700; padding: var(--space-4) var(--space-8); border-radius: var(--radius-full); border: 2px solid rgba(255,255,255,0.5); color: white !important; transition: border-color var(--transition), background var(--transition); }
.btn-outline-white:hover { border-color: white; background: rgba(255,255,255,0.1); }

/* ======== HERO ======== */
.zc-hero { min-height: 100vh; display: flex; align-items: center; padding-top: 80px; position: relative; overflow: hidden; background: var(--color-bg); }
.zc-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse 80% 60% at 70% 20%, rgba(11,126,163,0.08) 0%, transparent 60%), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(26,58,143,0.06) 0%, transparent 60%); }
.zc-hero-inner { max-width: var(--content-wide); margin: 0 auto; padding: var(--space-20) var(--space-6); display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); align-items: center; position: relative; z-index: 1; }
.zc-hero-badge { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: var(--space-2) var(--space-4); border-radius: var(--radius-full); background: var(--color-primary-highlight); color: var(--color-primary); border: 1px solid rgba(11,126,163,0.2); margin-bottom: var(--space-6); }
.zc-hero-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-primary); animation: pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.6;transform:scale(0.8)} }
.zc-hero-heading { font-family: var(--font-display); font-size: var(--text-3xl); line-height: 1.1; margin-bottom: var(--space-6); }
.zc-hero-heading em { font-style: italic; color: var(--color-primary); }
.zc-hero-sub { font-size: var(--text-lg); color: var(--color-text-muted); line-height: 1.65; max-width: 52ch; margin-bottom: var(--space-8); }
.zc-hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-10); }
.zc-hero-trust-label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--color-text-faint); margin-bottom: var(--space-3); }
.zc-hero-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.zc-chip { font-size: var(--text-xs); font-weight: 600; padding: var(--space-1) var(--space-3); border-radius: var(--radius-full); background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-text-muted); }
.zc-hero-visual { display: flex; justify-content: center; }
.zc-hero-card { background: var(--color-surface); border-radius: var(--radius-2xl); box-shadow: var(--shadow-xl); padding: var(--space-8); border: 1px solid var(--color-border); position: relative; z-index: 2; width: 100%; max-width: 420px; }
.zc-card-head { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-6); }
.zc-card-icon { width: 52px; height: 52px; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: white; }
.zc-card-title { font-family: var(--font-display); font-size: var(--text-lg); }
.zc-card-sub { font-size: var(--text-xs); color: var(--color-text-muted); }
.zc-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-bottom: var(--space-6); }
.zc-stat { background: var(--color-surface-2); border-radius: var(--radius-lg); padding: var(--space-4); text-align: center; border: 1px solid var(--color-divider); }
.zc-stat-num { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-primary); line-height: 1; margin-bottom: var(--space-1); }
.zc-stat-label { font-size: var(--text-xs); color: var(--color-text-muted); font-weight: 500; }
.zc-progress-label { font-size: var(--text-xs); font-weight: 600; color: var(--color-text-muted); display: flex; justify-content: space-between; margin-bottom: var(--space-2); }
.zc-progress-track { height: 6px; border-radius: var(--radius-full); background: var(--color-surface-offset); overflow: hidden; margin-bottom: var(--space-3); }
.zc-progress-fill { height: 100%; border-radius: var(--radius-full); background: linear-gradient(90deg, var(--color-gradient-start), var(--color-gradient-end)); }
.zc-float-card { position: absolute; right: -16px; bottom: -16px; z-index: 3; background: var(--color-surface); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-border); display: flex; align-items: center; gap: var(--space-3); animation: float 4s ease-in-out infinite; min-width: 190px; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.zc-float-icon { width: 36px; height: 36px; border-radius: var(--radius-md); background: rgba(11,126,163,0.12); display: flex; align-items: center; justify-content: center; color: var(--color-primary); flex-shrink: 0; }
.zc-float-top { font-size: var(--text-xs); font-weight: 700; color: var(--color-text); }
.zc-float-bot { font-size: var(--text-xs); color: var(--color-text-muted); }
.zc-float-badge { position: absolute; left: -16px; top: 28px; z-index: 3; background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); padding: var(--space-4); display: flex; flex-direction: column; align-items: center; gap: var(--space-1); min-width: 90px; animation: float 4s ease-in-out infinite 2s; }
.zc-float-badge-num { font-family: var(--font-display); font-size: var(--text-xl); color: white; line-height: 1; }
.zc-float-badge-label { font-size: var(--text-xs); color: rgba(255,255,255,0.85); font-weight: 600; text-align: center; }
@media (max-width: 900px) { .zc-hero-inner { grid-template-columns: 1fr; text-align: center; } .zc-hero-heading { font-size: var(--text-2xl); } .zc-hero-sub { margin-inline: auto; } .zc-hero-actions { justify-content: center; } .zc-hero-chips { justify-content: center; } .zc-hero-visual { display: none; } }

/* ======== STATS BAR ======== */
.zc-stats-bar { background: var(--color-surface); border-top: 1px solid var(--color-divider); border-bottom: 1px solid var(--color-divider); }
.zc-stats-inner { max-width: var(--content-wide); margin: 0 auto; padding: var(--space-8) var(--space-6); display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; }
.zc-stat-item { text-align: center; padding: var(--space-4); position: relative; }
.zc-stat-item:not(:last-child)::after { content:""; position:absolute; right:0; top:20%; bottom:20%; width:1px; background:var(--color-divider); }
.zc-stat-item .num { font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-primary); line-height: 1; margin-bottom: var(--space-2); }
.zc-stat-item .lbl { font-size: var(--text-sm); color: var(--color-text-muted); font-weight: 500; }
@media (max-width: 640px) { .zc-stats-inner { grid-template-columns: 1fr 1fr; } .zc-stat-item:nth-child(2)::after { display: none; } }

/* ======== SECTIONS ======== */
.zc-section { padding: clamp(var(--space-16),8vw,var(--space-32)) var(--space-6); }
.zc-inner { max-width: var(--content-wide); margin: 0 auto; }
.zc-label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; color: var(--color-primary); margin-bottom: var(--space-3); }
.zc-title { font-family: var(--font-display); font-size: var(--text-2xl); margin-bottom: var(--space-4); }
.zc-title em { font-style: italic; color: var(--color-primary); }
.zc-desc { font-size: var(--text-base); color: var(--color-text-muted); max-width: 60ch; line-height: 1.7; margin-bottom: var(--space-12); }
.zc-header-center { text-align: center; margin-bottom: var(--space-12); }
.zc-header-center .zc-desc { margin-inline: auto; }
.zc-bg-alt { background: var(--color-surface-2); }

/* ======== ABOUT ======== */
.zc-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); align-items: center; }
.zc-about-frame { border-radius: var(--radius-2xl); overflow: hidden; aspect-ratio: 4/5; background: linear-gradient(160deg, #1a7fa3 0%, #1a3a8f 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-6); padding: var(--space-8); box-shadow: var(--shadow-xl); }
.zc-about-frame svg { color: rgba(255,255,255,0.85); }
.zc-about-quote { font-family: var(--font-display); font-size: var(--text-xl); color: white; text-align: center; font-style: italic; line-height: 1.3; }
.zc-feature-list { display: flex; flex-direction: column; gap: var(--space-5); margin-top: var(--space-8); }
.zc-feature { display: flex; gap: var(--space-4); align-items: flex-start; }
.zc-feature-icon { width: 40px; height: 40px; border-radius: var(--radius-lg); background: var(--color-primary-highlight); color: var(--color-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.zc-feature h4 { font-size: var(--text-base); font-weight: 700; margin-bottom: var(--space-1); }
.zc-feature p { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.6; }
@media (max-width: 768px) { .zc-about-grid { grid-template-columns: 1fr; } .zc-about-frame { display: none; } }

/* ======== SERVICES ======== */
.zc-services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-5); }
.zc-service-card { background: var(--color-surface); border-radius: var(--radius-xl); padding: var(--space-8); border: 1px solid var(--color-border); transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition); }
.zc-service-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); border-color: rgba(11,126,163,0.3); }
.zc-service-num { font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.12em; color: var(--color-primary); opacity: 0.5; margin-bottom: var(--space-4); }
.zc-service-icon { width: 48px; height: 48px; border-radius: var(--radius-lg); background: var(--color-primary-highlight); color: var(--color-primary); display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-5); }
.zc-service-title { font-family: var(--font-display); font-size: var(--text-lg); margin-bottom: var(--space-3); }
.zc-service-desc { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.7; margin-bottom: var(--space-5); }
.zc-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.zc-tag { font-size: var(--text-xs); font-weight: 600; padding: var(--space-1) var(--space-3); border-radius: var(--radius-full); background: var(--color-surface-offset); color: var(--color-text-muted); }
.zc-cta-card { background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)); border: none !important; display: flex; flex-direction: column; justify-content: center; }
.zc-cta-card h3 { font-family: var(--font-display); font-size: var(--text-xl); color: white; margin-bottom: var(--space-4); line-height: 1.2; font-style: italic; }
.zc-cta-card p { font-size: var(--text-sm); color: rgba(255,255,255,0.8); margin-bottom: var(--space-8); line-height: 1.65; }
@media (max-width: 900px) { .zc-services-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .zc-services-grid { grid-template-columns: 1fr; } }

/* ======== APPROACH ======== */
.zc-approach-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); align-items: start; }
.zc-steps { display: flex; flex-direction: column; }
.zc-step { display: flex; gap: var(--space-5); padding: var(--space-6) 0; border-bottom: 1px solid var(--color-divider); }
.zc-step:last-child { border-bottom: none; }
.zc-step-num { width: 40px; height: 40px; border-radius: var(--radius-full); flex-shrink: 0; background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)); color: white; font-weight: 800; font-size: var(--text-sm); display: flex; align-items: center; justify-content: center; }
.zc-step h4 { font-size: var(--text-base); font-weight: 700; margin-bottom: var(--space-1); }
.zc-step p { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.6; }
.zc-values { display: flex; flex-direction: column; gap: var(--space-4); }
.zc-value { background: var(--color-surface); border-radius: var(--radius-xl); padding: var(--space-6); border: 1px solid var(--color-border); display: flex; gap: var(--space-4); transition: box-shadow var(--transition); }
.zc-value:hover { box-shadow: var(--shadow-md); }
.zc-value-icon { width: 40px; height: 40px; border-radius: var(--radius-md); background: var(--color-primary-highlight); color: var(--color-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.zc-value h4 { font-size: var(--text-sm); font-weight: 700; margin-bottom: var(--space-1); }
.zc-value p { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.5; }
@media (max-width: 768px) { .zc-approach-grid { grid-template-columns: 1fr; } }

/* ======== WHO WE SERVE ======== */
.zc-who-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-5); }
.zc-who-card { background: var(--color-surface); border-radius: var(--radius-xl); padding: var(--space-8); border: 1px solid var(--color-border); text-align: center; transition: box-shadow var(--transition), transform var(--transition); }
.zc-who-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.zc-who-icon { width: 64px; height: 64px; border-radius: var(--radius-full); background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end)); color: white; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--space-5); }
.zc-who-card h3 { font-family: var(--font-display); font-size: var(--text-lg); margin-bottom: var(--space-3); }
.zc-who-card p { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.65; }
@media (max-width: 768px) { .zc-who-grid { grid-template-columns: 1fr; } }

/* ======== CTA BANNER ======== */
.zc-cta-banner { background: linear-gradient(135deg, var(--color-gradient-start) 0%, var(--color-gradient-end) 100%); position: relative; overflow: hidden; }
.zc-cta-mesh { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(255,255,255,0.07) 0%, transparent 60%); }
.zc-cta-inner { max-width: var(--content-default); margin: 0 auto; padding: clamp(var(--space-12),6vw,var(--space-20)) var(--space-6); text-align: center; position: relative; z-index: 1; }
.zc-cta-inner h2 { font-family: var(--font-display); font-size: var(--text-2xl); color: white; margin-bottom: var(--space-4); }
.zc-cta-inner p { font-size: var(--text-lg); color: rgba(255,255,255,0.82); max-width: 52ch; margin: 0 auto var(--space-8); line-height: 1.6; }
.zc-cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-4); }

/* ======== CONTACT ======== */
.zc-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); align-items: start; }
.zc-contact-item { display: flex; gap: var(--space-4); align-items: flex-start; margin-bottom: var(--space-6); }
.zc-contact-icon { width: 44px; height: 44px; border-radius: var(--radius-lg); background: var(--color-primary-highlight); color: var(--color-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.zc-contact-item h4 { font-size: var(--text-sm); font-weight: 700; margin-bottom: var(--space-1); }
.zc-contact-item p, .zc-contact-item a { font-size: var(--text-sm); color: var(--color-text-muted); transition: color var(--transition); }
.zc-contact-item a:hover { color: var(--color-primary); }
.zc-form-wrap { background: var(--color-surface); border-radius: var(--radius-2xl); padding: var(--space-10); box-shadow: var(--shadow-md); border: 1px solid var(--color-border); }
.zc-form-wrap h3 { font-family: var(--font-display); font-size: var(--text-xl); margin-bottom: var(--space-6); }
@media (max-width: 768px) { .zc-contact-grid { grid-template-columns: 1fr; } }

/* ======== WP FORMS STYLING ======== */
.wpcf7-form .wpcf7-text, .wpcf7-form .wpcf7-email, .wpcf7-form .wpcf7-textarea, .wpcf7-form .wpcf7-select,
.zc-form input[type=text], .zc-form input[type=email], .zc-form select, .zc-form textarea {
  width: 100%; padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg);
  border: 1.5px solid var(--color-border); background: var(--color-surface-2);
  font-size: var(--text-sm); color: var(--color-text); font-family: var(--font-body);
  transition: border-color var(--transition), box-shadow var(--transition);
  margin-bottom: var(--space-4);
}
.wpcf7-form .wpcf7-text:focus, .wpcf7-form .wpcf7-email:focus, .wpcf7-form .wpcf7-textarea:focus,
.zc-form input:focus, .zc-form select:focus, .zc-form textarea:focus {
  outline: none; border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(11,126,163,0.15);
}
.wpcf7-form label, .zc-form label { font-size: var(--text-sm); font-weight: 600; display: block; margin-bottom: var(--space-2); }
.wpcf7-submit, .zc-form button[type=submit] {
  width: 100%; padding: var(--space-4) var(--space-8); border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));
  color: white; font-weight: 700; font-size: var(--text-base); font-family: var(--font-body);
  cursor: pointer; border: none; transition: opacity var(--transition), transform var(--transition);
  box-shadow: 0 2px 16px rgba(11,126,163,0.35);
}
.wpcf7-submit:hover, .zc-form button[type=submit]:hover { opacity: 0.9; transform: translateY(-1px); }

/* ======== FOOTER ======== */
.site-footer { background: var(--color-text); color: rgba(255,255,255,0.65); padding: var(--space-16) var(--space-6) var(--space-8); }
.zc-footer-top { max-width: var(--content-wide); margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: var(--space-12); padding-bottom: var(--space-12); border-bottom: 1px solid rgba(255,255,255,0.1); }
.zc-footer-brand img { height: 52px; width: auto; background: white; padding: 6px 8px; border-radius: var(--radius-lg); margin-bottom: var(--space-4); }
.zc-footer-brand p { font-size: var(--text-sm); color: rgba(255,255,255,0.55); line-height: 1.7; max-width: 34ch; margin-bottom: var(--space-5); }
.zc-footer-col h4 { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; color: rgba(255,255,255,0.4); margin-bottom: var(--space-5); }
.zc-footer-col ul { display: flex; flex-direction: column; gap: var(--space-3); }
.zc-footer-col ul li a { font-size: var(--text-sm); color: rgba(255,255,255,0.6); transition: color var(--transition); }
.zc-footer-col ul li a:hover { color: white; }
.zc-footer-bottom { max-width: var(--content-wide); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; padding-top: var(--space-8); flex-wrap: wrap; gap: var(--space-4); }
.zc-footer-copy { font-size: var(--text-xs); color: rgba(255,255,255,0.35); }
.zc-footer-legal { display: flex; gap: var(--space-6); }
.zc-footer-legal a { font-size: var(--text-xs); color: rgba(255,255,255,0.35); transition: color var(--transition); }
.zc-footer-legal a:hover { color: rgba(255,255,255,0.7); }
@media (max-width: 768px) { .zc-footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .zc-footer-top { grid-template-columns: 1fr; } .zc-footer-bottom { flex-direction: column; text-align: center; } }

/* ======== FADE IN ======== */
.zc-fade { opacity: 1; }
@supports (animation-timeline: scroll()) {
  .zc-fade { opacity: 0; animation: zc-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 85%; }
}
@keyframes zc-reveal { to { opacity: 1; } }
