:root{--ink:#0b1426;--muted:#526075;--blue:#164de8;--light:#eff4fa;--line:#dbe4ef}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.6 Inter,Arial,sans-serif;background:#fff}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6194ff;outline-offset:4px}header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 max(5vw,22px);background:#fff}.brand{display:flex;align-items:center;gap:8px;font-weight:900;line-height:1.05;letter-spacing:.03em;white-space:nowrap}.brand svg{width:41px;color:var(--blue)}.brand small{display:block;font-size:9px;letter-spacing:.24em;margin-top:5px}nav{display:flex;gap:30px;font-size:14px;font-weight:700}nav a:hover{color:var(--blue)}.button{display:inline-block;background:var(--blue);color:white;border:0;padding:13px 20px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#103ab8;transform:translateY(-2px)}.hero{position:relative;color:#fff;min-height:650px;display:grid;align-items:center;background:linear-gradient(90deg,#080f20 0%,#091224d9 26%,#0a15283b 78%),url(roof.webp) center 55%/cover,#101e36}.hero-inner{padding:75px max(7vw,24px) 104px;animation:arrive .7s ease-out both}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.19em;display:flex;gap:10px;align-items:center}.eyebrow span{width:20px;height:2px;background:#5686ff}.hero h1{font-size:clamp(58px,8.6vw,132px);letter-spacing:-.09em;line-height:.9;margin:25px 0}.hero h1 span{color:#5686ff}.hero-inner>p:not(.eyebrow){max-width:365px;color:#e1e9f7;font-size:18px}.actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:28px}.secondary{font-size:14px;font-weight:700}.hero-caption{position:absolute;bottom:0;left:7%;right:7%;display:flex;justify-content:space-between;border-top:1px solid #ffffff50;padding:13px 0;color:#d6e3fb;font-size:10px;letter-spacing:.18em}.strip{display:grid;grid-template-columns:repeat(3,1fr);padding:0 7%;background:#0c172a;color:#98b7ff}.strip span{padding:18px 12px;font-size:12px}.strip b{color:white;margin-left:10px}.section{max-width:1280px;margin:auto;padding:80px max(5vw,22px)}h2{font-size:clamp(36px,5vw,66px);line-height:1;letter-spacing:-.065em;margin:13px 0 22px}h3{font-size:24px;letter-spacing:-.04em;margin:14px 0 5px}p{color:var(--muted)}.hero .eyebrow{color:#d9e6ff}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}.cards article{border:1px solid var(--line);padding:25px;transition:transform .25s,border-color .25s}.cards article:hover{transform:translateY(-5px);border-color:#7ba1ff}.cards a{font-size:14px;font-weight:800;color:var(--blue)}.icon{font-size:26px;color:var(--blue);background:var(--light);width:48px;height:48px;display:grid;place-items:center}.work{background:var(--light)}.comparison{--position:50%;position:relative;height:clamp(250px,40vw,430px);margin:23px 0 8px;isolation:isolate;overflow:hidden;background:#273345}.roof{position:absolute;inset:0;background:url(compare.svg) center/cover}.before{background-image:url(worn.svg);clip-path:inset(0 calc(100% - var(--position)) 0 0)}.comparison input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.comparison:has(input:focus-visible) .handle{box-shadow:inset 0 0 0 3px var(--blue)}.handle{position:absolute;left:var(--position);top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:white;font-weight:900}.handle:before,.handle:after{content:'';position:absolute;width:2px;height:500px;background:white;bottom:100%}.handle:after{bottom:auto;top:100%}.tag{position:absolute;top:14px;background:#0c172a;color:white;padding:5px 9px;font-size:10px;letter-spacing:.12em}.left{left:14px}.right{right:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw}.split>div:last-child{background:var(--light);padding:28px}form{display:grid;gap:13px}label{display:grid;gap:4px;font-size:14px;font-weight:700}select,input:not([type=range]){min-width:0;width:100%;padding:10px;border:1px solid #bdcadb;background:white;color:var(--ink);font:inherit}small{color:var(--muted)}#result{margin:0;font-weight:700;overflow-wrap:anywhere}footer{background:#0c172a;color:white;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:25px 7%;font-size:13px}@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){nav{display:none}.hero{min-height:560px;background-position:62% center}.cards,.split{grid-template-columns:1fr}.section{padding-top:52px;padding-bottom:52px}.strip{padding:0 3%}.strip span{padding:12px 5px}.strip b{display:block;margin:0}.split>div:last-child{padding:20px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Type and interaction states */
body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.brand{font-weight:700}
.brand small{font-weight:500}
nav,.secondary,.cards a,.strip b{font-weight:550}
.button{font-weight:600;border-radius:8px}
.eyebrow{font-weight:650}
.hero h1{font-weight:650;letter-spacing:-.08em}
h2{font-weight:640}
h3{font-weight:600}
a{transition:color .18s ease,background-color .18s ease,transform .18s ease,text-decoration-color .18s ease}
nav a,.secondary,.cards a{text-decoration:underline;text-underline-offset:.28em;text-decoration-color:transparent}
nav a:hover,.secondary:hover,.cards a:hover{ text-decoration-color:currentColor }
.secondary:hover{color:#b5cbff}
.secondary:active{color:#8cafff}
.cards a:hover{color:#103ab8}
.cards a:active,nav a:active{color:#082975}
.button:active{background:#0a2d96;transform:translateY(1px)}
.brand:hover{color:var(--blue)}
.brand:active{color:#082975}

#quote{border:1px solid var(--line);border-radius:16px}
form{gap:16px}
label{font-weight:550}
label span{font-weight:400;color:var(--muted)}
form select,form input[name="zip"]{min-height:46px;padding:10px 13px;border-radius:8px;font-weight:400}
form select{appearance:none;padding-right:37px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23526075' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E") right 12px center/16px no-repeat;cursor:pointer}
.photo-field>label{display:block;margin-bottom:5px}
.photo-control{position:relative}
.photo-control input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}
.photo-face{display:flex;align-items:center;gap:13px;background:#fff;border:1px dashed #a0b2cb;border-radius:10px;padding:14px;transition:background-color .18s,border-color .18s}
.photo-face svg{width:22px;height:22px;flex:none;color:var(--blue)}
.photo-face span{min-width:0;overflow-wrap:anywhere}
.photo-face strong,.photo-face small{display:block}
.photo-face strong{font-size:14px;font-weight:550}
.photo-control:hover .photo-face{background:#f4f8ff;border-color:var(--blue)}
.photo-control:active .photo-face{background:#e3edff}
.photo-control:focus-within .photo-face{outline:3px solid #6194ff;outline-offset:3px}
.back-top{position:fixed;z-index:5;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#164de8;color:#fff;box-shadow:0 4px 18px #0b14263d;animation:arrive .25s ease-out both}
.back-top[hidden]{display:none}
.back-top svg{width:22px}
.back-top:hover{background:#103ab8}
.back-top:active{background:#0a2d96}
#top:focus{outline:none}
footer{padding-right:max(7%,78px)}
@media(prefers-reduced-motion:no-preference){
  .has-arrived{animation:reveal .55s cubic-bezier(.2,.65,.3,1) both}
  .cards article:nth-child(2){animation-delay:65ms}
  .cards article:nth-child(3){animation-delay:130ms}
}
@keyframes reveal{from{opacity:.45;translate:0 14px}to{opacity:1;translate:0 0}}
.page-hero{background:#0c172a;color:#fff}
.page-hero .section{padding-top:60px;padding-bottom:56px}
.page-hero h1{font-size:clamp(40px,7vw,86px);font-weight:650;letter-spacing:-.07em;line-height:1.02;margin:16px 0}
.page-hero p{color:#d7e4fc;max-width:58ch}
.page-details{padding-top:35px}
.page-details .cards{margin-top:0}
.page-note{margin:22px 0}
.page-link,nav [aria-current=page]{color:var(--blue);text-decoration:underline;text-underline-offset:.28em}
@media(max-width:850px){
  header{flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:10px}
  header nav{display:flex;order:3;width:100%;gap:8px 17px;flex-wrap:wrap;font-size:13px}
}
.branch-list{display:grid;gap:24px}
.branch{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:16px}
.branch-map{position:relative;min-height:300px;margin:0;background:#eaf0f6}
.branch-map svg{display:block;position:absolute;width:100%;height:100%}
.branch-map figcaption{position:absolute;bottom:14px;left:14px;padding:5px 10px;border-radius:6px;background:#fff;color:var(--muted);font-size:12px}
.branch-details{padding:clamp(22px,4vw,44px)}
.branch-details h2{font-size:clamp(30px,3.5vw,48px);margin-bottom:12px}
.branch-details address{font-style:normal;color:var(--muted);font-size:14px}
.branch-details dl{display:flex;flex-wrap:wrap;gap:10px 26px;margin:22px 0;font-size:14px}
.branch-details dt{color:var(--muted);font-size:12px}
.branch-details dd{margin:0;overflow-wrap:anywhere}
.branch-links{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;font-size:14px}
.branch-links .page-link:hover{color:#103ab8}
.branch-links .page-link:active{color:#082975}
@media(max-width:720px){
  .branch{grid-template-columns:1fr}
  .branch-map{min-height:235px}
}

@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:page-out .14s ease-in both}
  ::view-transition-new(root){animation:page-in .24s ease-out both}
  @supports not (view-transition-name:root){
    .page-hero .section,.page-details{animation:arrive .3s ease-out both}
  }
}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0}to{opacity:1}}

/* Keep header alignment consistent on pages of different heights. */
html{overflow-y:scroll}
@supports(scrollbar-gutter:stable){html{overflow-y:auto;scrollbar-gutter:stable}}
