:root{--paper:#f7f5ef;--ink:#091225;--muted:#687085;--line:rgba(9,18,37,.14);--navy:#071b46;--red:#bd2636;--blue:#2f5fb3;--white:#fff;--pad:clamp(18px,4vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(47,95,179,.08) 1px,transparent 1px),linear-gradient(rgba(47,95,179,.07) 1px,transparent 1px),var(--paper);background-size:96px 96px}
header{min-height:74px;padding:18px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);font:11px/1.2 "Courier New",monospace;text-transform:uppercase;letter-spacing:.1em;position:sticky;top:0;background:rgba(247,245,239,.82);backdrop-filter:blur(18px);z-index:20}nav{display:flex;gap:16px;flex-wrap:wrap}nav a{color:var(--muted)}nav a:hover{color:var(--red)}.brand{font:700 22px/1 Arial,sans-serif;letter-spacing:0;text-transform:none;color:var(--ink)}
.hero{min-height:calc(100vh - 74px);padding:7vw var(--pad);display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:7vw;align-items:center;position:relative}.hero>.eyebrow,.hero>h1,.hero>.lead,.hero>button{grid-column:2;position:relative;z-index:2}.hero>button{margin-top:26px}.gb-flag{position:relative;min-height:520px;background:var(--navy);overflow:hidden;box-shadow:0 28px 80px rgba(7,27,70,.18)}.gb-flag:before{content:"";position:absolute;inset:-20%;background:linear-gradient(32deg,transparent 0 43%,#fff 43% 48%,var(--red) 48% 52%,#fff 52% 57%,transparent 57%),linear-gradient(-32deg,transparent 0 43%,#fff 43% 48%,var(--red) 48% 52%,#fff 52% 57%,transparent 57%),linear-gradient(90deg,transparent 0 42%,#fff 42% 46%,var(--red) 46% 54%,#fff 54% 58%,transparent 58%),linear-gradient(0deg,transparent 0 42%,#fff 42% 46%,var(--red) 46% 54%,#fff 54% 58%,transparent 58%);animation:flagShift 16s ease-in-out infinite}.gb-flag b{position:absolute;left:30px;top:28px;color:white;font:700 clamp(70px,10vw,150px)/.8 Arial,sans-serif;letter-spacing:-.08em}.gb-flag span{position:relative;z-index:2;display:inline-flex;margin:0 8px 8px 0;padding:12px 14px;background:rgba(255,255,255,.88);color:var(--navy);font:10px/1 "Courier New",monospace;letter-spacing:.14em}.gb-flag span:nth-of-type(1){position:absolute;left:30px;bottom:92px}.gb-flag span:nth-of-type(2){position:absolute;left:30px;bottom:48px}.gb-flag span:nth-of-type(3){position:absolute;left:30px;bottom:4px}
.eyebrow,.section-head span,.section-title span,.context span,.links span{font:10px/1.4 "Courier New",monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--blue)}h1,h2{margin:0;line-height:.86;letter-spacing:-.055em;font-weight:400}h1{font-size:clamp(58px,9vw,136px);margin:28px 0}h1 em,h2 em{font-style:normal;color:var(--red)}.lead{max-width:820px;color:#303746;font-size:clamp(18px,2vw,24px)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.hero-actions a,.hero button,.cta button{display:inline-flex;align-items:center;width:max-content;padding:15px 18px;border:1px solid var(--navy);border-radius:999px;background:var(--navy);color:white;font:10px/1 "Courier New",monospace;text-transform:uppercase;letter-spacing:.14em;cursor:pointer;transition:.25s}.hero-actions a+ a{background:transparent;color:var(--navy)}.hero-actions a:hover,.hero button:hover,.cta button:hover{transform:translateY(-3px)}
.section-head{padding:8vw var(--pad) 42px}.section-head h2,.section-title h2,.faq h2,.cta h2{font-size:clamp(50px,7vw,112px);margin-top:22px}.hub-grid,.context,.cards{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.context{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(5,1fr);margin-top:44px}.hub-grid article,.context>div,.context article,.cards article{min-height:320px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.6);transition:.3s}.hub-grid article:nth-child(1),.hub-grid article:nth-child(2),.hub-grid article:nth-child(3){grid-column:span 2}.hub-grid article:hover{background:white;transform:translateY(-6px)}.hub-grid h2,.context h2{font-size:clamp(34px,4vw,56px);margin:0 0 18px}.hub-grid p,.context p,.cards p,.faq p{color:#4d5565}.hub-grid a,.links a{display:inline-flex;margin:8px 6px 0 0;padding:11px 13px;border:1px solid rgba(7,27,70,.22);border-radius:999px;font:10px/1.1 "Courier New",monospace;text-transform:uppercase;color:var(--navy)}.hub-grid a:hover,.links a:hover{background:var(--navy);color:white;border-color:var(--navy)}
.includes,.faq,.cta{padding:8vw var(--pad)}.faq{display:grid;grid-template-columns:38% 62%;gap:6vw;background:#fff}.faq details{padding:22px 0;border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;font:16px/1.3 "Courier New",monospace}.links{padding:42px var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:28px}.links div{display:flex;gap:8px;flex-wrap:wrap}.cta{min-height:56vh;display:grid;place-content:center;text-align:center;background:#eef2fb}footer{padding:32px var(--pad);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);font:10px/1.4 "Courier New",monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
@keyframes flagShift{50%{transform:scale(1.04) rotate(.5deg)}}@media(max-width:1100px){.hero,.hub-grid,.context,.cards,.faq{grid-template-columns:1fr}.hub-grid article:nth-child(n){grid-column:auto}.gb-flag{min-height:340px}}@media(max-width:700px){header{position:relative;align-items:flex-start;flex-direction:column}h1{font-size:clamp(54px,15vw,90px)}.links{align-items:flex-start;flex-direction:column}.hub-grid article,.context>div,.context article,.cards article{min-height:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Service city pages */
.hero>.eyebrow,.hero>h1,.hero>.lead,.hero>button{grid-column:1/-1;max-width:960px}
.includes{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0,#f3f6fc 100%)}
.includes:before{content:"";position:absolute;right:var(--pad);top:34px;width:min(380px,40vw);aspect-ratio:1.45;background:linear-gradient(34deg,transparent 0 43%,rgba(7,27,70,.14) 43% 47%,rgba(200,16,46,.16) 47% 53%,rgba(7,27,70,.14) 53% 57%,transparent 57%),linear-gradient(-34deg,transparent 0 43%,rgba(7,27,70,.14) 43% 47%,rgba(200,16,46,.16) 47% 53%,rgba(7,27,70,.14) 53% 57%,transparent 57%);animation:ukLine 12s ease-in-out infinite;pointer-events:none}
.section-title{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.36fr);gap:28px;align-items:end;margin-bottom:42px}
.section-title span{grid-column:1/-1}
.section-title h2{max-width:900px;line-height:.9}
.cards{position:relative;z-index:1;margin-top:0;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff;box-shadow:0 30px 80px rgba(7,27,70,.07)}
.cards article{min-height:230px;display:flex;flex-direction:column;justify-content:space-between;gap:34px;overflow:hidden;transition:transform .28s ease,background .28s ease}
.cards article:hover{background:#f8faff;transform:translateY(-5px)}
.cards article b{width:48px;height:48px;border:1px solid rgba(200,16,46,.28);border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fff;font:11px/1 "Courier New",monospace}
.cards article p{margin:0;color:var(--navy);font-size:clamp(18px,2vw,24px);line-height:1.14}
.faq{align-items:start}
.faq>div{background:#fff;border-top:1px solid var(--line)}
.faq details{padding:24px 0}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--navy)}
.faq summary:after{content:"+";width:34px;height:34px;border:1px solid rgba(7,27,70,.24);border-radius:50%;display:grid;place-items:center;color:var(--navy);flex:0 0 auto}
.faq details[open] summary:after{content:"-";background:var(--navy);color:#fff}
.faq p{max-width:760px;margin:18px 0 0;font-size:17px;line-height:1.65}
.cta h2{line-height:.9;margin-bottom:28px}
@keyframes ukLine{50%{transform:translateY(12px) scale(1.02)}}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cards article:last-child{grid-column:1/-1}}
@media(max-width:700px){.section-title,.cards{grid-template-columns:1fr}.cards article{min-height:190px}.includes:before{opacity:.34}}

@media(max-width:700px){body{min-width:0}h1{font-size:clamp(42px,12vw,72px);overflow-wrap:anywhere}.lead{font-size:16px}.hero{padding-bottom:42px}.hero-actions{width:100%;align-items:stretch;flex-direction:column}.hero-actions a,.hero button,.cta button{width:100%;max-width:100%;white-space:normal;text-align:center;line-height:1.25}.section-title h2,.faq h2,.cta h2{font-size:clamp(40px,12vw,72px);overflow-wrap:anywhere}.context article,.context>div,.hub-grid article,.cards article{padding:24px 20px}.cards article{gap:24px}.cards article p{font-size:20px}.faq{padding-top:54px;padding-bottom:54px}.faq summary{font-size:15px;align-items:flex-start}.links a{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.cta{min-height:46vh;padding-top:64px;padding-bottom:64px}}

/* Mobile polish for city service pages */
main,section,article,div,p,h1,h2,h3,a,button{min-width:0}
.hero button,.cta button{gap:12px}
.hero button b,.cta button b{flex:0 0 auto}
.links span,.section-title span,.eyebrow{overflow-wrap:anywhere}
@media(max-width:760px){
  header{padding:16px 18px;gap:14px}
  nav{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  nav a{min-height:38px;display:flex;align-items:center;justify-content:center;padding:8px 9px;border:1px solid rgba(7,27,70,.18);border-radius:999px;text-align:center;font-size:9px;letter-spacing:.08em}
  .hero{display:block;padding:42px 18px 38px;min-height:auto}
  .hero>.eyebrow,.hero>h1,.hero>.lead,.hero>button{max-width:none}
  .hero h1{margin:22px 0 18px;line-height:.9}
  .hero .lead{max-width:none;line-height:1.58}
  .hero>button{min-height:50px;margin-top:24px;padding:0 16px}
  .context,.cards,.faq{display:grid;grid-template-columns:1fr}
  .context>div,.context article{min-height:auto;padding:24px 18px}
  .context h2{font-size:clamp(30px,10vw,46px);line-height:.95}
  .includes{padding:58px 18px}
  .section-title{display:block;margin-bottom:28px}
  .section-title h2{margin-top:16px;line-height:.92}
  .cards{border:0;box-shadow:none;gap:12px;background:transparent}
  .cards article,.cards article:last-child{grid-column:auto;min-height:auto;padding:22px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.86)}
  .cards article b{width:40px;height:40px}
  .cards article p{font-size:18px;line-height:1.22}
  .faq{padding:58px 18px;gap:26px}
  .faq h2{margin-top:0;line-height:.94}
  .faq>div{border-top:0}
  .faq details{padding:18px 0}
  .faq summary{line-height:1.35}
  .faq p{font-size:15px;line-height:1.6}
  .links{padding:28px 18px;gap:16px}
  .links div{width:100%;display:grid;grid-template-columns:1fr;gap:10px}
  .links a{width:100%;justify-content:center;padding:13px 14px}
  .cta{min-height:auto;padding:62px 18px}
  .cta h2{line-height:.94}
  footer{padding:26px 18px}
}
@media(max-width:380px){
  nav{grid-template-columns:1fr}
  h1{font-size:clamp(38px,12vw,52px)}
  .section-title h2,.faq h2,.cta h2{font-size:clamp(36px,12vw,52px)}
}
