:root {
  --corporate_blue: #2d4760;
  --background_gradient_start: #273d52;
  --background_gradient_end: #1b2934;
  --navy: #2d4760;
  --slate: #739bb8;
  --ink: #c4d5e3;
  --line: #3b5970;
  --paper: #2d4760;
  --surface: #213548;
  --ice: #a8c7e0;
  --teal: #00b4d8;
  --white: #fff;
  --danger: #8b2f2f;
  --success: #286646;
  --corporate_success_message: #67c45a;
  --corporate_failure_message: #f23838;
  --copper_accent: #c68a53;
  --content_card_background: #332720;
  --header: #2a455a;
  --function_card_background: #2a4359;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { display:flex; flex-direction:column; font-family: Raleway, Arial, sans-serif; color: var(--ink); background: #273D52; background: -webkit-linear-gradient(135deg, rgba(39, 61, 82, 1) 0%, rgba(27, 41, 52, 1) 100%); background: -moz-linear-gradient(135deg, rgba(39, 61, 82, 1) 0%, rgba(27, 41, 52, 1) 100%); background: linear-gradient(135deg, rgba(39, 61, 82, 1) 0%, rgba(27, 41, 52, 1) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#273D52", endColorstr="#1B2934", GradientType=1); line-height: 1.55; min-height:100vh; }
a { color: var(--ice); }
.site-header { min-height: 64px; background: var(--navy); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 18px; position: sticky; top: 0; z-index: 10; box-shadow: 0px 8px 20px 0px rgba(0,0,0,0.33); -webkit-box-shadow: 0px 8px 20px 0px rgba(0,0,0,0.33); -moz-box-shadow: 0px 8px 20px 0px rgba(0,0,0,0.33); }
.brand { align-items:center; display:inline-flex; flex-wrap:nowrap; gap:.55rem; font-family: "EB Garamond", Georgia, serif; color: #fff; user-select: none; -webkit-user-select: none; text-decoration: none; font-weight: 300; white-space:nowrap; }
.site-header .brand-mark { display:block; flex:0 0 2rem; height:2rem; max-height:2rem; max-width:2rem; object-fit:contain; width:2rem; }
.brand-small { font-size: 2rem; line-height: 1; }
.desktop-nav { display: none; gap: 22px; align-items: center; }
.desktop-nav a { text-decoration: none; font-weight: 600; font-size: .9rem; }
.mobile-menu-button { align-items:center; background:none; border:0; color:var(--ice); cursor:pointer; display:flex; height:42px; justify-content:center; line-height:1; padding:0; width:42px; }
.mobile-menu-icon { display:block; height:1.35rem; width:1.55rem; }
.mobile-menu-icon path { fill:var(--ice) !important; }
.mobile-nav { display: none; background: var(--white); border-bottom: 1px solid var(--line); padding: 10px 18px; }
.mobile-nav.open { display: grid; }
.mobile-nav a { padding: 10px 0; text-decoration: none; font-weight: 600; }
.page-shell { flex:1; width: min(1180px, calc(100% - 28px)); margin: 28px auto 60px; }
.hero { min-height: calc(100vh - 124px); display: grid; place-items: center; text-align: center; }
.hero-inner { width: 100%; }
.button { display: inline-block; border: 1px solid var(--navy); border-radius: 3px; background: var(--navy); color: white; padding: 11px 18px; font: 600 .9rem Raleway, sans-serif; text-decoration: none; cursor: pointer; }
.button:hover { opacity: .9; }
.button-secondary { background: transparent; color: var(--navy); }
.button.small { padding: 7px 12px; font-size: .8rem; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: 5px; padding: 20px; margin-bottom: 22px; }
.narrow { width: min(100%, 540px); margin: 35px auto; }
h1, h2 { color: var(--ice); line-height: 1.2; }
h1 { font-size: 2rem; margin-top: 0; }
h2 { font-size: 1.25rem; }
label { display: block; font-weight: 600; margin: 15px 0; }
input, select, textarea { width: 100%; margin-top: 7px; border: 1px solid #bcc7cf; border-radius: 3px; padding: 11px; font: inherit; background: #fff; }
textarea { resize: vertical; }
.form-note, .muted { color: var(--slate); font-size: .9rem; }
.form-grid { display: grid; gap: 12px; }
.details { display: grid; grid-template-columns: 1fr; gap: 4px; }
.details dt { font-weight: 700; color: var(--slate); }
.details dd { margin: 0 0 10px; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; min-width: 700px; }
th, td { border-bottom: 1px solid var(--line); padding: 10px 9px; text-align: left; vertical-align: top; }
th { color: var(--navy); font-size: .85rem; }
.alert { padding: 13px 16px; margin-bottom: 18px; border-radius: 4px; background: #edf2f5; border-left: 4px solid var(--slate); }
.alert.error { border-left-color: var(--corporate_failure_message); color:var(--corporate_failure_message); }
.alert.success { border-left-color: var(--corporate_success_message); color:var(--corporate_success_message); }
.dashboard-grid { display: grid; gap: 16px; }
.dashboard-link { text-decoration: none; }
.dashboard-link h2 { margin-top: 0; }
.site-footer { text-align: center; color: var(--slate); font-size: .8rem; padding: 25px; border-top: 1px solid var(--line); background: var(--corporate_blue); }

@media (min-width: 760px) {
  .site-header { padding: 0 34px; }
  .desktop-nav { display: flex; }
  .mobile-menu-button, .mobile-nav { display: none !important; }
  .page-shell { margin-top: 42px; }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .details { grid-template-columns: 180px 1fr; }
  .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .site-header { min-height: 72px; padding: 0 55px; }
  .brand-small { font-size: 2.25rem; }
  .dashboard-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.home-logo { display: block; width: min(500px, 72vw); max-height: 50vh; height: auto; margin: auto; }
.content-page { width:min(760px, 100%); margin:3rem auto; }
.content-page__body { line-height:1.7; }
.content-page:has(.policy) { width:min(960px, 100%); }
.policy { background:var(--function_card_background); border:1px solid var(--line); border-radius:1.4rem; box-shadow:0 18px 38px rgba(0,0,0,.24); color:var(--white); margin:0 auto; max-width:960px; padding:clamp(1.5rem, 5vw, 4rem); }
.policy h1, .policy h2, .policy h3 { font-family:"EB Garamond", Georgia, serif; }
.policy h1 { color:var(--copper_accent); font-size:clamp(2.2rem, 5vw, 3.25rem); margin:0 0 .5rem; }
.policy h2 { border-bottom:1px solid var(--line); color:var(--ice); font-size:1.75rem; margin:3rem 0 1.15rem; padding-bottom:.6rem; }
.policy h3 { color:var(--ice); font-size:1.35rem; margin:2rem 0 .8rem; }
.policy p { margin:0 0 1.2rem; }
.policy ul, .policy ol { margin:0 0 1.35rem; padding-left:1.4rem; }
.policy li { margin:.45rem 0; }
.policy a { color:var(--teal); text-decoration:underline; text-underline-offset:.15em; }
.policy a:hover { color:var(--ice); }
.policy strong { color:var(--ice); }
.policy .last-updated { color:var(--slate); font-size:.9rem; margin-bottom:2.25rem; }
.policy .contact-details { background:rgba(168,199,224,.1); border:1px solid var(--line); border-radius:.7rem; margin:1.5rem 0 2rem; padding:1.25rem; }
.policy .contact-details p { margin:.3rem 0; }
.site-footer a { color:var(--ice); text-decoration:none; }
.site-footer a:hover { color:var(--white); text-decoration:underline; }
.content-editor { background:#fff; border:1px solid #bcc7cf; border-radius:3px; color:#213548; cursor:text; margin-top:7px; min-height:18rem; padding:11px; }
.content-editor.ck-editor__editable_inline { padding:11px; }
.content-editor.ck-editor__editable_inline:focus { border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,180,216,.2); outline:0; }
.content-card { background:var(--function_card_background); border-radius:1.4rem; box-shadow:0 18px 38px rgba(0,0,0,.24); margin:0 auto 5rem; min-height:590px; overflow:hidden; padding:clamp(1.5rem, 4vw, 3rem); position:relative; width:min(1120px, calc(100% - 28px)); }
.content-card__title { color:var(--copper_accent); font-family:"EB Garamond", Georgia, serif; font-size:2rem; font-weight:500; line-height:1; margin:-1rem 0 1.3rem -.8rem; position:relative; z-index:1; }
.content-card__text { color:var(--white); margin:2.25rem 0 0 auto; min-height:12rem; position:relative; width:54%; z-index:1; }
.content-card__mosaic { bottom:0; display:grid; gap:2px; grid-template-columns:repeat(42, 1fr); grid-template-rows:repeat(8, 1fr); left:0; overflow:hidden; pointer-events:none; position:absolute; right:0; top:9rem; }
.content-card__mosaic img { aspect-ratio:1; align-self:center; filter:grayscale(1) sepia(1) saturate(.85) hue-rotate(336deg) brightness(.82) contrast(1.18); height:auto; object-fit:cover; opacity:.88; width:100%; }
.content-card__mosaic img:nth-child(3n) { opacity:.7; transform:scale(1.08); }
.content-card__mosaic img:nth-child(5n) { filter:grayscale(1) sepia(1) saturate(1.4) hue-rotate(336deg) brightness(.94) contrast(1.05); }
.function-card { width:min(1120px, calc(100% - 28px)); margin:12rem auto 0; padding:clamp(1.5rem, 4vw, 3rem); border-radius:1.4rem; background:var(--function_card_background); box-shadow:0 18px 38px rgba(0,0,0,.24); }
.function-card + .function-card { margin-top:1.7rem; }
.function-card__title { color:var(--white); font-family:"EB Garamond",Georgia,serif; font-size:1.8rem; font-variant:small-caps; font-weight:300; letter-spacing:.03em; margin:-1rem 0 1.3rem -.8rem; text-align:left; }
.function-card__title span { font-size:1.25em; }
.net-neutrality-report { margin:0 auto 3rem; width:min(1120px, calc(100% - 28px)); }
.net-neutrality-report h1 { color:var(--copper_accent); font-family:"EB Garamond",Georgia,serif; font-size:clamp(2rem, 4vw, 3.1rem); font-weight:500; margin:0 0 1rem; text-align:center; }
.net-neutrality-report__guidance { color:var(--ice); margin:1.25rem auto 0; max-width:70ch; text-align:center; }
.net-neutrality-map-wrap { position:relative; }
#net-neutrality-map { display:block; height:auto; overflow:visible; width:100%; }
#net-neutrality-map path { stroke:rgba(255,255,255,.6); stroke-width:.45; transition:filter .15s ease,stroke-width .15s ease; }
#net-neutrality-map path.is-assessed { cursor:pointer; }
#net-neutrality-map path.is-assessed:hover, #net-neutrality-map path.is-assessed:focus { filter:brightness(1.2); outline:0; stroke:var(--white); stroke-width:1.25; }
.net-neutrality-tooltip { background:var(--function_card_background); border:1px solid var(--ice); border-radius:.6rem; box-shadow:0 10px 25px rgba(0,0,0,.35); color:var(--white); max-width:min(300px, calc(100vw - 24px)); padding:.75rem .9rem; pointer-events:none; position:fixed; z-index:20; }
.net-neutrality-tooltip strong, .net-neutrality-tooltip span { display:block; }
.net-neutrality-tooltip strong { color:var(--ice); font-family:"EB Garamond",Georgia,serif; font-size:1.2rem; }
.net-neutrality-tooltip span { color:var(--copper_accent); font-size:.82rem; font-weight:700; margin-top:.1rem; }
.net-neutrality-tooltip p { font-size:.82rem; line-height:1.4; margin:.45rem 0 0; }
.legal-briefing-card { color:var(--white); }
.legal-briefing-card__heading { align-items:flex-start; display:flex; flex-direction:column; gap:.25rem; margin-bottom:1.4rem; }
.legal-briefing-card__heading .function-card__title { margin-bottom:0; }
.legal-briefing-card__heading time { color:var(--ice); font-size:.9rem; }
.legal-briefing-stories { counter-reset:briefing-story; display:grid; gap:1rem; list-style:none; margin:0; padding:0; }
.legal-briefing-story { background:rgba(168,199,224,.1); border:1px solid var(--line); border-radius:.9rem; counter-increment:briefing-story; padding:1.25rem 1.25rem 1.15rem 4rem; position:relative; }
.legal-briefing-story::before { color:var(--copper_accent); content:counter(briefing-story, decimal-leading-zero); font-family:"EB Garamond",Georgia,serif; font-size:1.7rem; left:1.25rem; line-height:1; position:absolute; top:1.2rem; }
.legal-briefing-story h2 { color:var(--ice); font-family:"EB Garamond",Georgia,serif; font-size:1.35rem; margin:0 0 .35rem; }
.legal-briefing-story p { margin:.55rem 0 0; }
.legal-briefing-story__meta { color:var(--copper_accent); font-size:.85rem; font-weight:600; }
.contact-card { margin-bottom:0; }
.make-contact-form { display:grid; gap:1.25rem; }
.make-contact-section { background:var(--ice); border-radius:1rem; color:var(--corporate_blue); display:flex; flex-direction:column; gap:1rem; min-height:280px; padding:1.5rem; }
.make-contact-section textarea { min-height:13rem; }
.make-contact-section--details { display:flex; flex-direction:column; }
.make-contact-section--details .button { align-self:flex-start; margin-top:auto; }
.secure-drop-form { display:grid; gap:1.25rem; }
.secure-drop-step { background:var(--ice); border-radius:1rem; color:var(--corporate_blue); display:flex; flex-direction:column; min-height:280px; padding:1.5rem; }
.secure-drop-step h2 { color:var(--corporate_blue); font-family:"EB Garamond",Georgia,serif; font-size:1.35rem; margin:0 0 1rem; }
.secure-drop-step label, .secure-drop-step p { color:var(--corporate_blue); font-weight:400; }
.secure-drop-step .button { align-self:flex-start; margin-top:auto; }
.secure-drop-zone { align-items:center; background:rgba(255,255,255,.34); border:2px dashed var(--corporate_blue); border-radius:.7rem; color:var(--corporate_blue); cursor:pointer; display:flex; flex:1; justify-content:center; margin:0 0 1rem; min-height:145px; padding:1rem; text-align:center; }
.secure-drop-zone.is-dragging { background:rgba(0,180,216,.26); border-color:var(--teal); }
.secure-drop-step input[type="file"] { color:var(--corporate_blue); }
.roadmap-card { margin-top:0; }
.roadmap-step { min-height:280px; }
.roadmap-guidance { color:var(--corporate_blue); font-weight:400; margin:0 0 1.25rem; max-width:none; width:100%; }
.roadmap-form { display:grid; gap:1.25rem; max-width:none; width:100%; }
.roadmap-form select, .roadmap-form textarea { margin-top:0; }
.roadmap-form textarea { min-height:12rem; }
.roadmap-form .button { justify-self:start; }
@media (min-width: 760px) { .legal-briefing-card__heading { align-items:center; flex-direction:row; justify-content:space-between; } .make-contact-form { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .secure-drop-form { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .function-card__title, .content-card__title { font-size:2.25rem; } }
@media (max-width: 620px) { .content-card { min-height:520px; } .content-card__title { font-size:2rem; } .content-card__text { min-height:9rem; width:48%; } .content-card__mosaic { top:8rem; } }
