/* Drone Rules by State — sectional-chart look */
@font-face{font-family:"Big Shoulders Display";src:url("../type/bigshoulders.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url("../type/schibsted.woff2") format("woff2");font-weight:400 900;font-display:swap}

:root{
  --paper:#E8ECDD; --paper-2:#DDE3CF; --ink:#1B2A33; --magenta:#9C1F63; --blue:#1B5A93;
  --tan:#C8AE74; --tan-ink:#5E4A14; --line:#AEB89F; --white:#F7F9F1;
  --display:"Big Shoulders Display","Arial Narrow",sans-serif;
  --text:"Schibsted Grotesk",system-ui,sans-serif;
  --gut:clamp(16px,4.5vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--text)}
img,svg{max-width:100%;display:block}
a{color:var(--blue);text-underline-offset:.18em;text-decoration-thickness:1.5px}
a:hover{color:var(--magenta)}
:focus-visible{outline:3px solid var(--magenta);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.96;margin:0;text-wrap:balance}
h1{font-size:clamp(3rem,11.5vw,6.75rem);letter-spacing:-.01em}
h2{font-size:clamp(2.1rem,6.4vw,3.5rem);margin-top:0}
h3{font-size:clamp(1.5rem,4vw,1.9rem);line-height:1.05}
p{margin:0 0 1.1em;max-width:66ch}
ul,ol{max-width:66ch}
li{margin-bottom:.5em}
strong{font-weight:700}

/* top bar */
.dr-top{padding:10px var(--gut) 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:24px}
.dr-brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:800 1.45rem/1 var(--display);color:var(--ink);text-decoration:none;letter-spacing:.01em}
.dr-brand svg{width:26px;height:26px;flex:none}
.dr-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;column-gap:22px;max-width:none}
.dr-nav li{margin:0}
.dr-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-weight:600;text-decoration:none;border-bottom:3px solid transparent}
.dr-nav a:hover,.dr-nav a[aria-current="page"]{border-bottom-color:var(--magenta);color:var(--ink)}

/* layer lines: air above, ground below */
.dr-ceiling,.dr-ground{margin:0 var(--gut);font-weight:600;color:var(--magenta);display:flex;align-items:flex-end;gap:12px}
.dr-ceiling{border-bottom:2px dashed var(--magenta);padding:14px 0 6px;margin-top:8px}
.dr-ceiling b{font:800 1.9rem/1 var(--display)}
.dr-ground{color:var(--tan-ink);padding:8px 0 0;border-top:2px solid var(--ink);position:relative;align-items:flex-start}
.dr-ground::before{content:"";position:absolute;left:0;right:0;top:0;height:9px;transform:translateY(-100%);
  background:repeating-linear-gradient(135deg,transparent 0 6px,var(--ink) 6px 7.5px)}

/* home hero */
.dr-hero{padding:clamp(20px,4vw,40px) var(--gut) clamp(28px,5vw,56px);display:grid;gap:clamp(24px,4vw,56px)}
.dr-hero p{font-size:1.15rem;margin-top:1.1rem}
@media(min-width:960px){.dr-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}}

/* the checker */
.dr-check{background:var(--white);border:2px solid var(--ink);padding:clamp(16px,3vw,28px);position:relative;overflow:hidden}
.dr-check h2{font-size:clamp(1.9rem,5vw,2.5rem)}
.dr-check fieldset{border:0;margin:16px 0 0;padding:0;min-width:0}
.dr-check legend,.dr-check label.dr-lab{font-weight:700;padding:0;margin-bottom:8px;display:block}
.dr-lands{display:flex;flex-wrap:wrap;gap:8px}
.dr-lands button{font:600 1rem/1.2 var(--text);min-height:44px;padding:8px 14px;background:transparent;color:var(--ink);border:1.5px solid var(--ink);border-radius:0;cursor:pointer}
.dr-lands button[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.dr-state{margin-top:16px}
.dr-state select{font:600 1rem/1.2 var(--text);min-height:48px;width:100%;max-width:22rem;padding:8px 12px;border:1.5px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink)}
.dr-answer{margin-top:20px;padding-top:18px;border-top:2px dashed var(--line);position:relative}
.dr-answer p{font-size:1.0625rem;margin:.6em 0 0}
.dr-verdict{font:800 clamp(2rem,6vw,2.75rem)/1 var(--display);display:flex;align-items:center;gap:12px}
.dr-rings{position:absolute;right:-70px;bottom:-90px;width:260px;opacity:.5;pointer-events:none}

/* verdict marks: shape + colour + words */
.dr-mark{display:inline-block;width:.62em;height:.62em;flex:none;border:3px solid currentColor}
.v-no{color:var(--magenta)} .v-no .dr-mark{background:currentColor}
.v-permit{color:var(--tan-ink)} .v-permit .dr-mark{background:var(--tan);border-color:var(--tan-ink);transform:rotate(45deg) scale(.86)}
.v-zones{color:var(--blue)} .v-zones .dr-mark{border-style:dashed;border-radius:50%}
.v-limits{color:var(--blue)} .v-limits .dr-mark{background:currentColor;border-radius:50%}
.v-check{color:var(--ink)} .v-check .dr-mark{border-radius:50%}

/* sections */
.dr-band{padding:clamp(36px,7vw,84px) var(--gut);border-top:1px solid var(--line);position:relative}
.dr-band::before{content:"";position:absolute;left:var(--gut);right:var(--gut);top:-1px;height:8px;
  background:repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px 40px)}
.dr-band > h2{margin-bottom:.5em}
.dr-tint{background:var(--paper-2)}
.dr-two{display:grid;gap:28px}
@media(min-width:860px){.dr-two{grid-template-columns:1fr 1fr;gap:56px}}
.dr-layer h3{display:flex;align-items:baseline;gap:10px;margin-bottom:.4em}
.dr-layer.air h3{color:var(--magenta)} .dr-layer.land h3{color:var(--tan-ink)}

/* numbers list — chart elevations */
.dr-figs{margin:0;display:grid;gap:0;border-top:2px solid var(--ink);max-width:none}
.dr-figs div{display:grid;grid-template-columns:minmax(6.2rem,9.5rem) 1fr;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.dr-figs dt{font:800 clamp(2.2rem,7vw,3.25rem)/1 var(--display);color:var(--blue)}
.dr-figs dd{margin:0}

/* state list (table on desktop, cards on phones) */
.dr-states{list-style:none;margin:24px 0 0;padding:0;max-width:none;border-top:2px solid var(--ink)}
.dr-states li{margin:0;padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:6px}
.dr-states .st{font:800 1.7rem/1 var(--display)}
.dr-states .tag{font-weight:700;display:flex;align-items:center;gap:8px}
.dr-states .tag .dr-mark{width:14px;height:14px;border-width:2.5px}
.dr-states p{margin:0;max-width:none}
@media(min-width:900px){
  .dr-states li{grid-template-columns:11rem 13.5rem 1fr;gap:28px;align-items:start}
  .dr-states.short li{grid-template-columns:11rem 1fr}
}
.dr-legend{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px;max-width:none}
.dr-legend li{display:flex;gap:10px;align-items:baseline;margin:0}
.dr-legend .dr-mark{width:14px;height:14px;border-width:2.5px;transform-origin:center;position:relative;top:1px}
@media(min-width:760px){.dr-legend{grid-template-columns:1fr 1fr}}

/* steps */
.dr-steps{counter-reset:s;list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0;max-width:none;border-top:2px solid var(--ink)}
.dr-steps li{counter-increment:s;display:grid;grid-template-columns:3.2rem 1fr;gap:10px;padding:16px 0;border-bottom:1px solid var(--line);margin:0}
.dr-steps li::before{content:counter(s);font:800 2.6rem/.9 var(--display);color:var(--magenta)}
.dr-steps p{margin:0}

/* inner pages */
.dr-crumbs{padding:14px var(--gut) 0}
.dr-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 10px;max-width:none}
.dr-crumbs li{margin:0}
.dr-crumbs li+li::before{content:"/";margin-right:10px;color:var(--line)}
.dr-crumbs a{display:inline-block;padding:10px 0}
.dr-head{padding:clamp(12px,3vw,28px) var(--gut) clamp(24px,4vw,44px)}
.dr-head h1{font-size:clamp(2.6rem,9vw,5.25rem);max-width:16ch}
.dr-head p{font-size:1.15rem;margin-top:1.1rem}
.dr-prose h2{margin:1.5em 0 .45em}
.dr-prose h2:first-child{margin-top:0}
.dr-prose h3{margin:1.4em 0 .4em}
.dr-source{border-left:4px solid var(--blue);padding:4px 0 4px 14px;margin:1.2em 0;max-width:66ch}
.dr-source p{margin:0}
.dr-rules{counter-reset:r;list-style:none;padding:0;margin:20px 0;max-width:none;display:grid;gap:0;border-top:2px solid var(--ink)}
.dr-rules li{counter-increment:r;display:grid;grid-template-columns:3.2rem 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--line);margin:0}
.dr-rules li::before{content:counter(r);font:800 2.4rem/.9 var(--display);color:var(--blue)}
.dr-faq details{border-bottom:1px solid var(--line);max-width:74ch}
.dr-faq details:first-of-type{border-top:2px solid var(--ink)}
.dr-faq summary{cursor:pointer;min-height:56px;padding:14px 36px 14px 0;font:800 1.45rem/1.1 var(--display);list-style:none;position:relative;display:flex;align-items:center}
.dr-faq summary::-webkit-details-marker{display:none}
.dr-faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:1.8rem;color:var(--magenta)}
.dr-faq details[open] summary::after{content:"–"}
.dr-faq details p{margin:0 0 1em}
.dr-next{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px;max-width:none}
.dr-next li{margin:0}
.dr-next a{display:block;padding:16px 18px;border:2px solid var(--ink);color:var(--ink);text-decoration:none;background:var(--white);min-height:44px}
.dr-next a b{display:block;font:800 1.6rem/1.05 var(--display)}
.dr-next a:hover{background:var(--ink);color:var(--white)}
@media(min-width:760px){.dr-next{grid-template-columns:repeat(3,1fr)}}
.dr-mail{font:800 clamp(1.8rem,6.5vw,3rem)/1.1 var(--display);overflow-wrap:anywhere;display:inline-block;padding:6px 0}

/* footer */
.dr-foot{background:var(--ink);color:var(--paper);padding:36px var(--gut) 40px;margin-top:0}
.dr-foot p{color:var(--paper);max-width:60ch}
.dr-foot ul{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;column-gap:24px;max-width:none}
.dr-foot li{margin:0}
.dr-foot a{color:var(--paper);display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.dr-foot a:hover{color:var(--tan)}
.dr-foot .name{font:800 1.6rem/1 var(--display);margin-bottom:10px}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.dr-ceiling b{white-space:nowrap}
@media(max-width:520px){.dr-nav{width:100%}.dr-nav ul{column-gap:10px;justify-content:space-between}}
