/*
Theme Name: JV Financial Services
Theme URI: https://www.jvfinancialservices.com
Author: Built for JV Financial Services LLC
Description: Custom theme for JV Financial Services LLC — retirement income planning. Two audience landing pages (retirees, business owners) plus blog support for the Resources section.
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary — for use by JV Financial Services LLC only
Text Domain: jvfs
*/

:root{
    --sand:#F6F3EC; --sand-deep:#EFE9DC; --ink:#1C2B39; --slate:#4B5C6B;
    --gold:#AD8A3E; --gold-soft:#D9C592; --teal:#3E6259; --rust:#B5573A;
    --line:#DCD5C4; --white:#FFFDF9; --radius:2px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--sand); color:var(--ink); font-family:'Public Sans',sans-serif;
       font-size:18px; line-height:1.6; -webkit-font-smoothing:antialiased;}
  h1,h2,h3{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
  section{padding:88px 0;}
  .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:.12em;
           text-transform:uppercase; color:var(--teal); display:flex; align-items:center; gap:10px;}
  .eyebrow::before{content:""; width:24px; height:1px; background:currentColor;}
  .btn{display:inline-flex; align-items:center; gap:8px; padding:16px 28px; border-radius:var(--radius);
       font-weight:600; font-size:16px; cursor:pointer; border:1px solid transparent;
       transition:transform .15s, background .15s;}
  .btn-primary{background:var(--ink); color:var(--white);}
  .btn-primary:hover{background:#0f1922; transform:translateY(-1px);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:var(--white);}
  .btn-gold{background:var(--gold); color:var(--ink);}
  .btn-gold:hover{background:var(--gold-soft);}

  /* HEADER */
  header{position:sticky; top:0; z-index:50; background:rgba(246,243,236,.94);
         backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  header .wrap{display:flex; align-items:center; justify-content:space-between;
               padding-top:18px; padding-bottom:18px; gap:20px;}
  .logo{font-family:'Fraunces',serif; font-size:21px; font-weight:600; display:flex;
        align-items:center; color:var(--ink); cursor:pointer;}
  .logo svg{width:32px; height:32px; margin-right:9px; flex:0 0 auto;}
  .nav-links{display:none; gap:30px;}
  @media(min-width:940px){.nav-links{display:flex;}}
  .nav-links li{list-style:none; display:flex;}
  .nav-links a{font-size:15px; font-weight:600; color:var(--slate); cursor:pointer;
               padding-bottom:3px; border-bottom:2px solid transparent;}
  .nav-links a:hover{color:var(--ink);}
  .nav-links a.active{color:var(--ink); border-bottom-color:var(--gold);}
  .header-right{display:flex; align-items:center; gap:18px;}
  .header-phone{font-size:15px; font-weight:600; white-space:nowrap; display:none;}
  @media(min-width:720px){.header-phone{display:block;}}
  .nav-cta{display:none;}
  @media(min-width:940px){.nav-cta{display:inline-flex;}}

  .view{display:none;} .view.active{display:block;}

  /* HERO */
  .hero{padding-top:76px; padding-bottom:52px;}
  .hero .wrap{display:grid; grid-template-columns:1fr; gap:52px; align-items:center;}
  @media(min-width:980px){.hero .wrap{grid-template-columns:1.05fr .95fr;}}
  .hero h1{font-size:clamp(33px,4.8vw,52px); line-height:1.09; margin:20px 0 22px;}
  .hero h1 em{font-style:italic; color:var(--teal);}
  .hero p.lede{font-size:19px; color:var(--slate); max-width:47ch; margin-bottom:32px;}
  .hero .ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:26px;}
  .microcopy{font-size:13px; color:var(--slate); font-family:'IBM Plex Mono',monospace;}

  .horizon-card{background:var(--white); border:1px solid var(--line); padding:30px 26px 22px;}
  .horizon-card .label-row{display:flex; justify-content:space-between;
    font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--slate);
    margin-bottom:16px; text-transform:uppercase; letter-spacing:.06em;}
  .horizon-card svg{width:100%; height:auto; display:block;}
  .legend{display:flex; gap:20px; margin-top:16px; font-size:13px; color:var(--slate); flex-wrap:wrap;}
  .legend span{display:inline-flex; align-items:center; gap:7px;}
  .dot{width:9px; height:9px; border-radius:50%; display:inline-block;}

  /* DOORS */
  .doors{background:var(--sand-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .door-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line);
             border:1px solid var(--line); margin-top:36px;}
  @media(min-width:760px){.door-grid{grid-template-columns:1fr 1fr;}}
  .door{background:var(--white); padding:38px 32px; cursor:pointer; transition:background .15s;}
  .door:hover{background:#FFF;}
  .door .tag{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.1em;
             text-transform:uppercase; color:var(--gold); margin-bottom:14px;}
  .door h3{font-size:25px; line-height:1.2; margin-bottom:12px;}
  .door p{font-size:15.5px; color:var(--slate); margin-bottom:18px;}
  .door ul{list-style:none; margin-bottom:22px;}
  .door li{font-size:14.5px; color:var(--slate); padding-left:17px; position:relative; margin-bottom:7px;}
  .door li::before{content:"—"; position:absolute; left:0; color:var(--gold);}
  .door .go{font-size:15px; font-weight:700; color:var(--ink);}

  /* TRUST */
  .trust{background:var(--sand-deep); padding:34px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .trust .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px;}
  .trust-label{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em;
               text-transform:uppercase; color:var(--slate); margin-bottom:10px;}
  .carriers{display:flex; flex-wrap:wrap; gap:26px; font-family:'Fraunces',serif; font-size:17px;}
  .credentials{font-size:14px; color:var(--slate);}

  /* GENERIC SECTIONS */
  h2.big{font-size:clamp(28px,3.6vw,38px); max-width:20ch; margin-bottom:14px;}
  .section-intro{color:var(--slate); max-width:58ch; margin-bottom:44px; font-size:17px;}

  .cards{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
  @media(min-width:720px){.cards{grid-template-columns:1fr 1fr;}}
  .card{background:var(--white); padding:30px 28px;}
  .card p{font-size:17px; font-family:'Fraunces',serif; font-style:italic; line-height:1.5;}
  .card .tag{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--rust);
             text-transform:uppercase; letter-spacing:.06em; margin-bottom:11px;}

  .dark{background:var(--ink); color:var(--sand);}
  .dark h2, .dark h3{color:var(--sand);}
  .dark .eyebrow{color:var(--gold-soft);}
  .svc-grid{display:grid; grid-template-columns:1fr; gap:1px; background:#2A3A48;
            margin-top:44px; border:1px solid #2A3A48;}
  @media(min-width:720px){.svc-grid{grid-template-columns:1fr 1fr;}}
  .svc{background:var(--ink); padding:32px 28px;}
  .svc .num{font-family:'IBM Plex Mono',monospace; color:var(--gold-soft); font-size:13px;}
  .svc h3{font-size:21px; margin:12px 0 9px;}
  .svc p{color:#B7C2CB; font-size:15.5px;}

  .process ol{list-style:none; counter-reset:step; margin-top:44px;
              border-top:1px solid var(--line);}
  .process li{counter-increment:step; display:grid; grid-template-columns:52px 1fr;
              column-gap:26px; row-gap:6px; padding:26px 0;
              border-bottom:1px solid var(--line); align-items:baseline;}
  .process li::before{content:counter(step,decimal-leading-zero);
                      grid-column:1; grid-row:1;
                      font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--gold);
                      line-height:1.45;}
  .process h3{grid-column:2; grid-row:1; font-size:19px; line-height:1.35; margin:0;}
  .process p{grid-column:2; grid-row:2; color:var(--slate); font-size:15.5px;
             max-width:62ch; margin:0;}
  @media(max-width:560px){
    .process li{grid-template-columns:36px 1fr; column-gap:16px; padding:22px 0;}
  }

  table.cmp{width:100%; border-collapse:collapse; margin-top:40px; background:var(--white);
            border:1px solid var(--line); table-layout:fixed;}
  table.cmp th, table.cmp td{padding:16px 18px; text-align:left; font-size:15px; line-height:1.5;
                             border-bottom:1px solid var(--line); vertical-align:top;
                             overflow-wrap:break-word;}
  table.cmp tr:last-child th, table.cmp tr:last-child td{border-bottom:none;}
  table.cmp thead th{font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase;
                     letter-spacing:.06em; color:var(--slate); background:var(--sand-deep);
                     line-height:1.4; vertical-align:bottom;}
  table.cmp tbody th{font-weight:600;}
  table.cmp td.hl{color:var(--teal); font-weight:600;}
  /* even columns: label + two equal comparison columns */
  table.cmp col.label{width:26%;}
  table.cmp col.even{width:37%;}
  /* two-column disclosure table */
  table.cmp col.term{width:26%;}
  table.cmp col.body{width:74%;}
  @media(max-width:640px){
    table.cmp, table.cmp thead, table.cmp tbody, table.cmp tr, table.cmp th, table.cmp td{display:block; width:100%;}
    table.cmp thead{display:none;}
    table.cmp tr{border-bottom:1px solid var(--line); padding:6px 0;}
    table.cmp tr:last-child{border-bottom:none;}
    table.cmp th, table.cmp td{border-bottom:none; padding:8px 16px;}
    table.cmp tbody th{padding-top:16px; color:var(--ink);}
    table.cmp td{color:var(--slate);}
  }
  .note{font-size:13.5px; color:var(--slate); margin-top:14px; max-width:74ch;}

  /* CAPACITY BARS */
  .bars{margin-top:40px; background:var(--white); border:1px solid var(--line); padding:32px 30px;}
  .bar-row{margin-bottom:22px;}
  .bar-row:last-child{margin-bottom:0;}
  .bar-label{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; gap:14px;}
  .bar-label .name{font-size:15.5px; font-weight:600;}
  .bar-label .amt{font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--ink); white-space:nowrap;}
  .bar-track{height:15px; background:var(--sand-deep); position:relative;}
  .bar-fill{height:100%; background:var(--gold);}
  .bar-fill.muted{background:#C9BFA6;}
  .bar-fill.deep{background:var(--teal);}
  .bar-sub{font-size:13px; color:var(--slate); margin-top:6px;}

  /* PHYSICIAN CALLOUT */
  .spotlight{background:var(--teal); color:#EAF1EE; padding:44px 40px; margin-top:44px;}
  .spotlight .eyebrow{color:#B9D2C8;}
  .spotlight h3{color:#FFF; font-size:clamp(23px,3vw,30px); max-width:24ch; margin:14px 0 16px;}
  .spotlight p{color:#D2E2DB; font-size:16px; max-width:64ch; margin-bottom:12px;}
  .spotlight .fine{font-size:13.5px; color:#A9C6BA; margin-top:16px;}

  /* CREDIT GRID */
  .credit-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line);
               border:1px solid var(--line); margin-top:40px;}
  @media(min-width:680px){.credit-grid{grid-template-columns:1fr 1fr;}}
  .credit{background:var(--white); padding:28px 26px;}
  .credit .code{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gold); letter-spacing:.06em;}
  .credit h3{font-size:19px; margin:9px 0 8px;}
  .credit p{font-size:15px; color:var(--slate);}

  /* TESTIMONIAL */
  .testimonial{background:var(--sand-deep);}
  .testimonial blockquote{font-family:'Fraunces',serif; font-style:italic;
    font-size:clamp(22px,3vw,30px); max-width:34ch; line-height:1.4;}
  .testimonial .attrib{margin-top:20px; font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--slate);}
  .testimonial .disclose{margin-top:8px; font-size:12.5px; color:var(--slate); max-width:52ch;}

  /* ABOUT */
  .about .wrap{display:grid; grid-template-columns:1fr; gap:44px;}
  @media(min-width:860px){.about .wrap{grid-template-columns:.8fr 1.2fr;}}
  .headshot{aspect-ratio:4/5; overflow:hidden; border:1px solid var(--line);}
  .headshot img{width:100%; height:100%; object-fit:cover; object-position:center 15%;}
  .about ul{margin-top:18px; display:grid; gap:9px; list-style:none;}
  .about li{font-size:15px; color:var(--slate); padding-left:18px; position:relative;}
  .about li::before{content:"—"; position:absolute; left:0; color:var(--gold);}

  /* RESOURCES */
  .res-grid{display:grid; grid-template-columns:1fr; gap:22px; margin-top:40px;}
  @media(min-width:760px){.res-grid{grid-template-columns:repeat(3,1fr);}}
  .res-card{background:var(--white); border:1px solid var(--line); padding:26px 24px;
            display:flex; flex-direction:column; gap:15px; justify-content:space-between;}
  .res-card .tag{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--teal);
                 text-transform:uppercase; letter-spacing:.06em;}
  .res-card h3{font-size:18px; line-height:1.3;}
  .res-card .read{font-size:13px; font-weight:600;}

  /* CTA */
  .final-cta{background:var(--ink); color:var(--sand); text-align:center;}
  .final-cta h2{color:var(--sand); font-size:clamp(27px,3.8vw,40px); max-width:24ch; margin:0 auto 18px;}
  .final-cta > .wrap > p{color:#B7C2CB; max-width:54ch; margin:0 auto 30px;}
  .lead-form{max-width:520px; margin:0 auto;}
  .form-fields{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
  .lead-form input{flex:1 1 190px; padding:15px 16px; border:1px solid #3C4C59; background:#1E2C38;
                   color:var(--sand); font-family:'Public Sans',sans-serif; font-size:15px;}
  .lead-form input::placeholder{color:#7C8B96;}
  .lead-form input:focus{outline:2px solid var(--gold); outline-offset:1px;}
  .form-success{display:none; background:#233240; border:1px solid var(--gold); padding:18px 20px;
                font-size:15px; color:var(--sand);}
  .cta-alt{margin-top:26px;}
  .final-cta .btn-ghost{border-color:#5A6B78; color:var(--sand);}
  .final-cta .btn-ghost:hover{background:#2A3A48;}

  /* FOOTER */
  footer{background:#141F29; color:#8A99A5; padding:60px 0 30px; font-size:13.5px;}
  footer .wrap{display:grid; grid-template-columns:1fr; gap:38px;}
  @media(min-width:800px){footer .wrap{grid-template-columns:1.5fr 1fr 1fr 1fr;}}
  footer h4{font-family:'IBM Plex Mono',monospace; font-size:12px; color:#B7C2CB;
            text-transform:uppercase; letter-spacing:.06em; margin-bottom:15px;}
  footer .logo{color:var(--sand); margin-bottom:12px;}
  footer ul{list-style:none; display:grid; gap:9px;}
  footer a:hover{color:var(--sand);}
  .disclosure{border-top:1px solid #2A3A48; margin-top:44px; padding-top:26px;
              font-size:12px; line-height:1.7; color:#6C7B87;}
