/* Bio-Lec Contact page — unique sections only.
   Shared tokens/base/buttons/reveal come from common/css/page-shell.css.
   Scoped under .blm-page; container width from .blm-container (common.css). */

/* ===== HERO ===== */
.blm-page .hero{position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--green-deep) 0%,var(--green-deep-2) 55%,#03396B 100%);
  color:#fff;padding:80px 0 84px;}
.blm-page .hero::before{content:"";position:absolute;top:-180px;right:-120px;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(158,208,242,.32),transparent 70%);pointer-events:none;}
.blm-page .hero::after{content:"";position:absolute;bottom:-200px;left:-120px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(50,154,224,.30),transparent 70%);pointer-events:none;}
.blm-page .hero .blm-container{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.blm-page .badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);padding:8px 16px;font-size:.82rem;
  font-weight:500;color:#fff;margin-bottom:24px;}
.blm-page .badge i{width:15px;height:15px;color:var(--green-leaf);}
.blm-page .hero h1{font-family:var(--font-serif);font-weight:600;font-size:clamp(2.3rem,4.4vw,3.4rem);line-height:1.1;
  color:#fff;margin:0 0 18px;letter-spacing:-.02em;}
.blm-page .hero h1 em{font-style:italic;color:var(--green-leaf);text-decoration:underline;text-decoration-thickness:2px;
  text-underline-offset:6px;text-decoration-color:rgba(158,208,242,.55);}
.blm-page .hero .sub{font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.82);max-width:480px;margin:0 0 28px;}
.blm-page .hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;}

.blm-page .qcard{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-xl);
  padding:30px 30px 26px;backdrop-filter:blur(4px);}
.blm-page .qcard h3{color:#fff;font-size:1.05rem;font-family:var(--font-sans);font-weight:600;margin:0 0 18px;
  display:flex;align-items:center;gap:9px;}
.blm-page .qcard h3 i{width:18px;height:18px;color:var(--green-leaf);}
.blm-page .qrow{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid rgba(255,255,255,.12);}
.blm-page .qrow:first-of-type{border-top:0;}
.blm-page .qrow .ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.14);
  color:var(--green-leaf);display:flex;align-items:center;justify-content:center;}
.blm-page .qrow .ic i{width:19px;height:19px;}
.blm-page .qrow .lbl{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);margin:0 0 3px;}
.blm-page .qrow .val{color:#fff;font-weight:600;font-size:1rem;text-decoration:none;line-height:1.4;}
.blm-page .qrow .val:hover{text-decoration:underline;}
.blm-page .qrow .val.mono{font-family:var(--font-mono);letter-spacing:.01em;}
.blm-page .qrow .meta{font-size:.84rem;color:rgba(255,255,255,.68);margin:2px 0 0;}

/* ===== FORM + ASIDE ===== */
.blm-page .formsec{padding:72px 0 80px;}
.blm-page .formgrid{display:grid;grid-template-columns:1.35fr .9fr;gap:48px;align-items:start;}
/* Swapped layout (contact-us): FAQ on the left, form on the right */
.blm-page .formgrid--swap{grid-template-columns:.9fr 1.35fr;}
.blm-page .formgrid--swap .formcard{order:2;}
.blm-page .formgrid--swap .aside{order:1;}
.blm-page .formcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);
  padding:44px;box-shadow:var(--shadow-2);}
.blm-page .formcard h2{font-size:1.7rem;margin-bottom:8px;}
.blm-page .formcard .intro{color:var(--stone);margin:0 0 28px;}

.blm-page .aside{display:flex;flex-direction:column;gap:20px;}
.blm-page .panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-1);}
.blm-page .panel h3{font-size:1.12rem;margin-bottom:18px;display:flex;align-items:center;gap:9px;}
.blm-page .panel h3 i{width:19px;height:19px;color:var(--green-deep);}
.blm-page .irow{display:flex;align-items:flex-start;gap:13px;padding:12px 0;border-top:1px solid var(--line);}
.blm-page .irow:first-of-type{border-top:0;padding-top:0;}
.blm-page .irow .ic{flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:var(--green-wash);color:var(--green-deep);
  display:flex;align-items:center;justify-content:center;}
.blm-page .irow .ic i{width:18px;height:18px;}
.blm-page .irow .lbl{font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--stone);margin:0 0 2px;}
.blm-page .irow .val{color:var(--ink);font-weight:600;text-decoration:none;font-size:.97rem;line-height:1.45;}
.blm-page .irow a.val:hover{text-decoration:underline;color:var(--green-deep);}
.blm-page .irow .val.mono{font-family:var(--font-mono);letter-spacing:.01em;}

.blm-page .hours{margin:0;}
.blm-page .hours .hrow{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:.94rem;}
.blm-page .hours .hrow:first-child{border-top:0;}
.blm-page .hours .hrow .d{color:var(--ink-2);font-weight:500;}
.blm-page .hours .hrow .t{color:var(--stone);font-family:var(--font-mono);font-size:.88rem;}
.blm-page .hours .hrow.closed .t{color:var(--stone-2);}
.blm-page .hours .hrow.open{font-weight:600;}
.blm-page .hours .hrow.open .t{color:var(--green-deep);}
.blm-page .open-now{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:7px 13px;border-radius:var(--r-pill);
  background:var(--green-wash);color:var(--green-ink);font-size:.78rem;font-weight:600;}
.blm-page .open-now .dot{width:8px;height:8px;border-radius:50%;background:#1E9E5C;box-shadow:0 0 0 3px rgba(30,158,92,.2);}

.blm-page .social{display:flex;gap:10px;}
.blm-page .social a{width:44px;height:44px;border-radius:11px;border:1px solid var(--line);background:var(--cream);
  display:flex;align-items:center;justify-content:center;color:var(--green-deep);
  transition:transform .16s var(--ease-out),background .16s var(--ease-out),border-color .16s var(--ease-out);}
.blm-page .social a:hover{transform:translateY(-2px);background:var(--green-wash);border-color:var(--green-primary);}
.blm-page .social a i{width:20px;height:20px;}

/* ===== FAQ ===== */
.blm-page .faq{padding:0 0 84px;}
.blm-page .faq .head{text-align:center;max-width:640px;margin:0 auto 44px;}
.blm-page .faq .head .eyebrow{justify-content:center;}
.blm-page .faq .head p{color:var(--stone);margin-top:8px;}
.blm-page .faqlist{max-width:840px;margin:0 auto;display:grid;gap:14px;}
.blm-page .faqitem{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);
  overflow:hidden;transition:box-shadow .2s var(--ease-out);}
.blm-page .faqitem[open]{box-shadow:var(--shadow-2);}
.blm-page .faqitem summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;align-items:center;gap:16px;
  font-family:var(--font-serif);font-weight:600;font-size:1.06rem;color:var(--ink);}
.blm-page .faqitem summary::-webkit-details-marker{display:none;}
.blm-page .faqitem summary .q-ic{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:var(--green-wash);
  color:var(--green-deep);display:flex;align-items:center;justify-content:center;}
.blm-page .faqitem summary .q-ic i{width:18px;height:18px;}
.blm-page .faqitem summary .chev{margin-left:auto;flex:0 0 auto;color:var(--stone);transition:transform .24s var(--ease-out);}
.blm-page .faqitem summary .chev i{width:20px;height:20px;display:block;}
.blm-page .faqitem[open] summary .chev{transform:rotate(180deg);color:var(--green-deep);}
.blm-page .faqitem .a{padding:0 26px 24px 78px;color:var(--stone);line-height:1.7;}
.blm-page .faqitem .a p{margin:0;color:var(--stone);}

/* ===== CTA ===== */
.blm-page .cta{padding:0 0 84px;}
.blm-page .cta .panel{background:linear-gradient(135deg,var(--green-deep),var(--green-deep-2));border-radius:var(--r-xl);
  padding:58px 56px;position:relative;overflow:hidden;color:#fff;text-align:center;}
.blm-page .cta .panel::before,.blm-page .cta .panel::after{pointer-events:none;}
.blm-page .cta .panel > *{position:relative;z-index:1;}
.blm-page .cta .panel::before{content:"";position:absolute;top:-120px;right:-80px;width:360px;height:360px;
  background:radial-gradient(closest-side,rgba(158,208,242,.30),transparent 70%);}
.blm-page .cta .panel::after{content:"";position:absolute;bottom:-140px;left:-90px;width:340px;height:340px;
  background:radial-gradient(closest-side,rgba(50,154,224,.26),transparent 70%);}
.blm-page .cta .inner{position:relative;max-width:620px;margin:0 auto;}
.blm-page .cta .eyebrow{color:var(--green-leaf);justify-content:center;}
.blm-page .cta h2{color:#fff;margin-bottom:14px;}
.blm-page .cta p{color:rgba(255,255,255,.85);margin:0 auto 28px;max-width:520px;}
.blm-page .cta .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.blm-page .cta .phone{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:1.05rem;font-weight:600;
  text-decoration:none;margin-top:22px;}
.blm-page .cta .phone i{width:20px;height:20px;color:var(--green-leaf);}
.blm-page .cta .phone span{font-family:var(--font-mono);letter-spacing:.02em;}

@media (max-width:920px){
  .blm-page .hero{padding:60px 0 68px;}
  .blm-page .hero .blm-container{grid-template-columns:1fr;gap:40px;}
  .blm-page .formgrid{grid-template-columns:1fr;gap:32px;}
  .blm-page .formgrid--swap{grid-template-columns:1fr;}
  .blm-page .formgrid--swap .formcard{order:0;}
  .blm-page .formgrid--swap .aside{order:0;}
}
@media (max-width:560px){
  .blm-page .formcard{padding:30px 22px;}
  .blm-page .cta .panel{padding:44px 26px;}
  .blm-page .faqitem .a{padding-left:26px;}
}
