/* ===================================================
   Jay Insurance Solutions — stylesheet
   Palette: cream base, deep green + gold accents
   =================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root{
  --green: #1f3d2e;
  --green-deep: #16291e;
  --gold: #b8952a;
  --gold-light: #d8b957;
  --cream: #faf6ec;
  --panel: #ffffff;
  --ink: #202821;
  --muted: #5c6a5f;
  --line: #e2dcc9;
  --radius: 4px;
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:hidden;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3,.serif{
  font-family:'Fraunces', serif;
  font-weight:500;
  color:var(--green);
  margin:0 0 .5em;
}
h1{font-size:clamp(2.2rem, 4vw, 3.4rem); line-height:1.08; letter-spacing:-0.01em;}
h2{font-size:clamp(1.7rem, 3vw, 2.3rem); line-height:1.15;}
h3{font-size:1.2rem; margin-bottom:.3em;}
p{margin:0 0 1em; color:var(--muted); max-width:62ch;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
section{padding:88px 0;}
.center{text-align:center; margin-left:auto; margin-right:auto;}
.eyebrow-none{margin-top:0;}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px;
  border-radius:var(--radius);
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:600;
  font-size:.95rem;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn-primary{ background:var(--green); color:var(--cream); }
.btn-primary:hover{ background:var(--green-deep); }
.btn-outline{ background:transparent; color:var(--green); border-color:var(--green); }
.btn-outline:hover{ background:var(--green); color:var(--cream); }
.btn-gold{ background:var(--gold); color:var(--green-deep); }
.btn-gold:hover{ background:var(--gold-light); }
.btn[disabled]{opacity:.6; cursor:not-allowed;}

/* Header */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,246,236,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:20px; padding-bottom:20px;
}
.logo{display:flex; align-items:center; gap:20px; text-decoration:none;}
.logo-icon{height:104px; width:auto; flex-shrink:0;}
.logo-text{display:flex; flex-direction:column; line-height:1; gap:6px;}
.logo-jay{
  font-family:'IBM Plex Sans', sans-serif; font-weight:700; font-size:3.3rem;
  letter-spacing:.01em; color:#16291e;
}
.logo-sub{
  font-family:'IBM Plex Sans', sans-serif; font-weight:700; font-size:1.05rem;
  letter-spacing:.08em; text-transform:uppercase; color:#b8952a; line-height:1.3;
}
.footer-logo{display:flex; align-items:center; justify-content:center; gap:20px; margin:0 auto 14px;}
.footer-logo .logo-icon{height:84px;}
nav{display:flex; align-items:center; gap:32px;}
nav a{
  text-decoration:none; color:var(--ink); font-weight:500; font-size:.96rem;
  position:relative;
}
nav a.nav-link::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .2s ease;
}
nav a.nav-link:hover::after{transform:scaleX(1);}
.nav-phone{
  display:flex; align-items:center; gap:8px;
  color:var(--green); font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.menu-toggle span{display:block; width:24px; height:2px; background:var(--green); margin:5px 0;}

/* Hero */
.hero .wrap{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;
  padding-top:64px; padding-bottom:24px;
}
.hero-tag{
  display:inline-block; font-size:.85rem; font-weight:600; color:var(--gold);
  letter-spacing:.02em; margin-bottom:14px;
}
.hero-ctas{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.hero-note{margin-top:22px; font-size:.9rem; color:var(--muted);}
.hero-figure{position:relative; justify-self:center;}
.hero-figure img.headshot{
  width:300px; height:300px; border-radius:50%;
  border:3px solid var(--gold);
  box-shadow:0 18px 40px rgba(31,61,46,.18);
}

/* Services */
.services-intro{max-width:640px; margin:0 auto 48px;}
.service-groups{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid var(--line);
}
.service-group{
  padding:32px 28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.service-group:last-child{border-right:none;}
.service-group .group-icon{
  width:44px; height:44px; margin-bottom:18px;
  background:var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.service-group .group-icon svg{width:20px; height:20px; fill:var(--green-deep);}
.service-group h3{color:var(--green);}
.service-group ul{list-style:none; margin:14px 0 0; padding:0;}
.service-group li{
  padding:9px 0; border-top:1px solid var(--line);
  color:var(--ink); font-size:.95rem;
}
.service-group li:first-child{border-top:none;}

#about{background:#f2ecdb;}
.about .wrap{
  display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:start;
}
.about-quote{
  font-family:'Fraunces', serif; font-size:1.4rem; font-style:italic; color:var(--green);
  border-left:3px solid var(--gold); padding-left:20px; margin:0 0 28px;
  line-height:1.4;
}
.about-photo{width:100%; max-width:280px;}
.about-photo img{border-radius:50%; border:3px solid var(--gold);}

/* Seminars */
.seminars{background:var(--green); color:var(--cream);}
.seminars h2{color:var(--cream);}
.seminars p{color:#cddccf;}
.coming-soon-box{
  max-width:560px; margin:32px auto 0; text-align:center;
  background:rgba(250,246,236,.06);
  border:1px solid rgba(250,246,236,.18);
  border-radius:6px;
  padding:32px 28px;
}
.coming-soon-box p{color:#e3ecdf; font-size:1.02rem; margin-bottom:20px;}

/* Contact */
.contact .wrap{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start;
}
.contact-info-item{
  display:flex; gap:14px; align-items:flex-start; margin-bottom:22px;
}
.contact-info-item .ic{
  width:38px; height:38px; border-radius:50%; background:var(--green);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-info-item .ic svg{width:17px; height:17px; stroke:var(--cream);}
.contact-info-item strong{display:block; color:var(--green); font-size:.95rem;}
.contact-info-item a{color:var(--ink); text-decoration:none;}
.contact-info-item a:hover{color:var(--green);}

.form-panel{
  background:var(--panel); border:1px solid var(--line); border-radius:6px;
  padding:32px;
}
.field{margin-bottom:18px;}
.field label{display:block; font-size:.85rem; font-weight:600; color:var(--green); margin-bottom:6px;}
.field input, .field textarea{
  width:100%; padding:12px 14px; font-family:inherit; font-size:.95rem;
  border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink);
}
.field input:focus, .field textarea:focus{
  outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);
}
.field textarea{resize:vertical; min-height:120px;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}
.form-msg{margin-top:14px; font-size:.9rem; padding:10px 12px; border-radius:var(--radius); display:none;}
.form-msg.show{display:block;}
.form-msg.ok{background:#e7f2ea; color:#1f4d33; border:1px solid #bfe0cb;}
.form-msg.err{background:#fbeaea; color:#7a2323; border:1px solid #f0c6c6;}

/* Footer */
footer{background:var(--green-deep); color:#cddccf; padding:52px 0 28px;}
footer .wrap{text-align:center;}
footer .foot-links{display:flex; justify-content:center; gap:26px; margin:18px 0; flex-wrap:wrap;}
footer .foot-links a{color:#cddccf; text-decoration:none; font-size:.9rem;}
footer .foot-links a:hover{color:var(--gold-light);}
footer .disclaimer{font-size:.78rem; color:#8fa495; max-width:640px; margin:18px auto 0; line-height:1.5;}
footer .copyright{font-size:.8rem; color:#8fa495; margin-top:18px;}

/* Responsive */
@media (max-width: 880px){
  nav{
    position:fixed; inset:64px 0 0 0; background:var(--cream);
    flex-direction:column; align-items:flex-start; padding:28px 24px;
    gap:22px; transform:translateX(100%); transition:transform .25s ease;
    border-top:1px solid var(--line);
  }
  nav.open{transform:translateX(0);}
  .menu-toggle{display:block;}
  .hero .wrap, .about .wrap, .contact .wrap{grid-template-columns:1fr;}
  .hero-figure{order:-1;}
  .service-groups{grid-template-columns:1fr;}
  .service-group{border-right:none;}
  section{padding:64px 0;}
}
