/* gate.css: sample-report email gate + members section (2026-10-05). Direction B tokens with fallbacks. */
.or-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.or-vh { position: absolute; left: -9999px; }
.or-gate { border: 1.5px solid var(--ink, #1D2420); padding: 26px 26px 20px; max-width: 460px; width: calc(100% - 32px); background: #fff; color: var(--ink, #1D2420); border-radius: 0; }
.or-gate::backdrop { background: rgba(29, 36, 32, .55); }
.or-gate h2 { font-family: var(--wide, "Archivo", system-ui, sans-serif); font-stretch: 125%; font-weight: 800; font-size: 22px; margin: 0 0 8px; padding-right: 30px; }
.or-gate-sub { margin: 0 0 16px; color: var(--body, #33413A); }
.or-gate-close { position: absolute; right: 10px; top: 8px; margin: 0; }
.or-gate-close button { border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--ink, #1D2420); min-width: 44px; min-height: 44px; }
.or-gate label { display: block; font: 600 14px var(--wide, system-ui, sans-serif); margin-bottom: 6px; }
.or-gate input[type=email] { width: 100%; box-sizing: border-box; min-height: 48px; border: 1.5px solid var(--ink, #1D2420); padding: 0 12px; font-size: 17px; border-radius: 0; }
.or-gate .btn, .or-members .btn { margin-top: 12px; min-height: 48px; padding: 0 20px; border: 1.5px solid var(--ink, #1D2420); background: var(--ink, #1D2420); color: #fff; font: 700 15px var(--wide, system-ui, sans-serif); font-stretch: 125%; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; }
.or-gate .btn { width: 100%; }
.or-gate-err, .or-m-msg { color: #B3261E; font: 600 14px var(--wide, system-ui, sans-serif); margin: 8px 0 0; min-height: 1em; }
.or-m-msg.ok { color: var(--ink, #1D2420); }
.or-gate-done p { margin: 0 0 4px; }
.or-gate-fine, .or-m-fine { font: 13px/1.45 var(--wide, system-ui, sans-serif); color: var(--muted, #4A5A51); margin: 14px 0 0; }

.or-members { border-top: 1.5px solid var(--ink, #1D2420); background: var(--film, #EDF1EC); padding: 56px 0; }
.or-members-in { max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter, 40px); }
.or-members-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 12px 48px; align-items: end; margin-bottom: 28px; }
.or-members-head h2, .or-members-head h1 { font-family: var(--wide, "Archivo", system-ui, sans-serif); font-stretch: 125%; font-weight: 800; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.05; margin: 0; }
.or-members-head p { margin: 0; color: var(--body, #33413A); font-size: 18px; }
.or-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1.5px solid var(--ink, #1D2420); border-left: 1.5px solid var(--ink, #1D2420); }
.or-plan { background: #fff; border-right: 1.5px solid var(--ink, #1D2420); border-bottom: 1.5px solid var(--ink, #1D2420); padding: 22px 22px 24px; display: flex; flex-direction: column; }
.or-plan-best { box-shadow: inset 0 4px 0 var(--red, #C8372D); }
.or-plan-name { font: 800 19px var(--wide, system-ui, sans-serif); font-stretch: 125%; margin: 0 0 6px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.or-plan-tag { font: 700 12px var(--wide, system-ui, sans-serif); background: var(--red, #C8372D); color: #fff; padding: 3px 8px; letter-spacing: .02em; }
.or-plan-price { margin: 0; }
.or-plan-price b { font: 800 34px var(--wide, system-ui, sans-serif); font-stretch: 125%; }
.or-plan-price span { font: 600 14px var(--wide, system-ui, sans-serif); color: var(--muted, #4A5A51); }
.or-plan-note { font: 600 14px var(--wide, system-ui, sans-serif); color: var(--muted, #4A5A51); margin: 4px 0 12px; }
.or-plan ul { list-style: none; margin: 0 0 16px; padding: 0; flex: 1; }
.or-plan li { padding: 8px 0 8px 22px; border-top: 1px solid var(--rule-soft, #B8C4BC); position: relative; font-size: 16px; line-height: 1.4; color: var(--body, #33413A); }
.or-plan li::before { content: ""; position: absolute; left: 2px; top: .9em; width: 9px; height: 5px; border-left: 2px solid var(--red, #C8372D); border-bottom: 2px solid var(--red, #C8372D); transform: rotate(-45deg); }
.or-members .btn-ghost { background: #fff; color: var(--ink, #1D2420); }
.or-signup { border: 1.5px solid var(--ink, #1D2420); background: #fff; margin: 24px 0 0; padding: 18px 22px 20px; }
.or-signup legend { font: 800 17px var(--wide, system-ui, sans-serif); font-stretch: 125%; padding: 0 6px; }
.or-signup-row { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.or-radio { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 15px var(--wide, system-ui, sans-serif); }
.or-radio input { width: 20px; height: 20px; accent-color: var(--ink, #1D2420); }
.or-signup input[type=email] { flex: 1 1 260px; min-height: 48px; margin-top: 12px; border: 1.5px solid var(--ink, #1D2420); padding: 0 12px; font-size: 17px; border-radius: 0; }
@media (max-width: 900px) { .or-members-head { grid-template-columns: minmax(0, 1fr); } .or-plans { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .or-members { padding: 36px 0; } .or-members-in { padding: 0 16px; } .or-signup { padding: 14px 14px 16px; } .or-signup .btn { width: 100%; } }
