/* ===========================================================
   RGIS — Ramani Govindam Insurance Services
   Design tokens: navy (trust/brand), teal (health), gold (LIC)
   Display: Fraunces · Body: Work Sans · Utility: IBM Plex Mono
=========================================================== */

:root{
  --navy: #0F2A4A;
  --navy-deep: #081729;
  --ivory: #F6F1E6;
  --ivory-2: #EFE8D8;
  --gold: #B5822A;
  --gold-deep: #8C641D;
  --gold-tint: #F3E6C8;
  --teal: #146A54;
  --teal-deep: #0D4D3C;
  --teal-tint: #DCEEE7;
  --ink: #201C15;
  --ink-soft: #5B5648;
  --line: rgba(15,42,74,0.14);
  --line-strong: rgba(15,42,74,0.26);
  --paper-shadow: 0 1px 2px rgba(15,42,74,0.06), 0 8px 24px rgba(15,42,74,0.06);
  --radius: 4px;
  --radius-lg: 10px;
  --maxw: 1180px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--ivory);
  color: var(--ink);
  font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
.serif{ font-family: 'Fraunces', Georgia, serif; }
.mono{ font-family: 'IBM Plex Mono', monospace; }

h1,h2,h3,h4{
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 600;
  color: var(--navy);
  margin: 0 0 .5em;
  letter-spacing: -0.01em;
}
h1{ font-size: clamp(2.1rem, 4vw, 3.4rem); line-height: 1.08; font-weight: 500; }
h2{ font-size: clamp(1.5rem, 2.6vw, 2.15rem); line-height: 1.18; }
h3{ font-size: 1.3rem; }
p{ margin: 0 0 1em; color: var(--ink-soft); }
.wrap{ max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }

.eyebrow{
  font-family: 'IBM Plex Mono', monospace;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-deep);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.eyebrow::before{
  content:"";
  width: 22px; height: 1px;
  background: var(--gold-deep);
  display:inline-block;
}
.eyebrow.teal{ color: var(--teal-deep); }
.eyebrow.teal::before{ background: var(--teal-deep); }

/* ---------- Buttons ---------- */
.btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 24px;
  border-radius: var(--radius);
  font-family: 'Work Sans', sans-serif;
  font-size: .92rem;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
  line-height: 1;
}
.btn-primary{ background: var(--navy); color: var(--ivory); }
.btn-primary:hover{ background: var(--navy-deep); }
.btn-ghost{ background: transparent; color: var(--navy); border-color: var(--line-strong); }
.btn-ghost:hover{ border-color: var(--navy); }
.btn-gold{ background: var(--gold); color: #fff; }
.btn-gold:hover{ background: var(--gold-deep); }
.btn-teal{ background: var(--teal); color: #fff; }
.btn-teal:hover{ background: var(--teal-deep); }
.btn-sm{ padding: 9px 16px; font-size: .82rem; }

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(246,241,230,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 0;
  gap: 24px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height: 42px; width:auto; }
.brand-text{ display:flex; flex-direction:column; gap:1px; line-height:1.25; }
.brand-name{ font-family:'Fraunces', serif; font-size:1.25rem; font-weight:600; color:var(--navy); letter-spacing:.01em; }
.brand-tagline{ font-family:'Work Sans',sans-serif; font-size:.78rem; font-weight:500; color:var(--ink-soft); }
.brand-services{ font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.03em; color: var(--gold-deep); }

.nav-links{ display:flex; align-items:center; gap: 4px; list-style:none; margin:0; padding:0; }
.nav-links > li{ position: relative; }
.nav-links > li > a, .nav-links > li > button{
  background:none; border:none; cursor:pointer;
  font-family:'Work Sans',sans-serif; font-size:.92rem; font-weight:500;
  color: var(--navy); padding: 10px 14px; display:flex; align-items:center; gap:5px;
  border-radius: var(--radius); white-space: nowrap;
}
.nav-links > li > a:hover, .nav-links > li > button:hover{ background: rgba(15,42,74,0.06); }
.nav-links > li.active > a{ color: var(--gold-deep); }
.caret{ font-size: .6rem; margin-top:1px; opacity:.7; }

.dropdown{
  position:absolute; top: calc(100% + 8px); left:0;
  min-width: 230px;
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--paper-shadow);
  padding: 8px;
  opacity:0; visibility:hidden; transform: translateY(6px);
  transition: all .16s ease;
}
.nav-links > li:hover .dropdown, .nav-links > li:focus-within .dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.dropdown a{
  display:flex; align-items:center; justify-content:space-between;
  padding: 10px 12px; border-radius: var(--radius);
  font-size: .88rem; color: var(--ink);
}
.dropdown a:hover{ background: var(--ivory-2); color: var(--navy); }
.dropdown a span.tag{
  font-family:'IBM Plex Mono',monospace; font-size:.62rem; color: var(--ink-soft);
}
.nav-cta{ display:flex; align-items:center; gap:10px; }
.nav-toggle{ display:none; background:none; border:1px solid var(--line-strong); border-radius: var(--radius); padding: 8px 10px; }

/* ---------- Hero ---------- */
.hero{ padding: 64px 0 56px; }
.hero-grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items:center; }
p.lead{ font-size: 1.08rem; max-width: 46ch; }
.hero-tagline{
  font-family:'Fraunces', serif; font-style: italic; font-size: 1.15rem;
  color: var(--gold-deep); margin: 0 0 10px;
}
.page-hero.has-banner .hero-tagline{ color: var(--gold-tint); }

/* ---------- YouTube video section ---------- */
.video-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:24px; margin-top:8px; }
.video-frame{
  position:relative; padding-top:56.25%; height:0; overflow:hidden;
  border-radius: var(--radius-lg); box-shadow: var(--paper-shadow); background:var(--navy-deep);
}
.video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (max-width:800px){
  .video-grid{ grid-template-columns: 1fr; }
}
.hero-actions{ display:flex; gap:14px; margin-top: 8px; flex-wrap:wrap; }
.hero-art{ display:flex; justify-content:center; }

/* ---------- Hero image slider ---------- */
.hero-slider{
  position: relative;
  width: 100%;
  max-width: 460px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--paper-shadow);
  aspect-ratio: 4 / 3;
}
.hero-slides{
  position: relative;
  width: 100%;
  height: 100%;
}
.hero-slide{
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .6s ease;
}
.hero-slide.is-active{
  opacity: 1;
  visibility: visible;
}
.hero-slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-slider-dots{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 16px;
  display: flex;
  justify-content: center;
  gap: 8px;
  z-index: 2;
}
.hero-slider-dots button{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255,255,255,0.55);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.hero-slider-dots button.is-active{
  background: #fff;
  transform: scale(1.25);
}
@media (max-width: 900px){
  .hero-slider{ max-width: 100%; margin-top: 28px; }
}

/* signature emblem: interlocking rings */
.emblem{ width: 100%; max-width: 380px; aspect-ratio:1/1; position:relative; }
.emblem svg{ width:100%; height:100%; }

/* ---------- Trust strip ---------- */
.trust-strip{
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  background: var(--ivory-2);
}
.trust-strip .wrap{
  display:flex; flex-wrap:wrap; gap: 28px 40px;
  padding: 20px 28px; justify-content:space-between; align-items:center;
}
.trust-item{ display:flex; align-items:center; gap:10px; font-size:.86rem; color: var(--navy); }
.trust-item .num{ font-family:'Fraunces',serif; font-size:1.4rem; color: var(--gold-deep); font-weight:600; }
.trust-item .num.t{ color: var(--teal-deep); }

/* ---------- Sections ---------- */
section{ padding: 72px 0; }
.section-tight{ padding: 48px 0; }
.section-head{ max-width: 640px; margin-bottom: 40px; }
.bg-navy{ background: var(--navy); color: var(--ivory); }
.bg-navy h2, .bg-navy h3{ color: var(--ivory); }
.bg-navy p{ color: rgba(246,241,230,0.78); }
.bg-alt{ background: var(--ivory-2); }

/* pillars */
.pillars{ display:grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.pillar-card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 32px; box-shadow: var(--paper-shadow);
  border-top: 4px solid var(--line);
}
.pillar-card.health{ border-top-color: var(--teal); }
.pillar-card.lic{ border-top-color: var(--gold); }
.pillar-card .icon{
  width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px; font-size:1.3rem;
}
.pillar-card.health .icon{ background: var(--teal-tint); color: var(--teal-deep); }
.pillar-card.lic .icon{ background: var(--gold-tint); color: var(--gold-deep); }
.chip-row{ display:flex; flex-wrap:wrap; gap:8px; margin: 16px 0 22px; }
.chip{
  font-family:'IBM Plex Mono',monospace; font-size:.72rem;
  padding: 6px 12px; border-radius: 20px; border:1px solid var(--line-strong);
  color: var(--ink-soft);
}
.pillar-card.health .chip{ border-color: rgba(20,106,84,.3); color: var(--teal-deep); }
.pillar-card.lic .chip{ border-color: rgba(181,130,42,.35); color: var(--gold-deep); }

/* three-col features */
.grid-3{ display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.feat{ padding: 26px 0; border-top: 1px solid var(--line); }
.feat .idx{ font-family:'IBM Plex Mono',monospace; color: var(--gold-deep); font-size:.78rem; margin-bottom:10px; display:block;}

/* credential photos */
.cred-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items:start; }
.cred-frame{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 14px; box-shadow: var(--paper-shadow);
}
.cred-frame img{ border-radius: 4px; }
.cred-cap{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; color: var(--ink-soft); margin-top:10px; text-align:center;}

/* CTA band */
.cta-band{ display:flex; align-items:center; justify-content:space-between; gap: 24px; flex-wrap:wrap; }
.cta-band .actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Footer ---------- */
footer{ background: var(--navy-deep); color: rgba(246,241,230,0.8); padding: 56px 0 26px; }
.foot-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; margin-bottom: 40px; }
.foot-grid h4{ color:#fff; font-family:'Work Sans',sans-serif; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; margin-bottom:14px;}
.foot-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.foot-grid a{ color: rgba(246,241,230,0.72); font-size:.9rem; }
.foot-grid a:hover{ color:#fff; }
.foot-brand img{ height:48px; margin-bottom:14px; background:#fff; padding:8px 14px; border-radius:8px; }
.foot-brand p{ color: rgba(246,241,230,0.62); font-size:.88rem; max-width:32ch; }
.social-links{ display:flex; gap:14px; margin-top:18px; }
.social-links a{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px;
  border-radius:50%;
  background: rgba(246,241,230,0.08);
  transition: background .15s ease, transform .15s ease;
}
.social-links a:hover{ background: var(--gold); transform: translateY(-2px); }
.social-links svg{ width:18px; height:18px; fill: rgba(246,241,230,0.85); }
.social-links a:hover svg{ fill:#fff; }
.foot-bottom{ border-top:1px solid rgba(246,241,230,0.14); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.78rem; color: rgba(246,241,230,0.5); }
.foot-credit{ text-align:center; padding-top:16px; margin-top:16px; border-top:1px solid rgba(246,241,230,0.1); font-size:.78rem; color: rgba(246,241,230,0.5); }
.foot-credit a{ color: rgba(246,241,230,0.85); font-weight:500; }
.foot-credit a:hover{ color:#fff; text-decoration:underline; }

/* ---------- Sub nav (Health / LIC pages) ---------- */
.page-hero{ padding: 44px 0 40px; background: var(--ivory-2); border-bottom: 1px solid var(--line); }

/* ---------- Page hero with banner image + text overlay ---------- */
.page-hero.has-banner{
  position: relative;
  padding: 100px 0 64px;
  background-size: cover;
  background-position: center;
  border-bottom: none;
  overflow: hidden;
}
.page-hero.has-banner::before{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8,23,41,0.72) 0%, rgba(8,23,41,0.55) 55%, rgba(8,23,41,0.82) 100%);
  z-index: 1;
}
.page-hero.has-banner .wrap{ position: relative; z-index: 2; }
.page-hero.has-banner .breadcrumb{ color: rgba(246,241,230,0.7); }
.page-hero.has-banner .breadcrumb a{ color: rgba(246,241,230,0.92); }
.page-hero.has-banner .eyebrow{ color: var(--gold-tint); }
.page-hero.has-banner h1{ color: #fff; }
.page-hero.has-banner .lead{ color: rgba(246,241,230,0.88); }
@media (max-width:600px){
  .page-hero.has-banner{ padding: 72px 0 48px; }
}

/* ---------- Full-width page banner image ---------- */
.page-banner{ width:100%; overflow:hidden; line-height:0; }
.page-banner img{ width:100%; height:260px; object-fit:cover; display:block; }
@media (max-width:600px){ .page-banner img{ height:150px; } }

/* ---------- Overview / plan visual images (previously unstyled) ---------- */
.overview-grid{ display:grid; grid-template-columns: 1.15fr 1fr; gap:36px; align-items:center; }
.overview-visual img{ width:100%; border-radius: var(--radius-lg); box-shadow: var(--paper-shadow); display:block; }
.plan-visual{ flex: 0 0 260px; max-width:260px; }
.plan-visual img{ width:100%; border-radius: var(--radius-lg); box-shadow: var(--paper-shadow); display:block; }
@media (max-width:800px){
  .overview-grid{ grid-template-columns: 1fr; }
  .plan-visual{ flex-basis:100%; max-width:100%; order:-1; }
}
.breadcrumb{ font-size:.8rem; color: var(--ink-soft); margin-bottom: 18px; }
.breadcrumb a{ color: var(--navy); }
.subnav{
  position: sticky; top: 71px; z-index: 90;
  background: rgba(246,241,230,0.95); backdrop-filter: blur(6px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.subnav .wrap{ display:flex; gap: 6px; overflow-x:auto; padding: 12px 28px; }
.subnav a{
  font-size:.86rem; font-weight:500; white-space:nowrap;
  padding: 8px 16px; border-radius: 20px; border: 1px solid var(--line-strong);
  color: var(--navy);
}
.subnav a:hover{ background: var(--ivory-2); }
.subnav.health a.current{ background: var(--teal); border-color: var(--teal); color:#fff; }
.subnav.lic a.current{ background: var(--gold); border-color: var(--gold); color:#fff; }

.plan-section{ padding: 60px 0; border-bottom: 1px solid var(--line); }
.plan-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom: 22px;}
.plan-tag{
  font-family:'IBM Plex Mono',monospace; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em;
  padding: 5px 10px; border-radius:4px; display:inline-block; margin-bottom:10px;
}
.plan-tag.health{ background: var(--teal-tint); color: var(--teal-deep); }
.plan-tag.lic{ background: var(--gold-tint); color: var(--gold-deep); }
.plan-body{ display:grid; grid-template-columns: 1.3fr 1fr; gap: 36px; }
.feat-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.feat-list li{ display:flex; gap:12px; font-size:.94rem; color: var(--ink); align-items:flex-start; }
.feat-list li::before{
  content:"—"; color: var(--gold-deep); flex-shrink:0; font-family:'IBM Plex Mono',monospace;
}
.plan-section.health .feat-list li::before{ color: var(--teal-deep); }
.side-note{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 22px; height: fit-content;
}
.side-note h4{ font-family:'Work Sans',sans-serif; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color: var(--ink-soft); margin-bottom:10px;}

/* ---------- Contact page ---------- */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.info-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; margin-bottom:18px; box-shadow: var(--paper-shadow); }
.info-row{ display:flex; gap:14px; padding: 14px 0; border-top:1px solid var(--line); }
.info-row:first-child{ border-top:none; }
.info-row .label{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; color: var(--ink-soft); width:110px; flex-shrink:0; padding-top:2px;}
.info-row .val{ font-size:.95rem; color: var(--ink); }
.form{ display:flex; flex-direction:column; gap:16px; }
.form label{ font-size:.8rem; font-weight:600; color: var(--navy); margin-bottom:6px; display:block; }
.form input, .form select, .form textarea{
  width:100%; padding: 12px 14px; border:1px solid var(--line-strong); border-radius: var(--radius);
  font-family:'Work Sans',sans-serif; font-size:.92rem; background:#fff; color: var(--ink);
}
.form input:focus, .form select:focus, .form textarea:focus{ outline:2px solid var(--navy); outline-offset:1px; }
.form textarea{ min-height:120px; resize:vertical; }

/* ---------- About page ---------- */
.about-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:44px; align-items:center; }
.timeline{ list-style:none; margin:0; padding:0; }
.timeline li{ display:grid; grid-template-columns: 90px 1fr; gap: 20px; padding: 20px 0; border-top:1px solid var(--line); }
.timeline li:first-child{ border-top:none; }
.timeline .yr{ font-family:'Fraunces',serif; font-size:1.4rem; color: var(--gold-deep); font-weight:600; }

/* ---------- App download page ---------- */
.app-card{
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  padding:28px; box-shadow: var(--paper-shadow);
}
.app-card .app-icon{
  width:76px; height:76px; border-radius: 18px; flex:0 0 auto;
  background: var(--navy); display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:1.6rem; font-weight:600; color:#fff;
}
.app-card .app-meta{ flex:1; min-width:220px; }
.app-card .app-meta h3{ margin:0 0 4px; }
.app-card .app-meta p{ margin:0; color:var(--ink-soft); font-size:.9rem; }
.app-specs{ display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; }
.app-specs span{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft); }

.install-steps{ list-style:none; margin:0; padding:0; counter-reset: step; }
.install-steps li{
  display:grid; grid-template-columns:44px 1fr; gap:18px;
  padding:22px 0; border-top:1px solid var(--line);
}
.install-steps li:first-child{ border-top:none; }
.install-steps .step-num{
  counter-increment: step; width:44px; height:44px; border-radius:50%;
  background: var(--teal-tint); color: var(--teal-deep);
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:1.05rem;
  display:flex; align-items:center; justify-content:center;
}
.install-steps .step-num::before{ content: counter(step); }
.install-steps h4{ margin:0 0 6px; font-family:'Fraunces',serif; font-size:1.02rem; color:var(--navy); }
.install-steps p{ margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.55; }

.trust-note{
  display:flex; gap:14px; align-items:flex-start;
  background: var(--teal-tint); border-radius: var(--radius-lg); padding:20px 22px;
  margin-top:24px;
}
.trust-note .ic{ font-size:1.3rem; line-height:1; flex:0 0 auto; }
.trust-note p{ margin:0; font-size:.86rem; color: var(--teal-deep); line-height:1.55; }

.badge-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.badge{ font-family:'IBM Plex Mono',monospace; font-size:.7rem; padding:6px 12px; border:1px solid var(--line-strong); border-radius:20px; color: var(--ink-soft); }

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .hero-grid, .pillars, .plan-body, .contact-grid, .about-grid, .cred-grid{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr 1fr; }
  .foot-grid{ grid-template-columns: 1fr 1fr; }
  .nav-links{
    position:fixed; top:70px; left:0; right:0; bottom:0;
    background: var(--ivory); flex-direction:column; align-items:stretch;
    padding: 16px 20px; overflow-y:auto;
    transform: translateX(100%); transition: transform .2s ease;
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-links > li{ width:100%; }
  .nav-links > li > a, .nav-links > li > button{ width:100%; justify-content:space-between; padding:14px 8px; border-bottom:1px solid var(--line); border-radius:0; }
  .dropdown{ position:static; box-shadow:none; border:none; opacity:1; visibility:visible; transform:none; display:none; padding-left:12px; }
  .nav-links > li.dd-open .dropdown{ display:block; }
  .nav-toggle{ display:block; }
  .nav-cta .btn span.long{ display:none; }
}
@media (max-width: 600px){
  .grid-3{ grid-template-columns: 1fr; }
  .foot-grid{ grid-template-columns: 1fr 1fr; }
  section{ padding: 52px 0; }
}

/* ---------- Floating WhatsApp button ---------- */
.wa-float{
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 200;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(15,42,74,0.28);
  transition: transform .15s ease, box-shadow .15s ease;
}
.wa-float:hover{ transform: translateY(-2px); box-shadow: 0 6px 18px rgba(15,42,74,0.34); }
.wa-float svg{ width: 28px; height: 28px; fill: #fff; }
@media (max-width: 600px){
  .wa-float{ right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .wa-float svg{ width: 26px; height: 26px; }
}

/* ---------- Quick Plan Calculator ---------- */
.calc-section{ background: var(--ivory-2); }
.calc-box{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--paper-shadow); overflow:hidden; margin-top:8px;
}
.calc-tabs{
  display:flex; flex-wrap:wrap; gap:2px;
  padding: 14px 14px 0; border-bottom:1px solid var(--line);
}
.calc-tab{
  background:none; border:none; cursor:pointer;
  font-family:'Work Sans',sans-serif; font-size:.84rem; font-weight:500;
  color: var(--ink-soft); padding:10px 14px;
  border-radius: var(--radius) var(--radius) 0 0;
  white-space:nowrap;
}
.calc-tab:hover{ background: rgba(15,42,74,0.05); }
.calc-tab.active{ color: var(--navy); background: var(--ivory-2); font-weight:600; }
.calc-body{ display:grid; grid-template-columns: 1fr 1fr; }
.calc-inputs{ padding:28px; border-right:1px solid var(--line); }
.calc-field{ margin-bottom:18px; }
.calc-field label{
  display:block; font-family:'Work Sans',sans-serif; font-size:.8rem;
  font-weight:500; color:var(--ink-soft); margin-bottom:6px;
}
.calc-field input[type="number"], .calc-field select{
  width:100%; padding:10px 12px; border:1px solid var(--line-strong);
  border-radius: var(--radius); font-family:'Work Sans',sans-serif; font-size:.95rem;
  background:#fff; color:var(--ink);
}
.calc-field input[type="number"]:focus, .calc-field select:focus{
  outline:2px solid var(--teal); outline-offset:1px;
}
.calc-result{ padding:28px; background: var(--ivory-2); }
.calc-result h4{ margin:0 0 14px; font-family:'Fraunces',serif; font-size:1.05rem; color:var(--navy); }
.calc-result-row{
  display:flex; justify-content:space-between; gap:14px; padding:10px 0;
  border-bottom:1px dashed var(--line); font-size:.86rem;
}
.calc-result-row:last-of-type{ border-bottom:none; }
.calc-result-row .rlabel{ color:var(--ink-soft); flex:0 0 46%; }
.calc-result-row .rval{
  font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--navy);
  text-align:right; flex:1;
}
.calc-note{ font-size:.76rem; color:var(--ink-soft); margin-top:14px; line-height:1.55; }
.calc-cta{ margin-top:18px; display:flex; }
@media (max-width:800px){
  .calc-body{ grid-template-columns: 1fr; }
  .calc-inputs{ border-right:none; border-bottom:1px solid var(--line); }
}
