/*
Theme Name: OpexEdge Performance
Theme URI: https://opexedg.com/
Author: OpexEdge
Author URI: https://opexedg.com/
Description: A fast, mobile-first WordPress theme for OpexEdge. Preserves existing pages, posts, menus, widgets, featured images and plugin-generated content.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: opexedge
License: GNU General Public License v2 or later
*/

:root {
  --oe-navy: #082a4a;
  --oe-blue: #0a5ca8;
  --oe-teal: #00a6a6;
  --oe-cyan: #24c7d9;
  --oe-ink: #132338;
  --oe-muted: #5e6f82;
  --oe-bg: #f6f9fc;
  --oe-white: #ffffff;
  --oe-border: #dfe8f1;
  --oe-radius: 18px;
  --oe-shadow: 0 14px 38px rgba(8,42,74,.10);
  --oe-max: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--oe-ink);
  background: var(--oe-white);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--oe-blue); text-decoration: none; }
a:hover { color: var(--oe-teal); }
button, input, textarea, select { font: inherit; }

.oe-container { width: min(calc(100% - 36px), var(--oe-max)); margin-inline: auto; }
.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.site-header {
  position: sticky; top: 0; z-index: 999;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(223,232,241,.88);
  backdrop-filter: blur(14px);
}
.admin-bar .site-header { top: 32px; }
.header-inner { min-height: 82px; display:flex; align-items:center; gap:28px; }
.site-branding { flex: 0 0 auto; }
.custom-logo-link { display:flex; align-items:center; }
.custom-logo { width:auto; max-height:58px; }
.site-title { margin:0; font-size:1.25rem; font-weight:800; color:var(--oe-navy); }
.site-description { display:none; }

.primary-navigation { margin-left:auto; }
.primary-menu, .primary-menu ul { list-style:none; padding:0; margin:0; }
.primary-menu { display:flex; align-items:center; gap:4px; }
.primary-menu > li { position:relative; }
.primary-menu a { display:block; padding:12px 13px; color:var(--oe-ink); font-size:.94rem; font-weight:650; border-radius:10px; }
.primary-menu a:hover, .primary-menu .current-menu-item > a, .primary-menu .current-menu-ancestor > a { background:var(--oe-bg); color:var(--oe-blue); }
.primary-menu .sub-menu { position:absolute; top:100%; left:0; min-width:260px; padding:10px; background:#fff; box-shadow:var(--oe-shadow); border:1px solid var(--oe-border); border-radius:14px; opacity:0; visibility:hidden; transform:translateY(8px); transition:.2s ease; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { opacity:1; visibility:visible; transform:none; }
.primary-menu .sub-menu a { padding:10px 12px; }
.header-cta { margin-left:10px; }
.oe-button, .wp-block-button__link, input[type=submit], button[type=submit] {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:11px 22px; border:0; border-radius:999px;
  color:#fff!important; background:linear-gradient(135deg,var(--oe-blue),var(--oe-teal));
  font-weight:750; box-shadow:0 9px 22px rgba(10,92,168,.20); cursor:pointer;
}
.oe-button:hover, .wp-block-button__link:hover { transform:translateY(-1px); box-shadow:0 12px 26px rgba(10,92,168,.28); }
.menu-toggle { display:none; margin-left:auto; width:46px; height:46px; padding:0; border:1px solid var(--oe-border); border-radius:12px; background:#fff; color:var(--oe-navy); box-shadow:none; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content:""; display:block; width:21px; height:2px; margin:5px auto; background:currentColor; transition:.2s; }
.menu-toggle[aria-expanded=true] span { opacity:0; }
.menu-toggle[aria-expanded=true]::before { transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded=true]::after { transform:translateY(-7px) rotate(-45deg); }

.site-main { min-height:55vh; }
.page-hero { padding:76px 0 62px; background:radial-gradient(circle at 82% 10%,rgba(36,199,217,.18),transparent 34%),linear-gradient(145deg,#f5fbff,#fff); border-bottom:1px solid var(--oe-border); }
.page-hero h1 { max-width:900px; margin:0; color:var(--oe-navy); font-size:clamp(2.2rem,5vw,4.5rem); line-height:1.07; letter-spacing:-.045em; }
.page-hero .archive-description { max-width:760px; margin-top:20px; color:var(--oe-muted); font-size:1.12rem; }

.content-wrap { padding:70px 0; }
.content-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:48px; align-items:start; }
.content-area { min-width:0; }
.entry-content > *:first-child { margin-top:0; }
.entry-content h2, .entry-content h3, .entry-content h4 { color:var(--oe-navy); line-height:1.22; margin-top:1.8em; }
.entry-content h2 { font-size:clamp(1.65rem,3vw,2.35rem); }
.entry-content h3 { font-size:clamp(1.3rem,2.2vw,1.75rem); }
.entry-content p, .entry-content li { color:#31445a; }
.entry-content img { border-radius:var(--oe-radius); }
.entry-content blockquote { margin:32px 0; padding:22px 26px; border-left:5px solid var(--oe-teal); background:var(--oe-bg); border-radius:0 14px 14px 0; }
.entry-content table { width:100%; border-collapse:collapse; display:block; overflow-x:auto; }
.entry-content th, .entry-content td { padding:12px 14px; border:1px solid var(--oe-border); }

.post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.post-card { display:flex; flex-direction:column; overflow:hidden; min-width:0; background:#fff; border:1px solid var(--oe-border); border-radius:var(--oe-radius); box-shadow:0 9px 30px rgba(8,42,74,.07); transition:.22s ease; }
.post-card:hover { transform:translateY(-5px); box-shadow:var(--oe-shadow); }
.post-card__image { aspect-ratio:16/10; background:var(--oe-bg); overflow:hidden; }
.post-card__image img { width:100%; height:100%; object-fit:cover; transition:.35s; }
.post-card:hover .post-card__image img { transform:scale(1.035); }
.post-card__body { display:flex; flex-direction:column; flex:1; padding:23px; }
.post-card__meta { margin-bottom:9px; color:var(--oe-teal); font-size:.78rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.post-card h2 { margin:0 0 12px; font-size:1.22rem; line-height:1.35; }
.post-card h2 a { color:var(--oe-navy); }
.post-card p { margin:0 0 18px; color:var(--oe-muted); font-size:.94rem; line-height:1.65; }
.post-card__link { margin-top:auto; font-weight:750; }

.single-article { max-width:890px; margin-inline:auto; }
.entry-header { margin-bottom:34px; }
.entry-title { margin:0 0 18px; color:var(--oe-navy); font-size:clamp(2.1rem,5vw,4.2rem); line-height:1.08; letter-spacing:-.04em; }
.entry-meta { color:var(--oe-muted); font-size:.92rem; }
.entry-thumbnail { margin:34px 0; }
.entry-thumbnail img { width:100%; border-radius:24px; box-shadow:var(--oe-shadow); }

.widget-area { position:sticky; top:112px; }
.widget { margin-bottom:24px; padding:24px; background:var(--oe-bg); border:1px solid var(--oe-border); border-radius:var(--oe-radius); }
.widget-title { margin:0 0 16px; color:var(--oe-navy); font-size:1.08rem; }
.widget ul { list-style:none; margin:0; padding:0; }
.widget li { padding:7px 0; border-bottom:1px solid var(--oe-border); }
.widget li:last-child { border-bottom:0; }

.navigation.pagination { margin-top:42px; }
.nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.page-numbers { min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid var(--oe-border); border-radius:10px; }
.page-numbers.current { color:#fff; background:var(--oe-blue); border-color:var(--oe-blue); }

.site-footer { margin-top:60px; color:rgba(255,255,255,.82); background:linear-gradient(145deg,#061f38,#0a3d63); }
.footer-main { padding:64px 0 42px; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:38px; }
.footer-brand img { max-height:62px; width:auto; filter:brightness(0) invert(1); }
.footer-brand p { max-width:380px; }
.site-footer h2, .site-footer h3 { margin-top:0; color:#fff; font-size:1rem; }
.site-footer a { color:rgba(255,255,255,.86); }
.site-footer a:hover { color:var(--oe-cyan); }
.footer-menu { list-style:none; padding:0; margin:0; }
.footer-menu li { margin-bottom:8px; }
.footer-bottom { padding:18px 0; border-top:1px solid rgba(255,255,255,.12); font-size:.86rem; }
.footer-bottom-inner { display:flex; justify-content:space-between; gap:20px; }

@media (max-width: 980px) {
  .admin-bar .site-header { top:46px; }
  .header-inner { min-height:72px; }
  .custom-logo { max-height:50px; }
  .menu-toggle { display:block; }
  .header-cta { display:none; }
  .primary-navigation { position:fixed; inset:72px 0 auto; max-height:calc(100vh - 72px); overflow:auto; margin:0; padding:14px 18px 24px; background:#fff; border-top:1px solid var(--oe-border); box-shadow:0 20px 35px rgba(8,42,74,.15); opacity:0; visibility:hidden; transform:translateY(-8px); transition:.2s; }
  .admin-bar .primary-navigation { top:118px; }
  .primary-navigation.is-open { opacity:1; visibility:visible; transform:none; }
  .primary-menu { display:block; }
  .primary-menu a { padding:13px 12px; font-size:1rem; }
  .primary-menu .sub-menu { position:static; min-width:0; padding:0 0 0 14px; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; background:transparent; }
  .content-grid { grid-template-columns:1fr; }
  .widget-area { position:static; }
  .post-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-main { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  body { font-size:16px; }
  .oe-container { width:min(calc(100% - 28px),var(--oe-max)); }
  .page-hero { padding:48px 0 42px; }
  .page-hero h1 { font-size:clamp(2rem,11vw,3rem); }
  .content-wrap { padding:42px 0; }
  .post-grid { grid-template-columns:1fr; gap:18px; }
  .post-card__body { padding:19px; }
  .entry-title { font-size:clamp(2rem,10vw,3rem); }
  .entry-content { overflow-wrap:anywhere; }
  .entry-content .wp-block-columns { gap:18px; }
  .footer-main { grid-template-columns:1fr; padding:46px 0 30px; }
  .footer-bottom-inner { flex-direction:column; }
  .alignwide, .alignfull { width:100%; margin-left:0; }
}

/* Native OpexEdge homepage */
.home-hero {
  position:relative; overflow:hidden; min-height:620px; display:flex; align-items:center;
  background:radial-gradient(circle at 85% 20%,rgba(36,199,217,.25),transparent 32%),linear-gradient(135deg,#072d52 0%,#0a5ca8 57%,#0aa4aa 100%);
  color:#fff;
}
.home-hero.has-hero-image { background-image:linear-gradient(90deg,rgba(5,33,61,.96) 0%,rgba(6,54,96,.86) 46%,rgba(6,48,82,.28) 78%,rgba(6,48,82,.18) 100%),var(--oe-hero-image); background-size:cover; background-position:center; }
.home-hero::after { content:""; position:absolute; inset:auto -8% -38% 42%; height:520px; border-radius:50%; background:rgba(255,255,255,.08); transform:rotate(-12deg); }
.home-hero__inner { position:relative; z-index:1; width:100%; padding-block:100px; }
.home-hero__content { max-width:720px; }
.home-kicker { display:inline-flex; align-items:center; gap:10px; margin-bottom:16px; color:var(--oe-teal); font-size:.8rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.home-hero .home-kicker { color:#8ceaf0; }
.home-kicker::before { content:""; width:34px; height:2px; background:currentColor; }
.home-hero h1 { margin:0; color:#fff; font-size:clamp(2.7rem,6vw,5.3rem); line-height:1.02; letter-spacing:-.055em; }
.home-hero p { max-width:680px; margin:26px 0 0; color:rgba(255,255,255,.9); font-size:clamp(1.04rem,2vw,1.25rem); line-height:1.72; }
.home-hero__actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.oe-button--light { color:var(--oe-navy)!important; background:#fff; box-shadow:none; }
.home-proof { position:relative; z-index:3; margin-top:-44px; }
.home-proof__grid { display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border:1px solid var(--oe-border); border-radius:20px; box-shadow:var(--oe-shadow); overflow:hidden; }
.home-proof__grid > div { padding:25px 24px; border-right:1px solid var(--oe-border); }
.home-proof__grid > div:last-child { border-right:0; }
.home-proof strong { display:block; color:var(--oe-navy); font-size:1rem; }
.home-proof span { display:block; margin-top:5px; color:var(--oe-muted); font-size:.86rem; line-height:1.45; }
.home-section { padding:94px 0; }
.home-services { background:linear-gradient(180deg,#fff,#f4f9fd); }
.home-insights { background:#fff; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px; }
.section-heading h2 { margin:0; color:var(--oe-navy); font-size:clamp(2rem,4vw,3.15rem); line-height:1.08; letter-spacing:-.035em; }
.section-link { flex:0 0 auto; font-weight:800; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.service-card { overflow:hidden; background:#fff; border:1px solid var(--oe-border); border-radius:var(--oe-radius); box-shadow:0 10px 30px rgba(8,42,74,.07); transition:.22s ease; }
.service-card:hover { transform:translateY(-5px); box-shadow:var(--oe-shadow); }
.service-card__image { display:block; aspect-ratio:16/9; overflow:hidden; background:linear-gradient(145deg,#e9f5fc,#f7fbfe); }
.service-card__image img { width:100%; height:100%; object-fit:cover; transition:.35s; }
.service-card:hover img { transform:scale(1.035); }
.service-card__body { padding:25px; }
.service-card h3 { margin:0 0 11px; font-size:1.25rem; line-height:1.35; }
.service-card h3 a { color:var(--oe-navy); }
.service-card p { margin:0 0 18px; color:var(--oe-muted); font-size:.94rem; line-height:1.65; }
.card-link { font-weight:800; }
.home-legacy-content { padding:0; }
.home-cta { padding:70px 0; background:linear-gradient(135deg,#071f38,#0a4978); color:#fff; }
.home-cta__inner { display:flex; align-items:center; justify-content:space-between; gap:42px; }
.home-cta h2 { max-width:760px; margin:0; color:#fff; font-size:clamp(2rem,4vw,3.3rem); line-height:1.1; letter-spacing:-.035em; }

@media (max-width:980px) {
  .home-hero { min-height:560px; }
  .home-proof__grid { grid-template-columns:repeat(2,1fr); }
  .home-proof__grid > div:nth-child(2) { border-right:0; }
  .home-proof__grid > div:nth-child(-n+2) { border-bottom:1px solid var(--oe-border); }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .home-hero { min-height:auto; align-items:flex-end; }
  .home-hero.has-hero-image { background-position:64% center; }
  .home-hero__inner { padding:76px 0 94px; }
  .home-hero h1 { font-size:clamp(2.35rem,12vw,3.5rem); }
  .home-hero p { font-size:1rem; }
  .home-hero__actions { display:grid; grid-template-columns:1fr; }
  .home-hero__actions .oe-button { width:100%; }
  .home-proof { margin-top:-54px; }
  .home-proof__grid { grid-template-columns:1fr 1fr; border-radius:16px; }
  .home-proof__grid > div { padding:18px 15px; }
  .home-proof strong { font-size:.9rem; }
  .home-proof span { font-size:.76rem; }
  .home-section { padding:66px 0; }
  .section-heading { align-items:flex-start; flex-direction:column; margin-bottom:28px; }
  .service-grid { grid-template-columns:1fr; gap:18px; }
  .home-cta__inner { align-items:flex-start; flex-direction:column; }
  .home-cta .oe-button { width:100%; }
}
