/*
Theme Name: Kub Kitchens
Theme URI: https://kitchensubuild.com.au
Author: KubBot (Anthropic)
Author URI: https://anthropic.com
Description: Kub Kitchens block theme rebuilding the kitchensubuild.com.au look and content.
Version: 0.12.24
Requires at least: 6.0
Tested up to: 6.9.4
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: kub-kitchens
*/

/* =====================================================================
 * Run 86 (2026-05-11) — all theme stylesheets merged into one style.css
 * per WP block-theme best practice. See WP-THEME-BEST-PRACTICES.md +
 * KUB-KITCHENS-DEV-NOTES.md in the project root.
 *
 * Cascade order preserved from previous separate-file enqueue:
 *   1. HEADER     (was assets/css/header.css)     — globally enqueued
 *   2. FOOTER     (was assets/css/footer.css)     — globally enqueued
 *   3. BE-INSPIRED INDEX (was assets/css/be-inspired.css) — globally enqueued (run 84)
 *   4. HOME       (was assets/css/home.css)       — was conditional; safe via .kub-hero__/.kub-home/.kub-section prefixes
 *   5. INNER ACF  (was assets/css/inner.css)      — was conditional; safe via .kub-inner__/.kub-bi__/.kub-svc__/.kub-loc__/.kub-kp__ prefixes
 *   6. WHY US     (was assets/css/why-us.css)     — was conditional; safe via .kub-whyus__ prefix
 * ===================================================================== */

/* ========== 1. HEADER (was header.css) ========== */
/* === Header fixes (run 5c) === */
header.wp-block-group .wp-block-site-logo,
header.wp-block-group .custom-logo-link { display: inline-block; line-height: 0; }
header.wp-block-group img.custom-logo { width: 220px; height: auto; max-width: 100%; display: block; }
header.wp-block-group > .wp-block-group:first-child.has-ink-background-color {
  max-width: none !important; width: 100%; margin-left: 0; margin-right: 0;
}
header.wp-block-group > .wp-block-group:first-child.has-ink-background-color > .wp-block-columns {
  max-width: 1280px; margin: 0 auto; padding: 0 20px;
}
@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation__responsive-container-open { display: none !important; }
  header.wp-block-group .wp-block-navigation__responsive-container { display: block !important; position: static !important; background: none !important; padding: 0 !important; visibility: visible !important; opacity: 1 !important; }
  header.wp-block-group .wp-block-navigation__responsive-container-content { display: block !important; }
  header.wp-block-group .wp-block-navigation__responsive-close { display: none !important; }
  header.wp-block-group .wp-block-navigation__container { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 22px; justify-content: flex-end; align-items: center; }
  header.wp-block-group .wp-block-navigation-item__content { font-weight: 600; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: #181818; padding: 8px 4px; }
  header.wp-block-group .wp-block-navigation-item__content:hover { color: #ff7545; }
  header.wp-block-group .wp-block-navigation__container > li + li::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #ff7545; margin-right: 18px; vertical-align: middle; }
}
header.wp-block-group { border-bottom: 3px solid #ff7545; background: #fff; }

/* === Header fixes patch (run 5d) === */
@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation__responsive-container {
    height: auto !important;
    min-height: 0 !important;
  }
  /* Un-hide the close wrapper (it contains the nav items); then hide just the actual close button */
  header.wp-block-group .wp-block-navigation__responsive-close { display: block !important; }
  header.wp-block-group .wp-block-navigation__responsive-container-close { display: none !important; }
  header.wp-block-group .wp-block-navigation__responsive-dialog { display: block; }
}

@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation-item__label,
  header.wp-block-group .wp-block-navigation-item__content,
  header.wp-block-group li.wp-block-navigation-item { white-space: nowrap !important; flex-shrink: 0 !important; }
  header.wp-block-group .wp-block-columns { flex-wrap: nowrap !important; }
  header.wp-block-group .wp-block-navigation-submenu__toggle { display: inline-flex; align-items: center; gap: 4px; }
}

@media (min-width: 783px) {
  /* Hide submenus by default; show on hover/focus */
  header.wp-block-group .wp-block-navigation__submenu-container {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    background: #fff;
    border: 1px solid #eee;
    padding: 8px 0;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
    z-index: 10;
  }
  header.wp-block-group .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
  header.wp-block-group .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
    display: block !important;
  }
  header.wp-block-group .wp-block-navigation-item.has-child { position: relative; }
  header.wp-block-group .wp-block-navigation__submenu-container li { display: block !important; white-space: nowrap !important; }
  header.wp-block-group .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 16px; text-transform: none; font-size: 13px; }
}

@media (min-width: 980px) {
  /* Make the logo+nav row use the wide content size, not the 780px constrained size */
  header.wp-block-group > .wp-block-group:last-child {
    max-width: 1240px !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  header.wp-block-group > .wp-block-group:last-child .wp-block-columns {
    max-width: none !important;
    width: 100%;
  }
  /* Tighter nav so it fits */
  header.wp-block-group .wp-block-navigation__container { gap: 14px !important; }
  header.wp-block-group .wp-block-navigation-item__content { font-size: 13px !important; padding: 8px 2px !important; letter-spacing: 0.03em !important; }
  header.wp-block-group .wp-block-navigation__container > li + li::before { margin-right: 10px !important; }
}

/* run 23 — inline blog hero image at top of post body */
.kub-blog-hero {
    width: 100%;
    max-width: 1240px;
    height: auto;
    margin: 0 0 24px;
    display: block;
    border-radius: 6px;
}

/* run 23 — on blog-* pages hide the auto featured-image figure since we now render an inline hero in post_content */
body.kub-blog-article .wp-block-post-featured-image { display: none !important; }

/* Contact-Us page (run 27) */
body.page-id-87 .wp-block-post-content > .kub-contact{max-width:1240px;margin:0 auto;padding:0 24px}
.kub-contact__hero{padding:48px 0 24px;text-align:center;border-bottom:1px solid #eee;margin-bottom:36px}
.kub-contact__hero h1{font-size:42px;font-weight:700;color:#181818;margin:0 0 12px;letter-spacing:.5px}
.kub-contact__hero .kub-crumb{list-style:none;display:flex;justify-content:center;gap:8px;font-size:12px;color:#777;letter-spacing:1.5px;text-transform:uppercase;margin:0;padding:0}
.kub-contact__hero .kub-crumb a{color:#ff7545;text-decoration:none}
.kub-contact__hero .kub-crumb .sep{color:#bbb}
.kub-contact__inner{padding-bottom:64px}
.kub-contact__lead{font-size:32px;font-weight:700;color:#181818;margin:0 0 8px;line-height:1.2}
.kub-contact__sub{color:#777;margin:0 0 24px;font-size:15px}
.kub-contact__details{background:#f7f7f7;padding:24px 28px;border-radius:6px;border-left:3px solid #ff7545}
.kub-contact__details h4{font-size:18px;font-weight:700;color:#181818;margin:0 0 16px;text-transform:uppercase;letter-spacing:1px}
.kub-contact__details p{font-size:14px;line-height:1.55;color:#444;margin:0 0 12px}
.kub-contact__details p strong{color:#ff7545}
.kub-contact__details .kub-contact__general{margin-top:18px;padding-top:18px;border-top:1px solid #ddd;font-size:15px;color:#181818}
.kub-contact__details .kub-contact__general strong{color:#181818}

/* Gravity Forms — kub aesthetic */
body.page-id-87 .gform_wrapper{margin-top:8px}
body.page-id-87 .gform_wrapper .gfield input[type=text],
body.page-id-87 .gform_wrapper .gfield input[type=email],
body.page-id-87 .gform_wrapper .gfield input[type=tel],
body.page-id-87 .gform_wrapper .gfield select,
body.page-id-87 .gform_wrapper .gfield textarea{
  width:100%;border:1px solid #ddd;border-radius:4px;padding:12px 14px;
  font-size:14px;color:#181818;background:#fff;font-family:inherit;
  -webkit-appearance:none;appearance:none;line-height:1.4
}
body.page-id-87 .gform_wrapper .gfield select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23777' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:40px
}
body.page-id-87 .gform_wrapper .gfield input:focus,
body.page-id-87 .gform_wrapper .gfield select:focus,
body.page-id-87 .gform_wrapper .gfield textarea:focus{
  outline:none;border-color:#ff7545;box-shadow:0 0 0 3px rgba(255,117,69,.12)
}
body.page-id-87 .gform_wrapper .gform_footer{margin-top:24px;text-align:left}
body.page-id-87 .gform_wrapper .gform_button{
  background:#ff7545;color:#fff;border:none;border-radius:4px;
  padding:14px 32px;font-size:14px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;cursor:pointer;transition:background .2s
}
body.page-id-87 .gform_wrapper .gform_button:hover{background:#e8633b}
body.page-id-87 .gform_wrapper .gfield_label{display:none}
body.page-id-87 .gform_wrapper .gfield_required{color:#ff7545}
body.page-id-87 .gform_wrapper .validation_message,
body.page-id-87 .gform_wrapper .gfield_error .gfield_label{color:#cc2c2c;font-size:12px;margin-top:4px}
body.page-id-87 .gform_wrapper .gform_validation_errors{
  background:#fff5f5;border-left:3px solid #cc2c2c;padding:12px 16px;margin-bottom:16px;color:#cc2c2c
}
body.page-id-87 .gform_wrapper .gform_confirmation_message{
  background:#f5fff7;border-left:3px solid #2c9b3a;padding:18px 20px;color:#1a6b27;border-radius:4px
}
body.page-id-87 .wp-block-columns{gap:40px}
@media (max-width:781px){
  body.page-id-87 .kub-contact__hero h1{font-size:32px}
  body.page-id-87 .kub-contact__lead{font-size:24px}
  body.page-id-87 .wp-block-columns{flex-direction:column;gap:24px}
  body.page-id-87 .wp-block-column{flex-basis:100% !important;width:100%}
}

/* Run 27b: hide WP auto-rendered post-title on Contact-Us page */
body.page-id-87 .wp-block-post-title{display:none !important}

/* Run 27c: stronger button override (GF default blue beats earlier rule) */
body.page-id-87 .gform_wrapper input[type=submit].gform_button,
body.page-id-87 .gform_wrapper input[type=submit].button,
body.page-id-87 .gform_wrapper button[type=submit]{
  background:#ff7545 !important;color:#fff !important;border:none !important;
  border-radius:4px !important;padding:14px 32px !important;
  font-size:14px !important;font-weight:700 !important;letter-spacing:1px !important;
  text-transform:uppercase !important;cursor:pointer;transition:background .2s
}
body.page-id-87 .gform_wrapper input[type=submit].gform_button:hover,
body.page-id-87 .gform_wrapper input[type=submit].button:hover,
body.page-id-87 .gform_wrapper button[type=submit]:hover{
  background:#e8633b !important
}

/* Run 31 — default-template index page overflow + H1 dedup */

/* Hide WP block theme auto-rendered post title on imported-content index pages
   so the imported H1 inside post_content is the only visible title.
   Mirrors run 23 (blog body class) + run 27 (page-id-87 contact) patterns.
   Pages: 33 be-inspired, 50 blog, 86 careers, 88 finance, 101 kitchen-products,
   111 promotion, 116 services. */
body.page-id-33 .wp-block-post-title,
body.page-id-50 .wp-block-post-title,
body.page-id-86 .wp-block-post-title,
body.page-id-88 .wp-block-post-title,
body.page-id-101 .wp-block-post-title,
body.page-id-111 .wp-block-post-title,
body.page-id-116 .wp-block-post-title {
  display: none !important;
}

/* Width-overflow guards for default-template post_content blocks.
   Mirrors run 12's inner.css guards but extends to default-template pages
   that render raw imported HTML with Bootstrap container/row/col-md-* markup.
   Belt-and-braces: forces all positional grid markup to behave as full-width
   in the constrained content area. */
body.page-template-default .wp-block-post-content .container,
body.page-template-default .wp-block-post-content .row,
body.page-template-default .wp-block-post-content [class^="col-"],
body.page-template-default .wp-block-post-content [class*=" col-"] {
  max-width: 100% !important;
  width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  margin: 0 0 16px 0 !important;
  min-width: 0 !important;
}

body.page-template-default .wp-block-post-content img,
body.page-template-default .wp-block-post-content iframe {
  max-width: 100% !important;
  height: auto !important;
  display: block;
}

body.page-template-default .wp-block-post-content {
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

/* Hide the imported breadcrumb chrome that doesn't carry value
   (rendered as visible "Home / Be Inspired" inline-text crumb lists).
   The .crumb class on the source UL is preserved in the imported HTML. */
body.page-template-default .wp-block-post-content .crumb,
body.page-template-default .wp-block-post-content ul.crumb {
  display: none !important;
}


/* ============================================================
 * Run 38 — Mobile responsiveness patch
 * Jason: "site is not looking great on mobile yet"
 * Targeted fixes for the gaps left by run 12+ desktop work.
 * ============================================================ */

/* Inner-page templates (be-inspired-single, services-single,
   kitchen-product-single, location-single) — reduce hero padding,
   tame title size, disable sticky info/card cards on single column. */
@media (max-width: 781px) {
  .kub-inner__hero {
    padding: 80px 0 36px !important;
  }
  .kub-inner__title {
    font-size: clamp(1.5rem, 7vw, 2.25rem) !important;
    margin-top: 8px !important;
  }
  .kub-crumb {
    font-size: 11px !important;
  }
  .kub-inner .kub-section {
    padding: 32px 0 !important;
  }
  .kub-bi__info,
  .kub-loc__card {
    position: static !important;
    top: auto !important;
    padding: 20px !important;
  }
  .kub-loc__map iframe {
    height: 280px !important;
  }
  .kub-bi__gallery {
    gap: 12px !important;
  }
  .kub-svc__layout,
  .kub-bi__layout,
  .kub-loc__layout {
    gap: 28px !important;
  }
}

/* iOS Safari ignores background-attachment:fixed and renders it as
   a scaled-up tile — breaks the process band hero. Force scroll. */
@media (max-width: 1024px) {
  .kub-process {
    background-attachment: scroll !important;
  }
}

/* Tiny phones (iPhone SE 320px) — shrink logo so the hamburger
   button has room and nothing wraps. */
@media (max-width: 360px) {
  header.wp-block-group img.custom-logo {
    width: 180px !important;
  }
}

/* When the WP hamburger overlay opens on mobile, submenus default to
   absolute-positioned panels (a desktop pattern from header.css L228
   onwards). Inside the overlay, push them inline so users can read
   the full menu without dropdowns. */
@media (max-width: 782px) {
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static !important;
    box-shadow: none !important;
    border: none !important;
    background: transparent !important;
    padding: 0 0 0 16px !important;
    /* run-67: removed `display: block !important;` so submenus stay
     * collapsed by default in the mobile overlay. The line-595 block
     * already provides the proper hide/.kub-sub-open/reveal pair. */
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100% !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    padding: 12px 16px !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > li + li::before {
    display: none !important;
  }
}

/* Home page hero card text — reduce sizes on small phones */
@media (max-width: 540px) {
  .kub-hero__heading {
    font-size: 1.4rem !important;
    line-height: 1.2 !important;
  }
  .kub-hero__sub {
    font-size: 0.95rem !important;
  }
  .kub-hero__card {
    padding: 1.25rem !important;
  }
}

/* Tribar cells (Ready/Save/Australian Custom strip) - already stack
   at 720px but tighten padding + title size below 540px. */
@media (max-width: 540px) {
  .kub-tribar__cell {
    padding: 24px 16px !important;
  }
  .kub-tribar__title {
    font-size: 18px !important;
  }
}

/* Default-template page H1s (rehydrated careers/finance/promotion +
   landing index pages) - source HTML uses big <h1> tags that overflow
   on mobile. Cap font + add break-word. */
@media (max-width: 781px) {
  body.page-template-default .wp-block-post-content h1 {
    font-size: 1.7rem !important;
    word-break: break-word;
    line-height: 1.2 !important;
  }
  body.page-template-default .wp-block-post-content h2 {
    font-size: 1.3rem !important;
  }
}

/* Blog inline hero image (run 23) - reduce margin on mobile */
@media (max-width: 781px) {
  img.kub-blog-hero {
    margin-bottom: 16px !important;
    border-radius: 4px !important;
  }
}

/* Why Us — tighten panel text padding on small phones */
@media (max-width: 540px) {
  .kub-whyus__panel-text {
    padding: 24px 18px !important;
  }
  .kub-whyus__hero h1 {
    font-size: 1.6rem !important;
  }
}

/* Footer — reduce section padding on mobile so the locations list
   isn't a long scroll all the way down. */
@media (max-width: 540px) {
  .kub-footer { padding: 32px 0 !important; }
  .kub-footer__sub { font-size: 12px !important; }
}

/* Force any remaining wp:cover blocks on imported content to
   constrain on mobile (the source uses wp-block-cover with min-height
   that overflows narrow viewports). */
@media (max-width: 781px) {
  .wp-block-cover { min-height: 0 !important; }
}

/* ============================================================
 * Run 38 — Mobile responsiveness patch
 * Jason: "site is not looking great on mobile yet"
 * Targeted fixes for the gaps left by run 12+ desktop work.
 * ============================================================ */

/* Inner-page templates (be-inspired-single, services-single,
   kitchen-product-single, location-single) — reduce hero padding,
   tame title size, disable sticky info/card cards on single column. */
@media (max-width: 781px) {
  .kub-inner__hero {
    padding: 80px 0 36px !important;
  }
  .kub-inner__title {
    font-size: clamp(1.5rem, 7vw, 2.25rem) !important;
    margin-top: 8px !important;
  }
  .kub-crumb {
    font-size: 11px !important;
  }
  .kub-inner .kub-section {
    padding: 32px 0 !important;
  }
  .kub-bi__info,
  .kub-loc__card {
    position: static !important;
    top: auto !important;
    padding: 20px !important;
  }
  .kub-loc__map iframe {
    height: 280px !important;
  }
  .kub-bi__gallery {
    gap: 12px !important;
  }
  .kub-svc__layout,
  .kub-bi__layout,
  .kub-loc__layout {
    gap: 28px !important;
  }
}

/* iOS Safari ignores background-attachment:fixed and renders it as
   a scaled-up tile — breaks the process band hero. Force scroll. */
@media (max-width: 1024px) {
  .kub-process {
    background-attachment: scroll !important;
  }
}

/* Tiny phones (iPhone SE 320px) — shrink logo so the hamburger
   button has room and nothing wraps. */
@media (max-width: 360px) {
  header.wp-block-group img.custom-logo {
    width: 180px !important;
  }
}

/* When the WP hamburger overlay opens on mobile, submenus default to
   absolute-positioned panels (a desktop pattern from header.css L228
   onwards). Inside the overlay, push them inline so users can read
   the full menu without dropdowns. */
@media (max-width: 782px) {
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static !important;
    box-shadow: none !important;
    border: none !important;
    background: transparent !important;
    padding: 0 0 0 16px !important;
    /* run-67b: removed `display: block !important;` (duplicate from earlier run) */
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100% !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    padding: 12px 16px !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > li + li::before {
    display: none !important;
  }
}

/* Home page hero card text — reduce sizes on small phones */
@media (max-width: 540px) {
  .kub-hero__heading {
    font-size: 1.4rem !important;
    line-height: 1.2 !important;
  }
  .kub-hero__sub {
    font-size: 0.95rem !important;
  }
  .kub-hero__card {
    padding: 1.25rem !important;
  }
}

/* Tribar cells (Ready/Save/Australian Custom strip) - already stack
   at 720px but tighten padding + title size below 540px. */
@media (max-width: 540px) {
  .kub-tribar__cell {
    padding: 24px 16px !important;
  }
  .kub-tribar__title {
    font-size: 18px !important;
  }
}

/* Default-template page H1s (rehydrated careers/finance/promotion +
   landing index pages) - source HTML uses big <h1> tags that overflow
   on mobile. Cap font + add break-word. */
@media (max-width: 781px) {
  body.page-template-default .wp-block-post-content h1 {
    font-size: 1.7rem !important;
    word-break: break-word;
    line-height: 1.2 !important;
  }
  body.page-template-default .wp-block-post-content h2 {
    font-size: 1.3rem !important;
  }
}

/* Blog inline hero image (run 23) - reduce margin on mobile */
@media (max-width: 781px) {
  img.kub-blog-hero {
    margin-bottom: 16px !important;
    border-radius: 4px !important;
  }
}

/* Why Us — tighten panel text padding on small phones */
@media (max-width: 540px) {
  .kub-whyus__panel-text {
    padding: 24px 18px !important;
  }
  .kub-whyus__hero h1 {
    font-size: 1.6rem !important;
  }
}

/* Footer — reduce section padding on mobile so the locations list
   isn't a long scroll all the way down. */
@media (max-width: 540px) {
  .kub-footer { padding: 32px 0 !important; }
  .kub-footer__sub { font-size: 12px !important; }
}

/* Force any remaining wp:cover blocks on imported content to
   constrain on mobile (the source uses wp-block-cover with min-height
   that overflows narrow viewports). */
@media (max-width: 781px) {
  .wp-block-cover { min-height: 0 !important; }
}

/* ================================================================
 * Run 40 (2026-05-07) — mobile audit follow-ups
 * ================================================================ */

/* Why-us hero overflows the viewport at narrow widths because of
 * default content-box sizing + 16px horizontal padding. Force
 * border-box and clamp to viewport. Also covers nested sections
 * for safety. */
.kub-whyus,
.kub-whyus__hero,
.kub-whyus__panel,
.kub-whyus__panel-inner,
.kub-whyus__testi,
.kub-whyus__testi-inner {
    box-sizing: border-box;
    max-width: 100%;
}
.kub-whyus__hero {
    overflow-x: hidden;
}

/* Defensive: ensure kub blocks across the site honour border-box,
 * since runs 9/12/18 added many bespoke wrappers and a few legacy
 * default-content-box ones can still leak horizontal padding past
 * the viewport on narrow phones. */
.kub-home, .kub-home > section,
.kub-bi__layout, .kub-svc__layout, .kub-loc__layout, .kub-kp__layout,
.kub-inner__hero, .kub-blog-article,
.kub-contact, .kub-contact__inner,
.kub-footer, .kub-footer__col {
    box-sizing: border-box;
    max-width: 100%;
}

/* ----------------------------------------------------------------
 * Mobile nav overlay — works alongside kub-mobile-nav.js. The JS
 * toggles .is-menu-open + .has-modal-open on the responsive
 * container, plus body.kub-menu-open while open.
 * ---------------------------------------------------------------- */
@media (max-width: 781px) {
    /* Lock the page while the overlay is up so the page underneath
     * doesn't jiggle when the user scrolls inside the menu. */
    body.kub-menu-open {
        overflow: hidden;
    }

    /* Submenu items inside the overlay should hide by default and
     * reveal when the parent item is tapped open (kub-sub-open).
     * The chevron rotates 180deg as visual feedback. */
    .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
        display: none !important;
    }
    .wp-block-navigation__responsive-container .wp-block-navigation-item.kub-sub-open
        > .wp-block-navigation__submenu-container {
        display: block !important;
        position: static !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 0 8px 0 !important;
        border: 0 !important;
    }
    .wp-block-navigation__responsive-container .wp-block-navigation__submenu-icon {
        transition: transform .15s ease;
    }
    .wp-block-navigation__responsive-container .wp-block-navigation-item.kub-sub-open
        > a .wp-block-navigation__submenu-icon {
        transform: rotate(180deg);
    }

    /* Make parent items with children obviously tappable. */
    .wp-block-navigation__responsive-container .wp-block-navigation-item.has-child > a {
        cursor: pointer;
    }
}


/* === Run 44 header positioning fixes (desktop breathing room + mobile layout) === */

/* All viewports: vertical breathing room above the logo so the header isn't
   slammed against the viewport top (regression after dark info bar removal). */
header.wp-block-group {
  padding-top: 16px;
  padding-bottom: 14px;
}

/* Mobile (<=781px): keep logo + hamburger SIDE-BY-SIDE in one row, with the
   overlay menu items left-aligned and the close button positioned cleanly. */
@media (max-width: 781px) {
  header.wp-block-group {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  header.wp-block-group .wp-block-columns {
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 0 16px !important;
    margin: 0 !important;
  }
  header.wp-block-group .wp-block-columns > .wp-block-column:first-child {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 65% !important;
  }
  header.wp-block-group .wp-block-columns > .wp-block-column:last-child {
    flex: 1 1 auto !important;
    width: auto !important;
    text-align: right !important;
  }
  header.wp-block-group img.custom-logo {
    width: 160px !important;
    max-width: 100% !important;
  }
  /* Hamburger button visible + tappable */
  header.wp-block-group .wp-block-navigation__responsive-container-open {
    margin-left: auto !important;
    padding: 8px !important;
    color: #181818 !important;
    background: transparent !important;
    border: 0 !important;
  }
  header.wp-block-group .wp-block-navigation__responsive-container-open svg {
    width: 28px !important;
    height: 28px !important;
    fill: currentColor !important;
  }
  /* Overlay (when open): drop desktop right-justify, left-align items */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    justify-content: flex-start !important;
    align-items: stretch !important;
    padding: 72px 24px 48px !important;
    gap: 0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    text-align: left !important;
    width: 100% !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
    display: block !important;
    padding: 14px 0 !important;
    font-size: 16px !important;
    color: #181818 !important;
    text-decoration: none !important;
    text-align: left !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    top: 16px !important;
    right: 16px !important;
    padding: 8px !important;
    background: transparent !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
    width: 28px !important;
    height: 28px !important;
    fill: #181818 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    padding-left: 16px !important;
    border-bottom: none !important;
    background: transparent !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size: 14px !important;
    color: #555 !important;
  }
}

/* === End run 44 fixes === */

/* === Run 44b mobile overlay alignment patch === */
@media (max-width: 781px) {
  /* Overlay UL: enforce single-column stacking, full width */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  /* Each LI: full width, no shrink, block layout so children flow normally */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-pages-list__item {
    flex: 0 0 auto !important;
    width: 100% !important;
    align-self: stretch !important;
    display: block !important;
    justify-content: flex-start !important;
    margin: 0 !important;
  }
  /* Link inside LI: span full LI width, kill any auto margins, left-align */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    width: 100% !important;
    margin: 0 !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
}
/* === End run 44b === */

/* run-67 BUG B1: scope run-59 dropdowns to desktop only */
@media (min-width: 782px) {
/* Run 59 — match live's black dropdowns on main nav (Jason msg 174) */
header .wp-block-navigation__submenu-container {
  background-color: #222327 !important;
  border: 1px solid #282c2d !important;
  padding: 0 !important;
  min-width: 200px !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.18) !important;
  border-radius: 0 !important;
  list-style: none;
}
header .wp-block-navigation__submenu-container .wp-block-navigation-item,
header .wp-block-navigation__submenu-container .wp-block-navigation-submenu {
  background-color: #222327 !important;
  margin: 0 !important;
}
header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  color: #cccccc !important;
  font-size: 11px !important;
  padding: 6px 16px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em;
  display: block !important;
  width: 100%;
  background-color: #222327 !important;
  border: none !important;
}
header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
  color: #ffffff !important;
  background-color: #2c2d31 !important;
}
/* suppress orange dot separators inside the dark submenu */
header .wp-block-navigation__submenu-container li + li::before,
header .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item::before {
  display: none !important;
  content: none !important;
}
}
/* end run-67 BUG B1 desktop-scope wrapper */

/* === Run 69 (#43): blanket dedup of WP block-theme auto post title on custom templates === */
body[class*="page-template-page-"] .wp-block-post-title,
body[class*="page-template-page-"] .wp-site-blocks > .wp-block-post-title,
body[class*="page-template-page-"] header.wp-block-post-title,
body[class*="page-template-page-"] h1.wp-block-post-title { display: none !important; }

/* ========== 2. FOOTER (was footer.css) ========== */
/* ============================================================
 * Kub Kitchens — Footer (global)
 * Run 12 follow-up. Mirrors source kitchensubuild.com.au footer.
 * Dark ink background, orange headings, white text, columns at md+.
 * ============================================================ */
.kub-footer { color: #fff; }
.kub-footer .wp-block-columns { gap: 32px; align-items: flex-start; }
.kub-footer__cols { max-width: 1240px; margin: 0 auto; padding: 0 20px; }

.kub-footer img,
.kub-footer .wp-block-image img {
  max-width: 220px;
  height: auto;
  filter: brightness(0) invert(1);
  margin-bottom: 16px;
  display: block;
}
.kub-footer__intro {
  margin: 0 0 14px;
  line-height: 1.55;
  font-size: 14px;
  color: rgba(255,255,255,.85);
}
.kub-footer__intro strong { color: #ff7545; }

.kub-footer__heading,
.kub-footer h4 {
  font-family: 'HK Grotesk', 'Open Sans', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 18px;
  color: #ff7545 !important;
  letter-spacing: .03em;
}

.kub-footer__news {
  list-style: none;
  margin: 0;
  padding: 0;
}
.kub-footer__news li {
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.kub-footer__news li:last-child { border-bottom: 0; }
.kub-footer__news a {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  display: block;
  line-height: 1.4;
}
.kub-footer__news a:hover { color: #ff7545; }

.kub-footer__locations p {
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(255,255,255,.9);
}
.kub-footer__locations a {
  color: #ff7545;
  text-decoration: none;
}
.kub-footer__locations a:hover { text-decoration: underline; }
.kub-footer__locations strong { display: inline-block; min-width: 0; padding-right: 6px; }
.kub-footer__careers { margin-top: 14px !important; }

.kub-footer__social {
  margin: 12px 0 0 !important;
  --wp--style--block-gap: 6px;
  gap: 6px !important;
}
.kub-footer__social .wp-social-link {
  background: #ff7545 !important;
  color: #fff !important;
}
.kub-footer__social .wp-social-link:hover { filter: brightness(1.1); }

.kub-footer__rule {
  border: 0;
  border-top: 1px solid rgba(255,255,255,.18);
  margin: 32px 0 14px;
}
.kub-footer__copy {
  font-size: 13px;
  color: rgba(255,255,255,.65);
  margin: 0;
}
.kub-footer__copy a {
  color: #ff7545;
  text-decoration: none;
}
.kub-footer__copy a:hover { text-decoration: underline; }

@media (max-width: 781px) {
  .kub-footer .wp-block-columns { flex-wrap: wrap !important; gap: 24px; }
  .kub-footer .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }
}

/* Run 29: per-showroom Facebook link icons */
.kub-footer__locations .kub-fb-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: 6px;
  border-radius: 50%;
  background: #0866ff;
  color: #fff;
  vertical-align: middle;
  text-decoration: none;
  transition: transform .15s ease, background .15s ease;
}
.kub-footer__locations .kub-fb-link svg { display: block; }
.kub-footer__locations .kub-fb-link:hover {
  background: #ff7545;
  transform: translateY(-1px);
}

/* ========== 3. BE-INSPIRED INDEX (was be-inspired.css) ========== */
/* === Be Inspired Index — portfolio grid + filter chips === */
/* Built run 84 — punch list #46 */

.kub-bi-index .kub-inner__hero {
	min-height: 280px;
	position: relative;
	background-color: var(--kub-ink);
	background-size: cover;
	background-position: center;
	padding: 56px 16px 40px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.kub-bi-index .kub-inner__hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.55) 100%);
	pointer-events: none;
}
.kub-bi-index .kub-inner__hero .kub-container {
	position: relative;
	z-index: 1;
	color: #fff;
}
.kub-bi-index .kub-crumb {
	color: rgba(255,255,255,0.78);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.kub-bi-index .kub-crumb a {
	color: inherit;
	text-decoration: none;
}
.kub-bi-index .kub-crumb a:hover { color: #fff; }
.kub-bi-index .kub-inner__title {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 700;
	margin: 0;
	color: #fff;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.kub-bi-grid-section {
	padding: 48px 0 80px;
}

.kub-bi-filters {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	align-items: center;
	border-bottom: 1px solid #e8e8e8;
	padding-bottom: 18px;
}
.kub-bi-filters li {
	margin: 0;
}
.kub-bi-filter {
	background: none;
	border: none;
	font-family: inherit;
	color: var(--kub-muted, #777);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	transition: color 200ms ease, border-color 200ms ease;
}
.kub-bi-filter:hover,
.kub-bi-filter:focus-visible {
	color: var(--kub-ink, #181818);
	outline: none;
}
.kub-bi-filter.is-active {
	color: var(--kub-orange, #ff7545);
	border-bottom-color: var(--kub-orange, #ff7545);
}
/* "BE INSPIRED" pinned right at desktop */
.kub-bi-filters li:last-child {
	margin-left: auto;
}
@media (max-width: 640px) {
	.kub-bi-filters {
		gap: 10px 16px;
	}
	.kub-bi-filters li:last-child {
		margin-left: 0;
	}
}

.kub-bi-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 900px) {
	.kub-bi-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}
@media (max-width: 540px) {
	.kub-bi-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

.kub-bi-tile {
	display: block;
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	transition: transform 250ms ease, box-shadow 250ms ease, opacity 250ms ease;
}
.kub-bi-tile.is-hidden {
	display: none;
}
.kub-bi-tile:hover,
.kub-bi-tile:focus-visible {
	transform: translateY(-3px);
	outline: none;
}
.kub-bi-tile__shot {
	position: relative;
	margin: 0;
	aspect-ratio: 700 / 466;
	background: #f4f4f4;
	overflow: hidden;
}
.kub-bi-tile__shot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 400ms ease;
}
.kub-bi-tile:hover .kub-bi-tile__shot img {
	transform: scale(1.04);
}
.kub-bi-tile__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	padding: 16px 18px;
	background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,0.65) 100%);
	opacity: 0;
	transition: opacity 200ms ease;
	color: #fff;
}
.kub-bi-tile:hover .kub-bi-tile__overlay,
.kub-bi-tile:focus-visible .kub-bi-tile__overlay {
	opacity: 1;
}
.kub-bi-tile__name {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
@media (max-width: 540px) {
	/* mobile: keep overlay visible so tiles communicate name without hover */
	.kub-bi-tile__overlay {
		opacity: 1;
		background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.7) 100%);
	}
}

.kub-bi-empty {
	padding: 60px 0;
	text-align: center;
	color: var(--kub-muted, #777);
}

/* ========== 4. HOME (was home.css) ========== */
/* ============================================================
 * Kub Kitchens — Home page styles
 * Mirrors the live kitchensubuild.com.au home layout
 * Brand: orange #ff7545, gold #ffd658, ink #181818, muted #777
 * ============================================================ */

:root {
	--kub-orange: #ff7545;
	--kub-gold:   #ffd658;
	--kub-ink:    #181818;
	--kub-muted:  #777777;
	--kub-soft:   #f5f5f5;
	--kub-cool:   #eceff3;
}

.kub-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.kub-section {
	padding: 4rem 0;
}

.kub-section--narrow {
	padding: 2.5rem 0;
}

.kub-section__heading {
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
	margin: 0 0 2rem;
	color: var(--kub-ink);
}

.kub-prose p { line-height: 1.6; color: #333; }
.kub-prose strong { color: var(--kub-ink); }

.kub-btn {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: 4px;
	font-weight: 600;
	text-decoration: none;
	transition: filter 0.15s ease;
}
.kub-btn--primary {
	background: var(--kub-orange);
	color: #fff;
}
.kub-btn--primary:hover { filter: brightness(1.05); color: #fff; }

/* ---------------- Hero ---------------- */
.kub-hero {
	position: relative;
	min-height: 430px;
	overflow: hidden;
	padding: 0;
	background: var(--kub-ink);
}
.kub-hero__slider {
	position: absolute; inset: 0;
}
.kub-hero__slide {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}
.kub-hero__slide.is-active { opacity: 1; }

.kub-hero__overlay {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	min-height: 430px;
	background: linear-gradient(to right, rgba(0,0,0,0.55), rgba(0,0,0,0.15));
}
.kub-hero__card {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 2rem;
	align-items: center;
	padding: 2.5rem 2rem;
}
@media (max-width: 760px) {
	.kub-hero__card { grid-template-columns: 1fr; }
	.kub-hero__card-image { order: -1; }
}
.kub-hero__heading {
	color: #fff;
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	font-weight: 700;
	margin: 0 0 0.75rem;
	line-height: 1.15;
}
.kub-hero__sub {
	color: #f5f5f5;
	font-size: 1.05rem;
	margin: 0 0 1.25rem;
	max-width: 38rem;
}
.kub-hero__card-image img {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
	box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* ---------------- Pillars (why-us strip) ---------------- */
.kub-pillars { background: var(--kub-soft); }
.kub-pillars__grid {
	display: grid;
	gap: 2rem;
}
.kub-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.kub-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.kub-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 880px) {
	.kub-grid--3, .kub-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 540px) {
	.kub-grid--2, .kub-grid--3, .kub-grid--4 { grid-template-columns: 1fr; }
}
.kub-pillar {
	background: #fff;
	padding: 1.75rem;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06);
	text-align: center;
}
.kub-pillar__icon img {
	max-width: 70px;
	height: auto;
	margin: 0 auto 1rem;
	display: block;
}
.kub-pillar__title {
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 1.25rem;
	color: var(--kub-orange);
	margin: 0 0 0.5rem;
}
.kub-pillar__body { font-size: 0.95rem; color: #444; }

/* ---------------- Process band ---------------- */
.kub-process {
	background: var(--kub-ink);
	color: #fff;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	position: relative;
}
.kub-process::before {
	content: "";
	position: absolute; inset: 0;
	background: rgba(24,24,24,0.72);
	z-index: 0;
}
.kub-process > .kub-container { position: relative; z-index: 1; }
.kub-process .kub-section__heading { color: #fff; }
.kub-process__steps {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin: 0;
	padding: 0;
}
@media (max-width: 760px) {
	.kub-process__steps { grid-template-columns: 1fr; }
}
.kub-process__step {
	text-align: center;
	padding: 1rem;
}
.kub-process__step-num {
	display: inline-flex;
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--kub-orange);
	color: #fff;
	font-weight: 700;
	font-size: 1.5rem;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.75rem;
}
.kub-process__step-title {
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 1.25rem;
	margin: 0 0 0.5rem;
	color: var(--kub-gold);
}
.kub-process__step-body { color: #eee; line-height: 1.55; }
.kub-process__footnote {
	margin-top: 2rem;
	font-size: 0.85rem;
	color: #ddd;
	text-align: center;
}

/* ---------------- Portfolio ---------------- */
.kub-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}
@media (max-width: 980px) { .kub-portfolio__grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 700px) { .kub-portfolio__grid { grid-template-columns: repeat(2,1fr); } }
.kub-portfolio__tile {
	display: block;
	position: relative;
	aspect-ratio: 4/3;
	background: var(--kub-cool);
	overflow: hidden;
	border-radius: 4px;
	text-decoration: none;
	color: #fff;
}
.kub-portfolio__img {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.45s ease;
}
.kub-portfolio__tile:hover .kub-portfolio__img { transform: scale(1.06); }
.kub-portfolio__title {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 0.65rem 0.75rem;
	background: linear-gradient(to top, rgba(0,0,0,0.7), rgba(0,0,0,0));
	font-size: 0.95rem;
	font-weight: 600;
}

/* ---------------- CTA band ---------------- */
.kub-cta-band {
	background-color: var(--kub-orange);
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
	padding: 3rem 0;
}
.kub-cta-band__heading {
	color: #fff;
	margin: 0 0 1.25rem;
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 1.85rem;
}
.kub-cta-band .kub-btn--primary { background: #fff; color: var(--kub-orange); }
.kub-cta-band .kub-btn--primary:hover { background: var(--kub-ink); color: #fff; }

/* ---------------- Testimonials ---------------- */
.kub-testimonials { background: var(--kub-cool); }
.kub-testimonials__carousel { position: relative; max-width: 720px; margin: 0 auto; min-height: 200px; }
.kub-testimonial {
	margin: 0;
	padding: 1.5rem;
	text-align: center;
	opacity: 0;
	position: absolute; inset: 0;
	transition: opacity 0.6s ease;
}
.kub-testimonial.is-active { opacity: 1; position: relative; }
.kub-testimonial__quote {
	font-size: 1.1rem;
	font-style: italic;
	color: #333;
	margin: 0 0 1rem;
	line-height: 1.55;
}
.kub-testimonial__author { color: var(--kub-ink); }
.kub-testimonial__location { display: block; color: var(--kub-muted); font-size: 0.85rem; margin-top: 0.15rem; }

/* ======================================================================
 * Kub home — additions for hero overlay text, tribar CTA band, catalogue
 * download row. Appended to home.css 2026-05-05.
 * ====================================================================== */

/* Hero — slide overlay text */
.kub-hero { position: relative; min-height: 480px; }
.kub-hero__slider { position: absolute; inset: 0; overflow: hidden; }
.kub-hero__slide {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	opacity: 0; transition: opacity 700ms ease;
	display: flex; align-items: center; justify-content: center;
}
.kub-hero__slide.is-active { opacity: 1; }
.kub-hero__slide::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
}
.kub-hero__inner {
	position: relative;
	color: #fff; text-align: center;
	padding: 80px 24px;
	max-width: 900px;
}
.kub-hero__heading {
	font-family: 'HKGrotesk', 'Open Sans', sans-serif;
	font-size: clamp(28px, 4vw, 44px);
	line-height: 1.15; margin: 0 0 16px;
	color: #fff;
	text-shadow: 0 2px 8px rgba(0,0,0,0.45);
}
.kub-hero__sub {
	font-size: clamp(16px, 1.7vw, 20px);
	margin: 0 0 24px;
	color: rgba(255,255,255,0.95);
	white-space: pre-line;
}
.kub-btn--ghost {
	display: inline-block; padding: 12px 28px;
	background: var(--kub-orange, #ff7545);
	color: #fff; font-weight: 700; text-transform: uppercase;
	letter-spacing: 0.5px; text-decoration: none;
	border-radius: 2px; transition: background 200ms;
}
.kub-btn--ghost:hover { background: #e85d2e; color: #fff; }
.kub-hero__dots {
	position: absolute; bottom: 18px; left: 0; right: 0;
	display: flex; gap: 8px; justify-content: center; z-index: 3;
}
.kub-hero__dot {
	width: 10px; height: 10px; border-radius: 50%;
	border: 0; background: rgba(255,255,255,0.5); cursor: pointer; padding: 0;
}
.kub-hero__dot.is-active { background: var(--kub-orange, #ff7545); }

/* Tribar — 3 colored CTA cells */
.kub-tribar { padding: 30px 0; background: #fff; }
.kub-tribar__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}
.kub-tribar__cell {
	padding: 28px 24px;
	color: #fff; text-align: center;
	display: flex; flex-direction: column; justify-content: space-between;
	min-height: 200px;
}
.kub-tribar__cell--orange { background: var(--kub-orange, #ff7545); }
.kub-tribar__cell--ink    { background: var(--kub-ink, #181818); }
.kub-tribar__cell--gold   { background: var(--kub-gold, #ffd658); color: var(--kub-ink, #181818); }
.kub-tribar__eyebrow {
	font-family: 'HKGrotesk', 'Open Sans', sans-serif;
	font-size: 22px; font-weight: 700; line-height: 1.2;
	margin: 0 0 12px; color: inherit;
}
.kub-tribar__lines p {
	margin: 0 0 6px; font-size: 15px; line-height: 1.4; color: inherit;
}
.kub-tribar__btn {
	display: inline-block; margin-top: 16px;
	padding: 10px 22px;
	background: rgba(255,255,255,0.2);
	border: 2px solid #fff;
	color: #fff; font-weight: 700; font-size: 13px;
	text-transform: uppercase; letter-spacing: 0.6px;
	text-decoration: none; align-self: center;
}
.kub-tribar__cell--gold .kub-tribar__btn { border-color: var(--kub-ink, #181818); color: var(--kub-ink, #181818); background: rgba(0,0,0,0.05); }
.kub-tribar__btn:hover { background: rgba(255,255,255,0.35); }
@media (max-width: 720px) {
	.kub-tribar__grid { grid-template-columns: 1fr; }
	.kub-tribar__cell { min-height: 0; }
}

/* Catalogue download row */
.kub-catalogue { padding: 60px 0; background: #fafafa; }
.kub-catalogue__row {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 40px; align-items: center;
}
.kub-catalogue__heading {
	font-family: 'HKGrotesk', 'Open Sans', sans-serif;
	font-size: clamp(24px, 3vw, 36px); line-height: 1.2;
	margin: 0 0 12px; color: var(--kub-ink, #181818);
}
.kub-catalogue__sub {
	margin: 0 0 24px; font-size: 17px; line-height: 1.55;
	color: var(--kub-muted, #777);
}
.kub-catalogue__image img {
	max-width: 100%; height: auto;
	box-shadow: 0 14px 40px rgba(0,0,0,0.12);
	border-radius: 4px;
}
@media (max-width: 720px) {
	.kub-catalogue__row { grid-template-columns: 1fr; }
}

/* === Header fixes (run 5c) === */
header.wp-block-group .wp-block-site-logo,
header.wp-block-group .custom-logo-link { display: inline-block; line-height: 0; }
header.wp-block-group img.custom-logo { width: 220px; height: auto; max-width: 100%; display: block; }
header.wp-block-group > .wp-block-group:first-child.has-ink-background-color {
  max-width: none !important; width: 100%; margin-left: 0; margin-right: 0;
}
header.wp-block-group > .wp-block-group:first-child.has-ink-background-color > .wp-block-columns {
  max-width: 1280px; margin: 0 auto; padding: 0 20px;
}
@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation__responsive-container-open { display: none !important; }
  header.wp-block-group .wp-block-navigation__responsive-container { display: block !important; position: static !important; background: none !important; padding: 0 !important; visibility: visible !important; opacity: 1 !important; }
  header.wp-block-group .wp-block-navigation__responsive-container-content { display: block !important; }
  header.wp-block-group .wp-block-navigation__responsive-close { display: none !important; }
  header.wp-block-group .wp-block-navigation__container { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 22px; justify-content: flex-end; align-items: center; }
  header.wp-block-group .wp-block-navigation-item__content { font-weight: 600; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: #181818; padding: 8px 4px; }
  header.wp-block-group .wp-block-navigation-item__content:hover { color: #ff7545; }
  header.wp-block-group .wp-block-navigation__container > li + li::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #ff7545; margin-right: 18px; vertical-align: middle; }
}
header.wp-block-group { border-bottom: 3px solid #ff7545; background: #fff; }

/* === Header fixes patch (run 5d) === */
@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation__responsive-container {
    height: auto !important;
    min-height: 0 !important;
  }
  /* Un-hide the close wrapper (it contains the nav items); then hide just the actual close button */
  header.wp-block-group .wp-block-navigation__responsive-close { display: block !important; }
  header.wp-block-group .wp-block-navigation__responsive-container-close { display: none !important; }
  header.wp-block-group .wp-block-navigation__responsive-dialog { display: block; }
}

@media (min-width: 783px) {
  header.wp-block-group .wp-block-navigation-item__label,
  header.wp-block-group .wp-block-navigation-item__content,
  header.wp-block-group li.wp-block-navigation-item { white-space: nowrap !important; flex-shrink: 0 !important; }
  header.wp-block-group .wp-block-columns { flex-wrap: nowrap !important; }
  header.wp-block-group .wp-block-navigation-submenu__toggle { display: inline-flex; align-items: center; gap: 4px; }
}

@media (min-width: 783px) {
  /* Hide submenus by default; show on hover/focus */
  header.wp-block-group .wp-block-navigation__submenu-container {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    background: #fff;
    border: 1px solid #eee;
    padding: 8px 0;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
    z-index: 10;
  }
  header.wp-block-group .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
  header.wp-block-group .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
    display: block !important;
  }
  header.wp-block-group .wp-block-navigation-item.has-child { position: relative; }
  header.wp-block-group .wp-block-navigation__submenu-container li { display: block !important; white-space: nowrap !important; }
  header.wp-block-group .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 16px; text-transform: none; font-size: 13px; }
}

@media (min-width: 980px) {
  /* Make the logo+nav row use the wide content size, not the 780px constrained size */
  header.wp-block-group > .wp-block-group:nth-child(2) {
    max-width: 1240px !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  header.wp-block-group > .wp-block-group:nth-child(2) .wp-block-columns {
    max-width: none !important;
    width: 100%;
  }
  /* Tighter nav so it fits */
  header.wp-block-group .wp-block-navigation__container { gap: 14px !important; }
  header.wp-block-group .wp-block-navigation-item__content { font-size: 13px !important; padding: 8px 2px !important; letter-spacing: 0.03em !important; }
  header.wp-block-group .wp-block-navigation__container > li + li::before { margin-right: 10px !important; }
}

/* ============================================================
 * Run 48 — swipeable hero (#36)
 * Chevron arrows + tap-target dots + grab cursor + touch-action
 * ============================================================ */
.kub-hero { position: relative; }
.kub-hero__slider {
	touch-action: pan-y;
	cursor: grab;
	user-select: none;
	-webkit-user-select: none;
}
.kub-hero__slider:active { cursor: grabbing; }
.kub-hero__slide { user-select: none; -webkit-user-select: none; }

.kub-hero__arrow {
	position: absolute; top: 50%;
	transform: translateY(-50%);
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, 0.35);
	border: 0; border-radius: 50%;
	color: #fff; cursor: pointer;
	z-index: 4; padding: 0;
	transition: background 180ms ease, opacity 200ms ease;
}
.kub-hero__arrow:hover,
.kub-hero__arrow:focus-visible {
	background: var(--kub-orange, #ff7545);
	outline: none;
}
.kub-hero__arrow--prev { left: 14px; }
.kub-hero__arrow--next { right: 14px; }

@media (min-width: 782px) {
	.kub-hero__arrow { opacity: 0; }
	.kub-hero:hover .kub-hero__arrow,
	.kub-hero__arrow:focus-visible { opacity: 1; }
}

@media (max-width: 781px) {
	.kub-hero__arrow {
		width: 40px; height: 40px;
		background: rgba(0, 0, 0, 0.55);
	}
	.kub-hero__arrow--prev { left: 8px; }
	.kub-hero__arrow--next { right: 8px; }
	.kub-hero__dots { bottom: 14px; gap: 12px; padding: 8px 0; }
	.kub-hero__dot {
		width: 10px; height: 10px;
		box-shadow: 0 0 0 6px transparent;
	}
}

/* run-56 hero width + text card */
.kub-section.kub-hero{max-width:1240px;margin:0 auto;position:relative}
.kub-hero__slide{position:relative}
.kub-hero__inner.kub-container{position:absolute;top:50%;right:6%;transform:translateY(-50%);background:rgba(255,255,255,0.96);padding:32px 40px;max-width:440px;text-align:center;color:#181818;box-shadow:0 4px 24px rgba(0,0,0,.18);border-radius:2px;z-index:3}
.kub-hero__inner .kub-hero__eyebrow{font-size:13px;letter-spacing:.06em;text-transform:none;font-weight:600;margin:0 0 6px;color:#181818}
.kub-hero__inner .kub-hero__heading{font-size:34px;line-height:1.2;font-weight:700;margin:0 0 12px;color:#181818}
.kub-hero__inner .kub-hero__sub{font-size:15px;line-height:1.4;margin:0 0 18px;color:#444}
.kub-hero__inner .kub-btn--orange{display:inline-block;background:#ff7545;color:#fff;padding:10px 26px;text-decoration:none;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;border:none;border-radius:0;transition:background .15s}
.kub-hero__inner .kub-btn--orange:hover{background:#e8633b}
@media (max-width:781px){.kub-hero__inner.kub-container{position:absolute;top:auto;bottom:18px;right:50%;left:50%;transform:translate(-50%,0);max-width:90%;padding:18px 22px}.kub-hero__inner .kub-hero__heading{font-size:22px}.kub-hero__inner .kub-hero__sub{font-size:13px}}

/* run-56b min-height fix */
.kub-section.kub-hero{min-height:480px}
.kub-hero__slide{min-height:480px;background-size:cover;background-position:center}
@media (max-width:781px){.kub-section.kub-hero{min-height:360px}.kub-hero__slide{min-height:360px}}

/* === Run 67: mobile hero card readability fix === */
@media (max-width: 781px) {
  .kub-section.kub-hero { min-height: 460px; }
  .kub-hero__inner {
    position: absolute !important;
    top: auto !important;
    bottom: 8% !important;
    left: 5% !important;
    right: 5% !important;
    transform: none !important;
    max-width: none !important;
    width: auto !important;
    padding: 18px 22px !important;
    max-height: 86%;
    overflow-y: auto;
    box-sizing: border-box !important;
  }
  .kub-hero__heading { font-size: 22px !important; line-height: 1.15 !important; margin: 6px 0 !important; }
  .kub-hero__eyebrow { font-size: 12px !important; letter-spacing: .12em !important; }
  .kub-hero__sub     { font-size: 14px !important; line-height: 1.35 !important; margin-top: 6px !important; }
  .kub-hero__inner .kub-btn--orange { font-size: 13px !important; padding: 10px 18px !important; }
}
/* === End Run 67 === */

/* === Run 69 (#42): remove banner drop-shadows; menu z-index above hero === */
.kub-hero__heading { text-shadow: none !important; }
.kub-hero__inner.kub-container { box-shadow: none !important; }
/* Ensure mobile menu overlay always sits above hero card / arrows / dots.
   Task 86d35pt3y: the inner .wp-block-navigation__responsive-container-content
   rule that set position:relative + z-index:100001 made the content div overlap
   the close button (z-index:2), so taps in the close-button area landed on the
   content div. Container z-index alone lifts the whole overlay above the hero. */
.wp-block-navigation__responsive-container.is-menu-open { z-index: 100000 !important; }
body.kub-menu-open .kub-hero__inner.kub-container,
body.kub-menu-open .kub-hero__arrow,
body.kub-menu-open .kub-hero__dots { z-index: 0 !important; }

/* === Run 82: fix slides 2-5 black — restore absolute overlay stacking === */
/* Run-56 patch set position:relative on .kub-hero__slide which caused slides
   to stack vertically inside overflow:hidden hero. JS rotates .is-active but
   non-first slides sit below visible viewport, showing hero bg (#181818).
   Force absolute overlay so opacity crossfade actually shows the right slide. */
.kub-hero__slider { position: absolute !important; inset: 0 !important; }
.kub-hero__slide { position: absolute !important; inset: 0 !important; opacity: 0; transition: opacity 700ms ease; }
.kub-hero__slide.is-active { opacity: 1; }

/* ========== 5. INNER ACF TEMPLATES (was inner.css) ========== */
/* ----------------------------------------------------------------------------
 * Kub Kitchens — Inner page templates
 * Shared styling for be-inspired-single, services-single, kitchen-product-single, location-single.
 * --------------------------------------------------------------------------*/

:root {
	--kub-orange: #ff7545;
	--kub-gold:   #ffd658;
	--kub-ink:    #181818;
	--kub-muted:  #777;
	--kub-soft:   #f5f5f5;
	--kub-cool:   #e9eef2;
}

.kub-inner { color: var(--kub-ink); }
.kub-inner .kub-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}
.kub-inner .kub-section { padding: 56px 0; }

/* hero */
.kub-inner__hero {
	background-color: var(--kub-cool);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	padding: 120px 0 64px;
	color: #fff;
	position: relative;
}
.kub-inner__hero.has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(24, 24, 24, .45);
	z-index: 0;
}
.kub-inner__hero:not(.has-image) {
	color: var(--kub-ink);
}
.kub-inner__hero .kub-container { position: relative; z-index: 1; }
.kub-inner__title {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.1;
	margin: 12px 0 0;
	letter-spacing: .2px;
}
.kub-crumb {
	font-size: 14px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.kub-crumb a { color: inherit; text-decoration: none; opacity: .85; }
.kub-crumb a:hover { color: var(--kub-orange); opacity: 1; }
.kub-crumb .sep { margin: 0 8px; opacity: .55; }

/* buttons */
.kub-btn {
	display: inline-block;
	padding: 12px 24px;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: .03em;
	border-radius: 2px;
	transition: filter .2s ease;
}
.kub-btn--orange { background: var(--kub-orange); color: #fff; }
.kub-btn--orange:hover { filter: brightness(.95); color: #fff; }
.kub-btn--ghost {
	background: transparent;
	color: #fff;
	border: 2px solid #fff;
}
.kub-btn--ghost:hover { background: #fff; color: var(--kub-ink); }

.kub-id-color { color: var(--kub-orange); }

/* ----------------------------------------------------------------------------
 * Be Inspired single (project)
 * --------------------------------------------------------------------------*/
.kub-bi__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
@media (min-width: 980px) {
	.kub-bi__layout {
		grid-template-columns: 2fr 1fr;
	}
}
.kub-bi__gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
.kub-bi__shot { margin: 0; }
.kub-bi__shot img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
	background: var(--kub-soft);
}

.kub-bi__info {
	background: var(--kub-soft);
	padding: 28px;
	border-radius: 4px;
	align-self: start;
	position: sticky;
	top: 24px;
}
.kub-bi__name {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1.75rem;
	margin: 0 0 16px;
	color: var(--kub-ink);
}
.kub-bi__details { margin: 0 0 20px; padding: 0 0 18px; border-bottom: 1px solid #e6e6e6; }
.kub-bi__details dt {
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--kub-muted);
	margin-top: 8px;
}
.kub-bi__details dd { margin: 2px 0 0; font-weight: 600; color: var(--kub-ink); }
.kub-bi__desc p { margin: 0 0 14px; }
.kub-bi__desc p:last-child { margin-bottom: 22px; }

/* ----------------------------------------------------------------------------
 * Services / Kitchen-product single — shared layout
 * --------------------------------------------------------------------------*/
.kub-svc__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
@media (min-width: 980px) {
	.kub-svc__layout {
		grid-template-columns: 1fr 1fr;
		gap: 60px;
	}
}
.kub-svc__heading {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1.75rem;
	margin: 0 0 8px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.kub-svc__tagline {
	font-size: 1.05rem;
	margin: 0 0 20px;
	color: var(--kub-orange);
}
.kub-svc__body p { margin: 0 0 14px; line-height: 1.6; }
.kub-svc__body ul { padding-left: 20px; margin: 0 0 16px; }
.kub-svc__body li { margin-bottom: 6px; line-height: 1.5; }
.kub-svc__body img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 16px 0;
	border-radius: 4px;
}
.kub-svc__copy .kub-btn { margin-top: 16px; }
.kub-svc__media {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
.kub-svc__media figure { margin: 0; }
.kub-svc__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
	background: var(--kub-soft);
}

/* ----------------------------------------------------------------------------
 * Location / Showroom single
 * --------------------------------------------------------------------------*/
.kub-loc__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
@media (min-width: 980px) {
	.kub-loc__layout {
		grid-template-columns: 360px 1fr;
		gap: 48px;
	}
}
.kub-loc__card {
	background: var(--kub-soft);
	padding: 28px;
	border-radius: 4px;
	align-self: start;
	position: sticky;
	top: 24px;
}
.kub-loc__name {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1.5rem;
	margin: 0 0 12px;
}
.kub-loc__address {
	font-style: normal;
	margin: 0 0 18px;
	line-height: 1.4;
	color: var(--kub-ink);
}
.kub-loc__contact { margin: 0 0 18px; }
.kub-loc__contact dt {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--kub-muted);
}
.kub-loc__contact dd { margin: 0 0 10px; font-weight: 600; }
.kub-loc__contact dd a { color: var(--kub-ink); text-decoration: none; }
.kub-loc__contact dd a:hover { color: var(--kub-orange); }
.kub-loc__hours { margin: 0 0 18px; padding: 12px 0; border-top: 1px solid #e6e6e6; }
.kub-loc__hours h3 {
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--kub-muted);
	margin: 0 0 8px;
}
.kub-loc__hours pre {
	font-family: inherit;
	white-space: pre-wrap;
	margin: 0;
	font-size: 14px;
}
.kub-loc__intro p { line-height: 1.6; margin: 0 0 14px; }
.kub-loc__map {
	margin-top: 24px;
	border-radius: 4px;
	overflow: hidden;
	background: var(--kub-cool);
}
.kub-loc__map iframe {
	display: block;
	width: 100%;
	height: 420px;
	border: 0;
}

/* ============================================================
 * Run 12 — overflow guards for rehydrated WYSIWYG content
 * The rehydrate_pages.php run pulls Bootstrap-marked-up HTML
 * straight from the source (.container .row .col-* + raw <img>),
 * which had no width constraints under our theme. Force them
 * to fit the inner-template column.
 * ============================================================ */
.kub-loc__intro .container,
.kub-loc__intro .row,
.kub-loc__intro [class^="col-"],
.kub-loc__intro [class*=" col-"],
.kub-bi__desc .container,
.kub-bi__desc .row,
.kub-bi__desc [class^="col-"],
.kub-bi__desc [class*=" col-"],
.kub-svc__body .container,
.kub-svc__body .row,
.kub-svc__body [class^="col-"],
.kub-svc__body [class*=" col-"] {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  flex: 0 0 100% !important;
}

.kub-loc__intro img,
.kub-loc__intro iframe,
.kub-bi__desc img,
.kub-bi__desc iframe,
.kub-svc__body img,
.kub-svc__body iframe,
.kub-svc__copy img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
  margin: 12px 0;
}

.kub-loc__intro,
.kub-loc__main,
.kub-bi__desc,
.kub-svc__body,
.kub-svc__copy {
  min-width: 0;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

/* Belt-and-braces page-level guard against accidental horizontal scroll */
html, body { overflow-x: hidden; }

/* Run 61: kitchen-product + service left subcategory subnav */

/* When the layout has a subnav, switch to 3-column at >=900px */
.kub-svc__layout--with-subnav {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 900px) {
  .kub-svc__layout--with-subnav {
    grid-template-columns: 220px 1fr minmax(260px, 32%);
    gap: 32px;
  }
}

.kub-kp__subnav {
  background: #f6f6f7;
  border-radius: 4px;
  padding: 18px 0;
}
.kub-kp__subnav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.kub-kp__subnav-item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #e3e3e5;
}
.kub-kp__subnav-item:last-child {
  border-bottom: 0;
}
.kub-kp__subnav-item a {
  display: block;
  padding: 11px 18px;
  color: #181818;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1.35;
  transition: color 0.15s ease, background 0.15s ease;
}
.kub-kp__subnav-item a:hover,
.kub-kp__subnav-item a:focus {
  color: #ff7545;
  background: #fff;
}
.kub-kp__subnav-item.is-active a {
  color: #ff7545;
  font-weight: 600;
  background: #fff;
}
.kub-kp__subnav-item.is-active {
  border-left: 3px solid #ff7545;
}
.kub-kp__subnav-item.is-active a {
  padding-left: 15px;
}
@media (max-width: 899px) {
  .kub-kp__subnav {
    padding: 8px 0;
  }
  .kub-kp__subnav-item a {
    padding: 9px 16px;
  }
}

/* ========== 6. WHY US (was why-us.css) ========== */
/* Why Us page — kub-whyus BEM block.
 * Built run 18 to match source kitchensubuild.com.au/why-us layout. */

.kub-whyus { display: block; color: var(--kub-ink, #181818); }

/* Hero */
.kub-whyus__hero {
    position: relative;
    width: 100%;
    min-height: 360px;
    background-size: cover;
    background-position: center;
    background-color: #2a2a2a;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 16px 60px;
}
.kub-whyus__hero::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.55));
    pointer-events: none;
}
.kub-whyus__hero-inner {
    position: relative; z-index: 1;
    max-width: 1240px;
    width: 100%;
    text-align: center;
}
.kub-whyus__hero-title {
    margin: 0 0 12px;
    font-family: 'HKGrotesk', 'Open Sans', system-ui, sans-serif;
    font-weight: 700;
    font-size: clamp(28px, 4vw, 44px);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #fff;
}
.kub-crumb {
    font-size: 13px;
    letter-spacing: .5px;
    color: rgba(255,255,255,.85);
    text-transform: uppercase;
}
.kub-crumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.kub-crumb a:hover { color: var(--kub-orange, #ff7545); }
.kub-crumb .sep { margin: 0 8px; color: rgba(255,255,255,.6); }

/* Alternating panels */
.kub-whyus__panel {
    background: #fff;
    overflow: hidden;
}
.kub-whyus__panel + .kub-whyus__panel {
    border-top: 1px solid #f0f0f0;
}
.kub-whyus__panel-inner {
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    gap: 0;
    min-height: 540px;
}
.kub-whyus__panel--right .kub-whyus__panel-inner {
    grid-template-areas: "text image";
}
.kub-whyus__panel--right .kub-whyus__panel-image { grid-area: image; }
.kub-whyus__panel--right .kub-whyus__panel-text  { grid-area: text;  }
.kub-whyus__panel-image {
    background: #f4f1ee;
    overflow: hidden;
    min-height: 420px;
}
.kub-whyus__panel-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 420px;
    max-width: 100%;
}
.kub-whyus__panel-text {
    padding: 56px 56px 56px 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.kub-whyus__panel-title {
    margin: 0 0 18px;
    font-family: 'HKGrotesk', 'Open Sans', system-ui, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--kub-ink, #181818);
    font-size: clamp(22px, 2.4vw, 30px);
    letter-spacing: 1px;
}
.kub-whyus__panel-body {
    color: #444;
    font-size: 15px;
    line-height: 1.65;
    max-width: 640px;
}
.kub-whyus__panel-body p { margin: 0 0 12px; }
.kub-whyus__panel-body strong { color: var(--kub-ink, #181818); }
.kub-whyus__panel-body img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 14px 0;
    border-radius: 4px;
}
.kub-whyus__panel-body a {
    color: var(--kub-orange, #ff7545);
    text-decoration: none;
    font-weight: 600;
}
.kub-whyus__panel-body a:hover { text-decoration: underline; }

/* Testimonials */
.kub-whyus__testi {
    background: #181818;
    color: #fff;
    padding: 80px 16px;
}
.kub-whyus__testi-inner {
    max-width: 1240px;
    margin: 0 auto;
    text-align: center;
}
.kub-whyus__testi-heading {
    margin: 0 0 14px;
    font-family: 'HKGrotesk', 'Open Sans', system-ui, sans-serif;
    font-weight: 700;
    font-size: clamp(26px, 3vw, 36px);
    color: #fff;
    letter-spacing: 1px;
}
.kub-whyus__testi-rule {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--kub-orange, #ff7545);
    margin: 0 auto 36px;
    display: block;
}
.kub-whyus__testi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
    text-align: left;
}
.kub-whyus__testi-item {
    margin: 0;
    padding: 28px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 6px;
}
.kub-whyus__testi-item blockquote {
    margin: 0 0 16px;
    font-style: italic;
    color: rgba(255,255,255,.92);
    font-size: 15px;
    line-height: 1.65;
    border: 0;
    padding: 0;
}
.kub-whyus__testi-item blockquote p { margin: 0 0 10px; }
.kub-whyus__testi-item figcaption {
    font-weight: 700;
    color: var(--kub-orange, #ff7545);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 13px;
}

/* Responsive */
@media (max-width: 980px) {
    .kub-whyus__panel-inner {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .kub-whyus__panel--right .kub-whyus__panel-inner {
        grid-template-areas: "image" "text";
    }
    .kub-whyus__panel-image { min-height: 280px; }
    .kub-whyus__panel-image img { min-height: 280px; max-height: 360px; }
    .kub-whyus__panel-text { padding: 32px 24px; }
    .kub-whyus__testi-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .kub-whyus__hero { min-height: 280px; padding: 56px 16px 40px; }
}

/* =====================================================================
 * Run 86b (2026-05-11) — dropdown submenu item padding fix
 * Items were hugging the dark container's left edge (2px padding).
 * Add comfortable breathing room — matches the source site's spacing.
 * ===================================================================== */
@media ( min-width: 782px ) {
  header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 6px 24px 6px 22px !important;
    line-height: 1.4 !important;
  }
  header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
  header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
    color: #ff7545 !important;
  }
}

/* ========== 7. RUN 96 — SERVICES + BLOG INDEX (Run 96 charcoal banner) ========== */
/* Punch list #48 + #49 — Jason msgs 206 + 208. Live source uses
 * #subheader { background:#222; padding-bottom:120px } + col-md-3 cards
 * (4-per-row Bootstrap). Map onto our existing .kub-bi-index hero +
 * .kub-bi-grid via two index-scope modifier classes: .kub-svc-index +
 * .kub-blog-index. */

/* task 86d3476va → 86d34d1a8 — services-index now uses its real
 * banner image (services-hero.jpg / page 116 featured image). The
 * earlier "intentional charcoal for services" note from task
 * 86d3474a6 was wrong about the reference design — reporter raised
 * it on /services/ in 86d3476va, and on /blog/ + /why-us/ for the
 * same consistency reason in 86d34d1a8. Blog now also uses the
 * canonical image hero (page-blog-index.php emits has-image when
 * the blog page's featured image is set; see
 * wp_get_attachment_image_url($hero_id,'full')). */
.kub-svc-index .kub-inner__title,
.kub-blog-index .kub-inner__title {
	letter-spacing: 0.05em;
	font-weight: 700;
}
.kub-svc-index .kub-crumb,
.kub-blog-index .kub-crumb {
	color: rgba(255,255,255,0.7);
	font-size: 11px;
	letter-spacing: 0.18em;
	margin-bottom: 12px;
}

.kub-svc-index .kub-bi-grid,
.kub-blog-index .kub-bi-grid {
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 24px !important;
}
@media (max-width: 1100px) {
	.kub-svc-index .kub-bi-grid,
	.kub-blog-index .kub-bi-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}
@media (max-width: 780px) {
	.kub-svc-index .kub-bi-grid,
	.kub-blog-index .kub-bi-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 18px !important;
	}
}
@media (max-width: 480px) {
	.kub-svc-index .kub-bi-grid,
	.kub-blog-index .kub-bi-grid {
		grid-template-columns: 1fr !important;
	}
}

.kub-blog-tile {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	background: #fff;
	transition: transform 250ms ease, box-shadow 250ms ease;
}
.kub-blog-tile:hover,
.kub-blog-tile:focus-visible {
	transform: translateY(-3px);
	outline: none;
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.kub-blog-tile__shot {
	position: relative;
	margin: 0;
	aspect-ratio: 700 / 350;
	background: #f4f4f4;
	overflow: hidden;
}
.kub-blog-tile__shot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 400ms ease;
}
.kub-blog-tile:hover .kub-blog-tile__shot img {
	transform: scale(1.03);
}
.kub-blog-tile__body {
	padding: 18px 4px 8px;
}
.kub-blog-tile__title {
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 8px;
	color: var(--kub-ink, #181818);
}
.kub-blog-tile__excerpt {
	font-size: 14px;
	line-height: 1.5;
	color: var(--kub-muted, #777);
	margin: 0 0 10px;
}
.kub-blog-tile__more {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kub-orange, #ff7545);
	font-weight: 700;
}

/* ========== 8. RUN 98 — SERVICES TILE LAYOUT (matches live .services-item) ========== */
/* Title → tagline → photo → Read More button, vertically stacked inside each tile. */
/* Scoped to .kub-svc-index to keep /be-inspired/ + /blog/ tile pattern untouched. */

.kub-svc-index .kub-svc-grid{
	display:grid;
	grid-template-columns:repeat(4,1fr) !important;
	gap:28px;
	margin:0 0 64px;
}
@media (max-width:1100px){.kub-svc-index .kub-svc-grid{grid-template-columns:repeat(3,1fr) !important}}
@media (max-width:780px){.kub-svc-index .kub-svc-grid{grid-template-columns:repeat(2,1fr) !important;gap:20px}}
@media (max-width:480px){.kub-svc-index .kub-svc-grid{grid-template-columns:1fr !important}}

.kub-svc-tile{
	display:flex;
	flex-direction:column;
	background:#fff;
	color:#181818;
	text-decoration:none;
	padding:8px 6px 16px;
	border-radius:2px;
	transition:transform .25s ease, box-shadow .25s ease;
}
.kub-svc-tile:hover,
.kub-svc-tile:focus-visible{
	transform:translateY(-2px);
	box-shadow:0 12px 30px rgba(0,0,0,.06);
}
.kub-svc-tile__title{
	color:#ff7545;
	font-family:"HK Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
	font-size:18px;
	font-weight:700;
	letter-spacing:.04em;
	line-height:1.25;
	margin:8px 0 6px;
	text-transform:uppercase;
}
.kub-svc-tile__tagline{
	color:#444;
	font-size:14px;
	line-height:1.4;
	margin:0 0 14px;
	min-height:1.4em;
}
.kub-svc-tile__shot{
	margin:0 0 14px;
	overflow:hidden;
}
.kub-svc-tile__shot img{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:800/385;
	object-fit:cover;
	transition:transform .35s ease;
}
.kub-svc-tile:hover .kub-svc-tile__shot img,
.kub-svc-tile:focus-visible .kub-svc-tile__shot img{
	transform:scale(1.02);
}
.kub-svc-tile__more{
	display:block;
	margin-top:auto;
	padding:10px 12px;
	color:#ff7545;
	border:1px solid #ff7545;
	background:transparent;
	font-family:"HK Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
	font-size:12px;
	font-weight:700;
	letter-spacing:.16em;
	text-align:center;
	text-transform:uppercase;
	transition:background .2s ease, color .2s ease;
}
.kub-svc-tile:hover .kub-svc-tile__more,
.kub-svc-tile:focus-visible .kub-svc-tile__more{
	background:#ff7545;
	color:#fff;
}

/* When the .kub-svc-index modifier is present, also hide the legacy
   .kub-bi-grid markup if present (defensive — the run-98 template
   uses .kub-svc-grid, but in case anything else inherits .kub-bi-grid) */
.kub-svc-index .kub-bi-grid{display:none}

/* ============================================================
   9. RUN 101 — BAYSWATER CONTACT US (Maya's design)
   Scoped to `.kub-bayswater-page`. Mirrors the design at
   bayswater-contact-us.zip with the namespace renamed
   `.kub-bw-*` so it doesn't collide with other site rules.
   ============================================================ */
.kub-bayswater-page { background: #fff; color: #333; }
.kub-bayswater-page .kub-bw-container { max-width: 1280px; margin: 0 auto; padding: 0 32px; }

.kub-bayswater-page .kub-bw-eyebrow {
  font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600; font-size: 12px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #ff7545; margin-bottom: 18px;
}
.kub-bayswater-page .kub-bw-eyebrow-center { text-align: center; }
.kub-bayswater-page .kub-bw-script {
  font-family: "Allura", cursive; font-weight: 400; color: #ff7545; letter-spacing: 0;
}

.kub-bayswater-page .kub-bw-h1 {
  font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400; font-size: clamp(36px, 4.4vw, 60px); line-height: 1.05;
  letter-spacing: -0.02em; color: #000; margin: 0 0 20px;
}
.kub-bayswater-page .kub-bw-h1 .kub-bw-script {
  display: inline-block; font-size: 1.05em; line-height: 0.9; margin-left: 4px;
}
.kub-bayswater-page .kub-bw-h2 {
  font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400; font-size: clamp(28px, 3vw, 42px); line-height: 1.1;
  letter-spacing: -0.015em; color: #000; margin: 0 0 16px;
}
.kub-bayswater-page .kub-bw-h2-center { text-align: center; }
.kub-bayswater-page .kub-bw-h2-orange { color: #ff7545; font-weight: 500; }

.kub-bayswater-page .kub-bw-lede {
  font-size: 18px; line-height: 1.6; color: #333; max-width: 56ch; margin: 0 0 36px;
}

/* Intro section */
.kub-bayswater-page .kub-bw-intro {
  padding: 80px 0 56px; border-bottom: 1px solid #ddd;
}
.kub-bayswater-page .kub-bw-quickfacts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px; border-top: 1px solid #ddd; padding-top: 28px;
  list-style: none; margin: 0;
}
.kub-bayswater-page .kub-bw-quickfacts dt {
  font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600; font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: #777; margin-bottom: 4px;
}
.kub-bayswater-page .kub-bw-quickfacts dd { margin: 0; font-size: 16px; line-height: 1.45; color: #000; }
.kub-bayswater-page .kub-bw-quickfacts a:hover { color: #ff7545; }

/* Showroom photo + text */
.kub-bayswater-page .kub-bw-grid {
  padding: 80px 0; display: grid; grid-template-columns: 1fr 1fr;
  gap: 64px; align-items: start;
}
.kub-bayswater-page .kub-bw-grid > div > p {
  font-size: 16px; line-height: 1.65; color: #333; margin: 0 0 16px;
}
.kub-bayswater-page .kub-bw-photo {
  border-radius: 4px; overflow: hidden; aspect-ratio: 4 / 5; background: #f5f5f5;
}
.kub-bayswater-page .kub-bw-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kub-bayswater-page .kub-bw-photo-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  color: #999; font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
}
.kub-bayswater-page .kub-bw-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* Buttons (scoped) */
.kub-bayswater-page .kub-bw-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500; font-size: 16px; padding: 14px 28px; border-radius: 0;
  border: 1px solid transparent; cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s;
  white-space: nowrap; text-decoration: none;
}
.kub-bayswater-page .kub-bw-btn:hover { transform: translateY(-1px); }
.kub-bayswater-page .kub-bw-btn-lg { padding: 16px 32px; }
.kub-bayswater-page .kub-bw-btn-primary { background: #ff7545; color: #fff; }
.kub-bayswater-page .kub-bw-btn-primary:hover { background: #e65f31; color: #fff; }
.kub-bayswater-page .kub-bw-btn-ghost { background: transparent; border-color: #000; color: #000; }
.kub-bayswater-page .kub-bw-btn-ghost:hover { background: #000; color: #fff; }
.kub-bayswater-page .kub-bw-link-orange { color: #ff7545; font-weight: 500; text-decoration: none; }

/* Form section */
.kub-bayswater-page .kub-bw-form-section {
  background: #f5f5f5; padding: 80px 0;
  border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;
}
.kub-bayswater-page .kub-bw-form-inner { max-width: 760px; margin: 0 auto; }
.kub-bayswater-page .kub-bw-form-lede {
  text-align: center; font-size: 16px; color: #333; max-width: 56ch; margin: 0 auto 40px;
}
.kub-bayswater-page #kub-bw-contact-form {
  background: #fff; padding: 40px; border-radius: 4px; border: 1px solid #ddd;
}
.kub-bayswater-page .kub-bw-form-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px;
}
.kub-bayswater-page .kub-bw-field {
  display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px;
}
.kub-bayswater-page .kub-bw-field > span {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; color: #333;
}
.kub-bayswater-page .kub-bw-field input,
.kub-bayswater-page .kub-bw-field select,
.kub-bayswater-page .kub-bw-field textarea {
  font: inherit; font-size: 15px; color: #000; background: #fafafa;
  border: 1px solid #d9d9d9; border-radius: 4px; padding: 12px 14px;
  outline: none; width: 100%; font-family: inherit;
  transition: border-color .12s, background .12s, box-shadow .12s;
}
.kub-bayswater-page .kub-bw-field input:focus,
.kub-bayswater-page .kub-bw-field select:focus,
.kub-bayswater-page .kub-bw-field textarea:focus {
  border-color: #ff7545; background: #fff;
  box-shadow: 0 0 0 3px rgba(255,117,69,0.18);
}
.kub-bayswater-page .kub-bw-field textarea { resize: vertical; min-height: 80px; }
.kub-bayswater-page .kub-bw-form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.kub-bayswater-page .kub-bw-form-fineprint {
  margin: 16px 0 0; font-size: 12px; color: #777; text-align: center;
}
.kub-bayswater-page .kub-bw-contact-success {
  background: #fff; padding: 56px 40px; border: 1px solid #ddd; border-radius: 4px;
  text-align: center;
}
.kub-bayswater-page .kub-bw-contact-success .kub-bw-eyebrow { display: inline-block; }

/* Map */
.kub-bayswater-page .kub-bw-map { padding: 0; }
.kub-bayswater-page .kub-bw-map-frame { width: 100%; height: 480px; border: 0; display: block; }

/* FAQ */
.kub-bayswater-page .kub-bw-faq-section { padding: 80px 0; }
.kub-bayswater-page .kub-bw-section-head { margin: 0 auto 32px; }
.kub-bayswater-page .kub-bw-faq-list { background: #f5f5f5; border-radius: 4px; }
.kub-bayswater-page .kub-bw-faq-item { border-bottom: 1px solid #ddd; }
.kub-bayswater-page .kub-bw-faq-item:last-child { border-bottom: 0; }
.kub-bayswater-page .kub-bw-faq-item summary {
  list-style: none; cursor: pointer; padding: 24px 28px;
  font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500; font-size: 17px; color: #000;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
}
.kub-bayswater-page .kub-bw-faq-item summary::-webkit-details-marker { display: none; }
.kub-bayswater-page .kub-bw-faq-item summary::after {
  content: "+"; font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300; font-size: 28px; color: #ff7545; transition: transform .2s;
}
.kub-bayswater-page .kub-bw-faq-item[open] summary::after { content: "–"; }
.kub-bayswater-page .kub-bw-faq-item p {
  margin: 0; padding: 0 28px 24px; font-size: 15px; line-height: 1.65;
  color: #333; max-width: 70ch;
}

/* Hide our auto-rendered post title on this template (mirrors run 23/27/31 dedup) */
.kub-bayswater-page .wp-block-post-title { display: none !important; }
body.page-template-page-bayswater-contact-us .wp-block-post-title { display: none !important; }

/* Mobile */
@media (max-width: 1100px) {
  .kub-bayswater-page .kub-bw-grid { grid-template-columns: 1fr; gap: 40px; }
  .kub-bayswater-page .kub-bw-quickfacts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .kub-bayswater-page .kub-bw-intro { padding: 56px 0 40px; }
  .kub-bayswater-page .kub-bw-grid,
  .kub-bayswater-page .kub-bw-form-section,
  .kub-bayswater-page .kub-bw-faq-section { padding: 56px 0; }
  .kub-bayswater-page .kub-bw-quickfacts { grid-template-columns: 1fr; }
  .kub-bayswater-page #kub-bw-contact-form { padding: 28px 20px; }
  .kub-bayswater-page .kub-bw-form-row { grid-template-columns: 1fr; }
}
/* End section 9 */

/* Run 190 (#64.4) — contact-us map block */
.kub-contact__map{margin:48px 0 24px;padding-top:32px;border-top:1px solid #eee}
.kub-contact__map-heading{font-size:24px;font-weight:700;color:#181818;margin:0 0 8px;letter-spacing:.3px}
.kub-contact__map-sub{color:#555;font-size:14px;line-height:1.55;margin:0 0 20px;max-width:720px}
.kub-contact__map iframe{border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.08);width:100%;height:400px}
@media (max-width:781px){.kub-contact__map iframe{height:320px}.kub-contact__map-heading{font-size:20px}}

/* Run 190 (#64.5) — testimonials carousel nav controls */
.kub-testimonials__carousel{padding:0 50px}
.kub-testimonials__nav{display:flex;justify-content:center;gap:10px;margin-top:24px;padding:0;list-style:none}
.kub-testimonials__dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:0;background:#ccc;padding:0;cursor:pointer;transition:background .2s ease}
.kub-testimonials__dot.is-active{background:#ff7545}
.kub-testimonials__dot:hover{background:#888}
.kub-testimonials__arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.06);border:0;color:#181818;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;z-index:2}
.kub-testimonials__arrow:hover{background:#ff7545;color:#fff}
.kub-testimonials__arrow--prev{left:0}
.kub-testimonials__arrow--next{right:0}
@media (max-width:781px){.kub-testimonials__carousel{padding:0 40px}.kub-testimonials__arrow{width:32px;height:32px;font-size:16px}}



/* === Run 194 (#66.1/#66.2/#66.6/#66.8) === */
/* #66.1 process drop yellow - override line 1347 step-title color */
.kub-process__step-title { color: #fff !important; }

/* #66.2 why-us testimonials carousel - single-active layout when initCarousel binds */
.kub-whyus__testi-grid[data-kub-bound="1"] {
  display: block;
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 56px;
  min-height: 260px;
}
.kub-whyus__testi-grid[data-kub-bound="1"] > .kub-whyus__testi-item {
  position: absolute; inset: 0 56px;
  margin: 0;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}
.kub-whyus__testi-grid[data-kub-bound="1"] > .kub-whyus__testi-item.is-active {
  position: relative; inset: auto;
  opacity: 1;
  pointer-events: auto;
}
/* Mark first item active on JS bind init (initCarousel sets is-active on slides[0]) */
.kub-whyus__testi-grid[data-kub-bound="1"] .kub-testimonials__arrow {
  color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.08);
}
.kub-whyus__testi-grid[data-kub-bound="1"] .kub-testimonials__arrow:hover {
  background: var(--kub-orange);
  color: #fff;
}
.kub-whyus__testi-inner .kub-testimonials__nav { margin-top: 28px; }
.kub-whyus__testi-inner .kub-testimonials__dot { background: rgba(255,255,255,0.4); }
.kub-whyus__testi-inner .kub-testimonials__dot.is-active { background: var(--kub-orange); }
.kub-whyus__testi-inner .kub-testimonials__dot:hover { background: rgba(255,255,255,0.8); }

/* #66.6 KP product_body img cap (drawers-hinges + others) */
body.single-kitchen_product .kub-svc__copy img,
body.single-service .kub-svc__copy img {
  max-width: 600px !important;
  max-height: 520px !important;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* #66.8 finance hero - charcoal banner with overlay text */
.kub-finance-hero {
  position: relative;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  color: #fff;
  text-align: center;
  margin-bottom: 32px;
}
.kub-finance-hero::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(24,24,24,0.55);
  z-index: 0;
}
.kub-finance-hero__inner {
  position: relative;
  z-index: 1;
  padding: 60px 24px 50px;
  max-width: 980px;
  width: 100%;
}
.kub-finance-hero h1 {
  font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
  font-size: clamp(28px, 4vw, 44px);
  margin: 0 0 14px;
  color: #fff;
  letter-spacing: 0.02em;
}
.kub-finance-hero .kub-crumb {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.7);
}
.kub-finance-hero .kub-crumb a { color: rgba(255,255,255,0.7); text-decoration: none; }
.kub-finance-hero .kub-crumb a:hover { color: var(--kub-orange); }
.kub-finance-hero .kub-crumb .sep { margin: 0 6px; opacity: 0.6; }
/* Hide auto-rendered post title on finance since hero already provides H1 */
body.page-id-88 .wp-block-post-title { display: none !important; }


/* ==== task 86d330tfy — blog single hero + RHS sidebar + prev/next ==== */
/* r3: hero 480 -> 640 + no overlay (dimRatio:0); legibility via text-shadow.
   r3: sidebar gains promo cards + About Us box matching reference site. */

/* Full-bleed hero cover using the post's featured image — overlay removed */
.kub-bs-hero {
  margin: 0 0 32px;
  position: relative;
}
/* Belt-and-braces: kill any background dim core might still apply at runtime. */
.kub-bs-hero .wp-block-cover__background,
.kub-bs-hero > .wp-block-cover__background.has-background-dim {
  background-color: transparent !important;
  opacity: 0 !important;
}
.kub-bs-hero .wp-block-cover__inner-container {
  text-align: center;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 2;
}
.kub-bs-hero__title,
.kub-bs-hero .kub-bs-hero__title,
.kub-bs-hero h1.wp-block-post-title {
  color: #fff !important;
  font-size: clamp(28px, 4.2vw, 52px);
  line-height: 1.15;
  margin: 0 0 18px;
  letter-spacing: 0.5px;
  font-weight: 700;
  text-transform: uppercase;
  /* Replaces the removed dark overlay — keeps title readable on bright images */
  text-shadow: 0 2px 16px rgba(0,0,0,0.65), 0 1px 4px rgba(0,0,0,0.5);
}
.kub-bs-hero .kub-crumb {
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
  padding: 0;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7);
}
.kub-bs-hero .kub-crumb a {
  color: var(--kub-orange, #ff7545);
  text-decoration: none;
}
.kub-bs-hero .kub-crumb a:hover { text-decoration: underline; }
.kub-bs-hero .kub-crumb .sep {
  margin: 0 8px;
  color: rgba(255,255,255,0.85);
}

/* Two-column body — content + RHS sidebar */
.kub-bs-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 48px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (max-width: 900px) {
  .kub-bs-layout { grid-template-columns: 1fr; gap: 32px; }
}
.kub-bs-main { min-width: 0; }
.kub-bs-main > * + * { margin-top: 1em; }

/* Sidebar */
.kub-bs-sidebar { font-size: 14px; }
.kub-bs-sidebar__title {
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0 0 14px !important;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--kub-orange, #ff7545);
  display: inline-block;
}
.kub-bs-sidebar .wp-block-latest-posts__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.kub-bs-sidebar .wp-block-latest-posts__list li {
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}
.kub-bs-sidebar .wp-block-latest-posts__list li:last-child {
  border-bottom: 0;
}
.kub-bs-sidebar .wp-block-latest-posts__list li a {
  color: var(--kub-orange, #ff7545);
  text-decoration: none;
  font-weight: 600;
  line-height: 1.35;
  display: block;
}
.kub-bs-sidebar .wp-block-latest-posts__list li a:hover {
  color: #181818;
  text-decoration: underline;
}

/* Prev / Next nav at bottom of article */
.kub-bs-prevnext {
  margin-top: 48px !important;
  padding-top: 24px;
  border-top: 1px solid #eee;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.kub-bs-prevnext .wp-block-post-navigation-link {
  flex: 0 0 auto;
  margin: 0;
}
.kub-bs-prevnext .wp-block-post-navigation-link a {
  display: inline-block;
  padding: 10px 22px;
  background: var(--kub-orange, #ff7545);
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  border-radius: 4px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  font-size: 13px;
}
.kub-bs-prevnext .wp-block-post-navigation-link a:hover {
  background: #181818;
}
/* hide the default "« " / " »" arrows core adds — keep just the label */
.kub-bs-prevnext .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous,
.kub-bs-prevnext .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next {
  display: inline;
}

/* --- task 86d330tfy r3 — sidebar promo cards + About Us box --- */
.kub-bs-sidebar .kub-bs-card {
  background: #f7f5f1;
  padding: 22px 22px 24px;
  margin: 0 0 20px;
  border-left: 4px solid var(--kub-orange, #ff7545);
}
.kub-bs-sidebar .kub-bs-card__title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0 0 10px;
  color: #181818;
}
.kub-bs-sidebar .kub-bs-card p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #333;
}
.kub-bs-sidebar .kub-bs-card__cta {
  display: inline-block;
  padding: 8px 18px;
  background: var(--kub-orange, #ff7545);
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 3px;
}
.kub-bs-sidebar .kub-bs-card__cta:hover {
  background: #181818;
}
.kub-bs-sidebar .kub-bs-card--about {
  background: #181818;
  border-left-color: var(--kub-orange, #ff7545);
}
.kub-bs-sidebar .kub-bs-card--about .kub-bs-card__title,
.kub-bs-sidebar .kub-bs-card--about p {
  color: #fff;
}
.kub-bs-sidebar .kub-bs-tagline {
  font-size: 15px !important;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--kub-orange, #ff7545) !important;
  margin: 8px 0 14px !important;
}
.kub-bs-sidebar .kub-bs-social {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.kub-bs-sidebar .kub-bs-social li { margin: 0; }
.kub-bs-sidebar .kub-bs-social a {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid rgba(255,255,255,0.35);
  color: #fff !important;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 2px;
}
.kub-bs-sidebar .kub-bs-social a:hover {
  background: var(--kub-orange, #ff7545);
  border-color: var(--kub-orange, #ff7545);
}


/* ====== task-86d330rv7-finance-flexicards ====== */
/* ============================================================
   task-86d330rv7 — finance page flexicards + apply CTA
   Banner now uses shared .kub-inner__hero markup; this block
   styles only the two image+text "flexicard" sections and the
   "Choose your nearest store" apply list on /finance/.
   ============================================================ */
.kub-flexicards {
  list-style: none;
  margin: 3rem auto;
  padding: 0;
  max-width: 1180px;
}
.kub-flexicard {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(0, 1.4fr);
  gap: 2.5rem;
  align-items: start;
  padding: 0 1.25rem;
}
.kub-flexicard + .kub-flexicard {
  margin-top: 3rem;
}
.kub-flexicard__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  object-fit: cover;
  aspect-ratio: 16 / 9;
}
.kub-flexicard__text h3 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 700;
  color: #14213d;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.kub-flexicard__text p {
  margin: 0 0 0.85rem;
  line-height: 1.55;
}
.kub-flexicard__text ol.kub-flexicard__list {
  margin: 0.5rem 0 1rem 1.25rem;
  padding: 0;
}
.kub-flexicard__text ol.kub-flexicard__list li {
  margin: 0.4rem 0;
  line-height: 1.5;
}
@media (max-width: 780px) {
  .kub-flexicard {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .kub-flexicard__image img {
    aspect-ratio: 4 / 3;
  }
}

/* ---- apply-now CTA (Choose your nearest store) ---- */
.kub-finance-apply {
  background: #14213d;
  color: #fff;
  text-align: center;
  padding: 3rem 1.25rem;
  margin: 3rem 0;
}
.kub-finance-apply__title {
  margin: 0 0 1.5rem;
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.kub-finance-apply__stores {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem 0.75rem;
  max-width: 880px;
}
.kub-finance-apply__stores li { margin: 0; }
.kub-finance-apply__stores a {
  display: inline-block;
  padding: 0.65rem 1.25rem;
  background: transparent;
  border: 2px solid #ff7545;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  border-radius: 2px;
  transition: background-color 0.15s, color 0.15s;
}
.kub-finance-apply__stores a:hover,
.kub-finance-apply__stores a:focus {
  background: #ff7545;
  color: #fff;
}

/* legacy .post-content / .post-image / .post-text safety net —
   if any other page still uses that legacy markup, give it a
   minimum two-column layout so it doesn't look unstyled.       */
.entry-content .post-content {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(0, 1.4fr);
  gap: 2rem;
  align-items: start;
  margin: 2rem 0;
}
.entry-content .post-content .post-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}
@media (max-width: 780px) {
  .entry-content .post-content {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* ====== end task-86d330rv7-finance-flexicards ====== */

/* ============================================================
 * task 86d330ug3 — Home 'Be Inspired' full-width filter gallery
 * Mirrors the live kitchensubuild.com.au home portfolio:
 *  - centered heading + filter pills inside .kub-container
 *  - grid is full-bleed (sits OUTSIDE the container), 4 tiles
 *    per row at desktop, edge-to-edge with a 4px gutter
 *  - per-tile hover overlay with project name (matches live)
 *  - filter switch animates via opacity + display swap
 * ============================================================ */

.kub-home-portfolio { padding: 4rem 0 5rem; }

.kub-home-portfolio__heading {
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
	margin: 0 0 1.75rem;
	color: var(--kub-ink, #181818);
}

.kub-home-portfolio__filters {
	list-style: none;
	margin: 0 0 2.25rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 14px;
}
.kub-home-portfolio__filters li { margin: 0; }

.kub-home-portfolio__filter {
	background: transparent;
	border: 1px solid #d8d8d8;
	color: #444;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 9px 18px;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.kub-home-portfolio__filter:hover,
.kub-home-portfolio__filter:focus-visible {
	color: #fff;
	background: #181818;
	border-color: #181818;
	outline: none;
}
.kub-home-portfolio__filter.is-active {
	color: #fff;
	background: var(--kub-orange, #ff7545);
	border-color: var(--kub-orange, #ff7545);
}

/* full-bleed grid: 4-up desktop, 3-up tablet, 2-up phone */
.kub-home-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4px;
	width: 100%;
}
@media (max-width: 1100px) {
	.kub-home-portfolio__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
	.kub-home-portfolio__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
	.kub-home-portfolio__grid { grid-template-columns: 1fr; }
}

.kub-home-portfolio__tile {
	position: relative;
	display: block;
	aspect-ratio: 700 / 466;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	background: #f4f4f4;
	opacity: 1;
	transition: opacity 320ms ease;
}
.kub-home-portfolio__tile.is-hidden {
	display: none;
}
.kub-home-portfolio__tile.is-fading {
	opacity: 0;
}

.kub-home-portfolio__img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 500ms ease;
}
.kub-home-portfolio__tile:hover .kub-home-portfolio__img,
.kub-home-portfolio__tile:focus-visible .kub-home-portfolio__img {
	transform: scale(1.06);
}

.kub-home-portfolio__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	text-align: center;
	background: rgba(24, 24, 24, 0.55);
	opacity: 0;
	transition: opacity 220ms ease;
}
.kub-home-portfolio__tile:hover .kub-home-portfolio__overlay,
.kub-home-portfolio__tile:focus-visible .kub-home-portfolio__overlay {
	opacity: 1;
}
.kub-home-portfolio__name {
	color: #fff;
	font-family: "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* mobile: keep overlay visible so tile communicates name without hover */
@media (max-width: 720px) {
	.kub-home-portfolio__overlay {
		opacity: 1;
		background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.7) 100%);
		align-items: flex-end;
		padding: 14px;
	}
}

/* ====== end task 86d330ug3 ====== */


/* =====================================================================
   task 86d330tfy r4 — blog INDEX (/blog/) layout
   ---------------------------------------------------------------------
   Charcoal banner (uses existing .kub-blog-index .kub-inner__hero
   override from RUN 96), then a .kub-bs-layout 2-col grid (shared with
   single.html): vertical post list on the left, same .kub-bs-sidebar
   promo stack on the right. Each post card shows an orange date pill
   overlaid on the bottom-left of the featured image (mirrors
   kitchensubuild.com.au/blog .date-box). Rendered by
   page-blog-index.php — block-template templates/index.html is not
   used for /blog/ in this theme.
   ===================================================================== */

/* Override the run-96 .kub-bi-grid 4-col grid for the listing page so
   our 2-col layout takes effect. We keep the old .kub-blog-tile rules
   untouched in case another consumer ever references them. */
.kub-blog-index .kub-bl-section { padding: 48px 0 80px; }
.kub-blog-index .kub-bl-section .kub-bs-layout {
	margin-top: 0;
	margin-bottom: 0;
}
/* The run-96 .kub-bi-grid grid-template-columns rule is scoped via
   .kub-blog-index .kub-bi-grid — we no longer emit .kub-bi-grid in
   the listing markup, so that rule simply doesn't match. */

.kub-blog-index .kub-bl-main { min-width: 0; }
.kub-blog-index .kub-bl-main > * + * { margin-top: 0; }

.kub-blog-index .kub-bl-card {
	margin: 0 0 48px;
	padding: 0 0 36px;
	border-bottom: 1px solid #e5e5e5;
}
.kub-blog-index .kub-bl-card:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

.kub-blog-index .kub-bl-shot {
	position: relative;
	margin: 0;
	background: #f4f4f4;
}
.kub-blog-index .kub-bl-img {
	display: block;
	line-height: 0;
	border-bottom: 4px solid var(--kub-orange, #ff7545);
}
.kub-blog-index .kub-bl-img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: cover;
}
.kub-blog-index .kub-bl-img__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 1;
	background: #ececec;
}

/* Orange date pill, bottom-left of the featured image, sitting on top of
   the 4px orange border line. */
.kub-blog-index .kub-bl-date {
	position: absolute;
	left: 0;
	bottom: 4px;
	width: 70px;
	background: var(--kub-orange, #ff7545);
	color: #fff;
	text-align: center;
	padding: 12px 4px 14px;
	z-index: 2;
	box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.kub-blog-index .kub-bl-day {
	display: block;
	color: #fff;
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	margin: 0;
}
.kub-blog-index .kub-bl-month {
	display: block;
	color: #fff;
	font-family: "Open Sans", "HK Grotesk", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 6px 0 0;
}

.kub-blog-index .kub-bl-body { margin: 22px 0 0; }
.kub-blog-index .kub-bl-body > * + * { margin-top: 12px; }

.kub-blog-index .kub-bl-title {
	margin: 0;
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--kub-ink, #181818);
	letter-spacing: 0;
	text-transform: none;
}
.kub-blog-index .kub-bl-title a {
	color: inherit;
	text-decoration: none;
}
.kub-blog-index .kub-bl-title a:hover,
.kub-blog-index .kub-bl-title a:focus-visible {
	color: var(--kub-orange, #ff7545);
}

.kub-blog-index .kub-bl-excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--kub-muted, #555);
}

.kub-blog-index .kub-bl-more {
	display: inline-block;
	margin-top: 4px;
	padding: 7px 20px;
	background: transparent;
	border: 1px solid var(--kub-ink, #181818);
	color: var(--kub-ink, #181818);
	font-family: "HK Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}
.kub-blog-index .kub-bl-more:hover,
.kub-blog-index .kub-bl-more:focus-visible {
	background: var(--kub-orange, #ff7545);
	border-color: var(--kub-orange, #ff7545);
	color: #fff;
	outline: none;
}

/* The shared .kub-bs-layout collapses to single column under 900px;
   on smaller image renders shrink the date pill so it stays readable. */
@media (max-width: 600px) {
	.kub-blog-index .kub-bl-date {
		width: 60px;
		padding: 10px 4px 12px;
	}
	.kub-blog-index .kub-bl-day { font-size: 26px; }
	.kub-blog-index .kub-bl-month { font-size: 12px; }
	.kub-blog-index .kub-bl-title { font-size: 20px; }
}

/* ====== end task 86d330tfy r4 ====== */

/* ====== task 86d33xwxh — Homepage intro under brochure: centered + enlarged to match live ====== */
#kub-home-intro {
	padding-top: 80px;
	padding-bottom: 40px;
}
#kub-home-intro .kub-prose {
	text-align: center;
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}
#kub-home-intro .kub-prose > p:first-child {
	font-size: clamp(28px, calc(12px + 3.2vw), 48px);
	line-height: 1.2;
	margin: 0 0 40px;
	color: var(--kub-ink, #181818);
}
#kub-home-intro .kub-prose > p {
	color: var(--kub-ink, #181818);
}
/* ====== end task 86d33xwxh ====== */

/* task 86d33xwxx — contact-us page (kub-contact-v2 layout) */
.kub-contact-v2{max-width:1240px;margin:0 auto;padding:0 24px 64px}
.kub-contact-v2 .kub-contact__hero{padding:48px 0 24px;text-align:center;border-bottom:1px solid #eee;margin-bottom:36px}
.kub-contact-v2 .kub-contact__hero h1{font-size:42px;font-weight:700;color:#181818;margin:0 0 12px;letter-spacing:.5px}
.kub-contact-v2 .kub-contact__hero .kub-crumb{list-style:none;display:flex;justify-content:center;gap:8px;font-size:12px;color:#777;letter-spacing:1.5px;text-transform:uppercase;margin:0;padding:0}
.kub-contact-v2 .kub-contact__hero .kub-crumb a{color:#ff7545;text-decoration:none}
.kub-contact-v2 .kub-contact__hero .kub-crumb .sep{color:#bbb}

.kub-contact__lead-heading{margin:0 0 28px}
.kub-contact__lead-heading h2{font-size:30px;font-weight:600;color:#181818;line-height:1.25;margin:0;letter-spacing:.2px;max-width:720px}

.kub-contact__layout{display:flex;gap:36px;align-items:flex-start;margin:0}
.kub-contact__layout > .wp-block-column{margin:0}
.kub-contact__maps{flex:1 1 62%;min-width:0}
.kub-contact__sidebar{flex:1 1 38%;min-width:0}

.kub-contact__map-block{margin:0 0 28px;background:#fff;border:1px solid #eee;border-radius:6px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.kub-contact__map-block:last-child{margin-bottom:0}
.kub-contact__map-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#f7f7f7;border-bottom:1px solid #eee;gap:16px}
.kub-contact__map-head h3{margin:0;font-size:16px;font-weight:700;color:#181818;letter-spacing:.5px;text-transform:none}
.kub-contact__map-link{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#ff7545;text-decoration:none;font-weight:700;white-space:nowrap}
.kub-contact__map-link:hover{color:#181818;text-decoration:underline}
.kub-contact__map{width:100%;height:420px;background:#eef2f5}

.kub-contact__notice{background:#fff;border:1px solid #eee;border-radius:6px;overflow:hidden;margin:0 0 28px;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.kub-contact__notice-bar{display:block;background:#ff7545;color:#fff;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:12px 20px}
.kub-contact__notice-body{padding:18px 20px;font-size:14px;line-height:1.55;color:#444}
.kub-contact__notice-body h5{margin:0 0 10px;font-size:13px;font-weight:700;color:#181818;letter-spacing:1px;text-transform:uppercase}
.kub-contact__notice-body p{margin:0 0 10px}
.kub-contact__notice-body p:last-child{margin-bottom:0}
.kub-contact__notice-body a{color:#ff7545;text-decoration:none}
.kub-contact__notice-body a:hover{text-decoration:underline}

.kub-contact__lead{margin:0 0 8px;font-size:24px;font-weight:700;color:#181818;line-height:1.2;letter-spacing:.2px}
.kub-contact__sub{margin:0 0 18px;color:#666;font-size:14px}

/* Gravity form (kub-contact-form) — orange CTA, clean inputs, two-up rows */
.kub-contact-form_wrapper{background:#fff;border:1px solid #eee;border-radius:6px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.kub-contact-form_wrapper .gform_fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.kub-contact-form_wrapper .gfield{margin:0}
.kub-contact-form_wrapper .gfield:not(.kub-half){grid-column:1 / -1}
.kub-contact-form_wrapper .gform-field-label{display:none}
.kub-contact-form_wrapper input[type=text],
.kub-contact-form_wrapper input[type=tel],
.kub-contact-form_wrapper input[type=email],
.kub-contact-form_wrapper select{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;color:#181818;background:#fff;border:1px solid #d8d8d8;border-radius:4px;line-height:1.4;box-sizing:border-box}
.kub-contact-form_wrapper input:focus,
.kub-contact-form_wrapper select:focus{outline:none;border-color:#ff7545;box-shadow:0 0 0 2px rgba(255,117,69,.18)}
.kub-contact-form_wrapper .gform_footer{margin-top:16px;padding:0}
.kub-contact-form_wrapper .gform_button{background:#ff7545;color:#fff;border:none;padding:12px 28px;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-radius:4px;cursor:pointer;width:100%;transition:background .15s}
.kub-contact-form_wrapper .gform_button:hover{background:#181818}
.kub-contact-form_wrapper .gfield_required{color:#ff7545;margin-left:4px}

/* Showroom location cards */
.kub-contact__showrooms{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:48px 0 0}
.kub-contact__card{background:#fff;border:1px solid #eee;border-left:3px solid #ff7545;border-radius:4px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.kub-contact__card h3{margin:0 0 12px;font-size:16px;font-weight:700;color:#181818;letter-spacing:.3px;text-transform:none}
.kub-contact__card .addr{margin:0 0 14px;font-size:14px;color:#444;line-height:1.45;font-weight:600}
.kub-contact__card .row{display:flex;align-items:flex-start;gap:10px;margin:0 0 8px;font-size:13px;color:#555;line-height:1.5}
.kub-contact__card .row .lbl{flex:0 0 56px;font-size:11px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.5px;padding-top:2px}
.kub-contact__card .row a{color:#ff7545;text-decoration:none}
.kub-contact__card .row a:hover{text-decoration:underline}
.kub-contact__card .hrs{flex:1;display:block}

/* Responsive */
@media (max-width:980px){
  .kub-contact__layout{flex-direction:column;gap:28px}
  .kub-contact__maps,
  .kub-contact__sidebar{flex:1 1 auto;width:100%}
  .kub-contact__map{height:340px}
  .kub-contact__showrooms{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:36px}
}
@media (max-width:640px){
  .kub-contact-v2{padding:0 16px 48px}
  .kub-contact-v2 .kub-contact__hero h1{font-size:32px}
  .kub-contact__lead-heading h2{font-size:22px}
  .kub-contact__map{height:280px}
  .kub-contact__map-head{flex-direction:column;align-items:flex-start;gap:6px}
  .kub-contact__showrooms{grid-template-columns:1fr;gap:14px}
  .kub-contact-form_wrapper .gform_fields{grid-template-columns:1fr}
}

/* task 86d3415wp — Contact us maps fix.
   The block-theme rule at L242 (`body.page-template-default
   .wp-block-post-content img { max-width:100% !important;
   height:auto !important }`) was collapsing every Leaflet tile <img>
   to 0×0 — its !important beat the inline `width:256px;height:256px`
   that Leaflet sets on each tile, so the maps rendered as empty grey
   panels with only the zoom controls + OSM attribution visible.
   Restore Leaflet's protective rules with enough specificity to win.
   Specificity counts as (0,3,2) — beats the theme rule's (0,2,2). */
body.page-template-default .wp-block-post-content .leaflet-container img,
body.page-template-default .wp-block-post-content .leaflet-container .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
  width: auto !important;
  height: auto !important;
  display: block;
}

/* task 86d3415wp — Contact us map pins.
   The inline JS in the contact-us page creates a Leaflet divIcon with
   `className:'kub-pin'` and `html:'<span class="kub-pin__bubble"></span>
   <span class="kub-pin__stem"></span>'`, but the theme had no .kub-pin
   styling — so the markers existed as 24×32 invisible click targets and
   the user saw a map with no pins. Style them as an orange teardrop
   matching the brand colour. */
.leaflet-marker-pane .kub-pin { position: relative; }
.leaflet-marker-pane .kub-pin .kub-pin__bubble {
  position: absolute;
  left: 50%;
  top: 0;
  width: 20px;
  height: 20px;
  background: #ff7545;
  border: 2px solid #fff;
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
.leaflet-marker-pane .kub-pin .kub-pin__stem {
  position: absolute;
  left: 50%;
  top: 18px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 14px solid #ff7545;
  transform: translateX(-50%);
  filter: drop-shadow(0 1px 1px rgba(0,0,0,0.3));
}
.leaflet-popup-content a { color: #ff7545; text-decoration: none; }
.leaflet-popup-content a:hover { text-decoration: underline; }

/* ============================================================
 * task 86d3474a6 — Taller .kub-inner__hero.has-image banners
 * Reporter: /kitchen-products/ hero "image missing... should be a
 * taller banner too". Default .kub-inner__hero was sized by
 * content + 120/64 padding only — ~250px tall on a 2560 viewport,
 * so the 2880×708 source was cover-cropped to a thin strip and
 * read as "no image". Give every image-backed inner hero an
 * aspect-driven min-height that scales with viewport, and pin
 * the title + breadcrumb to the bottom so they overlay the banner
 * the way the reference site (kitchensubuild.com.au) does.
 * ============================================================ */
.kub-inner__hero.has-image {
  /* task 86d347phb — reporter asked for a flat 15vw banner height on
   * /services/. Reverted from clamp(360px,28vw,720px) (task 86d3476va).
   * Mobile rule below kept as-is — 15vw on a phone would be ~50px,
   * which would visually collapse the hero. */
  min-height: 15vw;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 0 56px;
}
@media (max-width: 781px) {
  .kub-inner__hero.has-image {
    min-height: clamp(240px, 46vw, 360px);
  }
}

/* task 86d34913z — Gravity Forms <select> elements were clipping
 * their text top + bottom on every form site-wide. Orbital theme
 * CSS sets a fixed height:38px with padding:12px top+bottom on
 * .gfield_select, leaving only ~12px of vertical content area
 * for a 19.6px line-box (font-size:14px × line-height:1.4) — the
 * top and bottom of every option label was cropped. Drop the
 * fixed height and tighten top/bottom padding to 10px so the
 * select sizes to its content and matches input siblings (10px
 * padding + 19.6px line-box + 2px border = ~41.6px, same as
 * <input> within .kub-contact-form_wrapper). Site-wide because
 * the reporter noted it affects all forms. */
.gform_wrapper select,
.gform_wrapper .gfield_select,
select.gfield_select {
  height: auto !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  line-height: 1.4 !important;
}

/* task 86d34met8 — align per-showroom Facebook icons to the right edge of the
   footer Contact-Us column. Previously each .kub-fb-link sat inline right after
   its phone number, so the icons trailed the end of each row's (wrapping) text
   and never lined up. Pin each icon to the right of its row so they form a clean
   vertical column. Marker-guarded: skip re-applying if this block is present. */
.kub-footer__locations p {
  position: relative;
  padding-right: 28px;
}
.kub-footer__locations .kub-fb-link {
  position: absolute;
  top: 0;
  right: 0;
  margin-left: 0;
}
/* Careers row has no Facebook icon — don't reserve the right gutter for it. */
.kub-footer__locations .kub-footer__careers {
  padding-right: 0;
}

/* ============================================================
 * task 86d34vu2a — Promotion page (/promotion/, page 111)
 * Was rehydrated-static (run 35) markup: a hardcoded, non-submitting
 * form (posted to the old live-site /contact, reCAPTCHA + jQuery)
 * inside Bootstrap grid classes the theme doesn't load, and no hero.
 * Rebuilt to the canonical inner-page hero + a 60/40 two-column
 * layout — promo copy left, Gravity Form 1 ("Book an Appointment")
 * right inside a .kub-contact-form_wrapper card (existing GF styling,
 * no new form CSS). Auto-title suppressed by
 * templates/page-promotion.html (Finance/Contact-Us pattern). Hero,
 * .kub-container, .kub-crumb and .kub-inner__title are all global
 * rules, so this renders correctly under the plain block-theme <main>.
 * ============================================================ */
.kub-promo { padding: 56px 0 72px; }
.kub-promo__cols { align-items: flex-start; gap: 48px; }
.kub-promo__intro p { font-size: 16px; line-height: 1.7; margin: 0 0 16px; color: #2a2a2a; }
.kub-promo__intro p:first-child strong { font-size: 20px; color: #181818; }
.kub-promo__intro h3 { margin: 28px 0 8px; font-size: 20px; }
.kub-promo__intro a { color: var(--kub-orange, #ff7545); font-weight: 700; }
.kub-promo__form-head { margin: 0 0 4px; font-size: 22px; line-height: 1.15; }
.kub-promo__form-sub { margin: 0 0 16px; color: #555; font-size: 14px; }
@media (max-width: 781px) {
  .kub-promo { padding: 32px 0 48px; }
  .kub-promo__cols { gap: 28px; }
}

/* ============================================================
 * task 86d35260u — Hero flush under the orange header border on
 * block-template pages (/finance/, /promotion/).
 * Reporter: "header image too low, needs to meet the orange line
 * like in other pages" (finance + promotion).
 *
 * Cause: finance & promotion are the only pages rendered through the
 * block-theme canvas (templates/page-finance.html, page-promotion.html),
 * which wraps the document in <div class="wp-site-blocks">. WP's global
 * rule  :where(.wp-site-blocks) > * { margin-block-start: 24px }  gives
 * <main> (the 2nd child, after <header>) a 24px top margin — a visible
 * gap between the header's 3px orange border-bottom and the hero banner.
 * PHP-templated inner pages (services, kitchen-products, why-us, …) have
 * NO .wp-site-blocks wrapper, so their hero sits flush. Measured gaps:
 * promotion 24px; finance 48px (finance also carries an empty leading
 * <p> — wpautop wrapped a marker comment — pushing the hero to the 2nd
 * flow child inside .wp-block-post-content for a second 24px margin).
 *
 * Fix: pull <main> and the in-content hero flush to the top, matching the
 * PHP pages (header→hero gap → 0). Specificity beats the :where()-scoped
 * core rules, so no !important needed. Only the block-template pages emit
 * these selectors, so PHP-templated pages are untouched.
 * ============================================================ */
.wp-site-blocks > main { margin-block-start: 0; }
.wp-block-post-content > .kub-inner__hero { margin-block-start: 0; }

/* ============================================================
 * task 86d35nhr9 — Clean 404 "Page Not Found" template.
 *
 * Before: no templates/404.html existed, so block-theme template
 * hierarchy fell back to templates/index.html — the blog/posts
 * query — and 404 responses dumped the full post listing under a
 * "Blog" hero. Reporter saw page content where there should have
 * been a plain Not Found message.
 *
 * After: templates/404.html renders the canonical .kub-inner__hero
 * with title "Page Not Found", then a single short message + Home
 * button inside .kub-container. Styling below.
 * ============================================================ */
.kub-404__body { padding: 56px 0 80px; }
.kub-404__body .kub-container { max-width: 780px; }
.kub-404__lead { font-size: clamp(16px, 1.4vw, 18px); line-height: 1.6; margin: 0 0 24px; color: #333; }
.kub-404__cta { margin: 0; }
.kub-404__cta .kub-btn { display: inline-block; }
@media (max-width: 781px) {
  .kub-404__body { padding: 40px 0 56px; }
}

/* ============================================================
 * task 86d35qc47 — /promotion/ form to match /contact-us/ form
 *
 * The /contact-us/ form gets its orange uppercase submit button from
 * the body.page-id-87 Run 27c rules (~L194–206) which use !important to
 * beat Gravity Forms' inline Orbital theme (--gf-color-primary:#204ce5
 * blue, applied via #gform_wrapper_1[data-form-index="0"].gform-theme).
 * The portable .kub-contact-form_wrapper .gform_button rule (~L3582) has
 * no !important, so on /promotion/ the GF inline style wins and the
 * button renders blue + sentence-case "Send my details".
 *
 * Fix: replicate Run 27c's button + hover rules scoped to
 * .kub-contact-form_wrapper so they apply on ANY page using the
 * portable wrapper (promotion, future pages, …) — idempotent on
 * contact-us where it produces the same orange CTA.
 * ============================================================ */
.kub-contact-form_wrapper input[type=submit].gform_button,
.kub-contact-form_wrapper input[type=submit].button,
.kub-contact-form_wrapper button[type=submit] {
  background: #ff7545 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 14px 32px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background .2s;
}
.kub-contact-form_wrapper input[type=submit].gform_button:hover,
.kub-contact-form_wrapper input[type=submit].button:hover,
.kub-contact-form_wrapper button[type=submit]:hover {
  background: #e8633b !important;
}
