/* Corporate presentation — original GCWS brand colours retained. */
:root { --heading-font: "Inter", sans-serif; }
body { -webkit-font-smoothing:antialiased; }
.section { padding:80px 0; }
.section-title { padding-bottom:30px; }
.section-title h2 { font:600 12px/1.5 var(--nav-font); letter-spacing:2px; margin-bottom:14px; }
.section-title p { font:650 clamp(28px,3vw,42px)/1.2 var(--heading-font); text-transform:none; letter-spacing:-1.2px; max-width:850px; }
.gcws-section p { font-size:16px; line-height:1.8; }
.header { padding:20px 0; background:linear-gradient(180deg,rgba(1,71,19,.95),rgba(1,71,19,.5)); }
.scrolled .header,.gcws-interior .header { background:#014713; box-shadow:0 2px 16px #00000012; }
.header .logo img { max-height:44px; }
.header .logo h1 { font-family:var(--nav-font); letter-spacing:-1px; }
.header .cta-btn { border-radius:4px; }
#hero { min-height:720px; height:88vh; max-height:1000px; padding:160px 0 120px; align-items:center; }
#hero:before { background:linear-gradient(90deg,rgba(1,40,12,.95) 0%,rgba(1,50,15,.8) 42%,rgba(1,50,15,.2) 100%); }
#hero .hero-editorial { display:block; position:relative; z-index:3; }
#hero .hero-kicker { font:600 12px/1.5 var(--nav-font); letter-spacing:2.8px; color:var(--accent-color); margin-bottom:24px; }
#hero h2 { max-width:820px; font:650 clamp(44px,5.6vw,78px)/1.08 var(--heading-font); text-align:left; text-transform:none; letter-spacing:-3px; }
#hero .hero-description { max-width:580px; text-align:left; font-size:19px; line-height:1.7; color:#ffffffdf; margin:26px 0; }
#hero .gcws-hero-actions { justify-content:flex-start; gap:14px; margin-top:30px; }
#hero .btn-get-started,#hero .gcws-button { padding:15px 27px; min-height:52px; font-size:14px; border-radius:4px; }
#hero .hero-staff-link { font-size:12px; padding:8px 16px; min-height:38px; }
.service-strip { background:#014713; color:#fff; }
.service-strip > .container { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-strip a { display:flex; gap:20px; align-items:center; color:#fff; padding:28px 24px; border-right:1px solid #ffffff28; }
.service-strip a:last-child { border-right:0; }
.service-strip a>i:first-child { font-size:27px; color:var(--accent-color); }
.service-strip a>i:last-child { margin-left:auto; color:var(--accent-color); }
.service-strip strong { display:block; font:600 15px/1.5 var(--nav-font); }
.service-strip span { display:block; font-size:13px; margin-top:4px; color:#ffffffbd; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.about-photo { position:relative; }
.about-photo>img { width:100%; height:460px; object-fit:cover; border-radius:6px; }
.photo-caption { position:absolute; left:24px; bottom:24px; right:24px; padding:22px; color:#fff; background:#014713; border-left:4px solid var(--accent-color); }
.about-values { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.about-values span { font-size:12px; padding:8px 10px; border:1px solid #04420124; border-radius:3px; }
#services { border-top:1px solid #04420116; }
#services.gcws-section .gcws-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.gcws-card.service-editorial { padding:0; border-radius:6px; overflow:hidden; border-color:#04420120; box-shadow:0 8px 30px #01471308; display:flex; flex-direction:column; }
.service-photo { position:relative; }
.service-photo img { width:100%; height:200px; object-fit:cover; display:block; }
.service-number { position:absolute; left:18px; bottom:0; transform:translateY(50%); width:40px; height:40px; display:grid; place-items:center; background:var(--accent-color); color:var(--heading-color); font:700 14px var(--nav-font); }
.service-copy { padding:30px 20px 24px; display:flex; flex-direction:column; flex:1; }
.service-copy >i { display:none; }
.service-copy h3 { font-size:20px; margin:8px 0 14px; letter-spacing:-.5px; }
.service-copy p { font-size:14px; line-height:1.75; }
.service-copy a { align-self:flex-start; margin-top:auto; padding:0; min-height:40px; background:none; color:var(--heading-color); border-radius:0; border-bottom:2px solid var(--accent-color); font-size:13px; }
.service-copy a:hover { color:var(--accent-color); }
#coverage { padding-top:32px; }
#coverage .gcws-grid.two { gap:0; border:1px solid #04420122; border-radius:8px; overflow:hidden; }
#coverage .gcws-card { border:0; border-radius:0; padding:36px; }
#coverage .gcws-card:last-child { background:#014713; color:#fff; }
#coverage .gcws-card:last-child h3 { color:#fff; font-size:27px; }
#coverage .gcws-card:last-child p { color:#ffffffd9; }
#coverage-result { padding:18px 0 0; font-weight:500; }
#recycling { background:#014713; color:#fff; position:relative; }
#recycling .section-title h2,#recycling h3,#recycling .section-title p { color:#fff; }
#recycling .section-title h2 { color:var(--accent-color); }
#recycling .gcws-card { background:transparent; border:0; border-left:1px solid #ffffff45; border-radius:0; padding:10px 26px; }
#recycling .gcws-card p { color:#ffffffc9; }
#recycling .gcws-button:hover { background:#fff; color:#014713; }
.gcws-work { border-bottom:1px solid #04420125; padding-bottom:20px; }
.gcws-work img { border-radius:5px; aspect-ratio:4/3; }
.gcws-work h3 { margin:18px 0 6px; font-size:20px; }
.gcws-work p { font-size:14px; }
#portfolio .gcws-button { background:none; border:1px solid var(--heading-color); margin-top:12px; }
#portfolio .gcws-button:hover { background:var(--heading-color); color:#fff; }
#request-service { border-top:1px solid #04420116; }
.request-layout { display:grid; grid-template-columns:.85fr 1.4fr; gap:60px; align-items:start; }
.request-aside { padding:28px 0; }
.request-aside h3 { font-size:30px; line-height:1.35; letter-spacing:-.8px; margin-bottom:20px; }
.request-phone { display:inline-flex; gap:12px; align-items:center; color:var(--heading-color); font:600 24px var(--nav-font); margin:16px 0; }
.request-phone i { color:var(--accent-color); }
.request-aside ol { padding-left:20px; margin-top:30px; }
.request-aside li { padding:10px 0 10px 8px; }
.gcws-request { width:100%; padding:30px; border:1px solid #04420125; border-top:4px solid var(--accent-color); border-radius:6px; box-shadow:0 12px 40px #01471308; }
.gcws-request .gcws-grid { margin-top:0; gap:8px 20px; }
.gcws-request label { font-size:13px; }
.gcws-request input,.gcws-request textarea,.gcws-request select { border-radius:4px; border-color:#04420130; background:#fff; }
.gcws-request>p { font-size:12px; line-height:1.7; }
#events { padding-top:40px; }
.event-poster-image { border-radius:5px; }
.event-poster figcaption { padding-top:20px; }
#faq { border-top:1px solid #04420116; }
#faq>.container { max-width:980px; }
.gcws-faq { padding:24px 0; }
.gcws-faq summary { font-size:17px; }
#contact { padding-top:40px; }
.footer { background:#014713; color:#fff; padding-top:64px; }
.footer h4,.footer .sitename { color:#fff; }
.footer a { color:#ffffffcf; }
.footer a:hover { color:var(--accent-color); }
@media(min-width:1200px) { .navmenu a { font-size:12px; } }
@media(max-width:1199px) { #services.gcws-section .gcws-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .about-grid { gap:36px; } .request-layout { gap:30px; } }
@media(max-width:767px) { .section { padding:54px 0; } .section-title { padding-bottom:20px; } .section-title p { letter-spacing:-.7px; } #hero { height:auto; min-height:680px; padding-top:170px; padding-bottom:115px; } #hero h2 { font-size:48px; letter-spacing:-1.8px; } #hero .hero-description { font-size:17px; } .service-strip>.container { grid-template-columns:1fr; } .service-strip a { border-right:0; border-bottom:1px solid #ffffff28; padding:20px 8px; } .about-grid,.request-layout { grid-template-columns:1fr; gap:28px; } .about-photo>img { height:340px; } .about-copy .section-title { padding-bottom:16px; } #coverage .gcws-grid.two { grid-template-columns:1fr; } #coverage .gcws-card { padding:26px; } .gcws-request { padding:22px; } #recycling .gcws-grid { grid-template-columns:1fr; } .request-aside { padding:0; } }
@media(max-width:575px) { #services.gcws-section .gcws-grid { grid-template-columns:1fr; } .service-photo img { height:220px; } .service-copy { padding:30px 24px 24px; } #hero h2 { font-size:43px; } #hero .hero-kicker { font-size:10px; letter-spacing:1.5px; } .header { padding:14px 0; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }
.gcws-section .section-title p { font:650 clamp(28px,3vw,42px)/1.2 var(--heading-font); letter-spacing:-1.2px; }
@media(max-width:767px) { .gcws-section .section-title p { letter-spacing:-.7px; } }

/* Expanded bilingual service information. */
.service-details-more { margin:0 0 20px; border-top:1px solid #04420124; padding-top:14px; }
.service-details-more summary { font:600 13px/1.5 var(--nav-font); cursor:pointer; color:var(--heading-color); }
.service-details-more h4 { font-size:15px; font-weight:600; margin:18px 0 8px; }
.service-details-more p { font-size:14px; }
#services .gcws-grid { align-items:start; }
.service-editorial { min-height:480px; }
.about-copy > h3 { font-size:23px; line-height:1.4; margin-top:26px; }
.recycling-guide { margin-top:40px; padding-top:30px; border-top:1px solid #ffffff40; max-width:950px; }
.recycling-guide li { padding:7px 0; line-height:1.7; }
#how-it-works { padding-top:25px; }
#how-it-works h3 { font-size:20px; }
.service-details-more summary:focus-visible { outline:3px solid var(--accent-color); outline-offset:4px; }

/* Contact layout matched to the supplied reference. */
#contact { background:var(--background-color); padding:60px 0; }
#contact .section-title { padding-bottom:60px; }
#contact .section-title .contact-heading { font:800 clamp(28px,3vw,36px)/1.2 var(--heading-font); letter-spacing:0; color:var(--heading-color); margin:0; }
#contact .section-title .contact-heading::after { display:none; }
#contact .info-item { height:100%; min-height:172px; padding:24px 12px 28px; border:0; border-radius:0; box-shadow:0 0 24px #0000000c; text-align:center; }
#contact .info-item i { border:2px dotted color-mix(in srgb,var(--accent-color) 65%,white); border-radius:50%; width:56px; height:56px; color:var(--accent-color); font-size:24px; }
#contact .info-item h3 { font:600 18px/1.4 var(--default-font); margin:10px 0; }
#contact .info-item p { font-size:14px; line-height:1.6; }
#contact .info-item a { text-decoration:none; }
#contact .php-email-form { padding:30px; border:0; border-radius:0; box-shadow:0 0 24px #0000000c; }
#contact .php-email-form input:not([type=hidden]) { height:43px; min-height:43px; }
#contact .php-email-form textarea { height:106px; min-height:106px; }
#contact .php-email-form input,#contact .php-email-form textarea { font-family:var(--default-font); font-size:14px; border-radius:0; padding:10px 15px; }
#contact .php-email-form button[type=submit] { min-height:44px; padding:10px 30px; border-radius:50px; background:var(--accent-color); color:var(--contrast-color); font:500 14px/1.5 var(--default-font); }
#contact .php-email-form button[type=submit]:hover { background:var(--heading-color); }
#contact .php-email-form :focus-visible { outline:2px solid var(--accent-color); outline-offset:3px; }
@media(max-width:575px) { #contact .section-title { padding-bottom:30px; } #contact .php-email-form { padding:24px 20px; } }
/* Services: image and overlapping white panel, matching the supplied reference. */
#services.gcws-section .gcws-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 24px; align-items:start; }
#services .service-editorial { border:0; background:transparent; border-radius:0; box-shadow:none; overflow:visible; min-height:0; }
#services .service-photo { border-radius:7px; overflow:hidden; }
#services .service-photo img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
#services .service-number { display:none; }
#services .service-copy { position:relative; z-index:1; margin:-100px 30px 0; padding:58px 24px 28px; background:rgba(255,255,255,.95); border-radius:8px; box-shadow:0 8px 30px rgba(0,0,0,.08); text-align:center; }
#services .service-copy > i { display:flex; position:absolute; top:-36px; left:50%; transform:translateX(-50%); align-items:center; justify-content:center; width:72px; height:72px; border:6px solid #fff; border-radius:50%; background:var(--accent-color); color:var(--contrast-color); font-size:27px; }
#services .service-copy h3 { font:700 22px/1.25 var(--default-font); letter-spacing:0; margin:0 0 18px; }
#services .service-copy p { font-size:14px; line-height:1.75; }
#services .service-copy > a { align-self:center; margin-top:8px; }
#services .service-details-more { margin-top:4px; }
#services .service-details-more[open] > div { text-align:left; }
@media(min-width:1200px) { #services .service-editorial:last-child:nth-child(3n + 1) { grid-column:2; } }
@media(min-width:768px) and (max-width:991px) { #services.gcws-section .gcws-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { #services.gcws-section .gcws-grid { grid-template-columns:1fr; gap:40px; } #services .service-copy { margin:-85px 22px 0; padding:52px 22px 24px; } }

/* Remove decorative dividers; keep form-control and focus borders usable. */
.section-title h2::after { display:none; }
#services,#faq,#request-service,.service-details-more,.recycling-guide { border-top:0; }
.gcws-work,.gcws-faq,.service-strip a { border-bottom:0; }
.service-strip a { border-right:0; }
#recycling .gcws-card,.photo-caption { border-left:0; }
#coverage .gcws-grid.two { border:0; }
main hr { display:none; }

/* Compact homepage rhythm, retaining comfortable spacing inside controls. */
.index-page main > section.section:not(#hero) { padding-top:36px; padding-bottom:36px; }
.index-page main .section-title { padding-bottom:18px; }
.index-page #contact .section-title { padding-bottom:28px; }
.index-page .gcws-grid { margin-top:16px; margin-bottom:16px; }
.index-page .gcws-faq { padding:18px 0; }
.index-page .recycling-guide { margin-top:24px; padding-top:16px; }
@media(max-width:767px) {
 .index-page main > section.section:not(#hero) { padding-top:26px; padding-bottom:26px; }
 .index-page main .section-title { padding-bottom:14px; }
 .index-page #contact .section-title { padding-bottom:22px; }
}

/* Balanced company profile and a simpler homepage header. */
.index-page .about-grid { grid-template-columns:1fr 1.15fr; align-items:stretch; gap:44px; }
.index-page .about-photo { min-height:460px; overflow:hidden; border-radius:6px; }
.index-page .about-photo > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.index-page .about-copy { padding:0; }
.index-page .about-copy > p { font-size:15px; line-height:1.75; margin-bottom:16px; }
.index-page .about-copy > h3 { font-size:21px; margin:20px 0 12px; }
.index-page .about-values { margin-top:18px; gap:8px; }
.index-page .about-contact { margin-top:20px; }
.index-page .about-contact p { font-size:14px; margin-bottom:12px; }
@media(max-width:767px) {
 .index-page .about-grid { grid-template-columns:1fr; gap:24px; }
 .index-page .about-photo { min-height:0; }
 .index-page .about-photo > img { position:static; height:340px; }
}
/* Subtle brand decoration only: no content, spacing or divider changes. */
.index-page #about,
.index-page #services,
.index-page #coverage,
.index-page #how-it-works,
.index-page #portfolio,
.index-page #events,
.index-page #faq { position:relative; isolation:isolate; }
.index-page #about { background:radial-gradient(ellipse at 0% 50%,rgba(1,71,19,.055),transparent 60%),var(--background-color); }
.index-page #services { background:radial-gradient(ellipse at 100% 15%,rgba(226,142,45,.065),transparent 48%),radial-gradient(ellipse at 0% 90%,rgba(1,71,19,.04),transparent 55%),var(--background-color); }
.index-page #coverage { background:radial-gradient(ellipse at 100% 50%,rgba(1,71,19,.055),transparent 65%),var(--background-color); }
.index-page #how-it-works { background:radial-gradient(ellipse at 50% 100%,rgba(226,142,45,.045),transparent 70%),var(--background-color); }
.index-page #portfolio { background:radial-gradient(ellipse at 0% 10%,rgba(1,71,19,.045),transparent 55%),var(--background-color); }
.index-page #events { background:radial-gradient(ellipse at 100% 70%,rgba(226,142,45,.05),transparent 55%),var(--background-color); }
.index-page #faq { background:radial-gradient(ellipse at 0% 50%,rgba(1,71,19,.04),transparent 65%),var(--background-color); }
/* Decorative leaf shapes stay behind content and never intercept interaction. */
.index-page #services::before,
.index-page #portfolio::before,
.index-page #events::before { content:""; position:absolute; z-index:-1; pointer-events:none; width:140px; height:220px; border-radius:100% 0 100% 0; background:linear-gradient(140deg,rgba(1,71,19,.045),rgba(1,71,19,.008)); transform:rotate(24deg); right:3%; top:25px; }
.index-page #portfolio::before { right:auto; left:3%; transform:rotate(-25deg); background:linear-gradient(140deg,rgba(226,142,45,.055),rgba(226,142,45,.008)); }
.index-page #events::before { width:100px; height:165px; }
.index-page #recycling { background:radial-gradient(ellipse at 100% 0%,rgba(226,142,45,.14),transparent 50%),radial-gradient(ellipse at 0% 100%,rgba(255,255,255,.07),transparent 60%),#014713; }
.index-page .about-photo { box-shadow:0 14px 38px rgba(1,71,19,.12); }
.index-page #services .service-copy { background:rgba(255,255,255,.97); box-shadow:0 12px 32px rgba(1,71,19,.10),0 2px 6px rgba(1,71,19,.035); }
.index-page #coverage .gcws-grid.two { background:var(--surface-color); box-shadow:0 12px 36px rgba(1,71,19,.085); }
.index-page #how-it-works .gcws-card { border:0; box-shadow:0 6px 24px rgba(1,71,19,.07); }
.index-page .gcws-work img,
.index-page .event-poster-image { box-shadow:0 8px 24px rgba(1,71,19,.10); }
@media(max-width:767px) {
 .index-page #services::before,.index-page #portfolio::before,.index-page #events::before { width:75px; height:125px; opacity:.7; }
}
/* Help: distinct accessible disclosures without separator rules. */
.index-page #faq > .container { max-width:1140px; display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.65fr); gap:14px 48px; align-items:start; }
.index-page #faq .section-title { grid-column:1; grid-row:1 / span 3; padding:10px 0 0; }
.index-page #faq .gcws-faq { grid-column:2; margin:0; padding:0; border:0; border-radius:10px; background:var(--surface-color); box-shadow:0 5px 22px rgba(1,71,19,.065); overflow:hidden; }
.index-page #faq summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:22px 24px; list-style:none; color:var(--heading-color); font-size:16px; line-height:1.5; }
.index-page #faq summary::-webkit-details-marker { display:none; }
.index-page #faq summary::after { content:""; flex:0 0 9px; width:9px; height:9px; border-right:2px solid var(--accent-color); border-bottom:2px solid var(--accent-color); transform:rotate(45deg); margin:0 4px 5px; }
.index-page #faq details[open] summary::after { transform:rotate(225deg); margin-top:7px; }
.index-page #faq details[open] summary { background:rgba(1,71,19,.035); }
.index-page #faq .gcws-faq p { margin:0; padding:18px 24px 24px; font-size:15px; line-height:1.8; }
.index-page #faq summary:focus-visible { outline:3px solid var(--accent-color); outline-offset:-4px; border-radius:10px; }
/* Recycling: existing copy arranged into a clear overview and preparation panel. */
.index-page #recycling > .container { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:20px 36px; align-items:start; }
.index-page #recycling .section-title { grid-column:1 / -1; padding-bottom:8px; }
.index-page #recycling > .container > h3 { grid-column:1; margin:0; font-size:20px; }
.index-page #recycling > .container > p { grid-column:1; margin:0; line-height:1.8; font-size:15px; color:#ffffffe0; }
.index-page #recycling > .container > .gcws-grid { grid-column:1; display:grid; grid-template-columns:1fr; gap:12px; margin:4px 0; }
.index-page #recycling .gcws-card { background:rgba(255,255,255,.07); border:0; border-radius:10px; padding:20px 24px; }
.index-page #recycling .gcws-card h3 { font-size:19px; margin:0 0 8px; color:#fff; }
.index-page #recycling .gcws-card p { margin:0; font-size:14px; line-height:1.75; }
.index-page #recycling > .container > .gcws-button { grid-column:1; justify-self:start; margin-top:4px; }
.index-page #recycling .recycling-guide { grid-column:2; grid-row:2 / span 5; margin:0; padding:30px; border:0; border-radius:12px; background:var(--surface-color); color:var(--default-color); box-shadow:0 12px 35px rgba(0,0,0,.12); }
.index-page #recycling .recycling-guide h3 { color:var(--heading-color); font-size:25px; line-height:1.35; margin:0 0 20px; letter-spacing:-.5px; }
.index-page #recycling .recycling-guide ul { padding-left:20px; margin:0 0 20px; }
.index-page #recycling .recycling-guide li { padding:6px 0 6px 5px; font-size:15px; line-height:1.75; }
.index-page #recycling .recycling-guide li::marker { color:var(--accent-color); }
.index-page #recycling .recycling-guide p { font-size:14px; line-height:1.8; margin:0; }
@media(max-width:991px) {
 .index-page #faq > .container { grid-template-columns:1fr; gap:14px; }
 .index-page #faq .section-title { grid-column:1; grid-row:auto; margin-bottom:10px; }
 .index-page #faq .gcws-faq { grid-column:1; }
 .index-page #recycling > .container { grid-template-columns:1fr; gap:18px; }
 .index-page #recycling .recycling-guide { grid-column:1; grid-row:auto; margin-top:6px; }
}
@media(max-width:575px) {
 .index-page #faq summary { padding:20px; font-size:15px; }
 .index-page #faq .gcws-faq p { padding:16px 20px 20px; }
 .index-page #recycling .recycling-guide { padding:24px; }
 .index-page #recycling .gcws-card { padding:20px; }
}
/* Gallery and calendar presentation only; existing content stays unchanged. */
#portfolio .gcws-grid,#gallery .gcws-grid { gap:24px; align-items:stretch; }
#portfolio .gcws-work,#gallery .gcws-work { display:flex; flex-direction:column; min-width:0; padding:0; margin:0; border:0; border-radius:12px; overflow:hidden; background:var(--surface-color); box-shadow:0 7px 26px rgba(1,71,19,.08); }
#portfolio .gcws-work > a,#gallery .gcws-work > a { display:block; overflow:hidden; }
#portfolio .gcws-work img,#gallery .gcws-work img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:0; box-shadow:none; }
#portfolio .gcws-work figcaption,#gallery .gcws-work figcaption { padding:22px 24px 24px; flex:1; }
#portfolio .gcws-work h3,#gallery .gcws-work h3 { font:600 20px/1.35 var(--nav-font); letter-spacing:-.4px; margin:0 0 10px; }
#portfolio .gcws-work p,#gallery .gcws-work p { font-size:14px; line-height:1.75; margin:0; color:var(--default-color); }
#portfolio .gcws-work > a:focus-visible,#gallery .gcws-work > a:focus-visible { outline:3px solid var(--accent-color); outline-offset:-4px; }
#portfolio > .container > .gcws-button { display:table; margin:24px auto 0; padding:12px 26px; border-radius:6px; }
#events .events-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
#events .event-poster { display:flex; flex-direction:column; min-width:0; border-radius:12px; overflow:hidden; background:var(--surface-color); box-shadow:0 7px 26px rgba(1,71,19,.08); }
#events .event-poster-image { border-radius:0; box-shadow:none; background:var(--surface-color); }
#events .event-poster img { display:block; width:100%; height:auto; object-fit:contain; }
#events .event-poster figcaption { display:flex; flex-direction:column; align-items:flex-start; gap:14px; flex:1; padding:22px 24px 24px; }
#events .event-poster h3 { margin:0; font:600 20px/1.4 var(--nav-font); letter-spacing:-.4px; color:var(--heading-color); }
#events .event-poster time { margin-top:auto; display:inline-block; padding:7px 12px; border-radius:6px; background:rgba(226,142,45,.12); color:var(--heading-color); font:500 13px/1.5 var(--nav-font); }
@media(min-width:768px) and (max-width:991px) { #portfolio .gcws-grid,#gallery .gcws-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #events .event-poster figcaption { padding:18px; } #events .event-poster h3 { font-size:17px; } }
@media(max-width:767px) { #portfolio .gcws-grid,#gallery .gcws-grid,#events .events-gallery { grid-template-columns:1fr; gap:22px; } #portfolio .gcws-work figcaption,#gallery .gcws-work figcaption,#events .event-poster figcaption { padding:20px; } }
/* Image-only event posts and short separators in the hero quick navigation. */
#events .event-poster figcaption { display:none; }
.service-strip > .container > a { position:relative; border:0; }
.service-strip > .container > a:not(:last-child)::after { content:""; position:absolute; right:0; top:25%; height:50%; width:1px; background:rgba(255,255,255,.4); pointer-events:none; }
@media(max-width:767px) {
 .service-strip > .container > a:not(:last-child)::after { top:auto; bottom:0; right:8px; left:8px; width:auto; height:1px; }
}
/* Compact branded heading ornaments, without long divider lines. */
.section-title { position:relative; }
.section-title > h2:not(.contact-heading) { display:inline-flex; align-items:center; gap:10px; width:auto; margin:0 0 12px; padding:6px 11px; border-radius:6px; background:rgba(1,71,19,.055); color:var(--heading-color); font:600 11px/1.5 var(--nav-font); letter-spacing:1.7px; }
.section-title > h2:not(.contact-heading)::before { content:""; display:block; flex:0 0 7px; width:7px; height:7px; border-radius:2px; transform:rotate(45deg); background:var(--accent-color); }
.section-title > h2::after { display:none; }
.section-title > p,.gcws-section .section-title > p { position:relative; padding-left:18px; font-weight:700; line-height:1.25; }
.section-title > p::before { content:""; position:absolute; left:0; top:.15em; width:4px; height:.85em; border-radius:3px; background:var(--accent-color); }
#contact .section-title .contact-heading { position:relative; padding-left:20px; font-weight:750; letter-spacing:-.8px; }
#contact .section-title .contact-heading::before { content:""; position:absolute; left:0; top:.15em; width:5px; height:.85em; border-radius:3px; background:var(--accent-color); }
#recycling .section-title > h2 { background:rgba(255,255,255,.10); color:var(--accent-color); }
@media(max-width:575px) { .section-title > h2:not(.contact-heading) { font-size:10px; letter-spacing:1.3px; } .section-title > p,.gcws-section .section-title > p { padding-left:15px; } }
/* Gentle repeating shake while hovering over service steps. */
@keyframes gcws-step-shake {
  0%,100% { transform:translateY(-3px) rotate(0deg); }
  20%,60% { transform:translateY(-3px) translateX(-2px) rotate(-.5deg); }
  40%,80% { transform:translateY(-3px) translateX(2px) rotate(.5deg); }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #how-it-works .gcws-card:hover { animation:gcws-step-shake .65s ease-in-out infinite; box-shadow:0 12px 28px rgba(1,71,19,.13); }
}
@media(prefers-reduced-motion:reduce) {
  #how-it-works .gcws-card:hover { animation:none; transform:none; }
}
/* Match the service-step hover motion on services, gallery and events. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #events .event-poster:hover,
  #portfolio .gcws-work:hover,
  #gallery .gcws-work:hover,
  #services .service-editorial:hover {
    animation:gcws-step-shake .65s ease-in-out infinite;
  }
}
@media(prefers-reduced-motion:reduce) {
  #events .event-poster:hover,
  #portfolio .gcws-work:hover,
  #gallery .gcws-work:hover,
  #services .service-editorial:hover { animation:none; transform:none; }
}

/* Remove decorative background leaves. */
.index-page #services::before, .index-page #portfolio::before, .index-page #events::before { content:none; display:none; }

/* About section matched to the supplied two-column reference. */
.index-page #about.about-reference { background:var(--background-color); }
.about-reference-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:60px; align-items:start; }
.about-reference h2 { font:700 25px/1.3 var(--default-font); margin:0 0 18px; }
.about-reference .about-main-image { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:12px; margin:0 0 22px; }
.about-reference p { font-size:15px; line-height:1.75; margin:0 0 16px; }
.about-reference-right { padding-top:12px; }
.about-reference-list { list-style:none; padding:0; margin:0 0 24px; }
.about-reference-list li { display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.65; margin-bottom:10px; }
.about-reference-list i { color:var(--accent-color); flex-shrink:0; margin-top:2px; }
.about-video { position:relative; margin-top:22px; }
.about-video>img { display:block; width:100%; height:auto; border-radius:12px; }
.about-video-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--accent-color); color:#fff; box-shadow:0 0 0 12px rgba(226,142,45,.22); font-size:32px; }
.about-video-play:hover { color:#fff; background:var(--heading-color); }
.about-video-play:focus-visible { outline:3px solid #fff; outline-offset:5px; }
@media(max-width:991px) { .about-reference-grid { gap:32px; } }
@media(max-width:767px) { .about-reference-grid { grid-template-columns:1fr; gap:20px; } .about-reference-right { padding-top:0; } }

/* Branded about heading and readable photo caption cards. */
.about-reference .about-brand-heading { position:relative; padding:2px 0 2px 20px; margin-bottom:24px; font:750 clamp(28px,3vw,40px)/1.2 var(--heading-font); letter-spacing:-.8px; color:var(--heading-color); }
.about-reference .about-brand-heading::before { content:""; position:absolute; left:0; top:10%; width:5px; height:80%; border-radius:4px; background:var(--accent-color); }
.about-reference .about-photo { position:relative; margin-bottom:22px; }
.about-reference .about-photo .about-main-image { margin-bottom:0; }
.about-reference .about-photo-card { position:absolute; left:18px; right:18px; bottom:18px; display:flex; align-items:center; gap:14px; padding:17px 19px; border-radius:10px; background:rgba(255,255,255,.96); box-shadow:0 8px 24px rgba(1,71,19,.16); border-left:4px solid var(--accent-color); }
.about-reference .about-photo-card>i { flex-shrink:0; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:var(--accent-color); background:rgba(226,142,45,.12); font-size:23px; }
.about-reference .about-photo-card strong { display:block; color:var(--heading-color); font:700 17px/1.35 var(--default-font); }
.about-reference .about-photo-card span { display:block; margin-top:5px; color:var(--default-color); font:400 13px/1.5 var(--default-font); }
@media(max-width:991px) { .about-reference .about-photo-card { left:12px; right:12px; bottom:12px; padding:12px; gap:10px; } .about-reference .about-photo-card strong { font-size:15px; } .about-reference .about-photo-card span { font-size:12px; } .about-reference .about-video-play { top:35%; } }
@media(max-width:400px) { .about-reference .about-photo-card { position:absolute; left:10px; right:auto; bottom:10px; margin:0; } }

/* Compact about photo captions. */
.about-reference .about-photo-card { right:auto; max-width:calc(100% - 36px); width:fit-content; gap:10px; padding:10px 12px; border-radius:8px; border-left-width:3px; }
.about-reference .about-photo-card>i { width:30px; height:30px; font-size:18px; }
.about-reference .about-photo-card strong { font-size:14px; line-height:1.3; }
.about-reference .about-photo-card span { max-width:280px; margin-top:3px; font-size:12px; line-height:1.4; }
@media(max-width:991px) { .about-reference .about-photo-card { max-width:calc(100% - 24px); padding:9px 10px; gap:8px; } .about-reference .about-photo-card strong { font-size:13px; } .about-reference .about-photo-card span { font-size:11px; } }
@media(max-width:400px) { .about-reference .about-photo-card { max-width:calc(100% - 20px); } }
/* Responsive layout safeguards shared by all pages; content is unchanged. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
main img,main video,main iframe { max-width:100%; }
.gcws-grid > *, .about-reference-grid > *, .service-strip > .container > *, #recycling > .container > * { min-width:0; }
main h2,main h3,main p,.footer p,.footer a,.service-strip strong { overflow-wrap:break-word; overflow-wrap:anywhere; }
input,select,textarea { max-width:100%; min-width:0; }
.gcws-hero-actions { flex-wrap:wrap; }
.gcws-button { max-width:100%; white-space:normal; text-align:center; }
.about-reference .about-video>img { height:auto; }
#contact .info-item i { border-color:#edb477; }
@supports (color:color-mix(in srgb,white,black)) { #contact .info-item i { border-color:color-mix(in srgb,var(--accent-color) 65%,white); } }
@media(min-width:768px) and (max-width:1199px) {
 #services .service-copy { margin-left:16px; margin-right:16px; padding-left:18px; padding-right:18px; }
 .service-strip a { gap:12px; padding:24px 14px; }
 .about-reference-grid { gap:28px; }
}
@media(max-width:991px) {
 #hero { height:auto; max-height:none; min-height:650px; }
 .navmenu ul { max-height:calc(100vh - 100px); overflow-y:auto; -webkit-overflow-scrolling:touch; }
 .navmenu a,.navmenu a:focus { min-height:44px; }
}
@media(max-width:767px) {
 input:not([type=checkbox]):not([type=radio]),select,textarea,#contact .php-email-form input,#contact .php-email-form textarea { font-size:16px; }
 #hero { min-height:620px; padding-top:140px; padding-bottom:105px; }
 #hero h2 { font-size:clamp(32px,8vw,48px); letter-spacing:-1px; }
 #hero .hero-description { font-size:16px; line-height:1.6; }
 #hero .gcws-hero-actions { gap:12px; }
 .footer a { overflow-wrap:anywhere; }
 #payment-qr-panel h3 { font-size:22px; }
}
@media(max-width:359px) {
 .header .logo h1 { font-size:25px; }
 .header .logo img { max-height:34px; margin-right:6px; }
 #hero .btn-get-started,#hero .gcws-button { padding:13px 18px; }
 #services .service-copy { margin-left:12px; margin-right:12px; padding-left:16px; padding-right:16px; }
 #coverage .gcws-card,.index-page #recycling .recycling-guide { padding:20px; }
}
@media(max-height:600px) and (min-width:768px) {
 #hero { height:auto; min-height:560px; max-height:none; padding-top:130px; padding-bottom:100px; }
}
@media(hover:none) { .gcws-card:hover,.event-poster:hover,.gcws-work:hover { transform:none; } }