/*
Theme Name: eLearning Architects
Theme URI: https://elearningarchitects.net/
Author: eLearning Architects
Author URI: https://elearningarchitects.net/
Description: An accessible, responsive WordPress block theme for engineering, electronics and STEM teaching resources. Technical Blue identity with ten coordinated resource palette families.
Requires at least: 6.6
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elearning-architects
Tags: block-patterns, full-site-editing, education, custom-colors, wide-blocks, accessibility-ready
*/

:root {
  /* Complete original 10 x 6 product colour system; see assets/palettes.json. */
  /* Technical Blue */
  --ela-technical-blue-primary:#1F3A5F;
  --ela-technical-blue-secondary:#4F6D8A;
  --ela-technical-blue-accent1:#00A6A6;
  --ela-technical-blue-accent2:#C9E7F2;
  --ela-technical-blue-background:#F7F9FB;
  --ela-technical-blue-text:#1E1E1E;
  /* Circuit Green */
  --ela-circuit-green-primary:#233142;
  --ela-circuit-green-secondary:#2E8B57;
  --ela-circuit-green-accent1:#A4C639;
  --ela-circuit-green-accent2:#DFF3E3;
  --ela-circuit-green-background:#F8FAF8;
  --ela-circuit-green-text:#202124;
  /* Industrial Orange */
  --ela-industrial-orange-primary:#2F3437;
  --ela-industrial-orange-secondary:#66717E;
  --ela-industrial-orange-accent1:#F28C28;
  --ela-industrial-orange-accent2:#F4E3C1;
  --ela-industrial-orange-background:#F5F5F5;
  --ela-industrial-orange-text:#1C1C1C;
  /* Academic Teal */
  --ela-academic-teal-primary:#0F4C5C;
  --ela-academic-teal-secondary:#4B6E8C;
  --ela-academic-teal-accent1:#2EC4B6;
  --ela-academic-teal-accent2:#F4F1DE;
  --ela-academic-teal-background:#FAFBFC;
  --ela-academic-teal-text:#222831;
  /* STEM Purple */
  --ela-stem-purple-primary:#3D348B;
  --ela-stem-purple-secondary:#7678ED;
  --ela-stem-purple-accent1:#F7B801;
  --ela-stem-purple-accent2:#EAE7FF;
  --ela-stem-purple-background:#FAFAFD;
  --ela-stem-purple-text:#1F2232;
  /* Precision Red */
  --ela-precision-red-primary:#7A1F2B;
  --ela-precision-red-secondary:#5A6772;
  --ela-precision-red-accent1:#D1495B;
  --ela-precision-red-accent2:#F8D7DA;
  --ela-precision-red-background:#FCFBFA;
  --ela-precision-red-text:#232323;
  /* Engineering Neutral */
  --ela-engineering-neutral-primary:#2B2D42;
  --ela-engineering-neutral-secondary:#8D99AE;
  --ela-engineering-neutral-accent1:#4EA8DE;
  --ela-engineering-neutral-accent2:#EDF2F4;
  --ela-engineering-neutral-background:#FFFFFF;
  --ela-engineering-neutral-text:#1A1A1A;
  /* Digital Neon Dark */
  --ela-digital-neon-dark-primary:#0B132B;
  --ela-digital-neon-dark-secondary:#1C2541;
  --ela-digital-neon-dark-accent1:#5BC0BE;
  --ela-digital-neon-dark-accent2:#D81159;
  --ela-digital-neon-dark-background:#111827;
  --ela-digital-neon-dark-text:#F9FAFB;
  /* Blueprint */
  --ela-blueprint-primary:#1D3557;
  --ela-blueprint-secondary:#457B9D;
  --ela-blueprint-accent1:#A8DADC;
  --ela-blueprint-accent2:#EAF4F4;
  --ela-blueprint-background:#FBFCFE;
  --ela-blueprint-text:#263238;
  /* Warm Professional */
  --ela-warm-professional-primary:#355070;
  --ela-warm-professional-secondary:#6D597A;
  --ela-warm-professional-accent1:#E56B6F;
  --ela-warm-professional-accent2:#FCD5CE;
  --ela-warm-professional-background:#FFF8F3;
  --ela-warm-professional-text:#2D2A32;
  --ela-navy:#1F3A5F;--ela-steel:#4F6D8A;--ela-teal:#00A6A6;
  --ela-action:#007C80;--ela-action-hover:#00686C;--ela-sky:#C9E7F2;
  --ela-paper:#F7F9FB;--ela-charcoal:#1E1E1E;--ela-white:#FFFFFF;
  --ela-line:#DCE5EB;--ela-focus:#F28C28;
  --ela-shadow:0 10px 36px rgba(31,58,95,.08);
}
* { box-sizing:border-box; }
html { scroll-padding-top:2rem; }
body { margin:0; color:var(--ela-charcoal); background:var(--ela-paper); }
body, button, input, select, textarea { font-family:Aptos,"Segoe UI",Arial,sans-serif; }
.wp-site-blocks { overflow-x:clip; }
.wp-site-blocks > * { margin-block-start:0!important; }
.ela-home-main > * { margin-block-start:0!important; }
a { text-underline-offset:3px; }
a:hover { color:#005D61; }
:where(a, button, input, select, textarea, .wp-block-navigation__responsive-container-open):focus-visible {
  outline:3px solid var(--ela-focus)!important; outline-offset:3px;
}
::selection { background:var(--ela-sky); color:var(--ela-navy); }
img { max-width:100%; height:auto; }
.wp-block-button__link { transition:background-color .16s ease, border-color .16s ease, transform .16s ease; }
.wp-block-button__link:hover { background:var(--ela-action-hover); color:#fff; }
.wp-block-buttons .wp-block-button.ela-primary-button .wp-block-button__link,
.wp-block-button.ela-primary-button .wp-block-button__link { background:var(--ela-action);color:#fff;border:2px solid var(--ela-action); }
.wp-block-button.ela-primary-button .wp-block-button__link:hover { background:var(--ela-action-hover);border-color:var(--ela-action-hover); }
.wp-block-button.ela-secondary-button .wp-block-button__link { background:transparent;color:var(--ela-navy);border:2px solid var(--ela-navy); }
.wp-block-button.ela-secondary-button .wp-block-button__link:hover { background:var(--ela-navy);color:#fff; }

/* Core identity / header. */
.ela-site-header { background:var(--ela-navy);color:#fff;position:relative;z-index:10; }
.ela-header-inner { min-height:84px; padding-block:13px; gap:20px; }
.ela-brand { gap:12px; flex-wrap:nowrap!important; }
.ela-brand:before { content:""; display:block;flex:0 0 33px;width:33px;height:33px;
  border:3px solid #5BC0BE;border-radius:9px;transform:rotate(-14deg);
  box-shadow:inset 0 0 0 6px var(--ela-navy),inset 0 0 0 9px #A8DADC; }
.ela-brand:has(.wp-block-site-logo a img):before { display:none; }
.ela-site-header .wp-block-site-title { margin:0;font-size:clamp(1.13rem,2vw,1.38rem);line-height:1.15;font-weight:800;letter-spacing:-.015em; }
.ela-site-header .wp-block-site-title a,
.ela-site-header .wp-block-navigation-item__content { color:#fff;text-decoration:none; }
.ela-site-header .wp-block-navigation-item__content:hover { color:var(--ela-sky); }
.ela-navigation { font-size:.95rem;font-weight:600; }
.ela-site-header .wp-block-navigation__responsive-container-open,
.ela-site-header .wp-block-navigation__responsive-container-close { color:#fff; }
.ela-site-header .wp-block-navigation__responsive-container.is-menu-open { background:#fff;color:var(--ela-navy);padding:1.5rem; }
.ela-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.ela-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color:var(--ela-navy); }
.ela-site-header .wp-block-navigation__submenu-container { background:var(--ela-navy)!important;border-color:#587390!important; }
.ela-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color:#fff!important; }
.ela-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background:#fff!important; }
.ela-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {color:var(--ela-navy)!important;}

/* Hero / headline. */
.ela-hero { background:linear-gradient(125deg,#1F3A5F 0%,#233F61 58%,#244E6D 100%); color:#fff;isolation:isolate; }
.ela-hero-layout {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(32px,6vw,90px);padding-block:clamp(65px,8vw,120px);}
.ela-eyebrow { font-size:.81rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--ela-sky);margin-bottom:12px; }
.ela-hero-title { color:#fff!important;font-size:clamp(2.6rem,4.4vw,4.35rem);line-height:1.07;letter-spacing:-.035em;margin:0 0 24px;max-width:790px; }
.ela-hero-title strong { color:#76D9D5;font-weight:800; }
.ela-hero-subtitle { color:#E2EFF5;font-size:clamp(1.08rem,1.55vw,1.27rem);line-height:1.62;max-width:630px; }
.ela-hero .ela-button-row { margin-top:30px; gap:12px; }
.ela-hero .ela-primary-button .wp-block-button__link {background:#007C80!important;color:#fff;}
.ela-hero .ela-secondary-button .wp-block-button__link {color:#fff;border-color:#A8DADC;background:transparent;}
.ela-hero .ela-secondary-button .wp-block-button__link:hover {background:#fff;color:var(--ela-navy);border-color:#fff;}
.ela-visual { position:relative;padding:34px 26px 28px;background:rgba(6,25,51,.57);border:1px solid rgba(201,231,242,.30);
  border-radius:22px;box-shadow:0 24px 60px rgba(10,24,43,.22);overflow:hidden;min-width:0; }
.ela-visual:before {content:"";position:absolute;inset:0;opacity:.36;
  background:url("assets/images/circuit-traces.svg") right top / 100% auto no-repeat;pointer-events:none;}
.ela-visual > * {position:relative;}
.ela-visual .ela-visual-kicker {color:#9CD6E3;font-size:.73rem;letter-spacing:.14em;font-weight:800;text-transform:uppercase;}
.ela-visual .ela-visual-title {color:#fff!important;font-size:1.55rem;margin:8px 0 20px;}
.ela-visual .ela-stage { display:flex;align-items:center;gap:15px;padding:13px 16px;border-radius:11px;
  margin-top:10px;background:rgba(255,255,255,.095);border:1px solid rgba(255,255,255,.13);}
.ela-visual .ela-stage:nth-of-type(2) {background:rgba(0,166,166,.18);}
.ela-stage-index {display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;
  border-radius:11px;background:#C9E7F2;color:#1F3A5F;font-weight:800;font-size:.88rem;flex-shrink:0;}
.ela-stage-label {color:#fff;font-weight:750;margin:0;}
.ela-stage-detail {color:#E1EFF5;font-size:.82rem;line-height:1.4;margin:2px 0 0;}
.ela-visual-caption {color:#BBD6E4;margin-top:17px;font-size:.78rem;}

/* Remove Gutenberg flow-block margins inside explicitly gridded layouts. */
:where(.ela-hero-layout,.ela-resource-grid,.ela-benefit-grid,.ela-step-grid,.ela-sample-layout,.ela-cta-inner,.ela-visual,.ela-palette-chips) > * {
  margin-block-start:0!important;margin-block-end:0;
}

/* Home sections. */
.ela-section {padding-block:clamp(56px,7vw,88px);}
.ela-section + .ela-section {padding-top:18px;}
.ela-section-heading {max-width:800px;margin-bottom:28px;}
.ela-section-heading h2 {margin:0 0 12px;letter-spacing:-.02em;}
.ela-section-heading p {margin:0;color:#52677B;font-size:1.05rem;}
.ela-section-kicker {font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-size:.76rem;color:var(--ela-action);margin:0 0 12px;}
.ela-benefits {padding-block:26px;background:#E8F2F6;border-bottom:1px solid #D2E7EF;}
.ela-benefit-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.ela-benefit {padding-left:16px;border-left:4px solid var(--ela-teal);}
.ela-benefit p {margin:0;color:var(--ela-navy);font-weight:700;font-size:.92rem;line-height:1.4;}
.ela-resource-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.ela-resource-card,.ela-card {background:#fff;border:1px solid var(--ela-line);border-top:5px solid var(--ela-steel);border-radius:12px;
  padding:24px;box-shadow:0 2px 10px rgba(31,58,95,.035);height:100%;}
.ela-resource-card {transition:transform .18s ease,box-shadow .18s ease;}
.ela-resource-card:hover {transform:translateY(-3px);box-shadow:var(--ela-shadow);}
.ela-resource-card h3 {font-size:1.28rem;line-height:1.24;margin:8px 0 10px;}
.ela-resource-card p {margin:0 0 12px;}
.ela-resource-card .ela-category {font-weight:800;letter-spacing:.10em;text-transform:uppercase;color:#53677C;font-size:.69rem;}
.ela-resource-card .ela-description {font-size:.95rem;line-height:1.56;color:#46576B;}
.ela-resource-card .ela-formats {font-size:.82rem;font-weight:750;color:var(--ela-navy);padding-top:10px;border-top:1px solid var(--ela-line);margin-top:auto;}
/* These Gutenberg group style variations are editor-selectable. */
.is-style-ela-card-technical-blue {border-top-color:#00A6A6!important;}
.is-style-ela-card-circuit-green {border-top-color:#2E8B57!important;}
.is-style-ela-card-industrial-orange {border-top-color:#F28C28!important;}
.is-style-ela-card-academic-teal {border-top-color:#2EC4B6!important;}
.is-style-ela-card-stem-purple {border-top-color:#7678ED!important;}
.is-style-ela-card-precision-red {border-top-color:#D1495B!important;}
.is-style-ela-card-engineering-neutral {border-top-color:#4EA8DE!important;}
.is-style-ela-card-digital-neon-dark {border-top-color:#5BC0BE!important;}
.is-style-ela-card-blueprint {border-top-color:#457B9D!important;}
.is-style-ela-card-warm-professional {border-top-color:#E56B6F!important;}
/* Applied alone to an arbitrary core/group block, give the visual card finish. */
[class*="is-style-ela-card-"]:not(.ela-resource-card) {background:#fff;padding:22px;border:1px solid var(--ela-line);border-top:5px solid var(--ela-steel);border-radius:12px;}
.ela-palettes {padding-top:2rem;border-top:1px solid var(--ela-line);margin-top:2.3rem;}
.ela-palettes>p {font-size:.85rem;font-weight:800;color:#52677B;margin:0 0 13px;}
.ela-palette-chips {display:flex;flex-wrap:wrap;gap:8px;}
.ela-chip {margin:0!important;font-size:.78rem;display:inline-flex;align-items:center;border:1px solid var(--ela-line);background:#fff;
  padding:8px 12px;border-radius:50px;color:#35485C;font-weight:700;}
.ela-chip:before {content:"";display:inline-block;background:var(--ela-chip);width:9px;height:9px;border-radius:50%;margin-right:8px;}
.ela-approach-band {background:#E8F3F7;}
.ela-step-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.ela-step-card {border-radius:13px;background:#fff;border:1px solid #CFDFE9;padding:27px;min-height:185px;}
.ela-step-number {color:var(--ela-action);font-size:2rem;font-weight:900;letter-spacing:-.04em;line-height:1;margin:0 0 15px;}
.ela-step-card h3 {font-size:1.35rem;margin:0 0 10px;}
.ela-step-card p:last-child {font-size:.94rem;color:#4B5F73;margin:0;}
.ela-sample-band {background:#fff;}
.ela-sample-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:clamp(30px,5vw,100px);align-items:center;}
.ela-sample-layout .ela-section-heading {margin-bottom:16px;}
.ela-sample-board {border:1px solid #CADDE8;border-radius:17px;background:linear-gradient(145deg,#F2F8FA,#E7F3F8);padding:34px 28px;position:relative;}
.ela-sample-board .ela-example-kicker {font-weight:800;text-transform:uppercase;font-size:.73rem;color:var(--ela-steel);letter-spacing:.09em;}
.ela-sample-board .ela-equation {font-size:clamp(1.8rem,4vw,3.4rem);font-weight:800;color:var(--ela-navy);margin:17px 0;letter-spacing:-.02em;}
.ela-sample-board .ela-example-note {font-size:.84rem;color:#4A5E70;margin:0;}
.ela-cta-band {background:var(--ela-navy);color:#fff;padding-block:57px;}
.ela-cta-band .ela-cta-inner {display:flex;align-items:center;justify-content:space-between;gap:30px;}
.ela-cta-band h2 {color:#fff!important;max-width:750px;margin:0 0 12px;}
.ela-cta-band p {color:#DFEAF0;max-width:720px;margin:0;}
.ela-cta-band .wp-block-button .wp-block-button__link {background:#fff!important;color:var(--ela-navy)!important;white-space:nowrap;border-color:#fff!important;}
.ela-cta-band .wp-block-button .wp-block-button__link:hover {background:#E0F1F6;color:var(--ela-navy);}
.ela-legacy-content:has(.wp-block-post-content:empty) {display:none;}

/* Articles, archive, standard content. */
.ela-page-shell {padding-block:clamp(45px,6vw,78px);min-height:40vh;}
.ela-page-title {font-size:clamp(2.3rem,4vw,3.8rem);letter-spacing:-.025em;margin-bottom:25px;}
.ela-page-shell .wp-block-post-content {font-size:1.045rem;}
.ela-page-shell .wp-block-post-content > :where(p,ul,ol) {line-height:1.7;}
.ela-page-shell .wp-block-post-content img {border-radius:8px;}
.ela-post-meta {color:var(--ela-steel);font-size:.88rem;margin-bottom:20px;}
.ela-article-grid {gap:22px;}
.ela-article-grid > li {list-style:none;background:#fff;border:1px solid var(--ela-line);border-radius:12px;overflow:hidden;
  padding:22px;box-shadow:0 3px 15px rgba(31,58,95,.04);}
.ela-article-grid .wp-block-post-title {font-size:1.25rem;margin-top:10px;}
.ela-article-grid .wp-block-post-title a {text-decoration:none;color:var(--ela-navy);}
.ela-article-grid .wp-block-post-title a:hover {text-decoration:underline;color:var(--ela-action);}
.ela-article-grid .wp-block-post-excerpt {font-size:.93rem;color:#4B6074;}
.ela-article-grid .wp-block-post-featured-image img {border-radius:8px;aspect-ratio:16/10;object-fit:cover;}
.ela-pagination {margin-top:35px;}
.ela-pagination a {font-weight:700;}
.ela-search {margin-top:22px;}
.ela-search .wp-block-search__input {border:1px solid #A7BBC9;border-radius:7px;min-height:46px;padding:10px 13px;}
.ela-search .wp-block-search__button {background:var(--ela-action);color:#fff;border-radius:7px;border:0;padding:10px 20px;}
.ela-search .wp-block-search__button:hover {background:var(--ela-action-hover);}

/* Footer. */
.ela-site-footer {background:var(--ela-navy);color:#E2EEF3;padding-block:42px;}
.ela-site-footer .wp-block-site-title {font-weight:800;font-size:1.2rem;margin:0 0 8px;}
.ela-site-footer .wp-block-site-title a {color:#fff;text-decoration:none;}
.ela-site-footer p {color:#D8E7EF;margin:0;font-size:.9rem;}
.ela-footer-inner {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:28px;}
.ela-site-footer .wp-block-navigation-item__content {color:#E2EEF3;text-decoration:none;font-size:.9rem;}
.ela-site-footer .wp-block-navigation-item__content:hover {color:#fff;text-decoration:underline;}
.ela-footer-note {padding-top:20px;margin-top:25px;border-top:1px solid rgba(255,255,255,.18);font-size:.79rem;color:#D0E3EB;}

/* WooCommerce (optional plugin): defaults styled to match product cards. */
.woocommerce ul.products li.product, .wc-block-grid__product,
.wc-block-product-template > li {background:#fff;border:1px solid var(--ela-line);border-radius:12px;padding:16px;}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-components-product-name {color:var(--ela-navy);font-weight:700;}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.wc-block-components-button:not(.is-link),.wc-block-grid__product-add-to-cart .add_to_cart_button {
  background:var(--ela-action);color:#fff;border-radius:8px;}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.wc-block-components-button:not(.is-link):hover {background:var(--ela-action-hover);color:#fff;}
.woocommerce div.product .product_title {color:var(--ela-navy);}

@media(max-width:1000px) {
 .ela-hero-layout {gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);}
 .ela-resource-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .ela-site-header .ela-header-inner {padding-inline:20px;}
}
@media(max-width:760px) {
 .ela-hero-layout,.ela-sample-layout {grid-template-columns:1fr;}
 .ela-hero-layout {padding-block:60px;}
 .ela-hero-title {font-size:clamp(2.45rem,9vw,3.85rem);}
 .ela-visual {max-width:560px;}
 .ela-benefit-grid,.ela-step-grid {grid-template-columns:1fr;gap:13px;}
 .ela-step-card {min-height:0;}
 .ela-cta-band .ela-cta-inner {display:block;}
 .ela-cta-band .wp-block-buttons {margin-top:24px;}
 .ela-page-shell .wp-block-post-template.is-layout-grid {grid-template-columns:1fr 1fr;}
 .ela-footer-inner {display:block;}
 .ela-footer-inner .wp-block-navigation {margin-top:16px;}
}
@media(max-width:560px) {
 .ela-resource-grid {grid-template-columns:1fr;}
 .ela-benefits {padding-block:22px;}
 .ela-hero-title {font-size:2.55rem;}
 .ela-hero .wp-block-buttons {align-items:stretch;}
 .ela-hero .wp-block-button {width:100%;}
 .ela-hero .wp-block-button .wp-block-button__link {width:100%;}
 .ela-visual {padding:22px 18px;}
 .ela-sample-board {padding:25px 18px;}
 .ela-site-header .wp-block-site-title {font-size:1.05rem;}
 .ela-page-shell .wp-block-post-template.is-layout-grid {grid-template-columns:1fr;}
 .ela-resource-card {padding:21px;}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto!important;}
 .ela-resource-card,.wp-block-button__link {transition:none!important;transform:none!important;}
}
@media(prefers-reduced-motion:no-preference) {html {scroll-behavior:smooth;}}

/* Product-family chip accents. */
.ela-chip-technical-blue { --ela-chip:#00A6A6; }
.ela-chip-circuit-green { --ela-chip:#A4C639; }
.ela-chip-industrial-orange { --ela-chip:#F28C28; }
.ela-chip-academic-teal { --ela-chip:#2EC4B6; }
.ela-chip-stem-purple { --ela-chip:#F7B801; }
.ela-chip-precision-red { --ela-chip:#D1495B; }
.ela-chip-engineering-neutral { --ela-chip:#4EA8DE; }
.ela-chip-digital-neon-dark { --ela-chip:#5BC0BE; }
.ela-chip-blueprint { --ela-chip:#A8DADC; }
.ela-chip-warm-professional { --ela-chip:#E56B6F; }
