/*
Theme Name: Meridian Advisory
Theme URI: https://example.com
Author: Your Studio
Author URI: https://example.com
Description: A bold, motion-driven shell theme for consulting and professional-services businesses. Built as a starting point — swap the copy, colors, and images for your own.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: meridian
*/

:root{
  --ink:#0B1220;
  --slate:#16233A;
  --slate-2:#1F3350;
  --fog:#EDEEF2;
  --paper:#F7F6F2;
  --signal:#D9A441;
  --signal-dim:#B8863A;
  --teal:#5FA8A0;
  --line: rgba(237,238,242,0.14);
  --display: 'Fraunces', serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --ease: cubic-bezier(.22,.68,.36,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
section{position:relative;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--signal-dim); display:flex; align-items:center; gap:10px; margin-bottom:30px;
}
.eyebrow::before{content:''; width:26px; height:1px; background:var(--signal-dim);}
h1,h2,h3{font-family:var(--display); font-weight:600; letter-spacing:-0.01em;}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:.82rem; letter-spacing:.04em; text-transform:uppercase;
  padding:14px 26px; border-radius:2px; border:1px solid currentColor;
  transition: all .3s var(--ease); cursor:pointer; background:none;
}
.btn-solid{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.btn-solid:hover{background:var(--signal); border-color:var(--signal); color:var(--ink);}
.btn-ghost{color:var(--paper); border-color:rgba(247,246,242,.4);}
.btn-ghost:hover{border-color:var(--paper);}

/* ---------- NAV ---------- */
header.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:22px 0; transition: background .3s var(--ease), padding .3s var(--ease), border-color .3s;
  border-bottom:1px solid transparent;
}
header.site-header.scrolled{
  background:rgba(11,18,32,.92); backdrop-filter: blur(10px);
  padding:14px 0; border-bottom-color:var(--line);
}
nav.main-nav{display:flex; align-items:center; justify-content:space-between; position:relative;}
.logo{font-family:var(--display); font-weight:600; font-size:1.3rem; color:var(--paper); letter-spacing:-0.01em;}
.logo span{color:var(--signal);}
.logo-image{display:flex; align-items:center; height:72px; overflow:hidden; font-size:14px; line-height:1;}
.logo-image img{max-height:72px; width:auto; display:block;}
.nav-links{
  display:flex; gap:36px; list-style:none;
  position:absolute; right:0; top:50%; transform:translateY(-50%);
}
.nav-links li{list-style:none;}
.nav-links a{
  color:rgba(247,246,242,.75); font-size:.86rem; font-weight:500; position:relative; padding-bottom:4px;
}
.nav-links a::after{
  content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--signal);
  transition:width .3s var(--ease);
}
.nav-links a:hover{color:var(--paper);}
.nav-links a:hover::after{width:100%;}
.nav-panel{display:contents;}
.nav-backdrop{display:none;}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:8px; -webkit-tap-highlight-color:transparent;}
.burger span{width:24px; height:2px; background:var(--paper); transition:transform .3s var(--ease), opacity .3s var(--ease);}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh; background:var(--ink); color:var(--paper);
  display:flex; align-items:center; padding-top:130px; overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center;
  position:relative; z-index:2;
}
.hero h1{
  font-size:clamp(2.6rem, 5.4vw, 4.4rem); line-height:1.04; font-weight:600;
  letter-spacing:-0.02em;
}
.hero h1 em{font-style:italic; color:var(--signal); font-weight:500;}
.hero p.lede{
  margin-top:26px; max-width:480px; font-size:1.08rem; color:rgba(247,246,242,.72);
}
.hero-cta{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:40px; margin-top:64px; padding-top:32px; border-top:1px solid var(--line);}
.hero-stats div{display:flex; flex-direction:column; gap:4px;}
.hero-stats strong{font-family:var(--display); font-size:1.9rem; font-weight:600;}
.hero-stats span{font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(247,246,242,.5);}

.hero-visual{position:relative; width:100%; aspect-ratio:420/520; max-height:520px; margin:0 auto;}
.hero-visual svg{width:100%; height:100%; display:block;}
#trajectory-path{
  stroke:var(--signal); stroke-width:2; fill:none;
  stroke-dasharray:1400; stroke-dashoffset:1400;
  animation: draw 2.4s var(--ease) .4s forwards;
}
#trajectory-path-ghost{ stroke:rgba(247,246,242,.14); stroke-width:1; fill:none; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.node-dot{
  fill:#FFFFFF; opacity:0;
  transform-box:fill-box; transform-origin:center;
  animation: pop .5s var(--ease) forwards;
}
.node-glow{
  fill:rgba(217,164,65,.22); opacity:0;
  animation: popGlow .5s var(--ease) forwards;
}
@keyframes pop{ from{opacity:0; transform:scale(0);} to{opacity:1; transform:scale(1);} }
@keyframes popGlow{ to{opacity:1;} }
.grain{
  position:absolute; inset:-100px; opacity:.05; pointer-events:none;
  background-image:radial-gradient(rgba(247,246,242,.6) 1px, transparent 1px);
  background-size:22px 22px;
}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(32px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- ABOUT ---------- */
.about{padding:150px 0; background:var(--paper);}
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:80px;}
.about h2{font-size:clamp(1.9rem,3.4vw,2.6rem); line-height:1.18; font-weight:500;}
.about .lead-line{font-size:1.4rem; line-height:1.5; font-family:var(--display); font-weight:500; color:var(--slate);}
.about-copy p{margin-top:26px; color:#3B4250; max-width:520px;}
.about-copy{font-size:1.02rem;}

/* ---------- SERVICES ---------- */
.services{padding:140px 0; background:var(--slate); color:var(--paper); position:relative;}
.services .wrap{position:relative; z-index:2;}
.services-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; gap:24px; flex-wrap:wrap;}
.services-head h2{font-size:clamp(2rem,3.6vw,2.8rem); font-weight:500; max-width:520px;}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
.service-card{
  background:var(--slate); padding:56px 36px; transition:background .35s var(--ease);
  position:relative; overflow:hidden; cursor:default;
}
.service-card:hover{background:var(--slate-2);}
.service-card .num{font-family:var(--mono); font-size:.75rem; color:var(--signal); letter-spacing:.06em;}
.service-card h3{font-size:1.3rem; font-weight:500; margin:22px 0 14px;}
.service-card p{color:rgba(247,246,242,.62); font-size:.94rem;}
.service-card .arrow{
  position:absolute; bottom:28px; right:28px; font-size:1.2rem; color:var(--signal);
  opacity:0; transform:translate(-6px,6px); transition:all .3s var(--ease);
}
.service-card:hover .arrow{opacity:1; transform:translate(0,0);}

/* ---------- CASE STUDIES SLIDER ---------- */
.cases{padding:150px 0 120px; background:var(--paper); overflow:hidden;}
.cases-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; flex-wrap:wrap; gap:24px;}
.cases-head h2{font-size:clamp(2rem,3.6vw,2.8rem); font-weight:500;}
.slider-controls{display:flex; gap:10px;}
.slider-btn{
  width:44px; height:44px; border-radius:50%; border:1px solid #cfd0c8; background:none;
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .3s var(--ease);
}
.slider-btn:hover{background:var(--ink); border-color:var(--ink); color:var(--paper);}
.slider-track-wrap{overflow:hidden;}
.slider-track{display:flex; gap:28px; transition:transform .6s var(--ease);}
.case-card{
  min-width:380px; background:var(--ink); color:var(--paper); border-radius:2px; padding:44px 36px;
  display:flex; flex-direction:column; justify-content:space-between; min-height:400px;
}
.case-card .tag{font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:var(--signal);}
.case-card h3{font-size:1.5rem; margin-top:18px; font-weight:500; line-height:1.3;}
.case-card p{color:rgba(247,246,242,.62); margin-top:16px; font-size:.94rem;}
.case-card .metric{margin-top:auto; padding-top:28px; border-top:1px solid var(--line); display:flex; gap:10px; align-items:baseline;}
.case-card .metric strong{font-family:var(--display); font-size:2.2rem; color:var(--signal);}
.case-card .metric span{font-family:var(--mono); font-size:.72rem; color:rgba(247,246,242,.55); text-transform:uppercase;}

/* ---------- TEAM ---------- */
.team{padding:140px 0; background:var(--fog);}
.team-head{max-width:680px; margin:0 auto 60px; text-align:center;}
.team-head .eyebrow{justify-content:center;}
.team-head h2{font-size:clamp(2.4rem,4.4vw,3.4rem); font-weight:500;}
.team-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:32px;}
.team-card{background:var(--paper); border:1px solid #e2e2da;}
.team-photo{aspect-ratio:4/5; background:linear-gradient(160deg,var(--slate),var(--ink)); position:relative; overflow:hidden;}
a.team-photo{display:block; cursor:pointer;}
.team-photo img{width:100%; height:100%; object-fit:cover;}
.team-photo::after{
  content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,18,32,.5), transparent 60%);
  pointer-events:none;
}
.team-info{padding:30px 24px 36px; text-align:center;}
.team-info h4{font-family:var(--display); font-weight:600; font-size:1.4rem;}
.team-info span{font-family:var(--mono); font-size:.82rem; color:var(--signal-dim); text-transform:uppercase; letter-spacing:.05em; display:block; margin-top:6px;}

/* ---------- INDIGENOUS OWNED ---------- */
.indigenous{padding:170px 0; background:var(--fog); text-align:center;}
.indigenous-inner{max-width:680px; margin:0 auto;}
.indigenous-inner .eyebrow{justify-content:center;}
.indigenous-inner h2{font-size:clamp(1.9rem,3.4vw,2.6rem); font-weight:500; line-height:1.2;}
.indigenous-inner p{margin-top:26px; color:#3B4250; font-size:1.02rem;}
.indigenous-logo-link{display:inline-block; margin-top:48px; transition:opacity .3s var(--ease);}
.indigenous-logo-link:hover{opacity:.75;}
.indigenous-logo-link img{height:110px; width:auto; max-width:220px; object-fit:contain; margin:0 auto;}

/* ---------- CTA BAND ---------- */
.cta-band{
  padding:130px 0; background:var(--ink); color:var(--paper); text-align:center; position:relative; overflow:hidden;
}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.6rem); font-weight:500; max-width:760px; margin:0 auto; line-height:1.15;}
.cta-band .btn{margin-top:40px;}

/* ---------- CONTACT ---------- */
.page-hero{
  background:var(--ink); color:var(--paper); position:relative; overflow:hidden;
  padding:200px 0 100px; text-align:center;
}
.page-hero .eyebrow{justify-content:center;}
.page-hero h1{font-size:clamp(2.6rem,5.4vw,4.2rem); line-height:1.08; max-width:820px; margin:0 auto;}
.page-hero .lede{max-width:560px; margin:26px auto 0; font-size:1.08rem; color:rgba(247,246,242,.72);}

.contact{padding:140px 0; background:var(--paper);}
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:80px;}
.contact-info h2{font-size:clamp(1.9rem,3.4vw,2.6rem); font-weight:500;}
.contact-info p{color:#3B4250; margin-top:20px; max-width:400px;}
.contact-detail{margin-top:40px; display:flex; flex-direction:column; gap:18px; font-family:var(--mono); font-size:.9rem;}
.contact-detail a{border-bottom:1px solid transparent; transition:border-color .3s;}
.contact-detail a:hover{border-color:var(--ink);}
.contact form,
.contact .wpcf7-form{display:flex; flex-direction:column; gap:28px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.contact label{font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:#6b6f7a; display:block; margin-bottom:12px;}
.contact input:not([type="radio"]), .contact textarea, .contact select{
  width:100%; border:none; border-bottom:1px solid #cfd0c8; background:none; padding:10px 2px;
  font-family:var(--body); font-size:1rem; color:var(--ink); transition:border-color .3s;
}
.contact select{
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%230B1220'%3E%3Cpath d='M5.5 7.5l4.5 5 4.5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 2px center; background-size:16px; padding-right:24px;
}
.contact select:invalid{color:#6b6f7a;}
.contact input:not([type="radio"]):focus, .contact textarea:focus, .contact select:focus{outline:none; border-color:var(--ink);}
.contact textarea{resize:vertical; min-height:100px;}
.contact form .btn, .contact .wpcf7-form .btn{align-self:flex-start; margin-top:10px;}

.work-apply-intro{max-width:640px; margin:0 auto; text-align:center;}
.work-apply-intro .eyebrow{justify-content:center;}
.work-apply-form{max-width:640px; margin:40px auto 0;}

.radio-question{display:flex; flex-direction:column; gap:12px;}
.radio-question-label{
  font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:#6b6f7a;
}
.radio-options{display:flex; gap:28px;}
.radio-options label{
  display:flex; align-items:center; gap:8px; font-family:var(--body); font-size:.96rem; color:var(--ink); cursor:pointer;
}
.radio-options input[type="radio"]{
  width:18px; height:18px; accent-color:var(--ink); cursor:pointer; border:none; padding:0;
}

/* ---------- ACCREDITATIONS ---------- */
.accreditations{padding:56px 0; background:var(--fog);}
.accreditations-grid{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:56px;
}
.accreditations-grid img{
  height:96px; width:auto; max-width:220px; object-fit:contain; display:block;
}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--ink); color:rgba(247,246,242,.55); padding:60px 0 32px;}
.footer-top{display:flex; flex-direction:row; justify-content:space-between; align-items:center; text-align:left; padding-bottom:40px; border-bottom:1px solid var(--line); gap:24px; flex-wrap:wrap;}
.footer-top .logo{font-size:1.2rem;}
.footer-right{display:flex; align-items:center; justify-content:flex-start; gap:32px; flex-wrap:wrap;}
.footer-links{display:flex; gap:32px; list-style:none; font-size:.86rem;}
.footer-links a:hover{color:var(--paper);}
.footer-social{display:flex;}
.social-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; min-width:36px; min-height:36px;
  border-radius:50%; background:rgba(247,246,242,.12); border:1px solid rgba(247,246,242,.3);
  color:var(--paper); transition:all .3s var(--ease); box-sizing:border-box;
}
.social-icon svg{display:block; width:18px; height:18px;}
.social-icon:hover{color:var(--ink); background:var(--signal); border-color:var(--signal);}
.footer-bottom{display:flex; justify-content:flex-start; padding-top:28px; font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; flex-wrap:wrap; gap:12px;}

/* ---------- generic page content (page.php) ---------- */
.page-content{padding:180px 0 120px; max-width:800px; margin:0 auto;}
.page-content h1{font-size:clamp(2rem,4vw,3rem); margin-bottom:30px;}
.page-content p{margin-bottom:20px; color:#3B4250;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .burger{display:flex; position:relative; z-index:101;}
  .logo-image img{max-height:48px;}
  .accreditations{padding:40px 0;}
  .accreditations-grid{gap:32px;}
  .accreditations-grid img{height:64px; max-width:160px;}

  .footer-top{flex-direction:column; align-items:center; text-align:center;}
  .footer-right{justify-content:center;}
  .footer-bottom{justify-content:center;}

  .nav-panel{
    display:flex; flex-direction:column; align-items:flex-start; gap:26px;
    position:fixed; top:0; right:0; height:100vh; height:100dvh;
    width:78%; max-width:320px;
    background:var(--ink);
    padding:110px 32px 40px;
    transform:translateX(100%);
    transition:transform .4s var(--ease);
    z-index:100;
    overflow-y:auto;
    box-shadow:-16px 0 40px rgba(0,0,0,.35);
  }
  .nav-panel.open{transform:translateX(0);}

  .nav-links{position:static; transform:none; flex-direction:column; gap:22px; width:100%;}
  .nav-links a{font-size:1.05rem;}

  .nav-backdrop{
    display:block; position:fixed; inset:0; background:rgba(11,18,32,.5);
    opacity:0; pointer-events:none; transition:opacity .35s var(--ease); z-index:99;
  }
  .nav-backdrop.open{opacity:1; pointer-events:auto;}

  header.site-header.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  header.site-header.menu-open .burger span:nth-child(2){opacity:0;}
  header.site-header.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  body.nav-open{overflow:hidden;}

  .hero{min-height:100svh; padding-top:96px;}
  .page-hero{padding:130px 0 70px;}
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .hero-visual{order:-1; max-width:260px; margin:0 auto 8px; aspect-ratio:420/520; max-height:none;}
  .hero-cta{gap:12px;}
  .hero-cta .btn{flex:1; justify-content:center;}
  .hero-stats{gap:20px 28px; flex-wrap:wrap; margin-top:44px; padding-top:24px;}

  .about, .services, .cases, .team, .indigenous, .cta-band, .contact{padding-top:90px; padding-bottom:90px;}
  .indigenous-logo-link img{height:72px; max-width:160px;}
  .about-grid, .contact-grid{grid-template-columns:1fr; gap:36px;}
  .service-grid{grid-template-columns:1fr;}
  .service-card{padding:44px 30px;}
  .team-grid{grid-template-columns:repeat(2,1fr); gap:20px;}

  .cases{padding-left:0; padding-right:0;}
  .case-card{min-width:calc(100vw - 64px); padding:32px 28px;}
  .slider-track{gap:16px;}

  .field-row{grid-template-columns:1fr;}

  .wrap{padding:0 24px;}
}

@media (max-width:480px){
  .team-grid{grid-template-columns:1fr;}
  .hero-stats{gap:18px 24px;}
  .hero-stats strong{font-size:1.6rem;}
  .hero-visual{max-width:210px;}
  .case-card{min-width:calc(100vw - 48px); padding:28px 22px;}
  .wrap{padding:0 20px;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}
