/* ===== Think Insurance Group — shared site styles (ink / white / crisp orange, McKinsey-modern) ===== */
:root{
  --ink:#12161B; --ink2:#394049; --mute:#737A82; --line:#E6E8EB; --paper:#F8F8F6;
  --orange:#F2541B; --deep:#FC4000; --amber:#FF9A00; --teal:#0E8C8C; --tdeep:#005F68; --tbright:#00AAA1;
}
*{ box-sizing:border-box; }
html,body{ background:#fff; color:var(--ink); }
body{ font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; margin:0; }
.display{ font-family:'Archivo',sans-serif; }
.tighter{ letter-spacing:-.025em; }
::selection{ background:rgba(242,84,27,.18); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; border-radius:6px; }

.kicker{ font-family:'Archivo'; font-weight:700; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--orange); }
.grad-text{ color:#F2541B; }
.hairline{ border:1px solid var(--line); }

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:'Archivo'; font-weight:600; border-radius:12px; cursor:pointer; text-decoration:none; transition:transform .2s, box-shadow .2s, background .2s, border-color .2s; }
.btn-primary{ background:var(--orange); color:#fff; box-shadow:0 10px 24px -10px rgba(242,84,27,.55); }
.btn-primary:hover{ transform:translateY(-2px); background:#e8480f; box-shadow:0 16px 32px -12px rgba(242,84,27,.7); }
.btn-ink{ background:var(--ink); color:#fff; } .btn-ink:hover{ transform:translateY(-2px); background:#000; }
.btn-ghost{ border:1.5px solid var(--line); color:var(--ink); } .btn-ghost:hover{ border-color:var(--ink); background:var(--paper); transform:translateY(-2px); }
.btn-white{ background:#fff; color:var(--ink); } .btn-white:hover{ transform:translateY(-2px); background:#f1f1ef; }
.btn-onink{ border:1.5px solid rgba(255,255,255,.25); color:#fff; } .btn-onink:hover{ background:rgba(255,255,255,.1); }

/* effects */
.lift{ transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s, border-color .3s; }
.lift:hover{ transform:translateY(-4px); box-shadow:0 26px 50px -30px rgba(18,22,27,.4); border-color:#D7DBDF; }
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}.reveal[data-d="5"]{transition-delay:.40s}
.float{ animation:float 6s ease-in-out infinite; } @keyframes float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.gauge-arc{ stroke-dasharray:540; stroke-dashoffset:540; transition:stroke-dashoffset 1.6s cubic-bezier(.16,1,.3,1); }
.gauge-arc.go{ stroke-dashoffset:270; }
.marquee{ display:flex; gap:3.2rem; width:max-content; animation:scrollx 32s linear infinite; }
@keyframes scrollx{ to{ transform:translateX(-50%) } }
.marquee-mask{ -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }

/* engraved guilloché mark for dark headers — the fine-line rosette of a certificate/policy.
   Replaces the old grid + orange-glow hero clichés. */
.engrave{ position:absolute; inset:0; pointer-events:none;
  background:url(engrave.svg) no-repeat;
  background-position:right -300px top -320px;
  background-size:min(54rem,140vw) auto;
  -webkit-mask-image:linear-gradient(120deg,transparent 42%,#000 92%);
          mask-image:linear-gradient(120deg,transparent 42%,#000 92%); }
@media(max-width:640px){ .engrave{ background-position:right -230px top -240px; background-size:40rem auto; opacity:.65; } }
/* legacy texture hooks neutralised (kept so any missed markup renders nothing, not a broken grid) */
.dot-grid,.ink-grid,.glow-orange{ background:none !important; }

/* nav */
.site-nav{ position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(255,255,255,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid transparent; transition:box-shadow .3s, border-color .3s; }
.site-nav.scrolled{ box-shadow:0 1px 0 rgba(18,22,27,.06); border-bottom-color:var(--line); }
.navlink{ font-size:14px; font-weight:500; color:var(--ink2); text-decoration:none; transition:color .2s; }
.navlink:hover,.navlink.active{ color:var(--ink); }
.navlink.active{ font-weight:600; }

/* nav dropdown (Employee Benefits) — desktop hover/focus, keyboard accessible */
.nav-dd{ position:relative; display:inline-flex; align-items:center; }
.nav-dd>.navlink{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; }
.nav-dd>.navlink svg{ width:11px; height:11px; margin-top:1px; transition:transform .2s; }
.nav-dd:hover>.navlink svg,.nav-dd:focus-within>.navlink svg{ transform:rotate(180deg); }
.nav-dd-menu{ position:absolute; top:100%; left:-14px; padding-top:16px; min-width:266px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s; z-index:60; }
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-dd-inner{ background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 26px 60px -30px rgba(18,22,27,.45); padding:8px; }
.nav-dd-item{ display:block; padding:10px 14px; border-radius:10px; text-decoration:none; transition:background .15s; }
.nav-dd-item:hover{ background:var(--paper); }
.nav-dd-item b{ display:block; font-size:14px; font-weight:600; color:var(--ink); }
.nav-dd-item span{ display:block; font-size:12px; color:var(--ink2); margin-top:2px; line-height:1.35; }

/* layout helpers */
.container{ max-width:1400px; margin:0 auto; padding-left:clamp(1.25rem,2.5vw,2rem); padding-right:clamp(1.25rem,2.5vw,2rem); }
/* max-width utilities missing from the purged Tailwind build (define here so titles/headers run wide reliably) */
/* headings/heroes/section-intros fill the container width (run text across, no left-cap) */
.max-w-4xl,.max-w-5xl,.max-w-6xl,.max-w-7xl{ max-width:none; }

.section{ padding-top:6rem; padding-bottom:6rem; }
@media(min-width:640px){ .section{ padding-top:7rem; padding-bottom:7rem; } }

/* ===== dark hero / dark sections (premium ink treatment, from the client workspace) ===== */
.hero-dark{ background:var(--ink); color:#fff; }
.hero-dark .kicker{ color:var(--amber); }
/* text on ink */
.hero-dark .text-ink,.hero-dark h1,.hero-dark h2,.hero-dark h3,.hero-dark h4,.hero-dark b.text-ink,.hero-dark .font-semibold.text-ink{ color:#fff; }
.hero-dark .text-ink2{ color:rgba(255,255,255,.74); }
.hero-dark .text-mute{ color:rgba(255,255,255,.55); }
/* surfaces on ink */
.hero-dark .bg-white{ background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.12); box-shadow:0 40px 90px -50px rgba(0,0,0,.7); }
.hero-dark .hairline{ border-color:rgba(255,255,255,.12); }
.hero-dark .bg-paper,.hero-dark .hover\:bg-paper:hover{ background:rgba(255,255,255,.06); }
.hero-dark .bg-line,.hero-dark .border-line{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.12); }
/* buttons on ink */
.hero-dark .btn-ghost{ border-color:rgba(255,255,255,.24); color:#fff; }
.hero-dark .btn-ghost:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.55); }
/* dark stat card usable anywhere */
.stat-ink{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:16px; }

input,select,textarea{ color-scheme:light; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none!important; transition:none!important; }
  .reveal{ opacity:1!important; transform:none!important; }
  .gauge-arc{ stroke-dashoffset:270 !important; }
  html{ scroll-behavior:auto; }
}
