/* Geometrics Lab — guide campaign pages (2026-10-26). Loaded only on /opas/…, /sivustoarvio/; uses the site tokens. */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gh1{font-size:clamp(2.5rem,1.4rem + 3.2vw,4rem);line-height:1.02;margin-top:calc(var(--u)*2);max-width:13em}
.ghero{padding-top:calc(var(--u)*10)}
.gintro .lede{margin-top:calc(var(--u)*3);max-width:34rem}
.gintro .gform{margin-top:calc(var(--u)*5);max-width:34rem}
.gnotice{margin-top:calc(var(--u)*3);border-left:2px solid var(--gl-ink);padding:6px 0 6px 14px;font-weight:500;max-width:34rem}
.gcover{align-self:start;position:sticky;top:calc(var(--hdr) + 32px)}
.gcover picture,.gcover img{display:block;width:100%;height:auto}
.gcover img{box-shadow:0 0 0 1px var(--gl-line)}
.gcover--sm{max-width:240px}
.gcover--sm img{box-shadow:none}
.gform .ck{margin-top:calc(var(--u)*-1)}
.ckl,.rd{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:var(--fs-body);line-height:1.45;cursor:pointer}
.ckl input,.rd input{flex:none;width:22px;height:22px;margin:2px 0 0;accent-color:var(--gl-ink)}
.ckl input:focus-visible,.rd input:focus-visible{outline:2px solid var(--gl-ink);outline-offset:2px}
.gform .ck .cap{margin:6px 0 0 34px}
.gform .priv{margin-top:calc(var(--u)*-1)}
.gform .priv a,.gguide a,.gabout a,.gask .exp a,.gconfirm a{color:inherit}
.fs{border:0;padding:0;margin:0;min-width:0}
.fs legend{font-weight:500;font-size:var(--fs-ui);margin-bottom:10px;padding:0}
.rds{display:flex;flex-wrap:wrap;gap:10px 24px}
.rd{min-height:44px;align-items:center}
.rd input{margin:0}
.field[data-invalid="1"] .rds{outline:2px solid var(--gl-ink);outline-offset:6px}
.gl-list li{position:relative;padding-left:20px}
.gl-list li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:1px;background:var(--gl-ink)}
.gl-list{list-style:none;margin:10px 0 0;padding:0}
.gl-list li+li{margin-top:6px}
.gabout a{text-underline-offset:3px}
.gthanks{padding-top:calc(var(--u)*12)}
.gthanks .gmsg:empty{display:none}
.gthanks .gcall{font-weight:500;margin-top:calc(var(--u)*2)}
.gcall[hidden]{display:none}
.gthanks .gmsg{font-weight:500;border-left:2px solid var(--gl-ink);padding:6px 0 6px 14px;margin-top:calc(var(--u)*2)}
.gnext{background:var(--gl-surface)}
.scope{margin-top:calc(var(--u)*4);display:grid;gap:calc(var(--u)*3)}
.scope>div{padding-top:14px;border-top:1px solid var(--gl-ink)}
.scope .impl{border-top:1px solid var(--gl-line)}
.gassess .facts{margin-top:calc(var(--u)*3)}
.gguide{margin-top:calc(var(--u)*4)}
.gconfirm{outline:none}
.gconfirm .h2{font-size:var(--fs-h2)}
@media (max-width:899px){
  .ghero{padding-top:calc(var(--u)*6)}
  .gh1{font-size:clamp(2.125rem,1.2rem + 4.4vw,2.75rem)}
  .gcover{position:static;max-width:240px;order:-1;margin-bottom:calc(var(--u)*1)}
  .ghero .gcover,.gthanks .gcover{display:none}
            .rds{flex-direction:column;gap:2px}
}
.field .ckl input,.field .rd input{appearance:auto;-webkit-appearance:auto;width:22px;height:22px;min-height:0;padding:0;border:0;background:none}
.field label.ckl,.field label.rd{display:flex;font-weight:400;margin-bottom:0}
.field label.ckl span{padding-top:1px}
.gform[hidden],.gconfirm[hidden],.phone-wrap[hidden],.gnotice[hidden]{display:none}
.gopen .cta{margin-top:calc(var(--u)*3)}

/* ---- landing page, revision 3 (2026-10-26): headline + benefit line across; below, the booklet and the form card side by side ---- */
.hdr--campaign .btn--ghost{background:transparent;color:var(--gl-ink);border:1px solid var(--gl-ink)}
.btn--l{font-size:1.0625rem;padding:17px 28px}
.ghero{padding-top:calc(var(--u)*5);padding-bottom:calc(var(--u)*9)}
.ghero-g{row-gap:0;align-items:center}
.ghero .gintro{grid-row:1}
.ghero .gbook{grid-row:2;margin-top:calc(var(--u)*3);display:flex;flex-direction:column;align-items:center}
.ghero .gbook picture{display:block;width:100%;max-width:400px}
.ghero .gformcell{grid-row:2;margin-top:calc(var(--u)*3);background:var(--gl-surface);padding:calc(var(--u)*4) calc(var(--u)*4) calc(var(--u)*3.5)}
.gformh{font-weight:600;font-size:1.375rem;line-height:1.2}
.gh1{font-size:clamp(2.375rem,1.3rem + 2.6vw,3.75rem);line-height:1.02;margin-top:calc(var(--u)*1.5);max-width:16em}
.gintro .lede{margin-top:calc(var(--u)*2);max-width:40rem}
.gformcell .gform{margin-top:calc(var(--u)*2.5);row-gap:calc(var(--u)*2.25)}
.gformcell .field input{background:var(--gl-paper)}
.gmock{display:block;width:100%;height:auto}
.gproduct{margin-top:10px;font-weight:500;font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--gl-text-3);line-height:1.6;text-align:center}
.gproduct span{display:block;white-space:nowrap}
.gform .cta{margin-top:calc(var(--u)*.5)}
.gform .priv{margin-top:0}
.gform .ck{margin-top:0}
.gnotice2{font-size:var(--fs-cap);line-height:1.5;color:var(--gl-ink);font-weight:500;max-width:34rem;margin:0}
.gnotice2 a{color:inherit;text-underline-offset:3px;font-weight:400}
.gpair{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-items:start}
.gpair .field{min-width:0}
.gform .btn--l{width:100%;text-align:center}
@media (min-width:900px) and (max-height:820px){
  .ghero{padding-top:calc(var(--u)*3);padding-bottom:calc(var(--u)*6)}
  .gh1{font-size:clamp(2.25rem,1.2rem + 2.2vw,3.125rem)}
  .gintro .lede{margin-top:calc(var(--u)*1.5)}
  .ghero .gbook,.ghero .gformcell{margin-top:calc(var(--u)*2)}
  .ghero .gbook picture{max-width:330px}
  .ghero .gformcell{padding:calc(var(--u)*2.75) calc(var(--u)*3)}
  .gformcell .gform{margin-top:calc(var(--u)*1.75);row-gap:calc(var(--u)*1.5)}
  .gproduct{display:none}
}
@media (min-width:900px) and (max-height:740px){
  .ghero{padding-top:calc(var(--u)*2)}
  .gh1{font-size:2.625rem}
  .ghero .gbook,.ghero .gformcell{margin-top:calc(var(--u)*1.5)}
  .ghero .gbook picture{max-width:300px}
  .ghero .gformcell{padding:calc(var(--u)*2.25) calc(var(--u)*3)}
  .gformh{font-size:1.1875rem}
  .gformcell .gform{margin-top:calc(var(--u)*1.25);row-gap:calc(var(--u)*1.25)}
  .gform .btn--l{padding:14px 24px}
}
@media (max-width:899px){
  .gpair{grid-template-columns:1fr;row-gap:calc(var(--u)*3)}
  .hdr--campaign .btn--ghost{padding:10px 14px;min-height:44px}
  .ghero{padding-top:calc(var(--u)*3);padding-bottom:calc(var(--u)*7)}
  .ghero .gintro,.ghero .gformcell,.ghero .gbook{grid-row:auto}
  .ghero .gbook{flex-direction:row;align-items:center;gap:16px;margin-top:calc(var(--u)*2.5)}
  .ghero .gbook picture{flex:0 0 112px;max-width:112px}
  .gproduct{text-align:left;margin-top:0}
  .ghero .gformcell{margin:calc(var(--u)*2.5) calc(var(--margin,16px)*-1) 0;padding:calc(var(--u)*3) var(--margin,16px)}
  .gformh{font-size:1.25rem}
}

.gbens{background:var(--gl-surface)}
/* 2026-10-27: text-only benefits (page images removed) — tighter section, numbered rule on top of each column */
.gbens{padding-top:calc(var(--u)*8);padding-bottom:calc(var(--u)*9)}
.gbenlist{list-style:none;margin:calc(var(--u)*3) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.gnumx{font-weight:500;font-size:var(--fs-label);letter-spacing:.1em;color:var(--gl-text-3);padding-top:12px;border-top:1px solid var(--gl-ink)}
.gben .h3{margin-top:8px;font-size:1.25rem;line-height:1.25;max-width:16em}
.gben .body{margin-top:8px;max-width:22rem}
.gabout-b .body{max-width:34rem}
.glinks{margin-top:14px}
.glinks a{color:inherit;text-underline-offset:3px}
.gask{padding-top:calc(var(--u)*10);padding-bottom:calc(var(--u)*12)}
@media (max-width:899px){
  .gbens{padding-top:calc(var(--u)*6);padding-bottom:calc(var(--u)*6)}
  .gbenlist{grid-template-columns:1fr;gap:calc(var(--u)*3.5);margin-top:calc(var(--u)*2.5)}
  .gnumx{padding-top:10px}
}

/* ---- /oppaat/ guide collection (2026-10-26): one feature block per guide ---- */
.gindex-title{padding-bottom:calc(var(--u)*4)}
.gindex{padding-top:calc(var(--u)*2)}
.gfeat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:calc(var(--u)*6);align-items:center;background:var(--gl-surface);padding:calc(var(--u)*6) calc(var(--u)*6)}
.gfeat+.gfeat{margin-top:calc(var(--u)*4)}
.gfeat-img picture{display:block;max-width:380px;margin:0 auto}
.gfeat-txt .h2{margin-top:calc(var(--u)*1.5);max-width:16em}
.gfeat-txt .lede{margin-top:calc(var(--u)*2);max-width:34rem}
.gfeat-meta{text-align:left;margin-top:calc(var(--u)*2.5)}
.gfeat-txt .cta{margin-top:calc(var(--u)*3)}
@media (max-width:899px){
  .gfeat{grid-template-columns:1fr;gap:calc(var(--u)*3);padding:calc(var(--u)*4) calc(var(--u)*2.5)}
  .gfeat-img picture{max-width:240px}
  .gfeat-txt .btn--l{width:100%;text-align:center}
}

/* 2026-10-27 mobile: the assessment facts (one longer item) must not force a two-column grid wider than the screen */
@media (max-width:520px){.gassess .facts{grid-template-columns:1fr}.gassess .facts li::before{display:none}}

/* 2026-10-27: phone required again (v4) — required fields carry an asterisk, explained once above the fields */
.gform .req{font-weight:500;margin-left:1px}
.gform .greq{margin:0}
