/*
 Theme Name:   DynaExperts Child Theme
 Theme URI:    https://www.dynaexperts.com
 Description:  GeneratePress child theme for DynaExperts Consulting LLP — applies full DXP brand (colours, typography, buttons, cards) on top of GeneratePress Free.
 Author:       DynaExperts Consulting LLP
 Author URI:   https://www.dynaexperts.com
 Template:     generatepress
 Version:      1.0.0
 Text Domain:  dynaexperts-child
*/

/* ============================================================
   DXP BRAND TOKENS
   ============================================================ */
:root {
  --dxp-charcoal:     #413f3b;
  --dxp-charcoal-dk:  #2a2926;
  --dxp-charcoal-80:  #6b6965;
  --dxp-charcoal-60:  #96948f;
  --dxp-charcoal-20:  #e4e3e1;
  --dxp-charcoal-10:  #f1f0ee;
  --dxp-amber:        #edb64a;
  --dxp-amber-dk:     #c9952a;
  --dxp-amber-lt:     #fdf6e3;
  --dxp-cobalt:       #22219b;
  --dxp-cobalt-dk:    #181775;
  --dxp-cobalt-lt:    #eeeeff;
  --dxp-white:        #ffffff;

  /* Semantic */
  --dxp-text:         var(--dxp-charcoal);
  --dxp-text-muted:   var(--dxp-charcoal-80);
  --dxp-bg:           var(--dxp-white);
  --dxp-bg-subtle:    var(--dxp-charcoal-10);
  --dxp-border:       var(--dxp-charcoal-20);

  /* Radii */
  --dxp-radius-sm:    4px;
  --dxp-radius-md:    8px;
  --dxp-radius-lg:    12px;
  --dxp-radius-pill:  9999px;

  /* Shadows */
  --dxp-shadow-sm:    0 2px 6px rgba(65,63,59,0.10);
  --dxp-shadow-md:    0 4px 16px rgba(65,63,59,0.13);
}

/* ============================================================
   BASE TYPOGRAPHY
   ============================================================ */
body {
  font-family: 'Source Sans 3', 'Source Sans Pro', Arial, Helvetica, sans-serif;
  color: var(--dxp-text);
  background: var(--dxp-bg);
  -webkit-font-smoothing: antialiased;
  line-height: 1.65;
  font-size: 16px;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Source Sans 3', 'Source Sans Pro', Arial, Helvetica, sans-serif;
  font-weight: 700;
  color: var(--dxp-charcoal);
  letter-spacing: -0.015em;
  line-height: 1.2;
  text-wrap: pretty;
}

h1 { font-size: clamp(32px, 4vw, 52px); margin-bottom: 0.4em; }
h2 { font-size: clamp(26px, 3vw, 38px); margin-bottom: 0.4em; }
h3 { font-size: clamp(20px, 2.5vw, 26px); margin-bottom: 0.35em; }
h4 { font-size: 20px; margin-bottom: 0.3em; }
h5 { font-size: 17px; margin-bottom: 0.3em; }

p { color: var(--dxp-charcoal-80); line-height: 1.7; margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

strong, b { font-weight: 700; color: var(--dxp-charcoal); }

a {
  color: var(--dxp-cobalt);
  text-decoration: none;
  transition: color 0.15s;
}
a:hover { color: var(--dxp-cobalt-dk); text-decoration: underline; }

/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header {
  background: var(--dxp-white) !important;
  border-bottom: 1px solid var(--dxp-charcoal-20);
  box-shadow: var(--dxp-shadow-sm);
  padding: 0 !important;
}

.inside-header {
  padding: 0 40px !important;
  min-height: 66px;
  display: flex;
  align-items: center;
}

/* Logo */
.site-branding { display: flex; align-items: center; }
.site-branding .custom-logo { max-height: 40px; width: auto; }
.site-title { font-family: 'Source Sans 3', Arial, sans-serif; font-size: 22px; font-weight: 700; }
.site-title a { color: var(--dxp-charcoal); text-decoration: none; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.main-navigation {
  background: transparent !important;
}

.main-navigation ul li a {
  font-family: 'Source Sans 3', Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--dxp-charcoal-80) !important;
  padding: 8px 14px !important;
  border-radius: var(--dxp-radius-md);
  transition: color 0.15s, background 0.15s;
  text-decoration: none;
}

.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a,
.main-navigation ul li.current_page_item > a {
  color: var(--dxp-charcoal) !important;
  background: var(--dxp-charcoal-10) !important;
}

.main-navigation ul li.current-menu-item > a {
  border-bottom: 2px solid var(--dxp-amber);
  border-radius: 0;
  background: transparent !important;
}

/* Dropdown menus */
.main-navigation ul ul {
  background: var(--dxp-white) !important;
  border: 1px solid var(--dxp-charcoal-20) !important;
  border-radius: var(--dxp-radius-md) !important;
  box-shadow: var(--dxp-shadow-md) !important;
  padding: 6px !important;
}
.main-navigation ul ul li a {
  font-size: 13px !important;
  padding: 7px 14px !important;
  border-radius: var(--dxp-radius-sm) !important;
}

/* Mobile hamburger */
.menu-toggle {
  background: transparent !important;
  border: 1.5px solid var(--dxp-charcoal-20) !important;
  color: var(--dxp-charcoal) !important;
  border-radius: var(--dxp-radius-md) !important;
  padding: 8px 12px !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.wp-element-button {
  background: var(--dxp-amber) !important;
  color: var(--dxp-charcoal) !important;
  font-family: 'Source Sans 3', Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  border: none !important;
  border-radius: var(--dxp-radius-md) !important;
  padding: 11px 24px !important;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
}
.button:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--dxp-amber-dk) !important;
  color: var(--dxp-charcoal) !important;
  transform: translateY(-1px);
}

/* Dark / Primary button — add class "is-style-fill" or "btn-dark" */
.btn-dark .wp-block-button__link,
.wp-block-button.is-style-primary .wp-block-button__link {
  background: var(--dxp-charcoal) !important;
  color: var(--dxp-white) !important;
}
.btn-dark .wp-block-button__link:hover,
.wp-block-button.is-style-primary .wp-block-button__link:hover {
  background: var(--dxp-charcoal-dk) !important;
  color: var(--dxp-white) !important;
}

/* Cobalt button */
.btn-cobalt .wp-block-button__link {
  background: var(--dxp-cobalt) !important;
  color: var(--dxp-white) !important;
}

/* Outline button */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--dxp-charcoal) !important;
  border: 1.5px solid var(--dxp-charcoal) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--dxp-charcoal-10) !important;
}

/* Focus ring */
.button:focus, .wp-block-button__link:focus,
button:focus, input:focus, textarea:focus, select:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(237, 182, 74, 0.4) !important;
}

/* ============================================================
   FORM INPUTS
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
input[type="password"],
textarea,
select {
  font-family: 'Source Sans 3', Arial, sans-serif !important;
  font-size: 14px !important;
  color: var(--dxp-charcoal) !important;
  background: var(--dxp-white) !important;
  border: 1.5px solid var(--dxp-charcoal-20) !important;
  border-radius: var(--dxp-radius-md) !important;
  padding: 10px 13px !important;
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
}
input::placeholder, textarea::placeholder { color: var(--dxp-charcoal-60) !important; }
input:focus, textarea:focus, select:focus {
  border-color: var(--dxp-amber) !important;
}

label {
  font-size: 12px;
  font-weight: 700;
  color: var(--dxp-charcoal);
  letter-spacing: 0.03em;
  display: block;
  margin-bottom: 5px;
}

/* ============================================================
   CONTENT AREA
   ============================================================ */
.entry-content { max-width: 780px; }

.entry-title {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 700;
  color: var(--dxp-charcoal);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

/* ============================================================
   HERO / COVER BLOCK
   ============================================================ */
.wp-block-cover {
  border-radius: var(--dxp-radius-lg);
  overflow: hidden;
}
.wp-block-cover.dark-hero {
  background: var(--dxp-charcoal) !important;
}
.wp-block-cover.dark-hero .wp-block-cover__inner-container * {
  color: var(--dxp-white);
}
/* Amber left bar on hero */
.wp-block-cover.has-amber-bar {
  border-left: 5px solid var(--dxp-amber);
}

/* ============================================================
   CARDS — WP Group blocks
   ============================================================ */
.wp-block-group.is-style-card,
.dxp-card {
  background: var(--dxp-white);
  border: 1px solid var(--dxp-charcoal-20);
  border-radius: var(--dxp-radius-lg);
  padding: 28px;
  box-shadow: var(--dxp-shadow-sm);
}

.wp-block-group.is-style-card-dark,
.dxp-card-dark {
  background: var(--dxp-charcoal);
  border-color: var(--dxp-charcoal);
  border-radius: var(--dxp-radius-lg);
  padding: 28px;
}
.wp-block-group.is-style-card-dark *,
.dxp-card-dark * { color: var(--dxp-white) !important; }

.wp-block-group.is-style-card-subtle,
.dxp-card-subtle {
  background: var(--dxp-charcoal-10);
  border: 1px solid var(--dxp-charcoal-20);
  border-radius: var(--dxp-radius-lg);
  padding: 28px;
}

/* Accent top border variants */
.accent-top-amber { border-top: 3px solid var(--dxp-amber) !important; }
.accent-top-cobalt { border-top: 3px solid var(--dxp-cobalt) !important; }
.accent-top-charcoal { border-top: 3px solid var(--dxp-charcoal) !important; }

/* ============================================================
   SECTION UTILITY CLASSES
   ============================================================ */

/* Dark charcoal section */
.dxp-section-dark,
.has-dxp-dark-background-color {
  background: var(--dxp-charcoal) !important;
}
.dxp-section-dark *,
.has-dxp-dark-background-color * { color: var(--dxp-white) !important; }
.dxp-section-dark h1, .dxp-section-dark h2, .dxp-section-dark h3 { color: var(--dxp-white) !important; }
.dxp-section-dark p { color: rgba(255,255,255,0.65) !important; }

/* Amber CTA section */
.dxp-section-amber,
.has-dxp-amber-background-color {
  background: var(--dxp-amber) !important;
}

/* Cobalt section */
.dxp-section-cobalt { background: var(--dxp-cobalt) !important; }
.dxp-section-cobalt * { color: var(--dxp-white) !important; }

/* Subtle grey section */
.dxp-section-subtle { background: var(--dxp-charcoal-10) !important; }

/* ============================================================
   OVERLINE / LABEL TYPOGRAPHY
   ============================================================ */
.dxp-overline,
.overline {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--dxp-amber-dk);
  margin-bottom: 10px;
}

/* ============================================================
   BADGE / TAG CHIPS
   ============================================================ */
.dxp-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 11px;
  border-radius: var(--dxp-radius-pill);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.dxp-badge-amber  { background: var(--dxp-amber-lt); color: var(--dxp-amber-dk); border: 1px solid #f5d48c; }
.dxp-badge-cobalt { background: var(--dxp-cobalt-lt); color: var(--dxp-cobalt); border: 1px solid #c5c5ec; }
.dxp-badge-neutral{ background: var(--dxp-charcoal-10); color: var(--dxp-charcoal); border: 1px solid var(--dxp-charcoal-20); }

/* ============================================================
   STAT / NUMBER HIGHLIGHTS
   ============================================================ */
.dxp-stat-number {
  font-family: 'Source Sans 3', Arial, sans-serif;
  font-size: 42px;
  font-weight: 700;
  color: var(--dxp-cobalt);
  line-height: 1;
  display: block;
}
.dxp-stat-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--dxp-charcoal-60);
  margin-top: 5px;
  display: block;
}

/* ============================================================
   DIVIDERS
   ============================================================ */
hr, .wp-block-separator {
  border: none !important;
  border-top: 1px solid var(--dxp-charcoal-20) !important;
  margin: 32px 0 !important;
}
.wp-block-separator.is-style-wide { border-top-color: var(--dxp-amber) !important; }

/* ============================================================
   WORDPRESS BLOCK COLOURS — register with theme
   (used via Gutenberg colour palette)
   ============================================================ */
.has-dxp-amber-color       { color: var(--dxp-amber) !important; }
.has-dxp-cobalt-color      { color: var(--dxp-cobalt) !important; }
.has-dxp-charcoal-color    { color: var(--dxp-charcoal) !important; }
.has-dxp-muted-color       { color: var(--dxp-charcoal-80) !important; }
.has-dxp-white-color       { color: var(--dxp-white) !important; }

.has-dxp-amber-background-color    { background: var(--dxp-amber) !important; }
.has-dxp-cobalt-background-color   { background: var(--dxp-cobalt) !important; }
.has-dxp-charcoal-background-color { background: var(--dxp-charcoal) !important; }
.has-dxp-subtle-background-color   { background: var(--dxp-charcoal-10) !important; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background: var(--dxp-charcoal) !important;
  color: var(--dxp-white) !important;
  padding: 48px 0 28px !important;
}
.site-footer * { color: rgba(255,255,255,0.55) !important; }
.site-footer a { color: rgba(255,255,255,0.55) !important; text-decoration: none; transition: color 0.15s; }
.site-footer a:hover { color: var(--dxp-amber) !important; text-decoration: none; }
.site-footer h3, .site-footer h4, .site-footer .widget-title {
  color: var(--dxp-amber) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 16px !important;
}
.copyright-bar {
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 20px !important;
  font-size: 12px;
  color: rgba(255,255,255,0.28) !important;
}

/* ============================================================
   SIDEBAR & WIDGETS
   ============================================================ */
.widget-title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dxp-charcoal-60);
  border-bottom: 2px solid var(--dxp-amber);
  padding-bottom: 10px;
  margin-bottom: 16px;
}

/* ============================================================
   BLOG / ARCHIVE
   ============================================================ */
.post-image img { border-radius: var(--dxp-radius-md); }

.entry-header .entry-title a { color: var(--dxp-charcoal); text-decoration: none; transition: color 0.15s; }
.entry-header .entry-title a:hover { color: var(--dxp-cobalt); }

.entry-meta, .entry-footer { font-size: 13px; color: var(--dxp-charcoal-60); }
.entry-meta a { color: var(--dxp-charcoal-80); }

.cat-links a, .tags-links a {
  background: var(--dxp-cobalt-lt);
  color: var(--dxp-cobalt) !important;
  border-radius: var(--dxp-radius-pill);
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none !important;
}

/* Read more link */
.more-link {
  color: var(--dxp-cobalt) !important;
  font-weight: 600;
  font-size: 14px;
}

/* ============================================================
   SEARCH
   ============================================================ */
.search-form input[type="search"] { border-radius: var(--dxp-radius-pill) !important; padding-left: 18px !important; }
.search-form .search-submit { border-radius: 0 var(--dxp-radius-pill) var(--dxp-radius-pill) 0 !important; }

/* ============================================================
   WOOCOMMERCE (future-proofing if added later)
   ============================================================ */
.woocommerce button.button { background: var(--dxp-amber) !important; color: var(--dxp-charcoal) !important; }
.woocommerce .price { color: var(--dxp-cobalt) !important; font-weight: 700; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .inside-header { padding: 0 20px !important; }
  body { font-size: 15px; }
  h1 { font-size: 30px; }
  h2 { font-size: 24px; }
  .dxp-stat-number { font-size: 32px; }
}

/* ============================================================
   APPLESOURCE BADGE HELPER
   ============================================================ */
.appsource-badge img { height: 44px; width: auto; border-radius: var(--dxp-radius-sm); }
