/* Brand-aware privacy page shared by the four independent agency sites. */
.policy-page{overflow:hidden;background:var(--bg);color:var(--text)}
.policy-hero{position:relative;isolation:isolate;padding:clamp(5.5rem,10vw,9rem) 0 clamp(4.5rem,8vw,7rem);background:var(--dark);color:#fff}
.policy-hero::before,.policy-hero::after{content:"";position:absolute;z-index:-1;pointer-events:none}
.policy-hero::before{width:34rem;height:34rem;right:-9rem;top:-16rem;border-radius:50%;background:radial-gradient(circle,var(--accent) 0,transparent 68%);opacity:.32}
.policy-hero::after{width:24rem;height:24rem;left:38%;bottom:-18rem;border-radius:50%;background:radial-gradient(circle,var(--accent2) 0,transparent 70%);opacity:.22}
.policy-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);align-items:end;gap:clamp(2.5rem,7vw,7rem)}
.policy-kicker{display:flex;align-items:center;gap:.7rem;margin:0 0 1.5rem;font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--highlight)}
.policy-kicker::before{content:"";width:2rem;height:2px;background:currentColor}
.policy-hero h1{max-width:12ch;margin:0;font-family:var(--display);font-size:clamp(3.2rem,7vw,7.3rem);font-weight:800;line-height:.91;letter-spacing:-.055em;text-wrap:balance}
.policy-intro{max-width:44rem;margin:1.7rem 0 0;font-size:clamp(1rem,1.5vw,1.24rem);line-height:1.7;color:rgba(255,255,255,.76)}
.policy-badges{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2rem}
.policy-badges span{display:inline-flex;align-items:center;min-height:2.15rem;padding:.45rem .8rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.07);font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#fff;backdrop-filter:blur(8px)}
.policy-summary{position:relative;padding:clamp(1.5rem,3vw,2.35rem);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);background:rgba(255,255,255,.09);box-shadow:0 24px 70px rgba(0,0,0,.2);backdrop-filter:blur(14px)}
.policy-summary::before{content:"";display:block;width:.75rem;height:.75rem;margin-bottom:1.5rem;border-radius:50%;background:var(--highlight);box-shadow:0 0 0 .4rem rgba(255,255,255,.08)}
.policy-summary h2{margin:0 0 1rem;font-family:var(--display);font-size:1.45rem;line-height:1.1;color:#fff}
.policy-summary p{margin:0;color:rgba(255,255,255,.74);line-height:1.65}
.policy-summary dl{display:grid;gap:.8rem;margin:1.6rem 0 0;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.16)}
.policy-summary dl div{display:flex;justify-content:space-between;gap:1rem}
.policy-summary dt{color:rgba(255,255,255,.52)}
.policy-summary dd{margin:0;text-align:right;font-weight:750;color:#fff}
.policy-layout{display:grid;grid-template-columns:17rem minmax(0,1fr);align-items:start;gap:clamp(2.5rem,6vw,6rem);padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(5rem,9vw,9rem)}
.policy-index{position:sticky;top:7.2rem;padding:1.35rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.policy-index>p{margin:0 0 1rem;font-size:.72rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.policy-index nav{display:grid}
.policy-index nav a{display:grid;grid-template-columns:1.7rem 1fr;align-items:center;gap:.5rem;padding:.8rem 0;border-top:1px solid var(--line);font-size:.84rem;font-weight:700;color:var(--text);transition:color .2s ease,transform .2s ease}
.policy-index nav a:hover{color:var(--accent);transform:translateX(.2rem)}
.policy-index nav span{font-family:var(--mono);font-size:.65rem;color:var(--muted)}
.policy-contact{display:grid;gap:.35rem;margin-top:1.15rem;padding:1rem;border-radius:calc(var(--radius) * .7);background:var(--dark);color:#fff}
.policy-contact span{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--highlight)}
.policy-contact a{overflow-wrap:anywhere;font-size:.83rem;font-weight:800;color:#fff}
.policy-contact small{color:rgba(255,255,255,.58)}
.policy-document{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.policy-section{position:relative;padding:clamp(2rem,5vw,4rem);scroll-margin-top:7.5rem}
.policy-section+.policy-section{border-top:1px solid var(--line)}
.policy-section::before{content:attr(data-step);display:block;margin-bottom:1rem;font-family:var(--mono);font-size:.7rem;font-weight:800;letter-spacing:.14em;color:var(--accent)}
.policy-section h2{max-width:18ch;margin:0 0 1.25rem;font-family:var(--display);font-size:clamp(1.8rem,3.7vw,3.25rem);line-height:1.04;letter-spacing:-.035em;text-wrap:balance;color:var(--text)}
.policy-section h3{margin:2rem 0 .6rem;font-size:1.05rem;color:var(--text)}
.policy-section p,.policy-section li{font-size:clamp(.97rem,1.3vw,1.08rem);line-height:1.78;color:var(--muted)}
.policy-section p{max-width:70ch;margin:.75rem 0}
.policy-section ul{display:grid;gap:.5rem;margin:1rem 0;padding-left:1.2rem}
.policy-section strong{color:var(--text)}
.policy-section a:not(.policy-action){font-weight:750;color:var(--accent);text-decoration:underline;text-underline-offset:.18em}
.policy-choice{margin:-1px;border-radius:var(--radius) var(--radius) 0 0;background:var(--highlight)}
.policy-choice::after{content:"CHOICE";position:absolute;right:clamp(1.5rem,4vw,3rem);top:clamp(1.5rem,4vw,3rem);font-family:var(--mono);font-size:.66rem;font-weight:900;letter-spacing:.16em;color:var(--text);opacity:.45}
.policy-choice p{color:color-mix(in srgb,var(--text) 74%,transparent)}
.policy-action{display:inline-flex;align-items:center;justify-content:space-between;gap:1.25rem;max-width:100%;margin-top:1.35rem;padding:.95rem 1.15rem;border:2px solid transparent;border-radius:calc(var(--radius) * .65);background:var(--accent);box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 26%,transparent);font-size:.86rem;font-weight:900;letter-spacing:.015em;line-height:1.3;color:#fff!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.policy-action:hover{transform:translateY(-2px);background:var(--accent2);box-shadow:0 17px 36px color-mix(in srgb,var(--accent2) 26%,transparent);color:var(--dark)!important}
.policy-action span{flex:0 0 auto;font-size:1.2rem}
.policy-rights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.25rem}
.policy-rights div{padding:1rem;border:1px solid var(--line);border-radius:calc(var(--radius) * .7);background:color-mix(in srgb,var(--accent) 7%,var(--surface));font-size:.9rem;font-weight:750;color:var(--text)}

/* PatternTech — editorial, structured and architectural. */
.pattern .policy-hero{background-color:#123532;background-image:linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:72px 72px}
.pattern .policy-hero h1{font-weight:400;letter-spacing:-.045em}
.pattern .policy-summary,.pattern .policy-index,.pattern .policy-document{border-radius:2px}
.pattern .policy-choice{border-left:.55rem solid var(--accent2);border-radius:0;background:#d9f2eb}
.pattern .policy-contact,.pattern .policy-action,.pattern .policy-rights div{border-radius:2px}

/* Vivid Current — bright, kinetic and campaign-led. */
.vivid .policy-hero{background:radial-gradient(circle at 82% 18%,rgba(216,255,82,.22),transparent 18rem),radial-gradient(circle at 18% 100%,rgba(255,90,54,.35),transparent 26rem),#0d0820}
.vivid .policy-hero h1{text-transform:uppercase;font-size:clamp(3.1rem,6.6vw,6.8rem);letter-spacing:-.065em}
.vivid .policy-summary{transform:rotate(1.4deg);border-color:rgba(185,156,255,.55);box-shadow:14px 14px 0 rgba(255,90,54,.26)}
.vivid .policy-document{box-shadow:18px 18px 0 rgba(185,156,255,.14)}
.vivid .policy-choice{background:var(--highlight);color:#0d0820}
.vivid .policy-choice h2,.vivid .policy-choice p,.vivid .policy-choice::after{color:#0d0820}
.vivid .policy-rights div{border-color:rgba(185,156,255,.35)}

/* FramePilot Labs — technical, precise and modular. */
.frame .policy-hero{background-color:#10243e;background-image:linear-gradient(30deg,rgba(36,107,253,.18) 12%,transparent 12.5%,transparent 87%,rgba(36,107,253,.18) 87.5%),linear-gradient(150deg,rgba(139,214,0,.12) 12%,transparent 12.5%,transparent 87%,rgba(139,214,0,.12) 87.5%);background-size:90px 156px}
.frame .policy-summary{border-left:4px solid var(--accent2);border-radius:12px}
.frame .policy-index,.frame .policy-document{border-radius:14px}
.frame .policy-choice{border-radius:14px 14px 0 0;background:#eaf0ff}
.frame .policy-contact{background:#10243e}

/* Tapline Labs — tactile, product-minded and energetic. */
.tap .policy-hero{background:radial-gradient(circle at 85% 12%,rgba(25,211,197,.27),transparent 21rem),radial-gradient(circle at 14% 86%,rgba(255,61,141,.28),transparent 25rem),#101216}
.tap .policy-hero h1{font-size:clamp(3.2rem,6.8vw,7rem)}
.tap .policy-summary{border-color:rgba(25,211,197,.48);box-shadow:0 25px 0 -13px rgba(255,61,141,.34)}
.tap .policy-choice{background:var(--highlight);color:#101216}
.tap .policy-choice h2,.tap .policy-choice p,.tap .policy-choice::after{color:#101216}
.tap .policy-action{background:#101216;color:#fff!important}
.tap .policy-action:hover{background:var(--accent);color:#fff!important}

@media(max-width:980px){
  .policy-hero-grid{grid-template-columns:1fr}.policy-summary{max-width:36rem}.policy-layout{grid-template-columns:1fr}.policy-index{position:static}.policy-index nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem}.vivid .policy-summary{transform:none}
}
@media(max-width:640px){
  .policy-hero{padding-top:4.25rem}.policy-hero-grid{gap:2rem}.policy-hero h1{font-size:clamp(2.75rem,14vw,4.2rem)}.policy-summary{padding:1.35rem}.policy-layout{padding-top:2rem;gap:1.25rem}.policy-index{padding:1rem}.policy-index nav{grid-template-columns:1fr}.policy-index nav a:nth-child(n+5){display:none}.policy-section{padding:1.6rem 1.25rem}.policy-section h2{padding-right:0;font-size:clamp(1.65rem,9vw,2.35rem)}.policy-choice::after{position:static;display:block;margin-top:1.25rem}.policy-action{width:100%;font-size:.78rem}.policy-rights{grid-template-columns:1fr}.policy-summary dl div{display:grid;gap:.15rem}.policy-summary dd{text-align:left}
}
@media(prefers-reduced-motion:reduce){.policy-index nav a,.policy-action{transition:none}.policy-action:hover{transform:none}}
