.sn-case-showcase [hidden] { display: none !important; }
.sn-case-showcase .section-tabs__nav { flex-wrap: wrap; }
.sn-case-showcase .section-tabs__image-wrap { align-self: stretch; min-height: 360px; }
.sn-case-showcase video.section-tabs__image { width: 100%; height: 100%; object-fit: cover; }
.sn-case-showcase .section-tabs__content .sn-case-tag { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.sn-case-stats { display: flex; flex-wrap: wrap; gap: 24px; margin: 28px 0; }
.sn-case-stats > div { display: flex; flex-direction: column-reverse; gap: 8px; }
.sn-case-stats dt { font-size: 12px; }
.sn-case-stats dd { font-size: 26px; font-weight: 600; margin: 0; }
.sn-case-showcase .section-tabs__tab:focus-visible { outline: 2px solid #158444; outline-offset: 3px; }
html.sn-enquiry-open { overflow: hidden; }
.sn-enquiry-dialog { width: min(680px, calc(100% - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 36px; border: 0; border-radius: 16px; background: #fff; color: #141414; overflow-y: auto; }
.sn-enquiry-dialog::backdrop { background: rgba(0,0,0,.65); }
.sn-enquiry-dialog h2 { font-size: 32px; padding-right: 30px; margin: 0 0 12px; }
.sn-enquiry-dialog > p { font-size: 16px; line-height: 1.5; margin-bottom: 24px; }
.sn-enquiry-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; background: #f0f0f0; border: 0; border-radius: 50%; font-size: 28px; cursor: pointer; }
.sn-enquiry-dialog .gform_fields { display: grid; grid-template-columns: 1fr; gap: 20px; }
.sn-enquiry-dialog .gfield_label { display: block; font-weight: 600; margin-bottom: 8px; }
.sn-enquiry-dialog input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.sn-enquiry-dialog select, .sn-enquiry-dialog textarea { box-sizing: border-box; width: 100%; padding: 12px; min-height: 46px; border: 1px solid #aaa; border-radius: 6px; background: #fff; color: #141414; font: inherit; }
.sn-enquiry-dialog textarea { min-height: 120px; }
.sn-enquiry-dialog .gform_footer { margin-top: 24px; }
.sn-enquiry-dialog .gform_button { padding: 14px 24px; border: 0; border-radius: 6px; background: #6adc91; color: #141414; font: inherit; cursor: pointer; }
.sn-enquiry-dialog .gfield_required, .sn-enquiry-dialog .validation_message { color: #a12525; }
.sn-enquiry-dialog .gform_validation_container { position: absolute; left: -10000px; }
.sn-enquiry-dialog :focus-visible { outline: 2px solid #158444; outline-offset: 3px; }
@media (max-width: 768px) {
    .sn-case-showcase .section-tabs__nav { flex-wrap: nowrap; }
    .sn-case-showcase .section-tabs__image-wrap { min-height: 240px; }
    .sn-enquiry-dialog { padding: 28px 20px; }
    .sn-enquiry-dialog h2 { font-size: 26px; }
}
.sn-case-showcase .section-tabs__content h3 { font-size: 30px; line-height: 1.15; }
/* Keep enquiry selects native so labels, keyboard input and conditional logic work together. */
.sn-enquiry-dialog .ginput_container_select select { display: block !important; }
.sn-enquiry-dialog .ginput_container_select .nice-select { display: none !important; }


/* Service landing pages (22 Sep 2026): /installations-and-custom-fit-outs/ 38682, /concierge/ 36798,
   /cleaning-services/ 40364, /multi-city-pop-ups-and-events/ 40365. Case studies use the generic tabbed
   block; these rules bring it to the site's minimum text size and button style. Scoped by page id. */
.page-id-38682 .section-tabs__panel--active,
.page-id-36798 .section-tabs__panel--active,
.page-id-40364 .section-tabs__panel--active,
.page-id-40365 .section-tabs__panel--active,
.page-id-40370 .section-tabs__panel--active,
.page-id-292 .section-tabs__panel--active { align-items: stretch; }
.page-id-38682 .section-tabs__content ol li h6,
.page-id-36798 .section-tabs__content ol li h6,
.page-id-40364 .section-tabs__content ol li h6,
.page-id-40365 .section-tabs__content ol li h6,
.page-id-40370 .section-tabs__content ol li h6,
.page-id-292 .section-tabs__content ol li h6 { font-size: 16px; }
.page-id-38682 .section-tabs__content ol li p,
.page-id-36798 .section-tabs__content ol li p,
.page-id-40364 .section-tabs__content ol li p,
.page-id-40365 .section-tabs__content ol li p,
.page-id-40370 .section-tabs__content ol li p,
.page-id-292 .section-tabs__content ol li p { font-size: 14px; line-height: 1.5; letter-spacing: 0; }
.page-id-38682 .section-tabs__content .sn-case-stats,
.page-id-36798 .section-tabs__content .sn-case-stats,
.page-id-40364 .section-tabs__content .sn-case-stats,
.page-id-40365 .section-tabs__content .sn-case-stats,
.page-id-40370 .section-tabs__content .sn-case-stats,
.page-id-292 .section-tabs__content .sn-case-stats { margin: 24px 0; }
.page-id-38682 .section-tabs__content .button,
.page-id-36798 .section-tabs__content .button,
.page-id-40364 .section-tabs__content .button,
.page-id-40365 .section-tabs__content .button,
.page-id-40370 .section-tabs__content .button,
.page-id-292 .section-tabs__content .button { display: inline-flex; align-items: center; justify-content: center; height: 56px; padding: 0 28px; border-radius: 100px; background: #6adc91; color: #fff; font-size: 16px; font-weight: 600; text-decoration: none; transition: 200ms all; }
.page-id-38682 .section-tabs__content .button:hover,
.page-id-36798 .section-tabs__content .button:hover,
.page-id-40364 .section-tabs__content .button:hover,
.page-id-40365 .section-tabs__content .button:hover,
.page-id-40370 .section-tabs__content .button:hover,
.page-id-292 .section-tabs__content .button:hover { background: #3fbf6c; }


/* Service landing pages (22 Sep 2026): hero background video, same rules as the case study cover in
   case-studies.css (BugHerd 586). Only applies when block-hero-cover.php adds --video from the
   `sn_hero_video` page meta. Reduced-motion users get the still. */
.section-hero-cover--video { position: relative; overflow: hidden; }
.section-hero-cover--video .hero-video { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.section-hero-cover--video::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.1) 35%, rgba(0,0,0,0.75) 100%); }
.section-hero-cover--video .wrap { position: relative; z-index: 2; }
@media (prefers-reduced-motion: reduce) { .section-hero-cover--video .hero-video { display: none; } }

/* /become-a-host/ (292): Host application form 23 - checkbox grid and consent row inside the theme's contact-form wrapper. */
.page-id-292 .contact-form.v2 .sn-checkgrid .gfield_label { display: block; font-size: 14px; font-weight: 600; margin: 6px 0 8px; }
.page-id-292 .contact-form.v2 .sn-checkgrid .gfield_checkbox { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.page-id-292 .contact-form.v2 .sn-checkgrid .gchoice { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.page-id-292 .contact-form.v2 .sn-checkgrid input[type="checkbox"] { width: 18px; height: 18px; margin: 0; flex: 0 0 18px; accent-color: #6adc91; }
.page-id-292 .contact-form.v2 .sn-checkgrid label { margin: 0; font-weight: 400; line-height: 1.3; }
.page-id-292 .contact-form.v2 .sn-consent .gfield_checkbox { grid-template-columns: 1fr; }
.page-id-292 .contact-form.v2 .sn-consent .gfield_label { display: none; }
.page-id-292 .contact-form.v2 .gfield_description { font-size: 12px; color: #666; margin: 4px 0 10px; }
@media (max-width: 600px) { .page-id-292 .contact-form.v2 .sn-checkgrid .gfield_checkbox { grid-template-columns: 1fr; } }

/* /become-a-host/ (292): form 23 steps. Gravity Forms step indicator + page footer in the theme's contact-form wrapper. */
.page-id-292 .contact-form.v2 .gf_page_steps { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0 0 22px; padding: 0 0 14px; border-bottom: 1px solid #e1e1e1; }
.page-id-292 .contact-form.v2 .gf_step { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #8a8d8a; }
.page-id-292 .contact-form.v2 .gf_step_number { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #cfd3cf; font-size: 12px; font-weight: 600; }
.page-id-292 .contact-form.v2 .gf_step_active { color: #0a0a0a; font-weight: 600; }
.page-id-292 .contact-form.v2 .gf_step_active .gf_step_number { background: #6adc91; border-color: #6adc91; color: #0a0a0a; }
.page-id-292 .contact-form.v2 .gf_step_completed .gf_step_number { background: #0a0a0a; border-color: #0a0a0a; color: #fff; }
.page-id-292 .contact-form.v2 .gform_page_footer { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.page-id-292 .contact-form.v2 .gform_page_footer .gform_next_button,
.page-id-292 .contact-form.v2 .gform_page_footer .gform_button { flex: 1 1 220px; height: 56px; border: 0; border-radius: 100px; background: #0a0a0a; color: #fff; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.page-id-292 .contact-form.v2 .gform_page_footer .gform_previous_button { flex: 0 0 auto; height: 56px; padding: 0 26px; border: 1px solid #0a0a0a; border-radius: 100px; background: #fff; color: #0a0a0a; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.page-id-292 .contact-form.v2 .gform_page_footer .gform_next_button:hover, .page-id-292 .contact-form.v2 .gform_page_footer .gform_button:hover { background: #222; }
.page-id-292 .contact-form.v2 .gform_page { animation: none; }

/* /become-a-host/ (292): form 23 spacing review, 23 Sep 2026. Everything is placeholder-led, so labels
   that the theme un-hides (name, date) go; multi-input fields become grids on the same 14px rhythm. */
.page-id-292 .contact-form.v2 .gfield--type-name > .gfield_label,
.page-id-292 .contact-form.v2 .gfield--type-date > .gfield_label { display: none !important; }
.page-id-292 .contact-form.v2 .ginput_container--name { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
.page-id-292 .contact-form.v2 .gfield.gfield--type-phone { width: 100% !important; }
.page-id-292 .contact-form.v2 .iti .iti__flag-container { flex: 0 0 112px; width: 112px; }
.page-id-292 .contact-form.v2 .iti input[type="tel"] { flex: 1 1 auto; width: auto !important; }
.page-id-292 .contact-form.v2 .ginput_container_address { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.page-id-292 .contact-form.v2 .ginput_container_address > span { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.page-id-292 .contact-form.v2 .ginput_container_address .address_line_1,
.page-id-292 .contact-form.v2 .ginput_container_address .address_line_2 { grid-column: 1 / -1; }
.page-id-292 .contact-form.v2 .ginput_container_address .address_city { grid-column: span 2; }
.page-id-292 .contact-form.v2 .gfield_description { margin: 6px 0 0 20px; }
.page-id-292 .contact-form.v2 .sn-checkgrid .gfield_description { margin-left: 0; }
.page-id-292 .contact-form.v2 .sn-consent label { font-size: 14px; }
/* validation: message under the field, field outlined */
.page-id-292 .contact-form.v2 .gfield.gfield_error { display: flex; flex-direction: column; }
.page-id-292 .contact-form.v2 .gfield.gfield_error > .gfield_label { order: -1; }
.page-id-292 .contact-form.v2 .gfield_validation_message { order: 9; margin: 6px 0 0 20px; padding: 0; border: 0; background: transparent; font-size: 12px; font-weight: 400; color: #c62828; }
.page-id-292 .contact-form.v2 .gfield_error input:not([type="checkbox"]), .page-id-292 .contact-form.v2 .gfield_error select, .page-id-292 .contact-form.v2 .gfield_error textarea { border-color: #c62828 !important; }
.page-id-292 .contact-form.v2 .gform_validation_errors { margin: 0 0 14px; padding: 14px 20px; border: 1px solid #c62828; border-radius: 16px; background: #fff; box-shadow: none; }
.page-id-292 .contact-form.v2 .gform_validation_errors h2 { margin: 0; font-size: 14px; font-weight: 600; color: #c62828; }
.page-id-292 .contact-form.v2 .gform_validation_errors ol { display: none; }
/* file upload: one drop zone, one set of rules */
.page-id-292 .contact-form.v2 .gform_fileupload_multifile .gform_drop_area { padding: 28px 20px; border: 1px dashed #cfd3cf; border-radius: 24px; background: #fafafa; text-align: center; }
.page-id-292 .contact-form.v2 .gform_drop_instructions { display: block; margin: 0 0 12px; font-size: 14px; color: #5a5a5a; }
.page-id-292 .contact-form.v2 .gform_fileupload_rules { display: none; }
.page-id-292 .contact-form.v2 .gform_fileupload_multifile .gform_button_select_files { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 24px; border: 0; border-radius: 100px; background: #0a0a0a; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.page-id-292 .contact-form.v2 .ginput_preview { margin: 8px 0 0 20px; font-size: 13px; }
@media (max-width: 600px) {
  .page-id-292 .contact-form.v2 .ginput_container--name { grid-template-columns: 1fr !important; }
  .page-id-292 .contact-form.v2 .ginput_container_address { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-id-292 .contact-form.v2 .ginput_container_address .address_city { grid-column: 1 / -1; }
}

/* /become-a-host/ (292): form 23 thank-you state with the host introduction download. */
.page-id-292 .contact-form.v2 .gform_confirmation_message h4 { margin: 0 0 12px; font-size: 24px; line-height: 1.2; }
.page-id-292 .contact-form.v2 .gform_confirmation_message p { margin: 0 0 14px; font-size: 15px; line-height: 1.5; }
.page-id-292 .contact-form.v2 .gform_confirmation_message .sn-kit-button { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 28px; border-radius: 100px; background: #0a0a0a; color: #fff; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; }
.page-id-292 .contact-form.v2 .gform_confirmation_message .sn-kit-button:hover { background: #222; }
.page-id-292 .contact-form.v2 .gform_confirmation_message .sn-kit-note { font-size: 13px; color: #5a5a5a; }
.page-id-292 .contact-form.v2 .gform_confirmation_message .sn-kit-note a { color: inherit; text-decoration: underline; }
