/* Shared breadcrumb: parent links stay distinct from the current page. */
.site-breadcrumb{display:table;max-width:100%;margin:0 0 26px;padding:4px 12px;background:#fff;border:1px solid #c6d3df;border-left:3px solid var(--orange-accent);border-radius:10px;color:#52677c;font-family:var(--brand-font);font-size:.875rem;line-height:1.45}
.site-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.site-breadcrumb li{display:flex;align-items:center;min-width:0;margin:0;padding:0}
.site-breadcrumb li+li:before{content:'›';color:#a64a00;font-size:1.25rem;padding:0 9px;font-weight:700}
.site-breadcrumb a{display:inline-flex;align-items:center;min-height:36px;padding:4px 2px;color:#10243e;font-weight:700;text-decoration:none;border-radius:4px}
.site-breadcrumb a:hover{text-decoration:underline;text-underline-offset:4px;background:#edf3f7}
.site-breadcrumb a:focus-visible{outline:3px solid var(--orange-accent);outline-offset:3px}
.site-breadcrumb [aria-current=page]{display:inline-block;padding:8px 0;color:#52677c;font-weight:500}
.site-breadcrumb--dark{background:#ffffff0d;border-color:#ffffff40;border-left-color:var(--orange-accent);color:#d5e1ec}
.site-breadcrumb--dark a{color:#fff}.site-breadcrumb--dark a:hover{background:#ffffff12}.site-breadcrumb--dark [aria-current=page]{color:#d5e1ec}.site-breadcrumb--dark li+li:before{color:#ffbd77}
@media(max-width:600px){.site-breadcrumb{font-size:.8rem;margin-bottom:22px;padding:3px 9px}.site-breadcrumb a{min-height:40px}.site-breadcrumb li+li:before{padding:0 7px}}
.site-breadcrumb{position:relative;z-index:12}
.site-breadcrumb .breadcrumb-toggle{display:inline-flex;align-items:center;gap:9px;min-height:40px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;border-radius:5px;padding:8px 2px;color:inherit}
.site-breadcrumb .breadcrumb-toggle:hover{background:#10243e09}.site-breadcrumb--dark .breadcrumb-toggle:hover{background:#ffffff12}
.site-breadcrumb .breadcrumb-toggle:focus-visible{outline:3px solid var(--orange-accent);outline-offset:3px}
.breadcrumb-chevron{color:#a64a00}.site-breadcrumb--dark .breadcrumb-chevron{color:#ffbd77}
.site-breadcrumb .breadcrumb-pages{position:absolute;top:100%;left:0;width:310px;max-width:calc(100vw - 48px);padding:12px;background:#fff;border:1px solid #c6d3df;border-top:3px solid var(--orange-accent);border-radius:0 0 12px 12px;box-shadow:0 15px 35px #07152735;color:#10243e;max-height:min(430px,65vh);overflow:auto;z-index:30}
.site-breadcrumb .breadcrumb-menu-heading{color:#a64a00;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:4px 8px 9px}
.site-breadcrumb .breadcrumb-pages a{display:flex;min-height:44px;color:#10243e;padding:10px 12px;font-size:.9rem;font-weight:650;text-decoration:none;border-radius:6px}
.site-breadcrumb .breadcrumb-pages a:hover,.site-breadcrumb .breadcrumb-pages a:focus-visible{background:#edf3f7;color:#10243e}
.site-breadcrumb .breadcrumb-pages a[aria-current=page]{background:#10243e;color:#fff;font-weight:750}
/* Shared brand layer. Keep page-specific layouts; use these tokens and components site-wide. */
:root{--navy:#10243e;--navy-2:#173653;--orange:#f59a42;--orange-accent:#f7a552;--orange-highlight:#ffbd77;--orange-dark:#a64a00;--cream:#f3f6f9;--ink:#10243e;--muted:#52677c;--line:#c6d3df;--radius:18px;--brand-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--brand-shadow:0 9px 24px #10243e14;font-family:var(--brand-font);color:var(--ink);background:#fff;line-height:1.6}
body{font-family:var(--brand-font);font-size:1rem;line-height:1.6;color:var(--ink);background:#fff}
*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
img,svg{max-width:100%}
main,section,article,aside,form{min-width:0}
h1,h2,h3{line-height:1.2;letter-spacing:-.025em;text-wrap:balance}
p,li,dd,label{overflow-wrap:break-word}
a{text-underline-offset:4px}
[hidden]{display:none!important}
/* Keep accessible custom-choice radios from creating an invisible horizontal scrollbar. */
#estimate .choice-card input[type=radio]{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.marketing-site .eyebrow,.customer-site .eyebrow{font-size:.875rem;font-weight:800;letter-spacing:.1em;line-height:1.5}
.marketing-site .eyebrow.dark{color:var(--orange-dark)}
.marketing-site .section-intro>p:last-child{font-size:1.0625rem;line-height:1.65}
.marketing-site :is(.page-block,.commercial-section,.pricing-section,.faq-section,.report-section,.repair-section,.maintenance-section){padding-top:64px;padding-bottom:64px}
.marketing-site :is(.commercial-section,.maintenance-section,.repair-section){padding-left:max(24px,calc((100% - 1140px)/2));padding-right:max(24px,calc((100% - 1140px)/2))}
.marketing-site :is(.page-block h2,.section-intro h2,.repair-copy h2,.report-copy h2){font-size:clamp(1.85rem,3.5vw,2.8rem);line-height:1.15;letter-spacing:-.035em}
.marketing-site .section-intro{margin-bottom:32px}
.marketing-site .page-intro{padding-top:36px;padding-bottom:44px;background:#edf3f7;border-bottom:1px solid var(--line)}
.marketing-site .page-intro h1{font-size:clamp(2.15rem,4.5vw,3.6rem);line-height:1.1;letter-spacing:-.04em}
.marketing-site .page-intro .breadcrumb{font-size:.875rem;color:var(--muted);margin-bottom:18px}
.marketing-site .hero h1,.marketing-site .commercial-hero h1{font-size:clamp(2.65rem,5.5vw,4.8rem);line-height:1.07;letter-spacing:-.04em}
.site-header{height:auto;min-height:88px;padding:10px max(24px,calc((100% - 1140px)/2));gap:24px;background:#fff;border-bottom:1px solid #e0e7ee}
.site-header .brand{height:auto;overflow:visible;line-height:1;flex:0 0 auto}
.site-header .curbwell-logo{display:block;width:245px;height:auto;background:transparent;border-radius:0;filter:none}
.site-header .header-phone{color:var(--navy);white-space:nowrap;flex:0 0 auto}
.site-header .header-phone span{font-size:.75rem;letter-spacing:.07em;color:var(--muted)}
.site-header .header-phone strong{font-size:1.0625rem;letter-spacing:0}
.site-navigation{gap:8px;padding:10px max(24px,calc((100% - 1140px)/2));font-size:1rem;line-height:1.4;background:#fff}
.site-navigation :is(a,summary){color:var(--navy);letter-spacing:0}
.site-navigation>a,.site-navigation summary{padding:12px 15px;min-height:46px;border-radius:8px;font-size:1rem;font-weight:750}
.site-navigation :is(.residential-menu,.commercial-menu){border:0}
.site-navigation :is(.residential-menu,.commercial-menu)>summary{display:flex;align-items:center;gap:9px;position:static;margin:0;list-style:none}
.site-navigation :is(.residential-menu,.commercial-menu)>summary::after,.site-navigation :is(.residential-menu,.commercial-menu)[open]>summary::after{content:'▾';position:static;display:inline-block;font-size:1rem;line-height:1;color:var(--orange-dark);transform:none}
.site-navigation :is(.residential-menu,.commercial-menu)[open]>summary::after{transform:rotate(180deg)}
.site-navigation>a[aria-current=page],.site-navigation>a.is-current,.site-navigation :is(.residential-menu,.commercial-menu).is-current>summary{color:#fff;background:var(--navy)}
.site-navigation :is(.residential-menu,.commercial-menu).is-current>summary::after{color:#ffbd78}
.site-navigation .nav-quote{background:var(--orange);color:var(--navy);border:1px solid #d77516;box-shadow:0 4px 10px #b75a0c12}
.site-navigation .service-menu{padding:8px;width:285px;border-color:var(--line);border-radius:12px;box-shadow:0 12px 30px #10243e22}
.site-navigation .service-menu a{font-size:.94rem;min-height:44px;line-height:1.4;font-weight:650}
.marketing-site .button,.marketing-site .service-card-link,.customer-site :is(button,.portal-button),#vip .vip-cta{min-height:52px;padding:13px 20px;border-radius:10px;font-size:1rem;font-weight:750;line-height:1.4;text-align:center;white-space:normal;max-width:100%;text-decoration:none;transition:background .15s ease,box-shadow .15s ease}
.marketing-site .button-primary,.customer-site button:not(.secondary):not([data-tab]),#vip .vip-cta{background:var(--orange);color:var(--navy);border:1px solid #d77516;box-shadow:0 5px 12px #b75a0c20}
.marketing-site .secondary-button,.customer-site .portal-button{background:var(--navy);color:#fff;border:1px solid var(--navy);box-shadow:none}
.marketing-site .button-ghost{color:#fff;border:1px solid #afbdcb;background:#ffffff12;box-shadow:none}
.marketing-site .form-sheet .secondary-button,.customer-site button.secondary{background:#edf2f6;color:var(--navy);border:1px solid #90a7ba;box-shadow:none}
.marketing-site .button:hover{transform:none}
.marketing-site .button:disabled,.customer-site button:disabled{opacity:.6;cursor:wait}
.marketing-site .home-next .button{margin-top:8px}
.marketing-site .service-tile:not(.service-card){padding:0;border:1px solid #b5c6d5;border-top:0;border-radius:18px;background:#fff;box-shadow:var(--brand-shadow)}
.service-tile-heading{padding:26px 28px;background:var(--navy);border-bottom:5px solid var(--orange-accent);border-radius:17px 17px 0 0;color:#fff}
.marketing-site .service-tile-heading .eyebrow{margin:0 0 10px;color:#ffbd78;font-size:.875rem;letter-spacing:.05em}
.marketing-site .service-tile-heading :is(h2,h3){margin:0;color:#fff;font-size:clamp(1.5rem,2.4vw,1.85rem);line-height:1.2}
.service-tile-body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1;min-width:0}
.marketing-site .service-tile-body>p{color:#30475f;line-height:1.65;margin:0 0 20px}
.service-tile-body>a:last-child{margin-top:auto;align-self:stretch}
.marketing-site .service-price{padding:15px 18px;background:#fff2e4;border:1px solid #efbb86;border-radius:9px;font-size:2rem!important;line-height:1.2}
.marketing-site .service-price small{margin-top:5px;font-size:.94rem;line-height:1.5}
.marketing-site :is(.repair-terms,.residential-report-overview){border:1px solid #b5c6d5;border-top:5px solid var(--orange-accent);border-radius:18px;box-shadow:var(--brand-shadow)}
.marketing-site .repair-terms h3{font-size:1.5rem;line-height:1.2}
.marketing-site .maintenance-seasons article{border-radius:18px}
.marketing-site .maintenance-seasons article h3{margin:0 0 16px;font-size:1.4rem;line-height:1.25;color:#fff}
.marketing-site .maintenance-section .section-intro>p:last-child{color:#e1e8ef}
.marketing-site .maintenance-section .section-intro h2{color:#fff}
.marketing-site .roof-detail{border-radius:18px}
.marketing-site .roof-detail summary::after,.marketing-site .roof-detail[open] summary::after{content:none}
.marketing-site .roof-detail summary{font-size:1rem;line-height:1.45}
.marketing-site .detail-body p{margin:16px 0 0;color:var(--muted)}
.marketing-site .rating-guide summary{padding-right:40px}
.marketing-site .rating-guide dl{font-size:.94rem}
.marketing-site .report-copy h2{color:#fff}
.marketing-site .report-copy :is(.roof-report-offer-terms,.disclaimer){color:#d1deeb;font-size:.875rem;border-color:#62768d;line-height:1.65}
.marketing-site .roof-report-value{background:#fff2e4;border-color:var(--orange-accent);border-radius:9px}
.marketing-site .faq-list{border-top:0;display:grid;gap:12px}
.marketing-site .faq-list details{border:1px solid var(--line);border-radius:12px;background:#f6f9fb;padding:0 22px}
.marketing-site .faq-list summary{font-size:1rem;padding:20px 32px 20px 0}
.marketing-site .faq-list details p{margin:0 0 22px;line-height:1.65}
.marketing-site .review-ribbon{padding:32px max(24px,calc((100% - 1140px)/2));background:#edf3f7;border-top:3px solid var(--orange-accent)}
.marketing-site .review-ribbon h2{font-size:1.45rem;margin:0 0 8px;line-height:1.2}
.marketing-site .review-ribbon p{font-size:1rem;line-height:1.6;color:var(--muted)}
.marketing-site .site-footer{display:grid;align-items:start;grid-template-columns:1.1fr 1fr 1fr;gap:30px;padding:44px max(24px,calc((100% - 1140px)/2));background:var(--navy);color:#e1e8ef;font-size:.94rem;line-height:1.65}
.site-footer .footer-brand{padding:0;max-width:255px;background:transparent}
.site-footer .curbwell-logo{width:245px;height:auto;max-width:100%;filter:brightness(0) invert(1)}
.site-footer p{margin:16px 0 0;line-height:1.85}
.site-footer strong{color:#fff;font-size:1rem}
.site-footer a{color:inherit}
.site-footer address{color:#d1deeb;font-style:normal;line-height:1.65;font-size:.875rem}
.site-footer>small{grid-column:1/-1;color:#d1deeb;font-size:.875rem;border-top:1px solid #62768d;margin-top:4px;padding-top:22px}
.marketing-site #portal.marketing-request{max-width:1200px;padding:48px 30px 64px}
.marketing-request .portal-grid{gap:28px;align-items:start}
.marketing-request .portal-card.featured{border:1px solid #4e6377;border-top:5px solid var(--orange-accent);border-radius:18px;box-shadow:var(--brand-shadow);padding:30px}
.marketing-request .portal-card.featured h1{font-size:clamp(2rem,3.2vw,2.8rem);line-height:1.12}
.marketing-request .portal-card.featured h2{font-size:1.5rem;line-height:1.25;margin-top:22px}
.marketing-request .season{border-color:var(--orange-accent)}
.marketing-request .season h3{font-size:1.1rem;line-height:1.4}
.marketing-request .portal-card.featured .muted{color:#d1deeb;font-size:.875rem;line-height:1.65}
#vip{border-radius:18px;border-top:5px solid var(--orange-accent);max-width:1140px;margin:40px auto 64px}
#vip .vip-details{border-radius:12px;background:var(--navy-2)}
#vip .vip-intro>p,#vip .vip-details>p,#vip .vip-interest>div>p{color:#e1e8ef}
#vip .vip-intro>.eyebrow,#vip .vip-interest>div>.eyebrow{color:#ffbd78}
#vip .vip-small{color:#d1deeb}
.customer-site{background:#edf3f7;padding-bottom:0}
.customer-site .portal-header{padding:12px max(24px,calc((100% - 1100px)/2));background:#fff;border-bottom:3px solid var(--orange-accent)}
.customer-site .portal-header img{width:245px;height:auto}
.customer-site .portal-header #signout{background:#edf2f6;color:var(--navy);border:1px solid #90a7ba;box-shadow:none;min-height:44px}
.customer-site .portal-card{border-color:#b5c6d5;border-radius:18px;box-shadow:var(--brand-shadow)}
.customer-site .portal-card.featured{background:var(--navy);color:#fff;border-top:5px solid var(--orange-accent)}
.customer-site .portal-card.form-panel{background:transparent;border:0;box-shadow:none}
.customer-site .portal-tabs button{border-radius:9px;min-height:48px;background:#fff;color:var(--navy);box-shadow:none}
.customer-site .portal-tabs button[aria-current=page]{background:var(--navy);color:#fff;border-color:var(--navy)}
.customer-site .portal-footer{color:var(--muted);font-size:.875rem;line-height:1.6;padding:28px 24px}
.customer-site .portal-footer a{color:var(--navy)}
.customer-site .form-sheet{box-shadow:var(--brand-shadow)}
.customer-site .portal-message{background:#fff2e4;border-color:var(--orange-accent);border-radius:9px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--orange-dark);outline-offset:4px}
.site-footer a:focus-visible,.maintenance-section a:focus-visible,.report-section a:focus-visible{outline-color:#ffbd78}
@media(hover:hover){.marketing-site .button-primary:hover,.customer-site button:not(.secondary):not([data-tab]):hover,#vip .vip-cta:hover{background:#ffab53}.marketing-site .secondary-button:hover,.marketing-site .service-card-link:hover,.customer-site .portal-button:hover{background:#244562;color:#fff}.marketing-site .form-sheet .secondary-button:hover,.customer-site button.secondary:hover{background:#dce7ef;color:var(--navy)}.site-navigation .nav-quote:hover{background:#ffab53}.site-navigation :is(.residential-menu,.commercial-menu).is-current>summary:hover,.site-navigation>a[aria-current=page]:hover,.site-navigation>a.is-current:hover{background:#244562;color:#fff}.site-footer a:hover{text-decoration:underline}}
@media(max-width:1000px){.marketing-request .portal-grid{grid-template-columns:1fr}.marketing-site .site-footer{grid-template-columns:1fr 1fr}.site-footer>div:first-child{grid-column:1/-1}#vip{margin-left:24px;margin-right:24px}#vip .vip-interest{grid-template-columns:1fr}}
@media(max-width:760px){.marketing-site{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.site-header{min-height:76px;padding:10px 16px;gap:12px}.site-header .curbwell-logo{width:clamp(130px,43vw,190px)}.site-header .header-phone span{display:none}.site-header .header-phone strong{font-size:.875rem}.site-navigation{gap:6px;padding:10px 16px;align-items:stretch}.site-navigation>a,.site-navigation summary{padding:10px 12px;font-size:.94rem;min-height:44px}.site-navigation .service-menu{left:16px;right:16px;width:auto}.site-navigation .nav-quote{margin-left:0}.marketing-site :is(.page-block,.commercial-section,.pricing-section,.faq-section,.report-section,.repair-section,.maintenance-section){padding:44px 20px}.marketing-site .page-intro{padding:28px 20px 36px}.marketing-site .page-intro .breadcrumb{margin-bottom:14px}.marketing-site .section-intro{margin-bottom:26px}.marketing-site .hero h1,.marketing-site .commercial-hero h1{font-size:clamp(2.4rem,10vw,3.5rem)}.marketing-site .hero .hero-content{margin-left:0;padding:48px 20px;width:100%}.marketing-site .hero-actions .button{width:100%;padding:13px 18px}.marketing-site .review-ribbon{padding:28px 20px;align-items:flex-start;gap:20px}.marketing-site .review-ribbon .button{width:100%}.marketing-site .site-footer{grid-template-columns:1fr;padding:36px 20px;gap:28px}.site-footer>div:first-child,.site-footer>small{grid-column:auto}.service-tile-heading{padding:23px}.service-tile-body{padding:22px}.marketing-site .mobile-bar{display:grid;position:fixed;z-index:99;inset:auto 0 0;grid-template-columns:1fr 1.4fr 1fr;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;box-shadow:0 -6px 20px #10243e18}.mobile-bar a{display:grid;place-items:center;text-align:center;text-decoration:none;font-size:.94rem;font-weight:750;color:var(--navy);padding:8px}.mobile-bar a:nth-child(2){background:var(--orange);color:var(--navy)}.marketing-site #portal.marketing-request{padding:28px 20px 44px}.marketing-request .portal-card.featured{padding:24px}#vip{margin:28px 16px 44px;padding:24px;grid-template-columns:1fr;gap:24px}.customer-site .portal-header{padding:12px 16px;flex-wrap:wrap;gap:12px}.customer-site .portal-header img{width:clamp(140px,43vw,190px)}.customer-site .portal-header>span{font-size:.7rem;letter-spacing:.08em}.customer-site .portal-header #signout{padding:9px 14px}}
@media print{.customer-site .portal-card{box-shadow:none}.customer-site{background:#fff}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.service-switch{padding:18px 24px;background:#fff2df;text-align:center}.service-switch a{color:#10243e;font-weight:700}

.service-quote-card{max-width:760px;margin:0 auto}.service-quote-card .button{margin:12px 0}.pricing-card a.pricing-select{display:block;text-decoration:none;text-align:center}

/* Three approved oranges: actions, structural accents, highlights on navy. */
.marketing-site .opening-announcement{background:var(--orange-accent)}
.marketing-site .button-primary,.marketing-site .nav-quote,.marketing-site .mobile-bar a:nth-child(2){background:var(--orange);border-color:var(--orange-accent)}
@media(hover:hover){.marketing-site .button-primary:hover,.marketing-site .nav-quote:hover{background:var(--orange-accent)}}
.marketing-site .hero h1 span,.marketing-site .commercial-hero h1 span,.marketing-site .care-hero h1 span{color:var(--orange-highlight)}
.marketing-site .service-card-top .service-card-tag,.marketing-site .care-hero .eyebrow,.marketing-site .care-band .eyebrow,.marketing-site .care-highlight .eyebrow,.marketing-site .care-final .eyebrow{color:var(--orange-highlight)}

/* Public social profiles in the shared marketing footer. */
.site-footer .footer-socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.site-footer .footer-socials a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid #62768d;border-radius:8px;color:#fff;text-decoration:none;font-weight:650}
.site-footer .footer-socials a:hover{background:#244562;border-color:#ffbd78;text-decoration:underline}
.site-footer .footer-socials a:focus-visible{outline:2px solid #ffbd78;outline-offset:4px}
