/* CRIB TOP ROOFING — PUBLIC SITE + OWNER STUDIO DEMO
   Public styling is .site-*; owner controls are .studio-*.
   These styles do not provide authentication or server-side storage. */
:root{--navy:#0b1d33;--deep:#071321;--accent:#0966ce;--accent-dark:#095bab;--paper:#f4f7fa;--white:#fff;--ink:#182d43;--muted:#596b7c;--line:#dae2e9;--teal:#266d5b;--radius:16px;--max:1210px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.035em}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2682af;outline-offset:4px}[hidden]{display:none!important}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.wrap{width:min(var(--max),calc(100% - 64px));margin:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 19px;min-height:48px;border:1px solid transparent;border-radius:7px;font-size:.9rem;font-weight:750;line-height:1.3;transition:background .18s,transform .18s}.btn:hover{transform:translateY(-1px)}.btn-accent{background:var(--accent);color:var(--deep)}.btn-accent:hover{background:#0057b7}.btn-dark{background:var(--navy);color:#fff}.btn-white{background:#fff;border-color:var(--line);color:var(--navy)}.btn-outline{background:transparent;border-color:#8998a7;color:#fff}.btn-small{min-height:38px;padding:9px 12px;font-size:.79rem}.text-btn{border:0;background:transparent;color:var(--ink);padding:6px 0;font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:6px}.text-btn:hover{text-decoration:underline}.text-btn .icon{width:16px;height:16px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:5px;background:#e9eef0;color:#405661;font-size:.68rem;font-weight:800;letter-spacing:.03em;line-height:1.6}.badge-green{background:#e4f0e9;color:#25634d}.badge-accent{background:#e8f2ff;color:#145799}.badge .icon{width:13px;height:13px}.kicker{display:block;text-transform:uppercase;color:var(--accent-dark);font-weight:800;font-size:.73rem;letter-spacing:.15em;margin-bottom:13px}.section{padding:84px 0}.section h2{font-size:clamp(2rem,3.9vw,3rem)}.lede{color:var(--muted);max-width:600px;margin-top:16px}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:34px}.section-top .lede{max-width:540px}.skip{position:absolute;left:12px;top:-100px;z-index:5000;background:#fff;padding:10px}.skip:focus{top:60px}
/* The preview toolbar is not part of the live website. */
.demo-bar{background:#eaf0f1;border-bottom:1px solid #cfdcdd;min-height:46px;padding:6px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#3c515d;font-size:.73rem}.demo-bar>span{display:flex;align-items:center;gap:7px}.demo-bar .icon{width:15px;height:15px}.demo-tabs{display:flex;gap:3px;background:#dce6e8;border-radius:6px;padding:3px}.demo-tabs button{padding:6px 12px;border:0;background:transparent;color:#425b65;border-radius:4px;font-size:.75rem;font-weight:750;white-space:nowrap}.demo-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 1px 5px #132b3415}
/* PUBLIC HEADER / HERO */
.site-topline{background:var(--deep);color:#c7d1da;font-size:.73rem;padding:6px 0}.site-topline .wrap{display:flex;justify-content:space-between;gap:15px}.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:30;border-bottom:1px solid #ffffff19}.site-header .wrap{display:flex;justify-content:space-between;align-items:center;gap:25px;min-height:99px}.site-brand{display:flex;align-items:center;gap:12px;min-width:0}.site-brand img{width:79px;height:79px;object-fit:contain}.site-brand strong{display:block;font-size:1.03rem;letter-spacing:.015em;line-height:1.15;text-transform:uppercase}.site-brand small{display:block;margin-top:6px;color:#8ec6ff;font-size:.56rem;letter-spacing:.085em;text-transform:uppercase;white-space:nowrap}.site-nav{display:flex;gap:24px;align-items:center;font-size:.82rem;font-weight:650}.site-nav a:hover{color:var(--accent)}.site-nav .btn{margin-left:10px}.menu-toggle{display:none;background:transparent;color:#fff;border:1px solid #ffffff50;border-radius:5px;min-width:44px;min-height:44px}.menu-toggle .icon{margin:auto}.site-hero{background:var(--navy);color:white;position:relative;overflow:hidden}.hero-layout{display:grid;grid-template-columns:1fr 1fr;min-height:576px;gap:0}.hero-copy{padding:66px 35px 62px 0;position:relative;z-index:1}.hero-copy .kicker{color:#a6d1ff;font-size:.72rem}.hero-copy h1{font-size:clamp(2.75rem,4.7vw,4.55rem);font-weight:800;max-width:590px;line-height:1.04;letter-spacing:-.05em}.hero-copy h1 em{font-style:normal;color:#8bc4ff}.hero-copy p{color:#c7d5e0;max-width:487px;margin:24px 0;font-size:1rem;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.hero-note{display:flex;align-items:center;gap:8px;color:#c3d2dd;font-size:.77rem;margin-top:23px}.hero-note .icon{color:var(--accent);width:17px;height:17px}.hero-visual{position:relative;align-self:stretch;margin-right:calc((min(1210px,100vw - 64px) - 100vw)/2);isolation:isolate;min-height:400px;background:#153349}.hero-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:-2;object-position:var(--fx,50%) var(--fy,36%)}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b1d33 0%,#0b1d3300 17%),linear-gradient(0deg,#051322c7,transparent 24%);z-index:-1;pointer-events:none}.photo-credit{position:absolute;bottom:18px;right:20px;left:35px;display:flex;justify-content:flex-end;font-size:.63rem;line-height:1.45;color:white;text-align:right}.photo-credit span{max-width:400px;background:#071321b8;padding:6px 9px;border-radius:4px}.photo-credit a{text-decoration:underline;text-underline-offset:2px}.hero-loading-error{padding:24px;position:absolute;left:40px;right:30px;top:26%;background:#122e40;color:#b8d7f5;border-radius:8px;font-size:.8rem}.site-transition{background:#fff;border-bottom:1px solid var(--line)}.transition-layout{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center;gap:28px;min-height:103px}.transition-item{display:flex;align-items:center;gap:14px}.transition-item+.transition-item{border-left:1px solid var(--line);padding-left:32px}.transition-item>.icon{color:#1966ac;width:27px;height:27px}.transition-item strong{display:block;line-height:1.3;font-size:.94rem}.transition-item small{font-size:.76rem;color:var(--muted)}
/* SERVICES / PROJECTS */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.service-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:25px;display:grid;grid-template-columns:41px 1fr;column-gap:15px;text-align:left;color:var(--ink);transition:box-shadow .2s,border-color .2s}.service-card:hover{border-color:#5d94bf;box-shadow:0 6px 26px #1738490b}.service-card .service-icon{width:39px;height:39px;background:#eaf3ff;border-radius:8px;color:#135592;display:grid;place-items:center}.service-card h3{font-size:1.09rem;margin:2px 0 9px;letter-spacing:-.02em}.service-card p{color:var(--muted);font-size:.83rem;line-height:1.6}.service-card .text-btn{font-size:.74rem;margin-top:10px}.site-projects{background:#fff}.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.filterbar button{border:1px solid var(--line);border-radius:40px;background:transparent;padding:8px 16px;font-size:.78rem;color:var(--muted);font-weight:650}.filterbar button.active{background:var(--navy);color:white;border-color:var(--navy)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px 20px}.project-card{min-width:0}.project-image{display:block;position:relative;background:#e7ecec;border-radius:11px;overflow:hidden;width:100%;border:0;padding:0}.project-image img{width:100%;height:265px;object-fit:cover;object-position:var(--fx,50%) var(--fy,50%);transition:transform .25s}.project-image:hover img{transform:scale(1.025)}.project-image .gallery-index{position:absolute;top:14px;left:14px;border-radius:5px;font-size:.65rem;font-weight:750;padding:4px 8px;background:#ffffffe8;color:#304856}.project-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px}.project-caption h3{font-size:1.02rem;letter-spacing:-.015em}.project-caption p{font-size:.72rem;color:var(--muted);margin-top:6px}.project-caption>.icon{width:18px;height:18px;color:#195c9a}.project-note{font-size:.74rem;margin-top:25px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}.site-process{background:var(--navy);color:#fff}.site-process .kicker{color:#83baf0}.site-process .lede{color:#c0ced9}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:38px}.process-step{padding-top:22px;border-top:1px solid #ffffff38}.process-step .number{font-weight:750;font-size:.79rem;color:#9acbfc;margin-bottom:16px;display:block}.process-step h3{font-size:1.32rem;margin-bottom:12px}.process-step p{font-size:.87rem;color:#bfced9;max-width:325px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-photo{position:relative}.about-photo>img{width:100%;aspect-ratio:1.18;object-fit:cover;border-radius:14px}.about-photo figcaption{font-size:.7rem;color:var(--muted);margin-top:10px}.about-photo figure{margin:0}.about-tag{position:absolute;bottom:38px;left:20px;background:#fff;padding:15px 20px;border-radius:8px;box-shadow:0 10px 20px #0001;display:flex;align-items:center;gap:12px}.about-tag .icon{color:#155b9b;width:26px;height:26px}.about-tag strong{display:block;font-size:.83rem;line-height:1.4}.about-tag small{font-size:.72rem;color:var(--muted)}.about-copy .lede{margin-bottom:22px}.about-copy .btn{margin-top:17px}.proof-list{margin:22px 0;display:grid;gap:10px}.proof-list div{font-size:.88rem;display:flex;gap:8px;align-items:center}.proof-list .icon{color:#225f94;width:17px;height:17px}.site-faq{background:white}.faq-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.faqs details{border-bottom:1px solid var(--line);padding:18px 0}.faqs details:first-child{padding-top:0}.faqs summary{font-weight:750;cursor:pointer;font-size:.97rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}.faqs summary::-webkit-details-marker{display:none}.faqs summary:after{content:'+';color:#195a98;font-size:1.25rem;flex-shrink:0}.faqs details[open] summary:after{content:'−'}.faqs details p{font-size:.87rem;color:var(--muted);padding-top:12px}.review-setup{margin-top:27px;padding:18px 20px;border:1px dashed #c1cfd3;background:#f6f8f7;border-radius:9px}.review-setup h3{font-size:1rem;margin-bottom:7px}.review-setup p{font-size:.78rem;color:var(--muted)}.site-areas{padding:34px 0;background:#f4f5f1;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.areas-row{display:flex;align-items:center;justify-content:space-between;gap:25px}.areas-row strong{display:block;line-height:1.3;font-size:1.05rem}.area-pills{display:flex;gap:8px;flex-wrap:wrap}.area-pills span{border:1px solid #cfd9da;padding:6px 13px;border-radius:25px;font-size:.77rem;background:white}.site-contact{background:var(--navy);color:white}.contact-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:80px;align-items:start}.site-contact .kicker{color:#a3cffa}.site-contact .lede{color:#c9d6df;max-width:410px}.contact-details{margin:30px 0;display:grid;gap:15px}.contact-details a{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:650}.contact-details .icon{color:#8fc4f9}.solar-teaser{border:1px solid #ffffff2b;border-radius:10px;background:#ffffff06;padding:21px;margin-top:36px;max-width:415px}.solar-teaser h3{font-size:1rem;margin:10px 0}.solar-teaser p{font-size:.8rem;color:#b9cad7}.solar-teaser .text-btn{color:#afd7ff;margin-top:8px}.estimate-form{background:#fff;color:var(--ink);border-radius:14px;padding:30px}.estimate-form h3{font-size:1.4rem;margin-bottom:7px}.estimate-form>p{color:var(--muted);font-size:.78rem;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:.79rem;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #c7d2d6;border-radius:6px;background:white;color:var(--ink);padding:10px 12px;font-weight:450;min-height:44px;line-height:1.5}.field textarea{resize:vertical;min-height:90px}.field small{font-size:.68rem;color:var(--muted);font-weight:450;line-height:1.5}.full{grid-column:1/-1}.estimate-form .btn{width:100%;margin-top:18px}.form-demo-note{font-size:.69rem;line-height:1.5;color:var(--muted);margin-top:12px}.form-uploads{font-weight:450;color:var(--muted);font-size:.73rem}.site-footer{background:var(--deep);color:#aebbca;padding:35px 0;font-size:.74rem}.footer-row{display:flex;justify-content:space-between;align-items:center;gap:25px}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-row strong{display:block;color:white;margin-bottom:3px;font-size:.9rem}.mobile-cta{display:none}
/* OWNER STUDIO */
.studio-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 47px);background:#f3f6f5}.studio-sidebar{background:var(--navy);color:#cad6df;padding:27px 16px;display:flex;flex-direction:column;min-width:0}.studio-brand{display:flex;gap:11px;align-items:center;padding:0 5px 28px}.studio-brand img{width:49px;height:49px;object-fit:contain}.studio-brand strong{font-size:.91rem;color:white;display:block;line-height:1.3;letter-spacing:.005em}.studio-brand small{font-size:.64rem;color:#a6d0fb}.sidebar-heading{font-size:.59rem;letter-spacing:.16em;text-transform:uppercase;color:#8ca6b8;padding:8px 13px}.studio-nav{display:grid;gap:6px}.studio-nav button{color:#bdced9;background:transparent;border:0;border-radius:7px;padding:11px 13px;text-align:left;display:flex;align-items:center;gap:10px;font-size:.82rem;min-height:45px}.studio-nav button .icon{width:18px;height:18px}.studio-nav button.active{background:#ffffff13;color:#fff;box-shadow:inset 3px 0 var(--accent)}.studio-nav button:hover{background:#ffffff0c}.sidebar-bottom{margin-top:35px;padding:17px 13px;border-top:1px solid #ffffff20;font-size:.71rem;color:#9fb4c3;line-height:1.6}.sidebar-bottom strong{color:#d7e0e7;display:block;margin-bottom:5px}.sidebar-bottom .text-btn{color:#98c8f8;font-size:.7rem}.studio-main{min-width:0}.studio-topbar{min-height:79px;background:#fff;border-bottom:1px solid var(--line);padding:17px 32px;display:flex;align-items:center;justify-content:space-between;gap:18px}.studio-crumb{font-size:.8rem;color:var(--muted)}.studio-crumb strong{color:var(--ink)}.topbar-actions{display:flex;align-items:center;gap:10px}.local-state{font-size:.7rem;color:#5c6d76;margin-right:6px}.local-state:before{content:'';width:6px;height:6px;background:#37866a;border-radius:100%;display:inline-block;margin-right:6px}.studio-content{padding:28px 32px 60px;max-width:1500px;margin:auto}.studio-notice{font-size:.72rem;color:#516877;background:#e8efef;border:1px solid #dbe5e6;border-radius:7px;padding:10px 13px;display:flex;gap:8px;align-items:flex-start;margin-bottom:25px}.studio-notice>.icon{height:16px;width:16px;margin-top:2px}.studio-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.studio-title h1{font-size:1.8rem;letter-spacing:-.04em}.studio-title p{font-size:.81rem;color:var(--muted);margin-top:7px}.title-actions{display:flex;gap:8px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:23px}.stat{background:white;border:1px solid var(--line);padding:17px 21px;border-radius:10px;display:flex;gap:14px;align-items:center}.stat>.icon{color:#637c83;width:25px;height:25px}.stat strong{font-size:1.32rem;line-height:1.2;display:block}.stat small{font-size:.71rem;color:var(--muted)}.studio-banner{background:white;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:1.25fr 1fr;overflow:hidden;margin-bottom:25px}.studio-banner-copy{padding:25px}.studio-banner-copy h2{font-size:1.35rem;margin:11px 0}.studio-banner-copy p{font-size:.8rem;color:var(--muted);max-width:400px;margin-bottom:18px}.studio-banner-photo{position:relative;min-height:212px;background:#dbe4e6}.studio-banner-photo img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 25%}.studio-banner-photo span{position:absolute;bottom:12px;left:13px;background:#ffffffee;font-size:.68rem;padding:4px 8px;border-radius:4px;color:#294651}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.library-toolbar h2{font-size:1.1rem}.search-field{position:relative;max-width:260px;flex:1}.search-field input{width:100%;border:1px solid #cbd7da;padding:9px 12px 9px 35px;border-radius:6px;font-size:.77rem}.search-field .icon{position:absolute;left:10px;top:11px;width:17px;height:17px;color:#6d838c}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.library-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}.library-photo{position:relative;background:#dce5e5}.library-photo>button{padding:0;border:0;background:none;display:block;width:100%}.library-photo img{width:100%;height:175px;object-fit:cover;object-position:var(--fx,50%) var(--fy,50%)}.library-photo>.badge{position:absolute;left:10px;top:10px;background:#fdfdfced;pointer-events:none}.library-body{padding:13px 15px 11px}.library-body h3{font-size:.84rem;line-height:1.4;letter-spacing:-.008em}.library-body>p{font-size:.65rem;color:var(--muted);margin:5px 0 12px}.library-controls{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #e8edee;padding-top:10px}.library-controls .text-btn{font-size:.71rem}.order-buttons{display:flex;gap:4px}.order-buttons button{border:1px solid #dae3e5;border-radius:4px;padding:2px 8px;background:white;min-width:30px;min-height:30px;font-size:.86rem}.switchline{display:flex;align-items:center;gap:7px;font-size:.71rem;color:#446371;font-weight:650;cursor:pointer}.switchline input{accent-color:var(--teal);width:15px;height:15px}.empty{padding:40px;text-align:center;background:white;border:1px dashed #bacacd;border-radius:10px;color:var(--muted);grid-column:1/-1}.hero-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.hero-choice{background:white;border:2px solid #dbe3e3;border-radius:12px;overflow:hidden;position:relative}.hero-choice.selected{border-color:#1f65a9;box-shadow:0 0 0 3px #578ec720}.hero-choice img{width:100%;height:207px;object-fit:cover;background:#dce4e6}.hero-choice .choice-body{padding:19px}.hero-choice h3{font-size:1.02rem;margin:10px 0}.hero-choice p{font-size:.77rem;color:var(--muted);line-height:1.6;min-height:77px}.hero-choice .btn{width:100%;margin-top:17px}.hero-choice .license-links{display:flex;gap:11px;flex-wrap:wrap;margin-top:13px;font-size:.68rem;color:#385763}.hero-choice .license-links a{text-decoration:underline}.hero-choice .online-photo{position:relative;background:#ebf0ee}.online-help{font-size:.66rem;color:#576d76;padding:11px;background:#f1f4f4;min-height:51px;line-height:1.5}.stock-error{position:absolute;inset:0;padding:29px 23px;background:var(--navy);color:#d4dee4;font-size:.77rem;display:grid;place-content:center}.stock-error strong{display:block;color:#a8d2fc;margin-bottom:5px;font-size:.89rem}.recommendation{margin-top:23px;padding:22px;background:#edf5fd;border:1px solid #bfd7ee;border-radius:10px;font-size:.84rem;color:#31546f;line-height:1.65}.recommendation strong{display:block;color:#173d5a;margin-bottom:4px}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:27px;margin-bottom:20px}.panel h2{font-size:1.3rem;margin-bottom:13px}.panel p{font-size:.82rem;color:var(--muted)}.seo-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.seo-layout .form-grid{grid-template-columns:1fr;gap:18px}.search-preview{border:1px solid var(--line);border-radius:9px;padding:25px;margin-top:18px;background:#fff}.search-preview small{font-size:.74rem;display:block}.search-preview h3{font-size:1.15rem;font-weight:550;color:#194994;margin:9px 0;letter-spacing:0;line-height:1.35}.search-preview p{font-size:.81rem;color:#505c62;line-height:1.6}.check-row{display:flex;gap:10px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #e4eaeb;font-size:.81rem}.check-row .icon{width:17px;height:17px;margin-top:3px;color:#327563}.check-row b{display:block;font-size:.8rem}.check-row span{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.integration-card{padding:24px;background:white;border:1px solid var(--line);border-radius:12px}.integration-card>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.integration-card>.icon{color:#506e7a}.integration-card h3{font-size:1.1rem;margin-bottom:12px}.integration-card p{font-size:.8rem;color:var(--muted);min-height:76px}.integration-card .btn{margin-top:16px}.studio-mobile-label{display:none}.backup-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.revision-note{margin:16px 0;font-size:.74rem;color:var(--muted)}
/* MODALS & UPLOADS */
dialog{border:0;border-radius:15px;padding:0;color:var(--ink);box-shadow:0 28px 100px #071c3066;width:min(760px,calc(100% - 32px));max-height:92vh;background:#fff}dialog::backdrop{background:#041522bb;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:21px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.modal-head h2{font-size:1.28rem}.close-btn{border:1px solid var(--line);width:35px;height:35px;display:grid;place-items:center;background:#fff;border-radius:50%;flex-shrink:0}.close-btn .icon{width:17px;height:17px}.modal-body{padding:26px}.modal-body>p{font-size:.85rem;color:var(--muted);margin-bottom:18px}.modal-foot{display:flex;justify-content:flex-end;gap:12px;padding:18px 26px;border-top:1px solid var(--line);background:#f7f9f8;position:sticky;bottom:0;z-index:2}.edit-previews{display:grid;grid-template-columns:1.8fr 1fr;gap:16px;margin-bottom:22px}.edit-preview{background:#f0f3f2;border:1px solid var(--line);border-radius:8px;overflow:hidden}.edit-preview img{width:100%;height:183px;object-fit:cover}.edit-preview small{display:block;font-size:.68rem;padding:7px 10px;color:var(--muted)}.crop-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}.crop-fields input{width:100%;padding:0;accent-color:#1c5d97;min-height:25px}.upload-zone{padding:31px 18px;border:2px dashed #c0d0d1;text-align:center;border-radius:10px;background:#f7faf8}.upload-zone.dragging{border-color:#2471b4;background:#e8f2fb}.upload-zone>.icon{width:35px;height:35px;color:#4a6976;margin-bottom:10px}.upload-zone strong{display:block;font-size:1rem}.upload-zone p{font-size:.75rem;color:var(--muted);margin:7px 0 14px}.upload-queue{display:grid;gap:9px;margin:18px 0}.upload-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:7px;padding:9px 12px}.upload-row img{width:53px;height:42px;object-fit:cover;border-radius:4px}.upload-row>div{flex:1;min-width:0}.upload-row b{font-size:.74rem;display:block;overflow-wrap:anywhere}.upload-row span{display:block;font-size:.67rem;color:var(--muted)}.permission{display:flex;gap:10px;font-size:.78rem;align-items:flex-start;margin:20px 0}.permission input{margin-top:5px;accent-color:var(--teal)}.error-note{color:#9e3325;font-size:.78rem;margin-top:10px}.project-modal-image{width:100%;max-height:60vh;object-fit:contain;background:#e9eded;border-radius:9px}.image-modal-desc{margin-top:16px;font-size:.86rem;color:var(--muted)}.modal-list{padding-left:20px;font-size:.86rem;color:var(--muted)}.modal-list li{margin:9px 0}.toast{position:fixed;z-index:3000;bottom:22px;left:50%;transform:translate(-50%,12px);background:#163949;color:#fff;padding:13px 22px;border-radius:10px;box-shadow:0 8px 40px #071c3040;font-size:.82rem;max-width:calc(100% - 28px);pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.demo-result{background:#edf4ef;border:1px solid #c9dfd1;color:#2e5b47;padding:16px;border-radius:8px;font-size:.81rem;margin-top:18px}.service-modal-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.solar-status{display:grid;gap:0;margin:20px 0}.solar-status>div{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:.79rem}.solar-status span{color:var(--muted)}.contact-demo-files{display:flex;gap:6px;flex-wrap:wrap;font-size:.68rem;color:var(--muted);margin-top:5px}
@media(min-width:1700px){.hero-copy{padding-left:0}.hero-visual{margin-right:-13vw}}
@media(max-width:1150px){.site-nav{gap:15px}.site-nav .btn{padding:11px;font-size:.77rem;margin-left:0}.site-brand img{width:68px;height:68px}.site-brand strong{font-size:.89rem}.site-brand small{font-size:.49rem}.hero-copy{padding-right:25px}.studio-shell{grid-template-columns:195px minmax(0,1fr)}.studio-content{padding:24px}.studio-topbar{padding:15px 24px}.studio-topbar .local-state{display:none}.library-grid{grid-template-columns:repeat(2,1fr)}.hero-choices{gap:12px}.hero-choice .choice-body{padding:15px}.hero-choice img{height:175px}.hero-choice p{min-height:112px}.about-grid,.faq-grid{gap:42px}.contact-grid{gap:45px}}
@media(max-width:930px){.site-header .wrap{min-height:86px}.site-nav{display:none;position:absolute;top:86px;left:24px;right:24px;background:#fff;color:var(--ink);padding:20px;border-radius:8px;box-shadow:0 15px 40px #0004}.site-nav.open{display:grid;gap:15px}.menu-toggle{display:block}.site-brand strong{font-size:1rem}.site-brand small{font-size:.57rem}.hero-copy h1{font-size:3.1rem}.hero-copy{padding:45px 25px 45px 0}.hero-layout{min-height:540px;grid-template-columns:1.08fr 1fr}.hero-actions .btn{font-size:.79rem}.hero-visual{min-height:400px}.transition-layout{gap:18px}.transition-item+.transition-item{padding-left:20px}.transition-item strong{font-size:.79rem}.transition-item small{font-size:.67rem}.transition-item>.icon{width:23px;height:23px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{padding:22px}.project-grid{grid-template-columns:repeat(2,1fr)}.areas-row{display:block}.area-pills{margin-top:16px}.contact-grid{grid-template-columns:1fr 1.15fr;gap:30px}.estimate-form{padding:23px}.studio-shell{grid-template-columns:1fr}.studio-sidebar{padding:12px 20px}.studio-brand,.sidebar-heading,.sidebar-bottom{display:none}.studio-nav{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin}.studio-nav button{white-space:nowrap;min-height:42px;font-size:.77rem}.studio-nav button.active{box-shadow:inset 0 -3px var(--accent)}.studio-topbar{min-height:70px}.studio-mobile-label{display:block;font-size:.74rem;color:#bdcfd8;margin-bottom:8px}.studio-banner-photo{min-height:210px}.library-grid{grid-template-columns:repeat(3,1fr)}.library-photo img{height:160px}.seo-layout{grid-template-columns:1fr}.studio-title h1{font-size:1.65rem}.integration-card p{min-height:102px}}
@media(max-width:680px){.wrap{width:calc(100% - 36px)}.demo-bar{padding:7px 10px;display:block}.demo-bar>span{justify-content:center;font-size:.65rem;margin-bottom:5px}.demo-tabs{justify-content:center}.demo-tabs button{flex:1;padding:6px;font-size:.69rem}.site-topline{font-size:.63rem}.site-topline .wrap span:last-child{display:none}.site-header .wrap{min-height:78px;gap:12px}.site-brand img{width:57px;height:57px}.site-brand strong{font-size:.91rem}.site-brand small{font-size:.49rem}.site-nav{top:78px;left:14px;right:14px}.hero-layout{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:33px 0 32px;order:1}.hero-copy h1{font-size:2.75rem;max-width:410px}.hero-copy p{font-size:.92rem;margin:19px 0}.hero-copy .kicker{font-size:.65rem;margin-bottom:14px}.hero-actions{gap:8px}.hero-actions .btn{flex:1;min-width:145px;font-size:.74rem;padding:12px 9px}.hero-actions .icon{width:17px;height:17px}.hero-note{font-size:.71rem;margin-top:17px}.hero-visual{order:0;min-height:244px;margin:0 -18px;aspect-ratio:1.55}.hero-visual img{object-position:var(--mx,50%) var(--my,40%)}.hero-visual:after{background:linear-gradient(0deg,#0b1d3355,transparent 25%)}.photo-credit{font-size:.57rem;left:12px;right:12px;bottom:8px}.photo-credit span{padding:4px 6px}.hero-loading-error{font-size:.71rem;top:15%;left:18px;right:18px}.transition-layout{grid-template-columns:1fr;gap:0;padding:14px 0}.transition-item{padding:10px 0;gap:14px}.transition-item+.transition-item{border:0;padding-left:0}.transition-item strong{font-size:.81rem}.transition-item small{font-size:.71rem}.transition-item:not(:first-child){display:none}.section{padding:55px 0}.section h2{font-size:2.03rem}.kicker{font-size:.65rem;margin-bottom:11px}.section-top{display:block;margin-bottom:25px}.section-top>.btn{margin-top:16px}.lede{font-size:.88rem;margin-top:13px}.service-grid{grid-template-columns:1fr;gap:11px}.service-card{padding:20px}.service-card h3{font-size:1.07rem}.service-card p{font-size:.79rem}.service-card .text-btn{margin-top:7px}.project-grid{grid-template-columns:1fr;gap:25px}.project-image img{height:265px;object-position:var(--mx,50%) var(--my,50%)}.project-caption h3{font-size:1rem}.project-caption p{font-size:.7rem}.filterbar{gap:6px}.filterbar button{font-size:.69rem;padding:7px 11px}.project-note{font-size:.67rem}.process-grid{grid-template-columns:1fr;gap:22px;margin-top:28px}.process-step{display:grid;grid-template-columns:28px 1fr;column-gap:16px;padding-top:20px}.process-step .number{grid-row:span 2;margin-top:5px}.process-step h3{font-size:1.15rem}.process-step p{font-size:.82rem;max-width:none}.about-grid,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.about-photo>img{aspect-ratio:1.25}.about-copy .lede{margin-bottom:17px}.about-tag{padding:12px 15px}.faq-grid{gap:25px}.faqs summary{font-size:.91rem}.faqs details p{font-size:.81rem}.areas-row strong{font-size:1rem}.site-areas{padding:26px 0}.area-pills span{font-size:.71rem}.estimate-form{padding:23px 20px}.form-grid{gap:12px}.field{font-size:.74rem}.field input,.field select,.field textarea{font-size:16px;padding:9px 10px}.estimate-form h3{font-size:1.27rem}.contact-details a{font-size:1rem}.solar-teaser{margin-top:25px}.footer-row{display:block}.footer-links{margin-top:17px;gap:18px}.site-footer{padding-bottom:106px}.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:35;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#071928ed;display:flex;gap:8px;backdrop-filter:blur(6px);border-top:1px solid #ffffff30}.mobile-cta .btn{flex:1;font-size:.78rem;min-height:44px;padding:9px}.studio-content{padding:19px 16px 35px}.studio-topbar{padding:12px 16px;flex-wrap:wrap;gap:10px}.studio-crumb{font-size:.71rem}.topbar-actions{width:100%;justify-content:space-between;gap:7px}.topbar-actions .btn{flex:1;font-size:.71rem;padding:9px 8px}.studio-sidebar{padding:10px 12px}.studio-nav button{font-size:.72rem;padding:9px 10px}.studio-nav .icon{width:16px;height:16px}.studio-title{align-items:flex-start;margin-bottom:19px;gap:12px}.studio-title h1{font-size:1.5rem}.studio-title p{font-size:.74rem}.studio-title .btn{padding:10px 12px;font-size:.72rem;white-space:nowrap}.studio-notice{font-size:.66rem;margin-bottom:20px}.stat-grid{gap:7px}.stat{padding:12px 11px;gap:6px;display:block}.stat>.icon{display:none}.stat strong{font-size:1.2rem}.stat small{font-size:.63rem;line-height:1.3;display:block;margin-top:3px}.studio-banner{grid-template-columns:1fr}.studio-banner-copy{padding:19px}.studio-banner-photo{min-height:180px;order:-1}.studio-banner-copy h2{font-size:1.22rem}.studio-banner-copy p{font-size:.75rem}.library-grid{grid-template-columns:1fr 1fr;gap:12px}.library-photo img{height:125px}.library-body{padding:11px 11px 9px}.library-body h3{font-size:.75rem;min-height:32px}.library-body>p{font-size:.6rem}.library-controls{display:block}.library-controls .order-buttons{margin-top:8px;justify-content:flex-end}.library-controls .text-btn{font-size:.69rem}.library-photo>.badge{font-size:.55rem;left:7px;top:7px;padding:3px 6px}.library-toolbar{gap:10px}.library-toolbar h2{font-size:1rem}.search-field{max-width:175px}.hero-choices{grid-template-columns:1fr}.hero-choice img{height:218px}.hero-choice p{min-height:0;font-size:.8rem}.hero-choice .choice-body{padding:20px}.hero-choice .btn{margin-top:14px}.recommendation{font-size:.78rem;padding:18px}.panel{padding:20px}.panel h2{font-size:1.2rem}.panel p{font-size:.78rem}.integration-grid{grid-template-columns:1fr}.integration-card p{min-height:0}.integration-card{padding:21px}.seo-layout{gap:0}.search-preview{padding:20px}.studio-title .title-actions{display:none}.edit-previews{gap:10px;grid-template-columns:1.5fr 1fr}.edit-preview img{height:139px}.edit-preview small{font-size:.62rem}.modal-head{padding:17px 19px}.modal-head h2{font-size:1.14rem}.modal-body{padding:20px}.modal-foot{padding:14px 19px}.modal-foot .btn{font-size:.79rem}.crop-fields{grid-template-columns:1fr 1fr;gap:11px}.crop-fields .field{font-size:.69rem}.toast{bottom:80px;font-size:.76rem}.photo-credit .online-license{display:none}.solar-status>div{font-size:.73rem}dialog{max-height:92dvh}}
@media(max-width:360px){.site-brand small{font-size:.44rem}.site-brand strong{font-size:.83rem}.hero-copy h1{font-size:2.4rem}.hero-actions{display:grid;grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.library-grid{grid-template-columns:1fr}.library-photo img{height:190px}.crop-fields{grid-template-columns:1fr}.demo-tabs button{font-size:.65rem}.studio-title{display:block}.studio-title>.btn{margin-top:12px}.studio-nav button{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Crib Top original identity: use the supplied blue/silver logo; preserve photo and layout logic. */
.btn-accent{background:#0966ce;color:#fff}.btn-accent:hover{background:#0057b7;color:#fff}.site-nav .btn-accent:hover{color:#fff}
.site-brand img{border-radius:12px;background:#000}.studio-brand img{background:#000;border-radius:8px}.hero-copy h1{max-width:600px}.site-brand strong{letter-spacing:.01em}
.mobile-cta .btn-accent{color:#fff}.site-brand small{letter-spacing:.11em}.hero-note{font-size:.76rem}

/* OWNER REVIEW ADDITIONS — the following security panel is a specification, not authentication. */
.security-alert{display:flex;gap:14px;border:1px solid #bbcedb;background:#edf3f8;padding:20px 22px;border-radius:12px;margin-bottom:22px;color:#1c3b52}
.security-alert>.icon{margin-top:4px}.security-alert strong{font-size:1rem}.security-alert p{margin-top:6px;font-size:.85rem;line-height:1.6;max-width:820px}
.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.security-grid .panel{margin:0 0 20px}.security-grid .badge{margin-bottom:16px}.security-grid h2{font-size:1.15rem;margin-bottom:16px}.role-row{display:grid;grid-template-columns:95px 1fr;gap:12px;padding:15px 0;border-top:1px solid var(--line);font-size:.85rem}.role-row span{color:var(--muted)}
.security-foot{font-size:.78rem!important;margin-top:12px!important}.security-item{padding:13px 0;border-top:1px solid var(--line)}.security-item b{font-size:.86rem}.security-item p{font-size:.82rem;margin-top:5px;line-height:1.65}
.bot-placeholder{display:flex;gap:10px;border:1px dashed #b9c8d4;border-radius:8px;background:#f5f8fa;padding:12px;margin:16px 0;color:#385269;font-size:.73rem}.bot-placeholder strong{display:block}.bot-placeholder .icon{width:18px;height:18px}
.brand-review-label{font-weight:750}.review-note{color:var(--muted);font-size:.78rem}.studio-nav{gap:3px}
@media(max-width:760px){.security-grid{grid-template-columns:1fr}.security-alert{padding:16px}.security-grid .panel{margin-bottom:0}.role-row{grid-template-columns:80px 1fr}.demo-bar .review-mobile-hide{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.demo-notice{background:#f4e3ce;color:#392a1f;text-align:center;padding:12px 18px;font-size:.8rem;font-weight:650}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.owner-layout{max-width:1100px;margin:0 auto;padding:30px 20px}.owner-header{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.owner-header img{width:58px}.owner-card{background:white;padding:22px;margin:20px 0;border:1px solid #d7e0e6;border-radius:12px}.owner-photo{display:grid;grid-template-columns:220px 1fr;gap:20px}.owner-photo img{width:100%;border-radius:8px}.owner-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.owner-message{padding:16px;background:#eaf4ec;border-radius:8px;margin:15px 0}.owner-login{max-width:480px;margin:50px auto;padding:25px}.owner-login .field{margin:18px 0}.owner-crop{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.owner-lead{overflow-wrap:anywhere}.owner-lead img{max-width:220px;max-height:180px}body{overflow-wrap:break-word}@media(max-width:650px){.owner-photo{grid-template-columns:1fr}.owner-photo img{max-height:260px;object-fit:contain}.owner-crop{grid-template-columns:1fr}.owner-login{margin:10px auto}.owner-header h1{font-size:1.5rem}}

@media(max-width:650px){.site-contact .form-grid{grid-template-columns:1fr}.site-contact .field.full{grid-column:1}}
@media(max-width:650px){.owner-layout .form-grid{grid-template-columns:1fr}.owner-layout .field.full{grid-column:1}.owner-layout .owner-actions .btn{max-width:100%}}
/* Explicit link colors also keep visited primary links legible across WebKit versions. */
a.btn-orange{background-color:#f3963f;color:#061523}a.btn-orange:hover{background-color:#ffad60}a.service-card{border-color:#dce2e4}

.btn-orange{background:#0966ce;color:#fff}.btn-orange:hover{background:#0057b7;color:#fff}a.btn-orange:link,a.btn-orange:visited,a.btn-accent:link,a.btn-accent:visited{color:#fff}
.demo-notice{background:#dcecff;color:#0b2e52}.site-header{top:0}

/* Streamlined Crib Top owner-review homepage. Existing gallery/owner styles retained. */
.streamlined .site-header .wrap{min-height:84px}.streamlined .site-brand img{width:64px;height:64px}.streamlined .site-brand strong{font-size:1rem}.streamlined .site-brand small{font-size:.65rem}
.streamlined .demo-notice{padding:9px 18px;font-size:.75rem}.streamlined .hero-layout{min-height:0;gap:40px;padding-top:38px;padding-bottom:38px;align-items:center}.streamlined .hero-copy{padding:12px 0}.streamlined .hero-copy h1{font-size:clamp(2.6rem,4.1vw,3.8rem);line-height:1.08;max-width:650px}.streamlined .hero-copy p{max-width:480px;font-size:1rem;margin:20px 0}.streamlined .hero-visual{aspect-ratio:1.24;min-height:0;max-height:440px;border-radius:14px;overflow:hidden}.streamlined .hero-visual img{height:100%;width:100%;object-fit:cover}.streamlined .hero-note{margin-top:17px}.streamlined .section{padding-top:64px;padding-bottom:64px}.streamlined .section h2{font-size:clamp(1.9rem,3vw,2.65rem)}
.compact-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.compact-services .service-card{padding:25px;display:block}.compact-services .service-icon{margin-bottom:17px}.compact-services .service-card h3{font-size:1.3rem}.compact-services .service-card p{min-height:58px}.selected-projects{grid-template-columns:repeat(3,minmax(0,1fr))}.selected-projects .project-image img{height:240px}.why-intro{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:30px}.why-intro .lede{margin-top:0}.service-area{margin-top:17px;font-size:.88rem;color:#526576}.compact-reviews{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.compact-reviews .customer-card{padding:24px}.compact-reviews blockquote{font-size:1.25rem;min-height:0}.compact-reviews .review-summary{margin-top:18px;min-height:0}.streamlined .contact-grid{gap:50px}.streamlined .estimate-form{padding:28px}.gallery-section h1{font-size:clamp(2rem,4vw,3.2rem)}.gallery-section .project-grid{margin-top:25px}.gallery-section .project-note{margin-top:22px}.streamlined .site-footer{padding-top:32px;padding-bottom:32px}.streamlined .footer-top-grid{gap:24px}.streamlined .footer-bottom-grid{margin-top:22px;padding-top:18px}
@media(max-width:1000px){.streamlined .site-nav{top:84px}.compact-services{gap:12px}.compact-services .service-card{padding:20px}.why-intro{gap:28px}.selected-projects .project-image img{height:210px}}
@media(max-width:680px){.streamlined .site-header .wrap{min-height:70px}.streamlined .site-brand img{width:48px;height:48px}.streamlined .site-brand strong{font-size:.9rem}.streamlined .site-brand small{font-size:.56rem}.streamlined .site-nav{top:70px}.streamlined .hero-layout{padding-top:0;padding-bottom:28px;gap:20px}.streamlined .hero-copy{order:0;padding:27px 0 0}.streamlined .hero-copy h1{font-size:2.3rem;line-height:1.1}.streamlined .hero-copy p{font-size:.94rem;margin:16px 0}.streamlined .hero-copy .kicker{font-size:.62rem}.streamlined .hero-visual{order:1;aspect-ratio:1.7;max-height:240px;width:100%;margin:0}.streamlined .hero-note{margin-top:14px;font-size:.72rem}.streamlined .section{padding-top:42px;padding-bottom:42px}.streamlined .section h2{font-size:1.95rem}.compact-services{grid-template-columns:1fr;gap:11px}.compact-services .service-card{display:flex;padding:18px;gap:15px}.compact-services .service-icon{margin:0;flex:0 0 43px;width:43px;height:43px}.compact-services .service-card h3{font-size:1.12rem}.compact-services .service-card p{min-height:0;font-size:.8rem}.compact-services .text-btn{font-size:.76rem;margin-top:8px}.selected-projects{grid-template-columns:1fr;gap:22px}.selected-projects .project-image img{height:220px}.why-intro{grid-template-columns:1fr;gap:18px;margin-bottom:25px}.why-intro .lede{font-size:.9rem}.compact-reviews{grid-template-columns:1fr;gap:14px}.compact-reviews .customer-card{padding:21px}.compact-reviews blockquote{font-size:1.2rem}.compact-reviews .review-summary{font-size:.8rem}.streamlined .contact-grid{gap:25px}.streamlined .estimate-form{padding:22px 19px}.streamlined .site-footer{padding-bottom:100px}.gallery-section .project-image img{height:240px}.gallery-section h1{font-size:2.2rem}}

/* Consistent footer link/button alignment, including wrapped mobile rows. */
.footer-links{align-items:center}.footer-links>a,.footer-links>button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.4}
