/*
Theme Name: IEBC by Precision Pulse
Theme URI: https://iebc.ee
Author: Precision Pulse
Author URI: https://precisionpulse.co
Description: Custom theme for the Indo-Estonia Business Council, designed and developed by Precision Pulse. Built on a modern WordPress block-theme foundation with full site editing support, dynamic content, blog and comments, and a fast, responsive layout that adapts to every device.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 5.7
Version: 1.0.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: online-courses-fse
Tags: business, council, full-site-editing, block-patterns, block-styles, custom-colors, custom-menu, custom-logo, editor-style, featured-images, flexible-header, one-column, two-columns, three-columns, threaded-comments, translation-ready, wide-blocks
*/

/* ============================================================
   IEBC DESIGN SYSTEM — Editorial-Institutional
   Brand: Navy + Saffron + Black + White
   Typography: Cormorant Garamond (display) + Inter (body)
   ============================================================ */

/* --- Fonts (Google Fonts with preconnect for performance) --- */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700;800&display=swap');

/* --- Design tokens --- */
:root {
  --iebc-navy: #0A2F66;
  --iebc-navy-deep: #061E46;
  --iebc-navy-lift: #1C4A95;
  --iebc-saffron: #D85C00;
  --iebc-saffron-warm: #E6751F;
  --iebc-black: #0F1115;
  --iebc-ink: #1A1F2E;
  --iebc-ink-70: rgba(15, 17, 21, 0.72);
  --iebc-ink-50: rgba(15, 17, 21, 0.5);
  --iebc-white: #FFFFFF;
  --iebc-cream: #FBF8F1;
  --iebc-rule: rgba(15, 17, 21, 0.08);
  --iebc-rule-strong: rgba(15, 17, 21, 0.14);

  --iebc-display: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
  --iebc-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --iebc-size-display: clamp(2.6rem, 5.2vw + 0.8rem, 5.5rem);
  --iebc-size-h1: clamp(2rem, 3.5vw + 0.8rem, 3.4rem);
  --iebc-size-h2: clamp(1.6rem, 2vw + 0.9rem, 2.4rem);
  --iebc-size-h3: clamp(1.25rem, 0.8vw + 1rem, 1.6rem);
  --iebc-size-body: clamp(1rem, 0.2vw + 0.95rem, 1.0625rem);
  --iebc-size-small: 0.875rem;
  --iebc-size-eyebrow: 0.75rem;

  --iebc-container: 1480px;
  --iebc-container-narrow: 960px;
  --iebc-section-y: clamp(4rem, 7vw, 8rem);
  --iebc-gutter: clamp(1.25rem, 3vw, 2.5rem);

  --iebc-transition: 320ms cubic-bezier(0.22, 1, 0.36, 1);
  --iebc-transition-slow: 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* --- Base reset on FSE wrapper --- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--iebc-body);
  font-size: var(--iebc-size-body);
  line-height: 1.6;
  color: var(--iebc-ink);
  background: var(--iebc-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}

/* Typography defaults */
h1, h2, h3, h4, h5, h6 { font-family: var(--iebc-display); font-weight: 600; color: var(--iebc-navy); letter-spacing: -0.01em; line-height: 1.1; margin: 0; }
h1 { font-size: var(--iebc-size-h1); }
h2 { font-size: var(--iebc-size-h2); }
h3 { font-size: var(--iebc-size-h3); font-weight: 600; }
p { margin: 0 0 1.1em; }
a { color: var(--iebc-navy); text-decoration: none; transition: color var(--iebc-transition); }
a:hover { color: var(--iebc-saffron); }

/* Utility: container */
.iebc-container { max-width: var(--iebc-container); margin: 0 auto; padding: 0 var(--iebc-gutter); }
.iebc-container--narrow { max-width: var(--iebc-container-narrow); margin: 0 auto; padding: 0 var(--iebc-gutter); }

/* Utility: eyebrow kicker */
.iebc-eyebrow {
  display: inline-block;
  font-family: var(--iebc-body);
  font-size: var(--iebc-size-eyebrow);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--iebc-saffron);
}

/* Utility: saffron accent rule */
.iebc-rule {
  display: block;
  width: 56px;
  height: 3px;
  background: var(--iebc-saffron);
  border: 0;
  margin: 0;
}

/* Utility: section padding */
.iebc-section { padding-top: var(--iebc-section-y); padding-bottom: var(--iebc-section-y); }

/* Utility: dark section (navy bg) */
.iebc-section--dark {
  background: linear-gradient(135deg, var(--iebc-navy-deep) 0%, var(--iebc-navy) 60%, var(--iebc-navy-lift) 100%);
  color: var(--iebc-white);
}
.iebc-section--dark h1, .iebc-section--dark h2, .iebc-section--dark h3 { color: var(--iebc-white); }
.iebc-section--dark a { color: var(--iebc-white); }
.iebc-section--dark a:hover { color: var(--iebc-saffron-warm); }

/* Buttons */
.iebc-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--iebc-body);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  padding: 0.85em 1.6em;
  border-radius: 0;
  text-decoration: none;
  transition: transform var(--iebc-transition), box-shadow var(--iebc-transition), background var(--iebc-transition), color var(--iebc-transition);
  cursor: pointer;
  border: 1.5px solid transparent;
  white-space: nowrap;
}
.iebc-btn--primary { background: var(--iebc-saffron); color: var(--iebc-white); }
.iebc-btn--primary:hover { background: var(--iebc-saffron-warm); color: var(--iebc-white); transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(216, 92, 0, 0.5); }
.iebc-btn--ghost { background: transparent; color: var(--iebc-navy); border-color: var(--iebc-navy); }
.iebc-btn--ghost:hover { background: var(--iebc-navy); color: var(--iebc-white); }
.iebc-btn--ghost-light { background: transparent; color: var(--iebc-white); border-color: rgba(255,255,255,0.5); }
.iebc-btn--ghost-light:hover { background: var(--iebc-white); color: var(--iebc-navy); border-color: var(--iebc-white); }

/* Reveal animation utility */
@media (prefers-reduced-motion: no-preference) {
  .iebc-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.7s ease-out, transform 0.7s ease-out; }
  .iebc-reveal.is-visible { opacity: 1; transform: none; }
}

/* WordPress block defaults */
.wp-block-image img { max-width: 100%; height: auto; }
.wp-block-html { width: 100%; }

/* Strip default theme spacing in main content area so our sections control everything */
.wp-site-blocks .wp-block-group:has(> .iebc-section) { margin: 0 !important; padding: 0 !important; }


/* ==== Heading size adjustments (per client feedback) ==== */
/* Bigger eyebrow labels everywhere */
.iebc-hero__eyebrow,
.iebc-who__eyebrow,
.iebc-pillars__eyebrow,
.iebc-closing__eyebrow,
.iebc-vmv__eyebrow,
.iebc-vp__eyebrow,
.iebc-nav3__eyebrow {
  font-size: clamp(0.92rem, 0.4vw + 0.85rem, 1.18rem) !important;
  letter-spacing: 0.26em !important;
  font-weight: 700 !important;
}
/* Make the saffron rule longer to balance bigger eyebrow */
.iebc-hero__rule,
.iebc-who__rule,
.iebc-pillars__rule,
.iebc-closing__rule,
.iebc-vmv__rule,
.iebc-vp__rule,
.iebc-nav3__rule {
  width: 84px !important;
  height: 3px !important;
}
/* Slightly reduce the hero headline so the company name + tagline feel balanced */
.iebc-hero__title { font-size: clamp(1.9rem, 3vw + 0.7rem, 3.6rem) !important; }
/* Bigger section H2 headlines */
.iebc-who__title, .iebc-pillars__title, .iebc-vmv__title, .iebc-nav3__title {
  font-size: clamp(2.1rem, 2.6vw + 1rem, 3.2rem) !important;
}
.iebc-vp__title { font-size: clamp(2.1rem, 2.8vw + 1rem, 3.4rem) !important; }
/* Bigger "Corridor" / hero caption / clock meta labels */
.iebc-hero__visual-caption { font-size: 0.86rem !important; letter-spacing: 0.32em !important; }
.iebc-country__label { font-size: 0.82rem !important; letter-spacing: 0.32em !important; }
.iebc-clock__meta { font-size: 0.82rem !important; letter-spacing: 0.24em !important; font-weight: 600 !important; }
.iebc-hero__bridge-label { font-size: 0.78rem !important; letter-spacing: 0.34em !important; }

/* ==== Body weight bump for readability (client feedback 2026-06-04) ==== */
/* Body text needs to feel a touch bolder for visibility — across all pages */
body {
  font-weight: 500;
}
p {
  font-weight: 500;
}
/* Ensure description paragraphs across all custom HTML blocks pick up the bump */
.iebc-who__body,
.iebc-who__body p,
.iebc-vmv2__body, .iebc-vmv2__body p, .iebc-vmv2__copy,
.iebc-vp2__body, .iebc-vp2__body p, .iebc-vp2__copy,
.iebc-pillars__body, .iebc-pillars__body p, .iebc-pillars__pillar-body,
.iebc-nav3__body, .iebc-nav3__body p,
.iebc-closing__body, .iebc-closing__body p, .iebc-closing__quote,
.iebc-hero__sub,
.iebc-h3__sub {
  font-weight: 500;
}
/* Slightly heavier strong / accents */
strong, b {
  font-weight: 700;
}

/* === Layout fixes (client feedback 2026-06-05) === */
/* Prevent any horizontal scrolling site-wide. Any section that tries to
   exceed viewport width gets clipped instead of pushing the page sideways. */
html, body { overflow-x: hidden !important; max-width: 100% !important; }
.wp-site-blocks, .wp-site-blocks > main { max-width: 100% !important; overflow-x: clip; }

/* Zero block-gap between sections on every page. Custom HTML blocks should
   sit flush against each other unless the section's own internal padding
   asks for breathing room. */
.wp-block-post-content,
.wp-block-post-content.is-layout-flow,
.wp-block-post-content.is-layout-constrained,
.wp-block-group.is-layout-flow,
.wp-block-group.is-layout-constrained {
  --wp--style--block-gap: 0 !important;
  row-gap: 0 !important;
}
.wp-block-post-content > *,
.wp-block-post-content > .wp-block-html,
.wp-block-post-content > .wp-block-group {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}
/* Belt-and-suspenders: every custom-section wrapper resets margin */
[data-iebc-section] { margin: 0 !important; }

/* Header overflow fix: allow nav middle column to shrink so 3-col grid
   doesn't push the CTA past the viewport edge */
.iebc-header__inner { min-width: 0 !important; }
.iebc-header__nav   { min-width: 0 !important; flex-wrap: wrap; justify-content: center; }
.iebc-header__nav a { flex-shrink: 1; }
@media (max-width: 1240px) {
  .iebc-header__nav { gap: 0.5rem !important; }
  .iebc-header__nav a { font-size: 0.82rem !important; padding: 8px 2px !important; }
  .iebc-header__cta { padding: 10px 16px !important; font-size: 0.84rem !important; }
}
