/*
Theme Name: Fidensa Global
Theme URI: https://fidensaglobal.com
Author: Fidensa Global
Description: Custom theme for Fidensa Global — financial consultancy site. Navy, white and slate blue-grey palette.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: fidensa-global
*/

:root{
  --navy:#0A2A4D;
  --slate:#5C7A99;
  --slate-light:#9FB3C8;
  --bg-grey:#F4F6F8;
  --border:#E3E8ED;
  --white:#FFFFFF;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family:-apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  color:var(--navy);
  background:var(--white);
  line-height:1.5;
}

a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }

.container{ max-width:1200px; margin:0 auto; padding:0 64px; }

/* ===== Header ===== */
.site-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 64px; border-bottom:1px solid var(--border);
}
.site-logo{ display:flex; align-items:center; gap:10px; }
.site-logo img{ height:34px; width:auto; }
.site-logo-text{ font-size:17px; font-weight:600; letter-spacing:1px; color:var(--navy); }

.primary-nav ul{ display:flex; gap:36px; }
.primary-nav a{
  font-size:14px; color:var(--slate); font-weight:500; transition:color .15s;
}
.primary-nav a:hover{ color:var(--navy); }

.nav-cta{
  font-size:13px; padding:10px 22px; border:1.5px solid var(--navy);
  border-radius:6px; color:var(--navy); font-weight:600; white-space:nowrap;
}
.nav-cta:hover{ background:var(--navy); color:#fff; }

/* ===== Hero ===== */
.hero{ display:grid; grid-template-columns:1.1fr 0.9fr; min-height:480px; }
.hero-left{ padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }
.eyebrow{ font-size:12px; letter-spacing:2px; color:var(--slate); font-weight:600; margin:0 0 18px; text-transform:uppercase; }
.hero-left h1{ font-size:54px; font-weight:600; line-height:1.12; margin:0 0 22px; letter-spacing:-1px; }
.hero-left p{ font-size:16px; color:var(--slate); max-width:420px; line-height:1.6; margin:0 0 32px; }

.btn-primary{
  display:inline-block; font-size:14px; font-weight:600; padding:15px 32px;
  background:var(--navy); color:#fff; border-radius:6px; width:fit-content;
}
.btn-primary:hover{ background:#0d3866; }

.hero-right{
  background:var(--navy); display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.hero-illustration{ width:70%; max-width:340px; }

/* ===== Why Us ===== */
.why-us{ padding:48px 64px 8px; border-top:1px solid var(--border); }
.why-us-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:24px; }
.why-us-card{ padding:24px; border:1px solid var(--border); border-radius:10px; }
.why-us-icon{ width:40px; height:40px; margin-bottom:16px; }
.why-us-card h3{ font-size:16px; font-weight:600; margin:0 0 8px; }
.why-us-card p{ font-size:13.5px; color:var(--slate); line-height:1.6; margin:0; }

/* ===== Services ===== */
.services{ border-top:1px solid var(--border); }
.section-label-row{ display:flex; justify-content:space-between; align-items:baseline; padding:48px 64px 8px; }
.section-label{ font-size:12px; letter-spacing:2px; color:var(--slate); font-weight:600; margin:0; text-transform:uppercase; }
.view-all{ font-size:13px; font-weight:600; color:var(--navy); }

.service-row{
  display:flex; align-items:center; gap:36px; padding:32px 64px;
  border-top:1px solid var(--border); transition:background .15s;
}
.service-row:nth-child(even){ background:var(--bg-grey); }
.service-num{ font-size:34px; font-weight:600; color:#D8E0E8; min-width:60px; }
.service-body{ flex:1; }
.service-body h3{ font-size:19px; font-weight:600; margin:0 0 6px; }
.service-body p{ font-size:14px; color:var(--slate); margin:0; }
.service-arrow{ font-size:20px; color:var(--slate); }

/* ===== Stats ===== */
.stats{
  display:flex; justify-content:space-around; padding:44px 64px;
  background:var(--bg-grey); border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.stat{ text-align:center; }
.stat .num{ font-size:28px; font-weight:600; margin:0; }
.stat .label{ font-size:12px; color:var(--slate); margin:6px 0 0; letter-spacing:.5px; text-transform:uppercase; }

/* ===== Insights ===== */
.insights{ padding:48px 64px 64px; }
.insight-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:20px; }
.insight-card{ border:1px solid var(--border); border-radius:8px; padding:28px; }
.insight-tag{ font-size:11px; letter-spacing:1.5px; color:var(--slate); font-weight:700; margin:0 0 12px; text-transform:uppercase; }
.insight-card h4{ font-size:17px; font-weight:600; margin:0; line-height:1.4; }

/* ===== Footer (v2) ===== */
.site-footer{ background:var(--navy); color:#fff; padding:64px 64px 0; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.12); }
.footer-col{ display:flex; flex-direction:column; gap:12px; }
.footer-brand .site-logo-text{ color:#fff; font-size:18px; }
.footer-tagline{ font-size:13px; color:var(--slate-light); margin:6px 0 0; }
.footer-heading{ font-size:11px; letter-spacing:1.5px; color:var(--slate-light); text-transform:uppercase; font-weight:700; margin:0 0 6px; }
.footer-col a{ font-size:13.5px; color:#D8E3EE; }
.footer-col a:hover{ color:#fff; }
.footer-address{ font-size:13px; color:#D8E3EE; line-height:1.6; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:12.5px; color:var(--slate-light); flex-wrap:wrap; gap:10px; }
.footer-legal-links{ display:flex; gap:20px; }
.footer-legal-links a{ color:var(--slate-light); }
.footer-legal-links a:hover{ color:#fff; }

/* ===== Generic page content (About / Services / Contact via page.php) ===== */
.page-content{ padding:64px; max-width:860px; margin:0 auto; }
.page-content h1{ font-size:40px; margin:0 0 24px; }
.page-content p{ font-size:16px; color:var(--slate); line-height:1.7; }

/* ===== Single Advisory Service page ===== */
.service-single{ padding:64px; }
.service-single-inner{ max-width:760px; margin:0 auto; }
.service-tagline{ font-size:18px; color:var(--slate); margin:8px 0 32px; line-height:1.6; }
.service-body-text{ font-size:16px; color:#33475B; line-height:1.8; margin-bottom:40px; }
.service-body-text p{ margin:0 0 20px; }

/* ===== Service rows used as <a> (overview + homepage) ===== */
a.service-row{ display:flex; text-decoration:none; }
a.service-row:hover{ background:var(--bg-grey); }

/* ===== Minimal WooCommerce styling so checkout matches the brand ===== */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product{ border:1px solid var(--border); border-radius:8px; padding:16px; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page a.button{
  background:var(--navy) !important; color:#fff !important; border-radius:6px !important;
  font-weight:600 !important; border:none !important; padding:12px 24px !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover{ background:#0d3866 !important; }
.woocommerce-Price-amount{ color:var(--navy); font-weight:600; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--navy); }

/* ===== Header (v2) ===== */
.site-header{ display:flex; align-items:center; justify-content:space-between; padding:18px 64px; border-bottom:1px solid var(--border); position:relative; z-index:100; background:#fff; }
.primary-nav ul{ display:flex; gap:36px; align-items:center; }
.primary-nav li{ position:relative; }
.primary-nav > ul > li > a{ font-size:14px; color:var(--slate); font-weight:500; transition:color .15s; display:flex; align-items:center; gap:4px; padding:8px 0; }
.primary-nav > ul > li > a:hover{ color:var(--navy); }
.caret{ font-size:10px; }

.header-right{ display:flex; align-items:center; gap:20px; }

/* Mega menu */
.has-mega-menu .mega-menu{
  display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:#fff; border:1px solid var(--border); border-radius:10px; box-shadow:0 16px 40px rgba(10,42,77,0.12);
  padding:28px; min-width:520px; gap:40px; grid-template-columns:1fr 1fr;
}
.has-mega-menu:hover .mega-menu{ display:grid; }
.mega-menu-col{ display:flex; flex-direction:column; gap:4px; }
.mega-menu-heading{ font-size:11px; letter-spacing:1.5px; color:var(--slate); font-weight:700; text-transform:uppercase; margin:0 0 10px; }
.mega-menu-col a{ font-size:13.5px; color:#33475B; padding:7px 8px; border-radius:5px; transition:background .12s; }
.mega-menu-col a:hover{ background:var(--bg-grey); color:var(--navy); }
.mega-menu-viewall{ margin-top:8px; font-weight:600; color:var(--navy) !important; }

/* Account menu */
.fidensa-account-menu{ position:relative; }
.account-trigger, .login-trigger{
  display:flex; align-items:center; gap:8px; background:none; border:none; cursor:pointer;
  font-size:14px; color:var(--navy); font-weight:600; padding:6px 4px;
}
.account-avatar{
  width:30px; height:30px; border-radius:50%; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700;
}
.account-avatar-guest{ background:var(--bg-grey); color:var(--slate); font-size:14px; }
.account-dropdown{
  display:none; position:absolute; right:0; top:120%; background:#fff; border:1px solid var(--border);
  border-radius:8px; box-shadow:0 12px 28px rgba(10,42,77,0.12); min-width:180px; padding:8px; flex-direction:column;
}
.fidensa-account-menu:hover .account-dropdown{ display:flex; }
.account-dropdown a{ font-size:13.5px; color:#33475B; padding:9px 12px; border-radius:6px; }
.account-dropdown a:hover{ background:var(--bg-grey); color:var(--navy); }

/* ===== Mobile ===== */
@media (max-width:880px){
  .site-header{ padding:18px 24px; flex-wrap:wrap; gap:12px; }
  .primary-nav ul{ gap:18px; }
  .hero{ grid-template-columns:1fr; }
  .hero-left{ padding:48px 24px; }
  .hero-left h1{ font-size:34px; }
  .hero-right{ min-height:220px; }
  .section-label-row{ padding:36px 24px 8px; }
  .service-row{ padding:24px; flex-wrap:wrap; }
  .stats{ padding:32px 24px; flex-wrap:wrap; gap:24px; }
  .insights{ padding:36px 24px 48px; }
  .insight-grid{ grid-template-columns:1fr; }
  .why-us{ padding:36px 24px 8px; }
  .why-us-grid{ grid-template-columns:1fr; gap:16px; }
  .site-footer{ padding:36px 24px 0; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .has-mega-menu .mega-menu{ position:static; transform:none; min-width:0; box-shadow:none; border:none; padding:8px 0 0 16px; grid-template-columns:1fr; }
  .page-content{ padding:36px 24px; }
}
