/* London Waste Collection — collection calendar / CMS-backed service areas */
.cw-calendar-page{background:#fafcf9;padding:0 0 48px}.cw-calendar-page *{box-sizing:border-box}.cw-calendar-page .wrap{max-width:1220px}.cw-hero .banner-content{max-width:1220px}.cw-hero .banner-content h1{font-size:clamp(35px,4vw,57px);letter-spacing:-.04em}.cw-hero .banner-content p{max-width:490px;font-size:clamp(13px,1.25vw,17px)}.cw-calendar-page button,.cw-calendar-page input{font-family:inherit}
.cw-search-card{position:relative;z-index:2;margin:-30px auto 16px;background:#fff;box-shadow:0 14px 36px #122d1d21;border:1px solid #e1eade;border-radius:18px;padding:18px;max-width:1050px;display:flex;align-items:center;gap:14px}.cw-pin-icon{color:#238d36;display:grid;place-items:center;flex:0 0 35px}.cw-pin-icon svg{width:32px;height:32px}.cw-search-card input{height:50px;flex:1;min-width:50px;border:1px solid #ccdccc;border-radius:9px;padding:0 15px;font-weight:700;font-size:17px;color:#173622;background:#fff;outline:none}.cw-search-card input:focus{border-color:#20983e;box-shadow:0 0 0 3px #2ba33a1c}.cw-search-card .btn{height:50px;min-width:230px;font-size:14px;padding:10px 20px}.cw-search-status{margin:0 0 15px;border:1px solid #d6e8d2;border-radius:9px;background:#f0faed;padding:9px 16px;color:#346e3c;font-size:12px;min-height:33px}.cw-search-status[data-kind=error]{background:#fff2ec;border-color:#ffd6c1;color:#9c3d1c}.cw-search-status[data-kind=warning]{background:#fff8e9;border-color:#f6dfa3;color:#795511}.cw-example-label{font-size:12px;font-weight:700;color:#6b7a6c;padding:0 0 10px}
.cw-main-grid{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(0,1fr);gap:18px;align-items:stretch}.cw-lower-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.25fr);gap:18px;align-items:stretch;margin-top:18px}.cw-card{min-width:0;border:1px solid #e4ebe2;box-shadow:0 7px 22px #1538220a;border-radius:16px;background:#fff;padding:24px}.cw-card h2{font-family:Arial,Manrope,sans-serif;font-size:clamp(20px,2.4vw,27px);letter-spacing:-.045em;color:#17251b;margin:0}.cw-card h3{font-size:20px;letter-spacing:-.03em;margin:0 0 15px}.cw-calendar-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.cw-calendar-actions{display:flex;align-items:center;gap:7px}.cw-calendar-actions button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #dce7df;border-radius:8px;background:#fff;color:#253b2d;font-size:23px;line-height:1;cursor:pointer}.cw-calendar-actions .cw-reset{width:auto;padding:0 10px;font-size:11px;font-weight:700}.cw-calendar-actions button:hover,.cw-calendar-actions button:focus-visible{border-color:#4caf58;background:#edf9ed}.cw-switch-row{display:flex;gap:5px;align-items:center;margin:12px 0 15px}.cw-switch{font-size:11px;font-weight:800;padding:7px 12px;border:1px solid #dbe9dc;background:#f6faf5;border-radius:7px;cursor:pointer;color:#45634c}.cw-switch.active{background:#238f38;color:white;border-color:#238f38}.cw-calendar-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%;min-height:340px}.cw-weekday{min-width:0;text-align:center;padding:9px 0;font-size:12px;font-weight:800;color:#424e44}.cw-day{border:1px solid #e8eee6;border-radius:6px;min-width:0;min-height:53px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-start;background:#fff;color:#1a2a20;cursor:pointer;font-size:14px;font-weight:700;transition:background .15s,border-color .15s}.cw-day:hover,.cw-day:focus-visible{background:#eff9eb;border-color:#73c681;outline:0}.cw-day.chosen{background:#e0f7d5;border:2px solid #248e39}.cw-day.cw-empty{cursor:default;background:#fbfcfb;color:#b4bdb5;min-height:53px;font-weight:400}.cw-day.has-events{background:#f6fbf3}.cw-day-num{line-height:1.3}.cw-dots{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}.cw-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.cw-dot.cw-general{background:#363c40}.cw-dot.cw-recycling{background:#228a3c}.cw-dot.cw-food{background:#c05e19}.cw-dot.cw-bulky{background:#147cae}.cw-day-info{font-size:12px;color:#516556;border-top:1px solid #e6ede7;min-height:48px;padding:10px 2px 0;margin-top:10px}.cw-day-info b{margin-right:8px}.cw-mini-tag{font-size:10px;display:inline-block;padding:3px 7px;border-radius:30px;background:#e8f8e5;color:#1e6c35;margin:2px 3px}.cw-mini-tag.cw-food{background:#fff1e7;color:#8e4418}.cw-mini-tag.cw-bulky{background:#e9f4fb;color:#07678e}.cw-mini-tag.cw-general{background:#edf0f1;color:#353c40}.cw-events-list{max-height:360px;overflow:auto}.cw-list-item{width:100%;display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #e8ece7;background:white;text-align:left;padding:12px 4px;cursor:pointer}.cw-list-item:hover{background:#f4faf1}.cw-list-item>span:nth-child(2){flex:1}.cw-list-item b{display:block;font-size:13px}.cw-list-item small{font-size:11px;color:#5b6d62}
.cw-upcoming-list{margin-top:14px}.cw-upcoming-item{width:100%;display:flex;gap:12px;align-items:center;padding:17px 0;border:0;border-bottom:1px solid #e6ebe7;background:#fff;text-align:left;cursor:pointer}.cw-upcoming-item:hover{background:#f6fbf5}.cw-type-icon{flex:0 0 43px;display:grid;place-items:center;width:43px;height:43px;border-radius:10px;background:var(--cw-stream,#2b8f3a);color:#fff}.cw-type-icon svg{width:25px;height:25px}.cw-upcoming-copy{flex:1;min-width:0}.cw-upcoming-copy strong,.cw-legend-row strong{display:block;font-size:13px;font-weight:800;color:#1d3023;line-height:1.3}.cw-upcoming-copy small,.cw-legend-row small{display:block;font-size:11px;color:#6c7e70;line-height:1.4;margin-top:3px}.cw-date-pill{font-size:11px;white-space:nowrap;color:#26552c;background:#e5f4e2;border-radius:8px;padding:7px 9px;font-weight:800}.cw-date-pill.cw-food{color:#884418;background:#ffeedf}.cw-date-pill.cw-bulky{color:#176086;background:#e7f5fd}.cw-date-pill.cw-general{color:#383d42;background:#f0f1f1}.cw-arrow{font-size:21px;font-weight:800;color:#21352a}.cw-subtle{color:#78897a;font-size:12px;line-height:1.6}.cw-support-link{display:inline-flex;margin-top:20px;font-size:12px;font-weight:800;color:#17852b}.cw-legend-row{display:flex;gap:13px;padding:11px 0;border-bottom:1px solid #edf0ec;align-items:center}.cw-legend-row:last-child{border-bottom:0}
.cw-map{width:100%;height:290px;border-radius:12px;overflow:hidden;border:1px solid #e5eee4;background:#eff5ed;z-index:1}.cw-map-fallback{border-radius:12px;background:linear-gradient(135deg,#e4f3e2,#f7fbf2);border:1px solid #dfefdf;min-height:265px;padding:24px}.cw-map-fallback-title{font-size:18px;font-weight:800;color:#246337}.cw-fallback-pins{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.cw-fallback-pins button{border:1px solid #cde7cf;border-radius:7px;background:#fff;font-size:11px;cursor:pointer;padding:7px}.cw-map-fallback p{font-size:11px;color:#517258}.cw-area-summary{margin-top:12px;display:flex;align-items:flex-start;gap:10px;background:#f1f9ed;padding:12px;border-radius:9px;font-size:12px;line-height:1.4;color:#325e39}.cw-area-summary>span{display:block;flex:0 0 38px;background:#dcf4d7;border-radius:8px;padding:8px 6px;color:#188b37;text-align:center;font-weight:900}.cw-area-summary strong{display:block;color:#183826;font-size:13px}.cw-map-note{color:#849286;font-size:10px;line-height:1.35;margin:10px 0 0}
.cw-cta{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(115deg,#238c20,#105e20);border-radius:14px;padding:23px 28px;color:#fff;box-shadow:0 6px 14px #216b2522}.cw-cta strong{font-size:22px;display:block;letter-spacing:-.04em}.cw-cta small{display:block;max-width:590px;font-size:13px;opacity:.92}.cw-cta a{background:white;border:1px solid #e7f1e4;color:#125b1d;border-radius:8px;padding:10px 18px;font-weight:800;white-space:nowrap;font-size:13px}.cw-cta a:hover{background:#e6f9de}.cw-cta-icon{font-size:32px;line-height:1;flex:0 0 auto}
@media(max-width:1080px){.cw-main-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.cw-card{padding:19px}.cw-upcoming-item{gap:7px}.cw-date-pill{font-size:10px;padding:6px}.cw-type-icon{width:37px;height:37px;flex-basis:37px}.cw-type-icon svg{width:22px;height:22px}}
@media(max-width:790px){.cw-calendar-page .wrap{width:calc(100% - 26px)}.cw-main-grid,.cw-lower-grid{grid-template-columns:minmax(0,1fr);gap:13px}.cw-lower-grid{margin-top:13px}.cw-search-card{flex-wrap:wrap;margin-top:-18px;padding:14px}.cw-search-card input{flex:1 1 calc(100% - 60px)}.cw-search-card .btn{flex:1 1 100%;min-width:0}.cw-card{padding:16px}.cw-upcoming-item{padding:13px 0}.cw-cta{flex-wrap:wrap;padding:19px}.cw-cta a{margin-left:0}.cw-calendar-days{min-height:322px}}
@media(max-width:440px){.cw-hero .banner-content h1{font-size:31px}.cw-search-card{gap:8px}.cw-search-card input{height:46px;font-size:15px}.cw-search-card .btn{height:44px;font-size:12px}.cw-day{font-size:12px;min-height:46px;padding:6px 0}.cw-day.cw-empty{min-height:46px}.cw-weekday{font-size:10px}.cw-dots{gap:2px}.cw-dot{width:6px;height:6px}.cw-calendar-days{gap:2px;min-height:280px}.cw-upcoming-copy strong{font-size:12px}.cw-upcoming-copy small{font-size:10px}.cw-date-pill{font-size:9px;white-space:normal;text-align:center}.cw-card h2{font-size:21px}.cw-map{height:245px}.cw-fallback-pins{grid-template-columns:repeat(2,1fr)}.cw-cta strong{font-size:18px}.cw-cta small{font-size:12px}}

.cw-location-pin{width:28px!important;height:32px!important;border-radius:52% 52% 52% 0;transform:rotate(-45deg);background:#258d37;border:2px solid white;box-shadow:0 1px 5px #143b254c;display:grid;place-items:center}.cw-location-pin span{transform:rotate(45deg);font-size:18px;line-height:1;color:#fff}.cw-location-pin.cw-pin-selected{background:#146d2f;box-shadow:0 0 0 5px #4ab56d55}
