/* English Products catalogue; the saved three-level menu remains the data source. */
.gpn { --gpn-blue:#008bd2; --gpn-ink:#172330; --gpn-muted:#657287; --gpn-line:#e1e7ec; color:var(--gpn-ink); background:#fff; text-align:left; font-size:16px; line-height:1.5; border:1px solid var(--gpn-line); box-shadow:0 10px 28px #17233012; }
.gpn *, .gpn *::before, .gpn *::after { box-sizing:border-box; }
.gpn a { color:var(--gpn-blue); text-decoration:none; }
.gpn button { font:inherit; font-weight:400; letter-spacing:normal; text-transform:none; color:inherit; background:none; box-shadow:none; border:0; }
.gpn [hidden] { display:none !important; }
.gpn-choice { display:flex; width:100%; align-items:center; gap:12px; text-align:left; min-height:54px; padding:14px 16px; border-radius:5px; cursor:pointer; }
.gpn-choice span { flex:1; min-width:0; }
.gpn .gpn-choice:hover, .gpn .gpn-choice[aria-expanded="true"] { color:var(--gpn-blue); background:#e7f5fe; }
.gpn .gpn-family-choice[aria-expanded="true"] { box-shadow:inset 3px 0 var(--gpn-blue); font-weight:500; }
.gpn .gpn-chevron { font-size:18px; flex:0 0 18px; }
.gpn :is(a,button):focus-visible, .gpn-opener:focus-visible { outline:3px solid var(--gpn-blue,#008bd2); outline-offset:3px; }
.gpn-family + .gpn-family { margin-top:8px; }
.gpn-product-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.gpn .gpn-product { display:flex; flex-direction:column; min-width:0; padding:20px 24px; color:var(--gpn-ink); background:#f7f8fa; border-radius:8px; }
.gpn .gpn-product:hover { background:#eef6fb; }
.gpn-image { display:flex; align-items:center; justify-content:center; flex:0 0 auto; height:190px; margin:0 0 18px; overflow:hidden; }
.gpn .gpn-image img { display:block; width:100%; height:100%; object-fit:contain; border-radius:0; mix-blend-mode:multiply; }
.gpn .gpn-image .wp-image-8822 { transform:scale(1.15); }
/* These two square photos have ample white above and below the wide chassis. */
.gpn .gpn-image :is(.wp-image-13768,.wp-image-7149) { object-fit:cover; transform:scale(1.15); }
.gpn-product-copy { display:block; }
.gpn-product-title { display:block; font-size:18px; font-weight:600; line-height:1.3; margin-bottom:6px; }
.gpn-product-description { display:block; max-width:190px; font-size:14px; line-height:1.5; color:var(--gpn-muted); }
.gpn-product:hover .gpn-product-title, .gpn-footer a:hover { color:var(--gpn-blue); }
.gpn-footer { margin-top:28px; padding:16px 16px 0; border-top:1px solid var(--gpn-line); font-size:14px; }
.gpn-footer a { display:inline-flex; align-items:center; gap:14px; min-height:28px; }
.gpn-footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.gpn-products-column { display:none; }
.gpn:not(.is-enhanced) { padding:24px; }
.gpn:not(.is-enhanced) .gpn-product-panel { padding:16px; }
.gpn-scroll-controls { pointer-events:none; position:absolute; inset:0; }
.gpn .gpn-scroll { pointer-events:auto; position:absolute; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:0; padding:0; border:0; border-radius:50%; background:transparent; color:var(--gpn-blue); font-size:18px; cursor:pointer; }
.gpn .gpn-scroll::before { content:""; position:absolute; inset:4px; border:1px solid #d6e7f1; border-radius:50%; background:#fff; box-shadow:0 2px 8px #17233012; }
.gpn .gpn-scroll > i { position:relative; }
.gpn .gpn-scroll[aria-disabled="true"] { opacity:.35; cursor:default; }
.gpn .gpn-scroll[aria-disabled="true"]:not(:focus) { visibility:hidden; }
.gpn .gpn-scroll:hover::before { background:#e7f5fe; }
.gpn-scroll-prev { left:4px; }
.gpn-scroll-next { right:4px; }
.gpn-host > :is(a,button.gpn-trigger) > :is(.wpr-sub-icon,.wpr-mobile-sub-icon) { display:none !important; }
/* Match Royal's Solution caret while retaining a separate accessible button. */
#gato-local-header .gpn-opener:not(.gpn-trigger) { display:inline-flex; justify-content:center; align-items:center; padding:0; width:28px; height:30px; min-height:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:#1a1a1a; font-size:14px; line-height:1; vertical-align:baseline; cursor:pointer; appearance:none; }
#gato-local-header .gpn-trigger { display:inline-flex; align-items:center; justify-content:flex-start; gap:0; margin:0; padding:0; min-height:30px; border:0; border-radius:0; background:transparent; box-shadow:none; font-weight:400; letter-spacing:normal; text-transform:none; white-space:nowrap; cursor:pointer; appearance:none; }
#gato-local-header .gpn-trigger .gpn-caret { box-sizing:border-box; flex:0 0 28px; width:28px; }
#gato-local-header .gpn-opener .gpn-caret { font-size:14px; line-height:1; transform:none; }
#gato-local-header .gpn-opener:focus-visible { outline:3px solid #008bd2; outline-offset:3px; }
.gpn-host > :is(.wpr-sub-mega-menu,.wpr-mobile-sub-mega-menu) { display:none !important; }
.gpn-host.gpn-open > :is(.wpr-sub-mega-menu,.wpr-mobile-sub-mega-menu) { display:block !important; visibility:visible !important; pointer-events:auto !important; opacity:1 !important; height:auto !important; overflow:visible !important; }
html.gpn-navigation-obscures-chat .wa__btn_popup,
html.gpn-navigation-obscures-chat .wa__popup_chat_box,
html.gpn-navigation-obscures-chat body .wa__btn_popup .wa__btn_popup_txt,
html.gpn-navigation-obscures-chat .gato-local-inquiry-launcher,
html.gpn-navigation-obscures-chat [data-gpn-chat-obscured],
html.gpn-navigation-obscures-chat [data-gpn-chat-obscured] * { visibility:hidden !important; pointer-events:none !important; }
/* Tawk applies visibility:visible!important to its iframes inline. Hiding the
 * containing widget preserves its session while preventing that override. */
html.gpn-navigation-obscures-chat [data-gpn-chat-obscured] { display:none !important; }
html.gpn-navigation-obscures-chat .wa__btn_popup,
html.gpn-navigation-obscures-chat .wa__popup_chat_box,
html.gpn-navigation-obscures-chat .gato-local-inquiry-launcher { display:none !important; }

@media (min-width:1025px) {
    #gato-local-header .wpr-nav-menu > .gpn-host { display:inline-flex; align-items:center; position:relative; }
    #gato-local-header .wpr-nav-menu > .gpn-host.gpn-open::after { content:""; position:absolute; top:100%; left:0; width:100%; height:var(--gpn-bridge-height,0px); box-sizing:border-box; border-bottom:2px solid var(--e-global-color-primary,#0091db); }
    #gato-local-header .gpn-host > a.wpr-menu-item { display:inline-flex; padding-right:0; }
    #gato-local-header .wpr-nav-menu .gpn-opener { justify-content:flex-start; }
    #gato-local-header .wpr-nav-menu .gpn-caret { margin:-1px 0 0 7px; }
    #gato-local-header .wpr-nav-menu .gpn-trigger .gpn-caret { margin:-1px 0 0; padding-left:7px; }
    #gato-local-header .wpr-nav-menu .gpn-host > a:is(:hover,.wpr-active-menu-item) + .gpn-opener,
    #gato-local-header .wpr-nav-menu .gpn-host.gpn-open > :is(a,.gpn-opener),
    #gato-local-header .wpr-nav-menu .gpn-opener:is(:hover,:focus-visible) { color:var(--e-global-color-primary,#0091db); }
    #gato-local-header .gpn-host > .wpr-sub-mega-menu { position:fixed !important; top:var(--gpn-menu-top,70px) !important; left:0 !important; right:0 !important; transform:none !important; width:auto !important; max-width:none !important; padding:0 !important; background:none !important; }
    .gpn { border-left:0; border-right:0; }
    .gpn.is-enhanced { max-height:calc(100dvh - var(--gpn-menu-top,70px) - 16px); overflow-y:auto; overscroll-behavior:contain; }
    .gpn.is-enhanced .gpn-body { display:grid; grid-template-columns:330px minmax(0,1fr); width:calc(100% - 64px); max-width:1440px; min-height:368px; margin-inline:auto; }
    .gpn.is-enhanced .gpn-families { padding:20px 12px 24px; border-inline:1px solid var(--gpn-line); }
    /* Dedicated 64px rails leave at least 16px between each 44px hit area
       and the product viewport, including partially visible cards. */
    .gpn.is-enhanced .gpn-products-column { display:block; position:relative; min-width:0; padding:20px 64px; }
    .gpn.is-enhanced .gpn-product-list { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:clamp(236px,calc((100% - 28px) / 3),320px); padding:4px; overflow-x:auto; scroll-snap-type:none; overscroll-behavior-x:contain; scrollbar-width:none; }
    .gpn.is-enhanced .gpn-product-list::-webkit-scrollbar { display:none; }
    .gpn.is-enhanced .gpn-product { min-height:320px; scroll-snap-align:start; }
    #gato-local-header.gpn-products-open .wpr-nav-menu > li:not(.gpn-host) > .wpr-sub-mega-menu { display:none !important; }
}
@media (min-width:1600px) {
    .gpn.is-enhanced .gpn-body { width:75%; min-width:1240px; }
    /* Use existing outer whitespace rather than place the next button on a card. */
    .gpn.is-enhanced .gpn-products-column { width:calc(100% + 64px); }
}
@media (min-width:1280px) and (max-width:1599px) {
    .gpn.is-enhanced .gpn-body { width:calc(100% - 32px); }
}
@media (min-width:1025px) and (max-width:1279px) {
    .gpn { font-size:14px; }
    .gpn.is-enhanced .gpn-body { width:calc(100% - 32px); grid-template-columns:280px minmax(0,1fr); }
}
@media (max-width:1024px) {
    #gato-local-header .gpn-host > a.wpr-mobile-menu-item { padding-right:64px; }
    #gato-local-header .gpn-host > .gpn-opener:not(.gpn-trigger) { position:absolute; top:0; right:0; width:48.75px; height:54px; color:#333; }
    #gato-local-header .gpn-host > .gpn-trigger { position:relative; width:100%; min-height:54px; padding:12px 64px 12px 20px; text-align:left; }
    #gato-local-header .gpn-trigger .gpn-caret { position:absolute; top:0; right:0; display:flex; align-items:center; justify-content:center; width:48.75px; height:54px; }
    .gpn { font-size:15px; border-radius:0; border:0; border-top:1px solid var(--gpn-line); box-shadow:none; }
    .gpn.is-enhanced .gpn-families { padding:10px 12px; }
    .gpn-choice { min-height:52px; gap:12px; padding:12px; }
    .gpn-family + .gpn-family { margin-top:2px; border-top:1px solid var(--gpn-line); }
    .gpn-family-choice[aria-expanded="true"] .gpn-chevron { transform:rotate(90deg); }
    .gpn.is-enhanced .gpn-product-panel { padding:8px 4px 12px; }
    .gpn .gpn-product-list { display:block; }
    .gpn .gpn-product { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; gap:14px; padding:12px 8px; }
    .gpn .gpn-product + .gpn-product { margin-top:8px; }
    .gpn .gpn-image { margin:0; height:96px; }
    .gpn .gpn-image img { transform:none; object-fit:contain; }
    .gpn-product-copy { margin:0; }
    .gpn .gpn-product-title { font-size:18px; }
    .gpn .gpn-product-description { font-size:13px; }
    .gpn-footer { margin-top:12px; padding:12px 12px 4px; }
    .gpn-footer a { min-height:44px; }
    html.gpn-mobile-menu-open .wa__btn_popup,
    html.gpn-mobile-menu-open .wa__popup_chat_box,
    html.gpn-mobile-menu-open .gato-local-inquiry-launcher,
    html.gpn-mobile-menu-open [data-gpn-chat-obscured] { visibility:hidden !important; pointer-events:none !important; }
}
@media (prefers-reduced-motion:reduce) { .gpn *, .gpn-opener * { transition:none !important; scroll-behavior:auto !important; } }

/* Both centre entries follow the same reversible presentation switch. */
.gpn[data-gpn-center-hidden="true"] .gpn-footer { display:none; }
/* If only the Products controller fails, keep the native catalogue accessible. */
#gato-local-header .gpn-entry-toggle-host:not(.gpn-host):is(:hover,:focus-within) > :is(.wpr-sub-mega-menu,.wpr-mobile-sub-mega-menu) { display:block !important; height:auto !important; opacity:1 !important; visibility:visible !important; pointer-events:auto !important; overflow:visible !important; }

/* Applied by the local controller only; Products has its own compact height.
 * The wrapper supplies the full-width background and pointer area. Keep the
 * controller's horizontal geometry on the catalogue so card widths stay put. */
@media (min-width:1025px) {
    #gato-local-header .gpn-host > .wpr-sub-mega-menu.gpn-compact-wrap {
        left:0 !important;
        right:0 !important;
        width:auto !important;
        max-width:none !important;
        background:var(--e-global-color-4b2d54b,#f0f0f0) !important;
        box-shadow:0 10px 28px #17233012;
        transition:none !important;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact {
        --gato-mega-panel-height:340px;
        width:var(--gpn-compact-width,calc(100% - 48px));
        margin-left:var(--gpn-compact-left,24px);
        margin-right:0;
        background:var(--e-global-color-4b2d54b,#f0f0f0);
        border-inline:1px solid transparent;
        border-color:transparent;
        border-radius:0;
        box-shadow:none;
        overflow-x:hidden;
        transition:width 140ms ease;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-body {
        width:100%;
        min-width:0;
        max-width:none;
        margin-inline:0;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-families {
        padding-block:28px 24px;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-choice {
        min-height:48px;
        padding-block:12px;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-family + .gpn-family {
        margin-top:6px;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-products-column {
        width:auto;
        padding-inline:64px var(--gpn-compact-end,24px);
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-product-list {
        width:var(--gpn-compact-track-width,100%);
        grid-auto-columns:var(--gpn-compact-card-width,320px);
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-product {
        min-height:280px;
        padding-block:16px;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-image {
        height:150px;
        margin-bottom:12px;
    }
    #gato-local-header .gpn.is-enhanced.gpn-compact .gpn-scroll-next { right:20px; }
}
@media (prefers-reduced-motion:reduce) {
    #gato-local-header .gpn.is-enhanced.gpn-compact { transition:none !important; }
}
