/* Contract boundaries: an open paper section, two schematic illustrations. */
.v2-protection { --v2-protection-green:#526440; background:var(--v2-paper); color:var(--v2-ink); padding:68px 36px 60px; scroll-margin-top:104px; }
.v2-hero ~ .v2-protection { scroll-margin-top:77px; }
.v2-protection-inner { max-width:1288px; margin:auto; }
.v2-protection-eyebrow { display:flex; align-items:center; gap:12px; font-size:16px; line-height:1.5; font-weight:500; margin:0 0 28px; }
.v2-protection-eyebrow > span { width:8px; height:8px; background:var(--v2-protection-green); border-radius:50%; flex:none; }
.v2-protection-heading { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:end; gap:clamp(36px,6vw,88px); }
.v2-protection h2 { font-size:clamp(44px,4.5vw,64px); line-height:1.07; font-weight:500; letter-spacing:-.055em; margin:0; overflow-wrap:anywhere; text-wrap:balance; }
.v2-protection h2 span { display:block; }
.v2-protection h2 span + span { color:var(--v2-protection-green); }
.v2-protection-intro { font-size:18px; line-height:1.7; color:#555d51; max-width:43ch; margin:0 0 3px; text-wrap:pretty; }
.v2-protection-boundaries { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-block:1px solid #cbd0c4; margin-top:40px; }
.v2-protection-boundary { min-width:0; padding:14px 36px 30px 0; }
.v2-protection-boundary + .v2-protection-boundary { border-left:1px solid #cbd0c4; padding:14px 0 30px 36px; }
.v2-protection-diagram { height:190px; margin-bottom:15px; }
.v2-protection-diagram svg { display:block; height:100%; width:100%; stroke-width:1.2; stroke-linejoin:round; }
.v2-protection-grid { stroke:#9ba591; opacity:.65; }
.v2-protection-wire { stroke:#526440; }
.v2-protection-accent { color:var(--v2-protection-green); stroke:currentColor; stroke-width:1.8; }
.v2-protection-rule { display:flex; gap:17px; align-items:baseline; }
.v2-protection-number { font-size:16px; line-height:1.5; color:var(--v2-protection-green); font-variant-numeric:tabular-nums; flex:none; }
.v2-protection-rule h3 { margin:0; font-weight:500; font-size:24px; line-height:1.3; letter-spacing:-.035em; overflow-wrap:anywhere; }
.v2-protection-rule p { margin:10px 0 0; font-size:18px; line-height:1.65; color:#555d51; max-width:39ch; text-wrap:pretty; }
.v2-protection-contract { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:center; padding-top:30px; }
.v2-protection-document-label { margin:0 0 10px; font-size:16px; line-height:1.5; color:#555d51; }
.v2-protection-closing { margin:0; font-size:25px; line-height:1.35; letter-spacing:-.035em; font-weight:500; text-wrap:pretty; }
.v2-protection-note { font-size:16px; line-height:1.65; color:#555d51; margin:12px 0 0; max-width:62ch; text-wrap:pretty; }
.v2-protection-guide { position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-height:60px; padding:7px 7px 7px 22px; border:1px solid #b0b8a6; border-radius:4px; font-size:17px; line-height:1.5; max-width:350px; transition:color .22s,border-color .22s; }
.v2-protection-guide::before { content:''; position:absolute; inset:0; z-index:-1; background:var(--v2-accent); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.25,1,.5,1); }
.v2-protection-guide-icon { display:grid; place-items:center; flex:none; width:44px; height:44px; background:#e6eadd; color:var(--v2-protection-green); border-radius:2px; transition:background .22s,color .22s; }
.v2-protection-guide-icon svg { width:22px; height:22px; transition:transform .25s; }
.v2-protection-guide:is(:hover,:focus-visible) { color:var(--v2-ink); border-color:var(--v2-accent); }
.v2-protection-guide:is(:hover,:focus-visible)::before { transform:scaleX(1); }
.v2-protection-guide:is(:hover,:focus-visible) .v2-protection-guide-icon { background:var(--v2-ink); color:var(--v2-accent); }
.v2-protection-guide:is(:hover,:focus-visible) svg { transform:rotate(-45deg); }
.v2-protection-guide:focus-visible { outline:2px solid var(--v2-protection-green); outline-offset:5px; }
.v2-protection-boundary.is-visible .v2-protection-trace { animation:v2-protection-draw .65s cubic-bezier(.25,1,.5,1) both; }
@keyframes v2-protection-draw { from { stroke-dasharray:1; stroke-dashoffset:1; } to { stroke-dasharray:1; stroke-dashoffset:0; } }
@media(min-width:1301px) { .v2-hero ~ .v2-protection { scroll-margin-top:89px; } }
@media(max-width:1100px) {
  .v2-protection-heading { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:36px; }
  .v2-protection h2 { font-size:48px; }
  .v2-protection-boundary { padding-right:26px; }
  .v2-protection-boundary + .v2-protection-boundary { padding-left:26px; }
  .v2-protection-rule h3 { font-size:23px; }
  .v2-protection-contract { gap:28px; }
  .v2-protection-guide { max-width:290px; }
}
@media(max-width:760px) {
  .v2-protection { padding:44px 24px 42px; scroll-margin-top:92px; }
  .v2-hero ~ .v2-protection { scroll-margin-top:73px; }
  .v2-protection-eyebrow { margin-bottom:24px; }
  .v2-protection-heading { grid-template-columns:minmax(0,1fr); gap:24px; }
  .v2-protection h2 { font-size:clamp(35px,8.6vw,52px); line-height:1.1; }
  .v2-protection-intro { max-width:48ch; margin:0; line-height:1.65; }
  .v2-protection-boundaries { margin-top:30px; grid-template-columns:minmax(0,1fr); }
  .v2-protection-boundary, .v2-protection-boundary + .v2-protection-boundary { padding:12px 0 26px; border-left:0; }
  .v2-protection-boundary + .v2-protection-boundary { border-top:1px solid #cbd0c4; }
  .v2-protection-diagram { height:150px; margin-bottom:10px; }
  .v2-protection-rule { gap:13px; }
  .v2-protection-rule h3 { font-size:25px; }
  .v2-protection-rule p { max-width:48ch; margin-top:9px; }
  .v2-protection-contract { grid-template-columns:minmax(0,1fr); gap:24px; padding-top:26px; }
  .v2-protection-closing { font-size:25px; }
  .v2-protection-guide { max-width:none; justify-self:start; width:auto; gap:18px; padding-left:18px; }
}
@media(prefers-reduced-motion:reduce) {
  .v2-protection-boundary.is-visible .v2-protection-trace { animation:none; }
  .v2-protection-guide, .v2-protection-guide::before, .v2-protection-guide-icon, .v2-protection-guide-icon svg { transition:none; }
}
