/* ════════════════════════════════════════════════════════════════════
   Bioinformatics Analysis Services — "research dossier" field-guide  (#sv-root)
   Distinctive editorial layout: numbered service catalogue + sticky index.
   Tokens are declared here so the reused contact-form classes (.ct-*) resolve.
   ════════════════════════════════════════════════════════════════════ */
#sv-root{
	--g-deep:#123f2d; --g:#1d6b4f; --g-soft:#2f8a67; --mint:#9fe0c0;
	--clay:#bd6a36; --clay-dk:#9a5125;
	--ink:#1a1c16; --ink-2:#33372c; --muted:#6a6f60; --faint:#9a9e8d;
	--bone:#f4efe4; --paper:#fffdf8; --cream:#f3eee2;
	--line:#e3dccb; --line-2:#efeadd;
	--ease:cubic-bezier(.22,.61,.36,1);
	position:relative;
	font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
	color:var(--ink); background:var(--bone); -webkit-font-smoothing:antialiased;
}
#sv-root *{box-sizing:border-box;}
.sv-grain{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.45;mix-blend-mode:multiply;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");}
.sv-wrap{max-width:1200px;margin:0 auto;padding:0 28px;position:relative;z-index:1;}

/* Shared bits */
.sv-kicker{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;font-weight:800;letter-spacing:.16em;
	text-transform:uppercase;color:var(--mint);margin-bottom:16px;}
.sv-kicker-dark{color:var(--g-deep);}
.sv-kicker-dot{width:7px;height:7px;border-radius:50%;background:var(--clay);box-shadow:0 0 0 4px rgba(189,106,54,.18);}
.sv-h2{font-family:"Newsreader",Georgia,serif;font-weight:600;font-size:clamp(28px,3.8vw,42px);line-height:1.08;
	letter-spacing:-.015em;margin:0;color:var(--ink);}
.sv-h2-light{color:#fff;}
.sv-h2-light em{font-style:italic;color:var(--mint);}

/* ═══ HERO ═══ */
.sv-hero{position:relative;overflow:hidden;color:#fff;padding:78px 0 86px;
	background:radial-gradient(115% 90% at 8% 0%,#1a5239 0%,transparent 52%),linear-gradient(160deg,#0b1d13 0%,#123f2d 55%,#0e3324 100%);}
.sv-hero-glow{position:absolute;top:-180px;right:-140px;width:560px;height:560px;border-radius:50%;
	background:radial-gradient(circle,rgba(47,138,103,.30) 0%,transparent 64%);pointer-events:none;}
.sv-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
	background:linear-gradient(90deg,transparent,rgba(159,224,192,.4),transparent);}
.sv-hero .sv-wrap{max-width:1200px;}
.sv-kicker{animation:sv-fade .6s var(--ease) .05s both;}
.sv-title{font-family:"Newsreader",Georgia,serif;font-weight:600;font-size:clamp(36px,6vw,64px);line-height:1.02;
	letter-spacing:-.02em;margin:0 0 20px;max-width:14ch;color:#fff;animation:sv-fade .6s var(--ease) .12s both;}
.sv-title em{font-style:italic;color:var(--mint);}
.sv-lead{font-size:1.14rem;line-height:1.66;color:rgba(255,255,255,.8);max-width:600px;margin:0 0 30px;
	animation:sv-fade .6s var(--ease) .2s both;}
.sv-hero-cta{display:flex;flex-wrap:wrap;gap:14px;animation:sv-fade .6s var(--ease) .28s both;}
.sv-btn{display:inline-flex;align-items:center;gap:9px;height:54px;padding:0 26px;border-radius:13px;
	font-size:1rem;font-weight:800;text-decoration:none;transition:all .2s var(--ease);}
.sv-btn-solid{background:var(--mint);color:var(--g-deep);border:1.5px solid var(--mint);}
.sv-btn-solid:hover{background:#b6ecd1;border-color:#b6ecd1;transform:translateY(-2px);box-shadow:0 18px 38px -16px rgba(159,224,192,.55);}
.sv-btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);}
.sv-btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;transform:translateY(-2px);}
.sv-hero-trust{list-style:none;display:flex;flex-wrap:wrap;gap:12px 26px;margin:34px 0 0;padding:0;
	animation:sv-fade .6s var(--ease) .36s both;}
.sv-hero-trust li{display:inline-flex;align-items:center;gap:9px;font-size:.88rem;font-weight:600;color:rgba(255,255,255,.82);}
.sv-hero-trust svg{width:18px;height:18px;color:var(--mint);}
@keyframes sv-fade{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* ═══ CATALOGUE ═══ */
.sv-catalogue{padding:72px 0 30px;}
.sv-cat-grid{display:grid;grid-template-columns:248px minmax(0,1fr);gap:56px;align-items:start;}

/* Sticky index */
.sv-index{position:sticky;top:96px;}
.sv-index-h{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
	margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.sv-index-list{list-style:none;margin:0 0 22px;padding:0;counter-reset:none;}
.sv-index-list li{margin:0;}
.sv-index-list a{display:flex;align-items:baseline;gap:12px;padding:9px 10px;border-radius:9px;text-decoration:none;
	color:var(--muted);transition:all .18s var(--ease);border-left:2px solid transparent;}
.sv-index-list a:hover{color:var(--ink);background:rgba(29,107,79,.05);}
.sv-index-list a.is-active{color:var(--g-deep);background:rgba(29,107,79,.08);border-left-color:var(--clay);}
.sv-index-n{font-family:"Newsreader",Georgia,serif;font-size:.82rem;font-weight:600;color:var(--clay-dk);flex:0 0 auto;width:20px;}
.sv-index-name{font-size:.88rem;font-weight:600;line-height:1.35;}
.sv-index-cta{display:inline-block;font-size:.86rem;font-weight:800;color:var(--g-deep);text-decoration:none;
	padding:10px 0 0;border-top:1px solid var(--line);width:100%;transition:color .18s var(--ease);}
.sv-index-cta:hover{color:var(--clay-dk);}

/* Sections */
.sv-sections{min-width:0;}
.sv-sec{padding:8px 0 52px;margin-bottom:52px;border-bottom:1px solid var(--line);scroll-margin-top:96px;}
.sv-sec:last-child{border-bottom:0;margin-bottom:0;}
.sv-sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.sv-sec-ico{width:54px;height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;
	background:#fff;border:1px solid var(--line);color:var(--g-deep);box-shadow:0 1px 2px rgba(26,28,22,.04);}
.sv-sec-ico svg{width:26px;height:26px;}
.sv-sec-num{font-family:"Newsreader",Georgia,serif;font-size:3.4rem;font-weight:600;line-height:1;color:var(--line);
	letter-spacing:-.02em;}
.sv-sec-title{font-family:"Newsreader",Georgia,serif;font-weight:600;font-size:clamp(23px,2.7vw,32px);line-height:1.12;
	letter-spacing:-.01em;margin:0 0 7px;color:var(--ink);}
.sv-sec-tag{font-size:.96rem;font-weight:600;color:var(--clay-dk);margin:0 0 20px;}
.sv-sec-body p{font-size:1.005rem;line-height:1.72;color:var(--ink-2);margin:0 0 16px;max-width:70ch;}
.sv-sec-body p:last-child{margin-bottom:0;}
.sv-sec-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;}
.sv-sec-tags{display:flex;flex-wrap:wrap;gap:8px;}
.sv-pill{font-size:.74rem;font-weight:700;letter-spacing:.02em;color:var(--g-deep);background:#eaf3ec;
	border:1px solid #d6e7da;border-radius:999px;padding:6px 12px;}
.sv-sec-link{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;font-weight:800;color:var(--g-deep);
	text-decoration:none;white-space:nowrap;transition:gap .2s var(--ease),color .2s var(--ease);}
.sv-sec-link:hover{color:var(--clay-dk);gap:12px;}

/* ═══ FAQ ═══ */
.sv-faq{padding:60px 0 70px;}
.sv-faq-head{text-align:center;margin-bottom:34px;}
.sv-faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.sv-faq-item{background:var(--paper);border:1px solid var(--line);border-radius:15px;overflow:hidden;
	transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
.sv-faq-item[open]{border-color:var(--g-soft);box-shadow:0 18px 44px -28px rgba(18,63,45,.4);}
.sv-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;
	padding:20px 22px;list-style:none;}
.sv-faq-item summary::-webkit-details-marker{display:none;}
.sv-faq-q{font-family:"Hanken Grotesk",sans-serif;font-size:1.02rem;font-weight:700;color:var(--ink);margin:0;line-height:1.4;}
.sv-faq-mark{position:relative;flex:0 0 auto;width:22px;height:22px;}
.sv-faq-mark::before,.sv-faq-mark::after{content:"";position:absolute;top:50%;left:50%;width:13px;height:2.4px;
	border-radius:2px;background:var(--g-deep);transform:translate(-50%,-50%);transition:transform .25s var(--ease);}
.sv-faq-mark::after{transform:translate(-50%,-50%) rotate(90deg);}
.sv-faq-item[open] .sv-faq-mark::after{transform:translate(-50%,-50%) rotate(0);}
.sv-faq-a{padding:0 22px 22px;}
.sv-faq-a p{font-size:.96rem;line-height:1.68;color:var(--muted);margin:0;max-width:68ch;}

/* ═══ ENQUIRY ═══ */
.sv-enquiry{position:relative;overflow:hidden;padding:74px 0 88px;color:#fff;
	background:radial-gradient(110% 80% at 100% 0%,#1a5239 0%,transparent 55%),linear-gradient(155deg,#0e3324 0%,#123f2d 60%,#0b1d13 100%);}
.sv-enquiry::before{content:"";position:absolute;top:-140px;left:-120px;width:420px;height:420px;border-radius:50%;
	background:radial-gradient(circle,rgba(159,224,192,.14) 0%,transparent 64%);pointer-events:none;}
.sv-enquiry-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:48px;align-items:start;}
.sv-enquiry-intro{padding-top:8px;}
.sv-enquiry-intro .sv-kicker{color:var(--mint);}
.sv-enquiry-intro .sv-h2{margin-bottom:16px;}
.sv-enquiry-sub{font-size:1.05rem;line-height:1.64;color:rgba(255,255,255,.78);max-width:420px;margin:0 0 24px;}
.sv-enquiry-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.sv-enquiry-points li{display:flex;align-items:center;gap:11px;font-size:.95rem;font-weight:600;color:rgba(255,255,255,.9);}
.sv-enquiry-points svg{flex:0 0 auto;width:18px;height:18px;color:var(--mint);background:rgba(159,224,192,.14);border-radius:50%;padding:3px;}

.sv-form-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:30px 30px 26px;
	box-shadow:0 40px 90px -45px rgba(0,0,0,.6);}
.sv-form-title{font-family:"Newsreader",Georgia,serif;font-weight:600;font-size:1.32rem;line-height:1.25;
	color:var(--ink);margin:0 0 22px;padding-bottom:16px;border-bottom:1px solid var(--line);}
/* The .ct-* form internals inherit from contact.css; tokens come from #sv-root. */
.sv-form-card .ct-submit{margin-top:6px;}

/* ═══ Responsive ═══ */
@media (max-width:1000px){
	.sv-cat-grid{grid-template-columns:1fr;gap:30px;}
	.sv-index{position:static;display:none;}
	.sv-enquiry-grid{grid-template-columns:1fr;gap:30px;}
	.sv-enquiry-sub{max-width:none;}
}
@media (max-width:600px){
	.sv-wrap{padding:0 20px;}
	.sv-hero{padding:60px 0 64px;}
	.sv-sec-num{font-size:2.6rem;}
	.sv-sec-foot{flex-direction:column;align-items:flex-start;}
	.sv-form-card{padding:24px 20px;}
}
