/*
Theme Name: The Father Violet Universe
Author: Christian Bech
Description: Clean, elegant consciousness-coaching theme. Deep cosmic black with violet and blue, Cormorant Garamond display type, refined minimal layout, subtle starfield.
Version: 1.3.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: father-violet
*/

:root{
  --bg:#04040c; --bg-2:#080814; --bg-3:#0d0d1d;
  --violet:#8b5cf6; --violet-soft:#c4b5fd;
  --blue:#5b8cff; --blue-soft:#a9c2ff;
  --line:rgba(139,124,246,.12); --line-2:rgba(139,124,246,.22);
  --text:#edecf7; --muted:#9694b4;
  --radius:14px; --maxw:1080px;
  --font-display:"Cormorant Garamond",Georgia,serif;
  --font-body:"Manrope",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;background:radial-gradient(900px 620px at 82% -12%,rgba(91,140,255,.10),transparent 60%),radial-gradient(1000px 720px at 12% 4%,rgba(139,92,246,.12),transparent 55%),var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.75;font-weight:400;letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.45;background-image:radial-gradient(1px 1px at 18% 28%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 73% 62%,rgba(201,210,255,.5),transparent),radial-gradient(1px 1px at 42% 82%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 88% 22%,rgba(196,181,253,.55),transparent),radial-gradient(1px 1px at 58% 12%,rgba(255,255,255,.35),transparent),radial-gradient(1px 1px at 30% 65%,rgba(255,255,255,.3),transparent);}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue-soft);text-decoration:none;transition:color .2s ease;}
a:hover{color:#fff;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:300;line-height:1.15;letter-spacing:.01em;color:var(--text);margin:0 0 .5em;}
h1{font-size:clamp(2.3rem,5vw,3.7rem);}
h2{font-size:clamp(1.9rem,4vw,2.8rem);}
h3{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--violet-soft);}
h4{font-size:1.3rem;color:var(--violet-soft);}
p{margin:0 0 1.25em;color:var(--muted);}
strong{color:var(--text);font-weight:600;}
em{color:var(--blue-soft);}
.accent-gradient{background:linear-gradient(110deg,var(--violet-soft) 0%,var(--violet) 40%,var(--blue) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
blockquote{margin:2rem 0;padding:.4rem 0 .4rem 1.6rem;border-left:2px solid var(--violet);font-family:var(--font-display);font-size:1.5rem;font-style:italic;color:var(--violet-soft);}
ul,ol{color:var(--muted);padding-left:1.3em;}
li{margin:.4em 0;}
hr{border:0;height:1px;background:var(--line);margin:3rem 0;}
code{background:var(--bg-3);padding:.15em .45em;border-radius:6px;font-size:.9em;color:var(--blue-soft);}
.fv-container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.fv-section{padding:96px 0;}
.fv-narrow{max-width:720px;margin:0 auto;}
.fv-header{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);background:rgba(4,4,12,.6);border-bottom:1px solid var(--line);}
.fv-header-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
.fv-brand{font-family:var(--font-display);font-size:1.5rem;font-weight:400;letter-spacing:.03em;color:var(--text);display:flex;align-items:center;gap:.7rem;}
.fv-brand .dot{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--blue-soft),var(--violet) 60%);box-shadow:0 0 12px var(--violet);}
.fv-brand img{max-height:42px;width:auto;}
.fv-nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;}
.fv-nav a{color:var(--muted);font-family:var(--font-body);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;}
.fv-nav a:hover{color:#fff;}
.fv-burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;color:var(--text);}
.fv-burger span{display:block;width:22px;height:1.5px;background:currentColor;margin:6px auto;transition:.3s;}
.fv-hero{position:relative;text-align:center;padding:150px 0 130px;overflow:hidden;}
.fv-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(620px 360px at 50% 30%,rgba(139,92,246,.16),transparent 70%);}
.fv-hero .eyebrow{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--blue-soft);margin-bottom:1.8rem;font-weight:600;}
.fv-hero h1{max-width:18ch;margin-inline:auto;overflow-wrap:anywhere;}
.fv-hero p.lead{max-width:54ch;margin:1.8rem auto 2.6rem;font-size:1.15rem;color:var(--muted);font-weight:300;}
.fv-btn{display:inline-block;padding:14px 32px;border-radius:999px;font-family:var(--font-body);font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;}
.fv-btn-primary{color:#fff;background:linear-gradient(100deg,var(--violet),var(--blue));box-shadow:0 8px 30px rgba(91,140,255,.25);}
.fv-btn-primary:hover{transform:translateY(-2px);color:#fff;box-shadow:0 12px 40px rgba(139,92,246,.4);}
.fv-btn-ghost{color:var(--text);border:1px solid var(--line-2);background:transparent;margin-left:14px;}
.fv-btn-ghost:hover{border-color:var(--blue);color:#fff;transform:translateY(-2px);}
.fv-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.fv-grid-3{grid-template-columns:repeat(3,1fr);}
.fv-grid-2{grid-template-columns:repeat(2,1fr);}
.fv-card{background:var(--bg-2);padding:40px 34px;transition:background .25s ease;}
.fv-card:hover{background:var(--bg-3);}
.fv-card h3{margin-top:0;}
.fv-card .icon{font-family:var(--font-display);font-size:1.7rem;color:var(--violet-soft);margin-bottom:14px;display:block;line-height:1;}
.fv-content{font-size:1.05rem;}
.fv-content img{border-radius:var(--radius);margin:1.8rem 0;}
.fv-content a{color:var(--blue-soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2);}
.fv-content a:hover{text-decoration-color:var(--blue);}
.fv-entry-meta{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-soft);margin-bottom:1rem;}
.fv-page-header{text-align:center;padding:120px 0 20px;}
.fv-page-header h1{margin-bottom:.3rem;}
.fv-cta{text-align:center;margin:0 auto;max-width:var(--maxw);border-radius:20px;padding:80px 28px;background:radial-gradient(500px 300px at 50% 0%,rgba(139,92,246,.14),transparent 70%),var(--bg-2);border:1px solid var(--line);}
.fv-footer{border-top:1px solid var(--line);background:rgba(3,3,10,.6);padding:64px 0 32px;}
.fv-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;}
.fv-footer h4{color:var(--violet-soft);font-family:var(--font-body);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;}
.fv-footer ul{list-style:none;padding:0;margin:0;}
.fv-footer li{margin:.5em 0;}
.fv-footer a{color:var(--muted);font-size:.95rem;}
.fv-footer a:hover{color:#fff;}
.fv-footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.8rem;letter-spacing:.02em;}
.fv-pagination{display:flex;gap:10px;justify-content:center;margin-top:56px;flex-wrap:wrap;}
.fv-pagination .page-numbers{padding:10px 16px;border-radius:10px;border:1px solid var(--line);color:var(--muted);}
.fv-pagination .current,.fv-pagination .page-numbers:hover{color:#fff;background:linear-gradient(100deg,var(--violet),var(--blue));border-color:transparent;}
.aligncenter{margin-inline:auto;}
.alignleft{float:left;margin:.4rem 1.4rem 1rem 0;}
.alignright{float:right;margin:.4rem 0 1rem 1.4rem;}
.wp-caption-text,.gallery-caption{font-size:.85rem;color:var(--muted);text-align:center;}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;}
@keyframes fvFade{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.fv-hero .eyebrow{animation:fvFade .8s ease both;}
.fv-hero h1{animation:fvFade .8s ease .1s both;}
.fv-hero p.lead{animation:fvFade .8s ease .2s both;}
.fv-hero .fv-hero-actions{animation:fvFade .8s ease .3s both;}
@media (max-width:880px){
  .fv-grid-3,.fv-grid-2,.fv-footer-grid{grid-template-columns:1fr;}
  .fv-burger{display:block;}
  .fv-nav{position:absolute;top:76px;left:0;right:0;background:var(--bg-2);border-bottom:1px solid var(--line);transform:scaleY(0);transform-origin:top;transition:transform .25s ease;}
  .fv-nav.open{transform:scaleY(1);}
  .fv-nav ul{flex-direction:column;gap:0;padding:10px 28px;}
  .fv-nav li{padding:12px 0;border-bottom:1px solid var(--line);}
  .fv-btn-ghost{margin-left:0;margin-top:12px;}
  .fv-hero{padding:110px 0 90px;}
}

/* ===== SEO crawl footer ===== */
.fv-seo{border-top:1px solid var(--line);padding:78px 0 36px;}
.fv-seo-title{font-size:clamp(1.6rem,3vw,2.2rem);text-align:center;margin:0 0 50px;}
.fv-seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 48px;}
.fv-seo-col h4{margin:0 0 16px;font-family:var(--font-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--violet-soft);}
.fv-seo-col h4 a{color:var(--violet-soft);}
.fv-seo-col h4 a:hover{color:#fff;}
.fv-seo-col ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:baseline;}
.fv-seo-col li{margin:0;display:inline-flex;align-items:baseline;}
.fv-seo-col li:not(:last-child)::after{content:"\00B7";margin:0 11px;color:var(--line-2);}
.fv-seo-col a{color:var(--muted);font-size:.88rem;}
.fv-seo-col a:hover{color:#fff;}
@media(max-width:880px){.fv-seo-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.fv-seo-grid{grid-template-columns:1fr;}}


/* ===== Header dropdown (Services submenu) ===== */
.fv-nav li{position:relative;}
.fv-nav .menu-item-has-children > a::after{content:"\25BE";font-size:.7em;margin-left:6px;opacity:.7;}
.fv-nav .sub-menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  min-width:210px;display:flex;flex-direction:column;gap:0;
  background:rgba(8,8,20,.97);backdrop-filter:blur(16px);
  border:1px solid var(--line-2);border-radius:14px;padding:10px 0;
  box-shadow:0 18px 50px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:200;
}
.fv-nav .menu-item-has-children:hover > .sub-menu,
.fv-nav .menu-item-has-children:focus-within > .sub-menu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.fv-nav .sub-menu li{margin:0;width:100%;}
.fv-nav .sub-menu a{
  display:block;padding:10px 22px;white-space:nowrap;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}
.fv-nav .sub-menu a:hover{color:#fff;background:rgba(139,92,246,.14);}
/* bridge the gap so hover doesn't drop */
.fv-nav .menu-item-has-children::after{content:"";position:absolute;top:100%;left:0;right:0;height:12px;}
