/*
 * Select Group shared public design system.
 * Tokens are intentionally scoped to visual values; page-specific styling
 * belongs in the page stylesheet introduced by later UI phases.
 */
:root {
    --sg-color-primary: #003b71;
    --sg-color-primary-hover: #0f5d9f;
    --sg-color-ink: #14081f;
    --sg-color-accent: #e3ad31;
    --sg-color-page: #f7f9fb;
    --sg-color-surface: #ffffff;
    --sg-color-text: #172838;
    --sg-color-muted: #5e6d78;
    --sg-color-border: #dbe4eb;
    --sg-color-success: #237a48;
    --sg-color-warning: #9a6700;
    --sg-color-danger: #b42318;
    --sg-color-info: #075985;
    --sg-font-sans: "Segoe UI", Tahoma, Arial, "Noto Sans Arabic", sans-serif;
    --sg-font-heading: "Belleza", "Segoe UI", Tahoma, Arial, "Noto Sans Arabic", sans-serif;
    --sg-text-xs: 12px;
    --sg-text-sm: 14px;
    --sg-text-base: 16px;
    --sg-space-1: 4px;
    --sg-space-2: 8px;
    --sg-space-3: 12px;
    --sg-space-4: 16px;
    --sg-space-5: 24px;
    --sg-space-6: 32px;
    --sg-radius-sm: 4px;
    --sg-radius-md: 8px;
    --sg-radius-lg: 14px;
    --sg-shadow-sm: 0 3px 10px rgba(7, 31, 54, .08);
    --sg-shadow-md: 0 14px 30px rgba(7, 31, 54, .12);
    --sg-focus-ring: 0 0 0 3px rgba(0, 59, 113, .24);
    --sg-transition: 160ms ease;
    --sg-content-width: 1170px;
}

/* Buttons: add .sg-button alongside existing button classes. */
.sg-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: var(--sg-radius-sm);
    font-family: var(--sg-font-sans);
    font-size: var(--sg-text-sm);
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color var(--sg-transition), border-color var(--sg-transition), box-shadow var(--sg-transition), transform var(--sg-transition);
}
.sg-button:hover { text-decoration: none; transform: translateY(-1px); }
.sg-button:focus { outline: 0; box-shadow: var(--sg-focus-ring); }
.sg-button:disabled, .sg-button.disabled { cursor: not-allowed; opacity: .58; transform: none; }
.sg-button--primary { background: var(--sg-color-primary); border-color: var(--sg-color-primary); color: #fff; }
.sg-button--primary:hover, .sg-button--primary:focus { background: var(--sg-color-primary-hover); border-color: var(--sg-color-primary-hover); color: #fff; }
.sg-button--secondary { background: var(--sg-color-ink); border-color: var(--sg-color-ink); color: #fff; }
.sg-button--outline { background: transparent; border-color: var(--sg-color-primary); color: var(--sg-color-primary); }
.sg-button--outline:hover, .sg-button--outline:focus { background: #eaf3f9; color: var(--sg-color-primary); }
.sg-button--subtle { background: #eaf3f9; border-color: #eaf3f9; color: var(--sg-color-primary); }
.sg-button--danger { background: var(--sg-color-danger); border-color: var(--sg-color-danger); color: #fff; }
.sg-button--sm { min-height: 34px; padding: 7px 12px; font-size: var(--sg-text-xs); }
.sg-button--lg { min-height: 48px; padding: 13px 22px; }

/* Forms: opt in with .sg-form to avoid changing legacy plugin controls. */
.sg-form label { color: var(--sg-color-text); font-size: var(--sg-text-sm); font-weight: 700; }
.sg-form .text-input, .sg-form .text-area, .sg-form .form-control, .sg-form select {
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-sm);
    color: var(--sg-color-text);
    font-family: var(--sg-font-sans);
    transition: border-color var(--sg-transition), box-shadow var(--sg-transition);
}
.sg-form .text-input:focus, .sg-form .text-area:focus, .sg-form .form-control:focus, .sg-form select:focus {
    border-color: var(--sg-color-primary);
    box-shadow: var(--sg-focus-ring);
    outline: 0;
}
.sg-form .form-control[readonly], .sg-form .form-control[disabled], .sg-form .text-input[readonly], .sg-form .text-input[disabled] { background: #f1f4f6; color: var(--sg-color-muted); }
.sg-form .help-block { color: var(--sg-color-muted); font-size: var(--sg-text-xs); margin-top: var(--sg-space-1); }
.sg-form .error-message, .sg-form .has-error .help-block { color: var(--sg-color-danger); font-size: var(--sg-text-xs); font-weight: 700; }
.sg-form .has-error .form-control { border-color: var(--sg-color-danger); }

/* Cards and grouped content. */
.sg-card { background: var(--sg-color-surface); border: 1px solid var(--sg-color-border); border-radius: var(--sg-radius-md); box-shadow: var(--sg-shadow-sm); }
.sg-card--interactive { transition: box-shadow var(--sg-transition), transform var(--sg-transition); }
.sg-card--interactive:hover { box-shadow: var(--sg-shadow-md); transform: translateY(-3px); }
.sg-section-heading { color: var(--sg-color-ink); font-family: var(--sg-font-heading); font-size: 30px; line-height: 1.2; margin: 0 0 var(--sg-space-4); }
.sg-section-subtitle { color: var(--sg-color-muted); margin: 0 0 var(--sg-space-5); }

/* Flash messages retain their existing dismiss-on-click behavior. */
.sg-alert { border: 1px solid transparent; border-radius: var(--sg-radius-sm); margin: var(--sg-space-4) 0; padding: 12px 16px; font-family: var(--sg-font-sans); font-size: var(--sg-text-sm); }
.sg-alert--success { background: #eaf7ef; border-color: #b9e5c9; color: #195d35; }
.sg-alert--error { background: #fdf0ef; border-color: #f2c4c1; color: #922019; }
.sg-alert--warning { background: #fff7e2; border-color: #f1d68a; color: #7d5600; }
.sg-alert--info { background: #eaf3f9; border-color: #bdd8eb; color: #075985; }

/* Table styles are opt-in to preserve data-table integrations. */
.sg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sg-table { width: 100%; border-collapse: separate; border-spacing: 0; color: var(--sg-color-text); font-size: var(--sg-text-sm); }
.sg-table th { background: #f1f5f8; border-bottom: 1px solid var(--sg-color-border); color: #385064; font-size: var(--sg-text-xs); font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.sg-table th, .sg-table td { padding: 13px 15px; vertical-align: middle; }
.sg-table td { border-bottom: 1px solid #e9eef2; }
.sg-table tbody tr:hover { background: #f8fbfd; }
.sg-table .actions { white-space: nowrap; }

/* Small shared utilities; Bootstrap remains the primary layout system. */
.sg-text-muted { color: var(--sg-color-muted); }
.sg-stack > * + * { margin-top: var(--sg-space-3); }
.sg-icon { display: inline-block; font-size: 1em; line-height: 1; vertical-align: -.08em; }
@media (max-width: 767px) { .sg-section-heading { font-size: 25px; } .sg-table th, .sg-table td { padding: 11px 12px; } }

/*
 * Public application shell.
 *
 * The legacy theme does not use the sg-* component classes for its header,
 * navigation, section rows or footer.  The public layout opts in by placing
 * .sg-site on body, allowing these overrides to modernise that existing
 * markup without changing routes, template hooks or JavaScript selectors.
 */
.sg-site {
    background: var(--sg-color-page);
    color: var(--sg-color-text);
    font-family: var(--sg-font-sans);
}
.sg-site .page,
.sg-site .site-main { background: var(--sg-color-page); }
.sg-site .site-main { overflow: hidden; }
.sg-site .ttm-topbar-wrapper {
    background: #002b54;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.sg-site .ttm-header-style-classic-box.ttm-header-overlay .site-header-main {
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid var(--sg-color-border);
    box-shadow: 0 7px 20px rgba(7, 31, 54, .08);
}
.sg-site .site-branding { padding: 14px 0; }
.sg-site .site-branding #logo-img { max-height: 54px; width: auto; }
.sg-site #site-header-menu #site-navigation .menu > ul > li > a {
    color: #264257;
    font-family: var(--sg-font-sans);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .025em;
}
.sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li.active > a,
.sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li:hover > a {
    color: var(--sg-color-primary);
}
.sg-site #site-header-menu #site-navigation .menu > ul > li > a:before { background-color: var(--sg-color-primary); }
.sg-site .ttm-header-icons a,
.sg-site .ttm-header-style-classic-box.ttm-header-overlay .ttm-header-icons a { color: var(--sg-color-primary); }
.sg-site #site-header-menu #site-navigation .menu ul li > ul {
    border-top-color: var(--sg-color-primary);
    box-shadow: var(--sg-shadow-md);
}
.sg-site #site-header-menu #site-navigation .menu ul li > ul li > a:hover,
.sg-site #site-header-menu #site-navigation .menu ul li > ul li.active > a {
    background: #eef5fa;
    color: var(--sg-color-primary);
}

/* Section framing and shared editorial headings used across the public CMS cells. */
.sg-site .ttm-row { position: relative; }
.sg-site .ttm-row:not(.ttm-page-title-row) { border-color: var(--sg-color-border); }
.sg-site .ttm-page-title-row {
    background-color: var(--sg-color-primary);
    box-shadow: inset 0 0 0 999px rgba(0, 43, 84, .64);
}
.sg-site .ttm-page-title-row .title-box .page-title-heading h1,
.sg-site .ttm-page-title-row .breadcrumb-wrapper span,
.sg-site .ttm-page-title-row .breadcrumb-wrapper a { text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.sg-site .section-title h2.title,
.sg-site .section-title h3.title,
.sg-site h2.title,
.sg-site h3.title {
    color: var(--sg-color-ink);
    font-family: var(--sg-font-heading);
    letter-spacing: .01em;
}
.sg-site .section-title .title-desc,
.sg-site .section-title p { color: var(--sg-color-muted); }
.sg-site .featured-box,
.sg-site .ttm-service-single-content-area,
.sg-site .ttm-blog-single-content {
    border-radius: var(--sg-radius-md);
}

/* Product catalogue cards: selector includes the legacy structure so it wins over shortcodes.css. */
.sg-site ul.products li.product .ttm-product-box.sg-card {
    background: var(--sg-color-surface);
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-md);
    box-shadow: var(--sg-shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--sg-transition), transform var(--sg-transition), border-color var(--sg-transition);
}
.sg-site ul.products li.product .ttm-product-box.sg-card:hover {
    border-color: #b8cede;
    box-shadow: var(--sg-shadow-md);
    transform: translateY(-4px);
}
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-product-image-box { background: #f4f7f9; }
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-product-content { padding: 18px 18px 20px; }
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-product-content h2,
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-product-content h2 a {
    color: var(--sg-color-ink);
    font-family: var(--sg-font-sans);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.45;
}
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-product-content h2 a:hover { color: var(--sg-color-primary); }
.sg-site ul.products li.product .ttm-product-box.sg-card .price { color: var(--sg-color-primary); font-weight: 800; }
.sg-site ul.products li.product .ttm-product-box.sg-card .ttm-shop-icon a {
    background: var(--sg-color-primary);
    border-radius: 50%;
    box-shadow: 0 5px 12px rgba(0, 59, 113, .28);
}

/* Contact and other existing forms keep all original names/IDs but gain a consistent surface. */
.sg-site .contact-form-section2 .sg-card {
    border-color: var(--sg-color-border);
    box-shadow: var(--sg-shadow-md);
}
.sg-site .contactform.sg-form .text-input,
.sg-site .contactform.sg-form .text-area,
.sg-site .contactform.sg-form .form-control,
.sg-site .contactform.sg-form select {
    background: #fff;
    border-color: #cbd9e3;
    min-height: 45px;
}
.sg-site .contactform.sg-form .text-area { min-height: 132px; }
.sg-site input.sg-button.sg-button--primary,
.sg-site button.sg-button.sg-button--primary {
    background: var(--sg-color-primary);
    border-color: var(--sg-color-primary);
    border-radius: var(--sg-radius-sm);
    box-shadow: 0 5px 12px rgba(0, 59, 113, .2);
    min-height: 44px;
}
.sg-site input.sg-button.sg-button--primary:hover,
.sg-site button.sg-button.sg-button--primary:hover { background: var(--sg-color-primary-hover); border-color: var(--sg-color-primary-hover); }

/* Contact page: retain the original form hooks while replacing the legacy image panel with a clear service layout. */
.sg-site .sg-contact-page { background: #f5f8fa; color: #233a4c; }
.sg-site .sg-contact-shell { margin-left: auto; margin-right: auto; max-width: 1180px; width: calc(100% - 48px); }
.sg-site .sg-contact-intro { background: linear-gradient(135deg, #f8fbfd 0%, #e7f1f7 100%); border-bottom: 1px solid #d6e2ea; padding: 70px 0 62px; text-align: center; }
.sg-site .sg-contact-eyebrow { color: #0069aa; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.sg-site .sg-contact-intro h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; letter-spacing: -.03em; margin: 0; }
.sg-site .sg-contact-intro p { color: #536976; font-size: 18px; line-height: 1.6; margin: 14px auto 0; max-width: 670px; }
.sg-site .sg-contact-form-layout { align-items: start; display: grid; gap: 56px; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); padding: 75px 0; }
.sg-site .sg-contact-form-intro { padding-top: 20px; }
.sg-site .sg-contact-form-intro h2, .sg-site .sg-contact-form-heading h2 { color: #003b71; font-size: 28px; font-weight: 800; line-height: 1.2; margin: 0 0 13px; }
.sg-site .sg-contact-form-intro > p { color: #5c707d; font-size: 16px; line-height: 1.65; margin: 0; }
.sg-site .sg-contact-form-intro ul { list-style: none; margin: 28px 0 0; padding: 0; }
.sg-site .sg-contact-form-intro li { align-items: flex-start; color: #29485d; display: flex; font-weight: 700; gap: 10px; line-height: 1.45; margin: 14px 0; }
.sg-site .sg-contact-form-intro li i { color: #0084c5; margin-top: 4px; }
.sg-site .sg-contact-form-card { background: #fff; border: 1px solid #dce7ee; border-radius: 9px; box-shadow: 0 13px 30px rgba(13, 42, 61, .1); padding: 32px; }
.sg-site .sg-contact-form-heading { border-bottom: 1px solid #e6edf2; margin-bottom: 22px; padding-bottom: 18px; }
.sg-site .sg-contact-form-heading h2 { font-size: 24px; margin-bottom: 6px; }
.sg-site .sg-contact-form-heading p { color: #71818c; font-size: 14px; margin: 0; }
.sg-site .contactform.sg-form > label { margin-bottom: 17px; }
.sg-site .sg-contact-field-label { color: #344e60; display: block; font-size: 13px; font-weight: 800; margin: 0 0 7px; }
.sg-site .sg-contact-field-label em { color: #c64141; font-style: normal; }
.sg-site .contactform.sg-form .ttm-form-control { display: block; }
.sg-site .contactform.sg-form .text-input, .sg-site .contactform.sg-form .text-area { border: 1px solid #cbd9e3; border-radius: 5px; box-shadow: none; color: #243f50; font-size: 15px; padding: 11px 13px; width: 100%; }
.sg-site .contactform.sg-form .text-input:focus, .sg-site .contactform.sg-form .text-area:focus { border-color: #0069aa; box-shadow: 0 0 0 3px rgba(0, 105, 170, .13); outline: 0; }
.sg-site .contactform.sg-form .text-area { min-height: 148px; resize: vertical; }
.sg-site .sg-contact-captcha { margin-bottom: 8px; }
.sg-site .sg-contact-submit { margin-top: 5px; }
.sg-site .sg-contact-submit .sg-button { padding-left: 28px; padding-right: 28px; }

/* The product detail form has no sg-* class by design; preserve its IDs/hooks and style its existing controls. */
.sg-site #card-form #add_card,
.sg-site #card-form button[type="submit"] {
    background: var(--sg-color-primary);
    border-color: var(--sg-color-primary);
    border-radius: var(--sg-radius-sm);
    box-shadow: 0 5px 12px rgba(0, 59, 113, .18);
    color: #fff;
    font-family: var(--sg-font-sans);
    font-weight: 800;
}
.sg-site #card-form #add_card:hover,
.sg-site #card-form button[type="submit"]:hover { background: var(--sg-color-primary-hover); border-color: var(--sg-color-primary-hover); }
.sg-site #card-form input,
.sg-site #card-form select { border-color: #cbd9e3; border-radius: var(--sg-radius-sm); }
.sg-site #card-form input:focus,
.sg-site #card-form select:focus { border-color: var(--sg-color-primary); box-shadow: var(--sg-focus-ring); outline: 0; }

/* Footer retains existing content and links while giving newsletter and columns a clearer hierarchy. */
.sg-site .footer { background: #102536; }
.sg-site .footer .first-footer {
    background: linear-gradient(115deg, #003b71 0%, #0b5e98 100%);
    border-bottom: 1px solid rgba(255, 255, 255, .16);
}
.sg-site .footer .ttm-newstter-box h4 { font-family: var(--sg-font-heading); letter-spacing: .01em; }
.sg-site .footer .mailchimp-inputbox input[type="email"] {
    border: 0;
    border-radius: var(--sg-radius-sm) 0 0 var(--sg-radius-sm);
    color: var(--sg-color-text);
}
.sg-site .footer .mailchimp-inputbox input[type="submit"] {
    background: var(--sg-color-accent);
    border-radius: 0 var(--sg-radius-sm) var(--sg-radius-sm) 0;
    color: #1c2832;
    font-weight: 800;
}
.sg-site .footer .mailchimp-inputbox input[type="submit"]:hover { background: #f2c24e; }
.sg-site .footer .widget .widget-title { color: #fff; font-family: var(--sg-font-heading); }
.sg-site .footer .widget a:hover,
.sg-site .footer .social-icons a:hover { color: var(--sg-color-accent); }
.sg-site .footer .bottom-footer-text { border-top-color: rgba(255, 255, 255, .14); }

.sg-site #totop { background: var(--sg-color-primary); border-radius: var(--sg-radius-sm); box-shadow: var(--sg-shadow-sm); }
.sg-site #totop:hover { background: var(--sg-color-primary-hover); }

@media (max-width: 991px) {
    .sg-site .site-branding { padding: 10px 0; }
    .sg-site .site-branding #logo-img { max-height: 46px; }
    .sg-site #site-header-menu #site-navigation .menu ul li a { font-family: var(--sg-font-sans); }
    .sg-site #site-header-menu #site-navigation .menu ul li > a:hover { color: var(--sg-color-primary); }
}
@media (max-width: 767px) {
    .sg-site .ttm-page-title-row { height: auto; min-height: 210px; }
    .sg-site ul.products li.product .ttm-product-box.sg-card { margin-bottom: 20px; }
    .sg-site .footer .mailchimp-inputbox input[type="email"],
    .sg-site .footer .mailchimp-inputbox input[type="submit"] { border-radius: var(--sg-radius-sm); }
    .sg-site .sg-contact-shell { width: calc(100% - 30px); }
    .sg-site .sg-contact-intro { padding: 52px 0 48px; }
    .sg-site .sg-contact-intro p { font-size: 16px; }
    .sg-site .sg-contact-form-layout { gap: 30px; grid-template-columns: 1fr; padding: 52px 0; }
    .sg-site .sg-contact-form-intro { padding-top: 0; }
    .sg-site .sg-contact-form-card { padding: 24px 18px; }
}

/* Public discovery paths: retain the legacy menu and overlay search behaviour, but make entry points obvious. */
.sg-site .sg-header-actions .sg-header-quote,
.sg-site .sg-header-actions .ttm-header-icon a,
.sg-site .sg-header-actions .ttm-header-search-link a {
    align-items: center;
    color: var(--sg-color-primary);
    font-family: var(--sg-font-sans);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
.sg-site .sg-header-actions .sg-header-quote {
    border: 1px solid #bdd3e3;
    border-radius: var(--sg-radius-sm);
    display: inline-flex;
    gap: 6px;
    line-height: 1;
    padding: 9px 11px;
}
.sg-site .sg-header-actions .sg-header-quote:hover {
    background: #eaf3f9;
    border-color: var(--sg-color-primary);
    color: var(--sg-color-primary);
}
.sg-site .sg-header-actions .sg-header-quote i { font-size: 14px; }
.sg-site .sg-header-actions .ttm-header-cart-link a,
.sg-site .sg-header-actions .ttm-header-search-link a {
    border-radius: var(--sg-radius-sm);
    display: inline-flex;
    gap: 6px;
    padding: 9px 10px;
}
.sg-site .sg-header-actions .sg-header-action-label { display: none; }
.sg-site .sg-header-actions .ttm-header-cart-link a { position: relative; }
.sg-site .sg-header-actions .ttm-header-cart-link a:hover,
.sg-site .sg-header-actions .ttm-header-search-link a:hover { background: #eaf3f9; color: var(--sg-color-primary); }
.sg-site .sg-header-actions .ttm-header-icon .number-cart {
    background: var(--sg-color-accent);
    color: #1c2832;
    font-family: var(--sg-font-sans);
    font-size: 10px;
    font-weight: 800;
}

/* Homepage CMS content remains database-driven, with an editorial frame rather than unstyled blocks. */
.sg-site .sg-home-intro {
    background: var(--sg-color-surface);
    padding: 62px 15px;
}
.sg-site .sg-home-intro > :first-child { margin-top: 0; }
.sg-site .sg-home-intro .ttm-row,
.sg-site .sg-home-intro section { background-color: transparent; }
.sg-site .sg-home-intro h1,
.sg-site .sg-home-intro h2,
.sg-site .sg-home-intro h3 {
    color: var(--sg-color-ink);
    font-family: var(--sg-font-heading);
    margin-left: auto;
    margin-right: auto;
    max-width: var(--sg-content-width);
}
.sg-site .sg-home-intro h1,
.sg-site .sg-home-intro h2 { font-size: 34px; line-height: 1.2; margin-bottom: 20px; }
.sg-site .sg-home-intro p {
    color: var(--sg-color-muted);
    line-height: 1.8;
    margin-left: auto;
    margin-right: auto;
    max-width: var(--sg-content-width);
}
.sg-site .sg-home-intro > h1,
.sg-site .sg-home-intro > h2,
.sg-site .sg-home-intro > h3,
.sg-site .sg-home-intro > p,
.sg-site .sg-home-intro > div { padding-left: 15px; padding-right: 15px; }
.sg-site .sg-home-news { background: #f1f6f9; }
.sg-site .sg-home-news .event-slide { margin-bottom: 0; }
.sg-site .sg-news-card {
    background: #fff;
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-md);
    box-shadow: var(--sg-shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--sg-transition), transform var(--sg-transition);
}
.sg-site .sg-news-card:hover { box-shadow: var(--sg-shadow-md); transform: translateY(-4px); }
.sg-site .sg-news-card .featured-thumbnail { background: #eaf3f9; overflow: hidden; }
.sg-site .sg-news-card .featured-thumbnail img { transition: transform 240ms ease; }
.sg-site .sg-news-card:hover .featured-thumbnail img { transform: scale(1.035); }
.sg-site .sg-news-card .featured-content { background: #fff; }
.sg-site .sg-news-card .ttm-btn { background: var(--sg-color-primary); border-radius: var(--sg-radius-sm); }
.sg-site .sg-news-card .ttm-btn:hover { background: var(--sg-color-primary-hover); }

.sg-site .sg-gallery-heading { background-color: #102536; }
.sg-site .sg-gallery-grid { background: #f7f9fb; }
.sg-site .sg-gallery-card {
    background: #fff;
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-md);
    box-shadow: var(--sg-shadow-sm);
    overflow: hidden;
}
.sg-site .sg-gallery-card .featured-thumbnail { background: #eaf3f9; }
.sg-site .sg-gallery-card .featured-thumbnail img { transition: transform 240ms ease; }
.sg-site .sg-gallery-card:hover .featured-thumbnail img { transform: scale(1.04); }

/* Catalogue and product detail share the same measured image surfaces and action language. */
.sg-site ul.products li.sg-product-card-item { margin-bottom: 28px; }
.sg-site ul.products li.product .sg-product-card .ttm-product-image-box {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 228px;
    padding: 18px;
}
.sg-site ul.products li.product .sg-product-card .ttm-product-image-box img {
    max-height: 190px;
    object-fit: contain;
    width: auto;
}
.sg-site ul.products li.product .sg-product-card .ttm-shop-icon .product-btn.cart-btn a {
    background: var(--sg-color-primary);
    border-radius: var(--sg-radius-sm);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    padding: 10px 13px;
}
.sg-site ul.products li.product .sg-product-card .ttm-shop-icon .product-btn.cart-btn a:hover { background: var(--sg-color-primary-hover); }

/* Product-card actions: compact controls and a dialog replace the legacy
   full-width hover strip, which covered imagery and made the cart misleading. */
.sg-site ul.products li.product .sg-product-card .ttm-product-box-inner { overflow: hidden; position: relative; }
.sg-site ul.products li.product .sg-product-card .ttm-product-image-box { overflow: hidden; }
.sg-site ul.products li.product .sg-product-card .ttm-product-image-box img { transition: transform 300ms ease; }
.sg-site ul.products li.product .sg-product-card:hover .ttm-product-image-box img { transform: scale(1.035); }
.sg-site ul.products li.product .sg-product-card .sg-product-image-trigger {
    align-items: center; background: transparent; border: 0; cursor: pointer; display: flex; height: 100%; justify-content: center; padding: 0; width: 100%;
}
.sg-site ul.products li.product .sg-product-card .sg-product-image-trigger:focus { box-shadow: inset 0 0 0 3px rgba(0, 59, 113, .45); outline: 0; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-actions {
    align-items: center; bottom: 14px; display: flex; gap: 8px; left: auto; margin: 0; padding: 0; position: absolute; right: 14px; top: auto; visibility: visible; width: auto; z-index: 4;
}
.sg-site ul.products li.product .sg-product-card .sg-product-card-action {
    align-items: center; background: rgba(255, 255, 255, .97); border: 1px solid rgba(0, 59, 113, .12); border-radius: 999px; box-shadow: 0 7px 16px rgba(11, 41, 67, .16); color: #003b71; cursor: pointer; display: inline-flex; font-size: 12px; font-weight: 800; gap: 6px; justify-content: center; min-height: 38px; opacity: 0; padding: 0 12px; transform: translateY(8px); transition: background-color 180ms ease, color 180ms ease, opacity 180ms ease, transform 180ms ease; white-space: nowrap;
}
.sg-site ul.products li.product .sg-product-card:hover .sg-product-card-action,
.sg-site ul.products li.product .sg-product-card:focus-within .sg-product-card-action { opacity: 1; transform: translateY(0); }
.sg-site ul.products li.product .sg-product-card .sg-product-card-action:hover,
.sg-site ul.products li.product .sg-product-card .sg-product-card-action:focus { background: #003b71; color: #fff; outline: 0; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-action i { font-size: 15px; line-height: 1; }
.sg-site ul.products li.product .sg-product-card .ttm-product-content { min-height: 205px; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-description { color: #667b8b; font-size: 12px; line-height: 1.45; margin: 10px 0 0; min-height: 35px; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-description + h3 { margin-top: 7px; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-reference { color: #78909f; font-size: 11px; letter-spacing: .02em; margin: 5px 0 0; }
.sg-site ul.products li.product .sg-product-card .sg-product-card-reference + .sg-product-brand { margin-top: 6px; }

.sg-product-quick-view { align-items: center; display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 10050; }
.sg-product-quick-view[hidden] { display: none; }
.sg-product-quick-view__backdrop { background: rgba(5, 20, 35, .64); inset: 0; position: absolute; }
.sg-product-quick-view__dialog { background: #fff; border-radius: 14px; box-shadow: 0 24px 64px rgba(0, 20, 40, .34); display: grid; grid-template-columns: minmax(260px, .92fr) minmax(280px, 1fr); max-width: 820px; overflow: hidden; position: relative; width: 100%; }
.sg-product-quick-view__close { align-items: center; background: rgba(255, 255, 255, .94); border: 1px solid #d9e4eb; border-radius: 50%; color: #003b71; cursor: pointer; display: inline-flex; font-size: 16px; height: 35px; justify-content: center; position: absolute; right: 13px; top: 13px; width: 35px; z-index: 2; }
.sg-product-quick-view__close:hover, .sg-product-quick-view__close:focus { background: #003b71; color: #fff; outline: 0; }
.sg-product-quick-view__media { align-items: center; background: linear-gradient(140deg, #eaf3f8, #f8fbfd); display: flex; justify-content: center; min-height: 360px; padding: 25px; }
.sg-product-quick-view__media img { height: 100%; max-height: 350px; object-fit: contain; width: 100%; }
.sg-product-quick-view__content { display: flex; flex-direction: column; padding: 42px 34px 32px; }
.sg-product-quick-view__description { color: #667b8b; font-size: 14px; line-height: 1.55; margin: 16px 0 8px; }
.sg-product-quick-view__content h2 { color: #003b71; font-size: 24px; font-weight: 800; line-height: 1.25; margin: 0; }
.sg-product-quick-view__content .sg-product-card-reference { margin: 8px 0 0; }
.sg-product-quick-view__price { color: #003b71; font-size: 20px; margin-top: 23px; }
.sg-product-quick-view__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 28px; }
.sg-product-quick-view__add, .sg-product-quick-view__link { align-items: center; border-radius: 6px; display: inline-flex; font-size: 13px; font-weight: 800; gap: 8px; justify-content: center; min-height: 43px; padding: 9px 14px; text-decoration: none; }
.sg-product-quick-view__add { background: #003b71; border: 1px solid #003b71; color: #fff; cursor: pointer; }
.sg-product-quick-view__add:hover, .sg-product-quick-view__add:focus { background: #002c54; border-color: #002c54; outline: 0; }
.sg-product-quick-view__link { border: 1px solid #003b71; color: #003b71; }
.sg-product-quick-view__link:hover, .sg-product-quick-view__link:focus { background: #edf5fa; color: #003b71; outline: 0; }
.sg-cart-toast { background: #073d70; border-radius: 7px; bottom: 24px; box-shadow: 0 12px 28px rgba(0, 39, 74, .26); color: #fff; font-size: 14px; font-weight: 700; left: 50%; max-width: calc(100vw - 32px); padding: 13px 18px; position: fixed; transform: translateX(-50%); z-index: 10060; }
.sg-cart-toast[hidden] { display: none; }
.sg-modal-open { overflow: hidden; }
@media (hover: none), (pointer: coarse) {
    .sg-site ul.products li.product .sg-product-card .sg-product-card-action { opacity: 1; transform: none; }
}
@media (max-width: 620px) {
    .sg-product-quick-view { padding: 14px; }
    .sg-product-quick-view__dialog { display: block; max-height: calc(100vh - 28px); overflow-y: auto; }
    .sg-product-quick-view__media { min-height: 225px; padding: 20px; }
    .sg-product-quick-view__media img { max-height: 220px; }
    .sg-product-quick-view__content { min-height: 310px; padding: 27px 23px 23px; }
    .sg-product-quick-view__content h2 { font-size: 21px; }
    .sg-site ul.products li.product .sg-product-card .sg-product-card-action span { display: none; }
    .sg-site ul.products li.product .sg-product-card .sg-product-card-action { height: 38px; padding: 0; width: 38px; }
}
.sg-site .ttm-pagination a,
.sg-site .ttm-pagination span {
    border-color: var(--sg-color-border);
    border-radius: var(--sg-radius-sm);
    color: var(--sg-color-primary);
    margin: 0 3px;
}
.sg-site .ttm-pagination .current,
.sg-site .ttm-pagination a:hover { background: var(--sg-color-primary); border-color: var(--sg-color-primary); color: #fff; }

.sg-site .sg-product-detail {
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-lg);
    box-shadow: var(--sg-shadow-md);
    overflow: hidden;
}
.sg-site .sg-product-detail .product-gallery { background: #eef4f7; }
.sg-site .sg-product-detail .product-gallery__image { background: #fff; }
.sg-site .sg-product-detail .product-gallery__image img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 6px;
}
.sg-site .sg-product-detail .summary { padding: 8px 0; }
.sg-site .sg-product-detail .product_title { color: var(--sg-color-ink); font-family: var(--sg-font-heading); }
.sg-site .sg-product-detail .product-details__short-description { color: var(--sg-color-muted); line-height: 1.7; }
.sg-site .sg-product-detail .product_meta { border-top: 1px solid var(--sg-color-border); margin-top: 20px; padding-top: 18px; }
.sg-site .sg-product-detail .product_meta a { color: var(--sg-color-primary); font-weight: 700; }

@media (min-width: 1200px) {
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay .ttm-topbar-wrapper { padding-bottom: 42px; }
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay .ttm-stickable-header-w { top: 52px; }
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation,
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay .site-branding,
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay .ttm-header-icons { height: 88px; line-height: 88px !important; }
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li > a {
        height: 88px;
        line-height: 88px !important;
        margin-left: 10px;
        margin-right: 10px;
    }
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li > a:before { top: 67px; }
    .sg-site .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li:hover > a:before { top: 63px; }
    .sg-site .sg-header-actions { align-items: center; display: flex; gap: 3px; height: 88px; line-height: 1; padding-right: 0; }
    .sg-site .sg-header-actions .ttm-header-icon { margin-left: 0; }
    .sg-site .sg-header-actions .sg-header-quote,
    .sg-site .sg-header-actions .ttm-header-cart-link a,
    .sg-site .sg-header-actions .ttm-header-search-link a { line-height: 1; }
    .sg-site .sg-header-actions .ttm-header-search-link a { background: var(--sg-color-primary); color: #fff; }
    .sg-site .sg-header-actions .ttm-header-search-link a:hover { background: var(--sg-color-primary-hover); color: #fff; }
}
@media (max-width: 1199px) {
    .sg-site .sg-header-actions .sg-header-quote span,
    .sg-site .sg-header-actions .sg-header-action-label { display: none; }
    .sg-site .sg-header-actions .sg-header-quote { border: 0; padding: 0; }
}
@media (max-width: 767px) {
    .sg-site .sg-home-intro { padding-bottom: 42px; padding-top: 42px; }
    .sg-site .sg-home-intro h1,
    .sg-site .sg-home-intro h2 { font-size: 27px; }
    .sg-site .sg-home-news .event-slide { margin-left: 0; margin-right: 0; }
    .sg-site .sg-news-card { margin-bottom: 24px; }
    .sg-site ul.products li.product .sg-product-card .ttm-product-image-box { min-height: 185px; padding: 12px; }
    .sg-site ul.products li.product .sg-product-card .ttm-product-image-box img { max-height: 155px; }
    .sg-site .sg-product-detail { border-radius: var(--sg-radius-md); }
}

/* Individual product pages: data is managed in Admin > Products, while this
   layer supplies a consistent public catalogue presentation. */
.sg-product-page { background: #f5f8fa; color: #334b5e; }
.sg-product-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-product-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 24px 0; }
.sg-product-breadcrumb { align-items: center; color: #647887; display: flex; flex-wrap: wrap; font-size: 13px; gap: 8px; line-height: 1.55; }
.sg-product-breadcrumb a { color: #003b71; font-weight: 700; text-decoration: none; }
.sg-product-breadcrumb a:hover,
.sg-product-breadcrumb a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-product-breadcrumb i { color: #95a8b5; }
.sg-product-main-section { padding: 48px 0 70px; }
.sg-product-detail-card { background: #fff; border: 1px solid #dfe8ee; border-radius: 14px; box-shadow: 0 13px 32px rgba(7,31,54,.08); display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr); overflow: hidden; }
.sg-product-media { background: linear-gradient(145deg, #edf5fa, #dcecf6); min-width: 0; padding: clamp(24px, 4vw, 48px); }
.sg-product-main-image { align-items: center; background: #fff; border: 1px solid rgba(0,59,113,.10); border-radius: 10px; display: flex; height: 440px; justify-content: center; overflow: hidden; text-decoration: none; }
.sg-product-main-image img { height: 100%; object-fit: contain; padding: 14px; width: 100%; }
.sg-product-main-image--placeholder { color: #2f6aa6; font-size: 58px; }
.sg-product-thumbnails { display: flex; gap: 10px; margin-top: 14px; overflow-x: auto; padding-bottom: 3px; }
.sg-product-thumbnails a { background: #fff; border: 2px solid transparent; border-radius: 6px; display: block; flex: 0 0 66px; height: 66px; overflow: hidden; }
.sg-product-thumbnails a:hover,
.sg-product-thumbnails a:focus,
.sg-product-thumbnails a.is-default { border-color: #003b71; outline: 0; }
.sg-product-thumbnails img { height: 100%; object-fit: cover; width: 100%; }
.sg-product-summary { padding: clamp(30px, 4vw, 52px); }
.sg-product-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.sg-product-summary h1 { color: #003b71; font-size: clamp(29px, 3.1vw, 42px); font-weight: 800; line-height: 1.13; margin: 0; }
.sg-product-reference { color: #607789; font-size: 14px; margin: 13px 0 24px; }
.sg-product-reference span { color: #003b71; font-weight: 800; margin-right: 5px; }
.sg-product-short-description { border-bottom: 1px solid #e2ebf1; color: #405462; font-size: 16px; line-height: 1.7; margin-bottom: 24px; padding-bottom: 22px; }
.sg-product-short-description > :first-child { margin-top: 0; }
.sg-product-short-description > :last-child { margin-bottom: 0; }
.sg-product-quote-form { align-items: end; display: flex; flex-wrap: wrap; gap: 13px; }
.sg-product-form-row { display: flex; flex: 1 1 175px; flex-direction: column; gap: 7px; }
.sg-product-form-row--quantity { flex: 0 1 96px; }
.sg-product-form-row label { color: #003b71; font-size: 13px; font-weight: 800; margin: 0; }
.sg-product-form-row select,
.sg-product-form-row input { background: #fff; border: 1px solid #bacdda; border-radius: 5px; color: #233e53; height: 44px; padding: 8px 11px; width: 100%; }
.sg-product-form-row select:focus,
.sg-product-form-row input:focus { border-color: #003b71; box-shadow: 0 0 0 3px rgba(0,59,113,.13); outline: 0; }
.sg-product-add-button { align-items: center; background: #003b71; border: 1px solid #003b71; border-radius: 5px; color: #fff; display: inline-flex; font-size: 14px; font-weight: 800; gap: 12px; height: 44px; justify-content: center; padding: 0 18px; transition: background-color 180ms ease, transform 180ms ease; }
.sg-product-add-button:hover,
.sg-product-add-button:focus { background: #002c54; border-color: #002c54; color: #fff; outline: 0; transform: translateY(-1px); }
.sg-product-quote-note { color: #667e8f; flex: 1 0 100%; font-size: 13px; margin: 0; }
.sg-product-quote-note i,
.sg-product-unavailable i { color: #2f6aa6; margin-right: 6px; }
.sg-product-unavailable { background: #edf5fa; border-left: 3px solid #2f6aa6; color: #405462; font-size: 14px; line-height: 1.6; padding: 13px 14px; }
.sg-product-categories { border-top: 1px solid #e2ebf1; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; padding-top: 21px; }
.sg-product-categories > span { color: #003b71; font-size: 13px; font-weight: 800; }
.sg-product-categories > div { display: flex; flex-wrap: wrap; gap: 8px; }
.sg-product-categories a { background: #eef5f9; border-radius: 999px; color: #003b71; font-size: 12px; font-weight: 700; padding: 4px 10px; text-decoration: none; }
.sg-product-categories a:hover,
.sg-product-categories a:focus { background: #003b71; color: #fff; outline: 0; }
.sg-product-description-panel { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; margin-top: 28px; padding: clamp(28px, 4vw, 48px); }
.sg-product-description-panel h2 { color: #003b71; font-size: 28px; font-weight: 800; margin: 0 0 18px; }
.sg-product-long-description { color: #405462; line-height: 1.75; }
.sg-product-long-description > :first-child { margin-top: 0; }
.sg-product-long-description > :last-child { margin-bottom: 0; }
.sg-rating-summary { align-items: center; display: inline-flex; flex-wrap: wrap; gap: 7px; line-height: 1.3; }
.sg-rating-stars { color: #b6c5d0; display: inline-flex; font-size: 16px; gap: 1px; letter-spacing: 0; white-space: nowrap; }
.sg-rating-stars .is-filled { color: #e9ae28; }
.sg-rating-count { color: #607586; font-size: 12px; font-weight: 600; }
.sg-product-card .sg-rating-summary { margin-top: 8px; }
.sg-product-card .sg-card-review-link { align-self: flex-start; color: #003b71; font-size: 11px; font-weight: 700; margin-top: 9px; text-decoration: none; }
.sg-product-card .sg-card-review-link:hover, .sg-product-card .sg-card-review-link:focus { text-decoration: underline; }
.sg-home-product-info .sg-rating-summary { margin-top: 7px; }
.sg-home-product-info .sg-rating-stars { font-size: 12px; }
.sg-home-product-info .sg-rating-count { font-size: 10px; }
.sg-home-review-link { align-self: flex-start; color: #003b71; font-size: 10px; font-weight: 700; margin-top: 5px; text-decoration: none; }
.sg-home-review-link:hover, .sg-home-review-link:focus { text-decoration: underline; }
.sg-product-rating-link { display: inline-flex; margin: 6px 0 12px; text-decoration: none; }
.sg-product-reviews { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; margin-top: 24px; padding: clamp(22px, 4vw, 42px); scroll-margin-top: 110px; }
.sg-product-reviews__heading { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-bottom: 22px; }
.sg-product-reviews__heading h2 { color: #003b71; font-size: 27px; margin: 0; }
.sg-review-form-wrap { background: #f4f8fb; border: 1px solid #dce8f0; border-radius: 9px; margin: 0 0 24px; padding: 22px; }
.sg-review-form-wrap h3 { color: #003b71; font-size: 19px; margin: 0 0 5px; }
.sg-review-form-wrap p { color: #607586; margin: 0 0 14px; }
.sg-review-form-wrap form > label { color: #24445e; display: block; font-weight: 700; margin-bottom: 6px; }
.sg-review-form-wrap textarea { background: #fff; border: 1px solid #cbdbe7; border-radius: 6px; box-sizing: border-box; display: block; max-width: 680px; min-height: 110px; padding: 12px; resize: vertical; width: 100%; }
.sg-review-form-wrap button { margin-top: 15px; }
.sg-review-rating { border: 0; display: flex; flex-direction: row-reverse; justify-content: flex-end; margin: 0 0 16px; padding: 0; }
.sg-review-rating legend { color: #24445e; float: none; font-size: 14px; font-weight: 700; margin-bottom: 5px; width: 100%; }
.sg-review-rating input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.sg-review-rating label { color: #b6c5d0; cursor: pointer; font-size: 32px; line-height: 1; margin: 0 3px 0 0; }
.sg-review-rating label:hover, .sg-review-rating label:hover ~ label, .sg-review-rating input:checked ~ label { color: #e9ae28; }
.sg-review-rating input:focus + label { outline: 2px solid #003b71; outline-offset: 2px; }
.sg-review-notice, .sg-review-empty { background: #f4f8fb; border-radius: 6px; color: #526d80; padding: 14px 16px; }
.sg-review-feedback { border-radius: 6px; margin: 0 0 18px; padding: 12px 15px; }
.sg-review-feedback--success { background: #e5f5ea; color: #166438; }
.sg-review-feedback--error { background: #fdebed; color: #9a2433; }
.sg-review-notice a { color: #003b71; font-weight: 700; }
.sg-review-list { display: grid; gap: 12px; }
.sg-review-item { border-top: 1px solid #e2ebf1; padding-top: 16px; }
.sg-review-item__top { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; }
.sg-review-item__top strong { color: #003b71; }
.sg-review-item__top time { color: #78909f; font-size: 12px; margin-left: auto; }
.sg-review-item p { color: #405462; line-height: 1.6; margin: 9px 0 0; overflow-wrap: anywhere; }
@media (max-width: 850px) {
    .sg-product-detail-card { grid-template-columns: 1fr; }
    .sg-product-main-image { height: min(68vw, 440px); }
}
@media (max-width: 767px) {
    .sg-product-shell { width: calc(100% - 28px); }
    .sg-product-main-section { padding: 28px 0 48px; }
    .sg-product-hero { padding: 18px 0; }
    .sg-product-media { padding: 18px; }
    .sg-product-summary { padding: 27px 21px; }
    .sg-product-add-button { flex: 1 1 100%; }
    .sg-product-description-panel { margin-top: 18px; padding: 27px 21px; }
    .sg-product-description-panel h2 { font-size: 24px; }
}

/* Selection / quotation cart. The existing session and AJAX hooks remain in
   place; these rules only bring the page into the current catalogue system. */
.sg-cart-page { background: #f5f8fa; color: #334b5e; }
.sg-cart-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-cart-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 35px 0 32px; text-align: center; }
.sg-cart-breadcrumb { align-items: center; display: flex; font-size: 13px; gap: 8px; justify-content: center; margin-bottom: 16px; }
.sg-cart-breadcrumb a { color: #003b71; font-weight: 700; text-decoration: none; }
.sg-cart-breadcrumb a:hover,
.sg-cart-breadcrumb a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-cart-breadcrumb i { color: #95a8b5; }
.sg-cart-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 9px; text-transform: uppercase; }
.sg-cart-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0; }
.sg-cart-hero > .sg-cart-shell > p:last-child { color: #526775; font-size: 16px; line-height: 1.6; margin: 13px auto 0; max-width: 650px; }
.sg-cart-main-section { padding: 44px 0 70px; }
.sg-cart-empty { background: #fff; border: 1px solid #dfe8ee; border-radius: 12px; box-shadow: 0 13px 30px rgba(7,31,54,.06); margin: 0 auto; max-width: 600px; padding: 48px 32px; text-align: center; }
.sg-cart-empty-icon { align-items: center; background: #eaf2f7; border-radius: 50%; color: #003b71; display: inline-flex; font-size: 30px; height: 62px; justify-content: center; margin-bottom: 18px; width: 62px; }
.sg-cart-empty h2 { color: #003b71; font-size: 26px; font-weight: 800; margin: 0 0 9px; }
.sg-cart-empty p { color: #607789; line-height: 1.7; margin: 0 auto 22px; max-width: 410px; }
.sg-cart-form { background: #fff; border: 1px solid #dfe8ee; border-radius: 12px; box-shadow: 0 13px 30px rgba(7,31,54,.06); margin: 0; overflow: hidden; padding: 0; }
.sg-cart-table-wrap { overflow-x: auto; }
.sg-cart-table { margin: 0; min-width: 940px; width: 100%; }
.sg-cart-table thead { background: #edf4f8; }
.sg-cart-table th { border: 0; color: #003b71; font-size: 12px; font-weight: 800; letter-spacing: .04em; padding: 15px 13px; text-transform: uppercase; }
.sg-cart-table td { border-top: 1px solid #e6edf2; padding: 15px 13px; vertical-align: middle; }
.sg-cart-table .sg-cart-row:hover { background: #f8fbfd; }
.sg-cart-thumbnail { width: 88px; }
.sg-cart-thumbnail a,
.sg-cart-image-placeholder { align-items: center; background: #edf4f8; border-radius: 7px; display: flex; height: 64px; justify-content: center; overflow: hidden; width: 64px; }
.sg-cart-thumbnail img { height: 100%; object-fit: cover; width: 100%; }
.sg-cart-image-placeholder { color: #2f6aa6; font-size: 22px; }
.sg-cart-product a { color: #003b71; font-weight: 800; text-decoration: none; }
.sg-cart-product a:hover,
.sg-cart-product a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-cart-reference,
.sg-cart-dimension { color: #607789; font-size: 13px; }
.sg-cart-quantity { width: 115px; }
.sg-cart-quantity-input { border: 1px solid #bacdda; border-radius: 5px; color: #243f53; height: 38px; padding: 6px 9px; width: 72px; }
.sg-cart-quantity-input:focus { border-color: #003b71; box-shadow: 0 0 0 3px rgba(0,59,113,.13); outline: 0; }
.sg-cart-table .sg-cart-price,
.sg-cart-table .sg-cart-line-total { color: #28465c; min-width: 125px; text-align: right; white-space: nowrap; }
.sg-cart-table td.sg-cart-line-total { color: #003b71; font-weight: 800; }
.sg-cart-pricing { background: #f5f9fc; border: 1px solid #dce9f1; border-radius: 10px; margin: 20px 24px 24px auto; max-width: calc(100% - 48px); padding: 18px 20px 15px; width: 390px; }
.sg-cart-pricing-title { color: #003b71; font-size: 15px; font-weight: 800; margin: 0 0 13px; }
.sg-cart-pricing-row { align-items: baseline; color: #4e6475; display: flex; font-size: 13px; gap: 16px; justify-content: space-between; padding: 7px 0; }
.sg-cart-pricing-row strong { color: #173e5b; font-size: 14px; white-space: nowrap; }
.sg-cart-pricing-row--total { border-top: 1px solid #cbdce8; color: #003b71; font-size: 15px; font-weight: 800; margin-top: 9px; padding-top: 13px; }
.sg-cart-pricing-row--total strong { color: #003b71; font-size: 18px; }
.sg-cart-pricing-note { color: #6c8190; font-size: 11px; line-height: 1.5; margin: 9px 0 0; }
.sg-cart-update-error { background: #fdf0ef; border: 1px solid #efcccc; border-radius: 7px; color: #a63845; margin: 0 24px 22px; padding: 10px 12px; }
.sg-cart-update-error[hidden] { display: none; }
.sg-cart-remove-button.remove { align-items: center; background: #f4e9eb; border-radius: 50%; color: #a63845; display: inline-flex; font-size: 21px; height: 30px; justify-content: center; line-height: 1; text-decoration: none; width: 30px; }
.sg-cart-remove-button.remove:hover,
.sg-cart-remove-button.remove:focus { background: #a63845; color: #fff; outline: 0; }
.sg-cart-actions { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin-top: 24px; }
.sg-cart-outline-button,
.sg-cart-primary-button { align-items: center; border-radius: 5px; display: inline-flex; font-size: 14px; font-weight: 800; gap: 10px; justify-content: center; min-height: 44px; padding: 10px 17px; text-decoration: none; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
.sg-cart-outline-button { background: #fff; border: 1px solid #003b71; color: #003b71; }
.sg-cart-outline-button:hover,
.sg-cart-outline-button:focus { background: #edf4f8; color: #003b71; outline: 0; text-decoration: none; }
.sg-cart-primary-button { background: #003b71; border: 1px solid #003b71; color: #fff; }
.sg-cart-primary-button:hover,
.sg-cart-primary-button:focus { background: #002c54; border-color: #002c54; color: #fff; outline: 0; text-decoration: none; transform: translateY(-1px); }
.sg-cart-quote { align-items: center; background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 10px 24px rgba(7,31,54,.06); display: flex; gap: 28px; justify-content: space-between; margin-left: auto; max-width: 680px; padding: 18px 20px; }
.sg-cart-quote span { color: #2f6aa6; display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sg-cart-quote strong { color: #003b71; display: block; font-size: 19px; margin-top: 3px; }
.sg-cart-quote p { color: #607789; font-size: 13px; margin: 4px 0 0; }
@media (max-width: 767px) {
    .sg-cart-shell { width: calc(100% - 28px); }
    .sg-cart-hero { padding: 29px 0 26px; }
    .sg-cart-main-section { padding: 28px 0 48px; }
    .sg-cart-empty { padding: 38px 22px; }
    .sg-cart-table { min-width: 0; }
    .sg-cart-table thead { display: none; }
    .sg-cart-table tbody tr.sg-cart-row { display: grid; grid-template-columns: 34px 70px 1fr; padding: 13px; }
    .sg-cart-table tbody tr.sg-cart-row td { border: 0; display: block; padding: 5px 0; text-align: left; }
    .sg-cart-remove { grid-column: 1; grid-row: 1; padding-top: 16px !important; }
    .sg-cart-thumbnail { grid-column: 2; grid-row: 1 / span 6; width: auto; }
    .sg-cart-product { grid-column: 3; grid-row: 1; }
    .sg-cart-reference,
    .sg-cart-dimension,
    .sg-cart-quantity,
    .sg-cart-price,
    .sg-cart-line-total { grid-column: 3; width: auto; }
    .sg-cart-pricing { margin: 16px; max-width: none; width: auto; }
    .sg-cart-actions { align-items: stretch; flex-direction: column-reverse; }
    .sg-cart-quote { align-items: flex-start; flex-direction: column; gap: 13px; margin-left: 0; max-width: none; width: 100%; }
    .sg-cart-primary-button,
    .sg-cart-outline-button { width: 100%; }
}

/* Cart and quotation journey: visual wrappers retain the legacy session, AJAX and form workflow. */
.sg-site .sg-cart-section,
.sg-site .sg-quote-section { background: #f3f7fa; }
.sg-site .sg-cart-form,
.sg-site .sg-quote-form {
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-lg);
    box-shadow: var(--sg-shadow-md);
}
.sg-site .sg-cart-form { overflow: hidden; padding: 0; }
.sg-site .sg-cart-table { margin: 0; min-width: 940px; }
.sg-site .sg-cart-table thead { background: #edf4f8; }
.sg-site .sg-cart-table th {
    border-top: 0;
    color: #385064;
    font-family: var(--sg-font-sans);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    padding: 15px 13px;
    text-transform: uppercase;
}
.sg-site .sg-cart-table td { border-top-color: #e6edf2; padding: 15px 13px; }
.sg-site .sg-cart-table .sg-cart-row:hover { background: #f8fbfd; }
.sg-site .sg-cart-table .sg-cart-thumbnail { width: 92px; }
.sg-site .sg-cart-table .sg-cart-thumbnail img {
    background: #f1f6f9;
    border: 1px solid #e3ebf0;
    border-radius: var(--sg-radius-sm);
    height: 66px;
    object-fit: contain;
    padding: 5px;
    width: 66px;
}
.sg-site .sg-cart-table .sg-cart-product a { color: var(--sg-color-ink); font-weight: 800; }
.sg-site .sg-cart-table .sg-cart-product a:hover { color: var(--sg-color-primary); }
.sg-site .sg-cart-reference,
.sg-site .sg-cart-dimension { color: var(--sg-color-muted); font-size: var(--sg-text-sm); }
.sg-site .sg-cart-quantity { width: 130px; }
.sg-site .sg-cart-quantity .quantity { height: auto; }
.sg-site .sg-cart-quantity-input {
    border: 1px solid #c7d8e3;
    border-radius: var(--sg-radius-sm);
    color: var(--sg-color-text);
    font-family: var(--sg-font-sans);
    font-weight: 800;
    min-height: 39px;
    padding: 6px 8px;
    text-align: center;
    width: 76px;
}
.sg-site .sg-cart-quantity-input:focus { border-color: var(--sg-color-primary); box-shadow: var(--sg-focus-ring); outline: 0; }
.sg-site .sg-cart-remove-button.remove {
    background: #fdf0ef;
    color: var(--sg-color-danger);
    font-size: 20px;
    height: 30px;
    line-height: 27px;
    transition: background-color var(--sg-transition), color var(--sg-transition), transform var(--sg-transition);
    width: 30px;
}
.sg-site .sg-cart-remove-button.remove:hover,
.sg-site .sg-cart-remove-button.remove:focus { background: var(--sg-color-danger); color: #fff; outline: 0; transform: scale(1.05); }
.sg-site .sg-cart-actions {
    align-items: stretch;
    display: flex;
    gap: var(--sg-space-4);
    justify-content: space-between;
    margin-top: 26px;
}
.sg-site .sg-cart-actions .cart_product,
.sg-site .sg-cart-actions .cart_devis { float: none; width: auto; }
.sg-site .sg-cart-continue { align-self: center; }
.sg-site .sg-cart-actions .checkout-button { margin: 0; }
.sg-site .sg-cart-actions .sg-button { display: inline-flex; gap: 8px; }
.sg-site .sg-cart-quote {
    align-items: center;
    background: #fff;
    border: 1px solid var(--sg-color-border);
    border-radius: var(--sg-radius-md);
    box-shadow: var(--sg-shadow-sm);
    display: flex;
    gap: var(--sg-space-5);
    justify-content: space-between;
    padding: 16px 18px;
}
.sg-site .sg-cart-quote-copy { display: grid; gap: 3px; }
.sg-site .sg-cart-quote-copy span { color: var(--sg-color-primary); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.sg-site .sg-cart-quote-copy strong { color: var(--sg-color-ink); font-family: var(--sg-font-heading); font-size: 21px; font-weight: 400; }
.sg-site .sg-cart-empty {
    align-items: center;
    background: #fff;
    border: 1px dashed #b9ccd9;
    border-radius: var(--sg-radius-lg);
    color: var(--sg-color-text);
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 52px 24px;
    text-align: center;
}
.sg-site .sg-cart-empty > i { color: var(--sg-color-primary); font-size: 34px; margin-bottom: 12px; }
.sg-site .sg-cart-empty h3 { color: var(--sg-color-ink); font-family: var(--sg-font-heading); margin: 0 0 7px; }
.sg-site .sg-cart-empty p { color: var(--sg-color-muted); margin-bottom: 19px; }
.sg-site .sg-cart-empty .checkout-button { display: inline-flex; margin: 0; }

.sg-site .sg-quote-form { margin: 0; padding: 0; }
.sg-site .sg-quote-intro {
    background: #edf5f9;
    border-bottom: 1px solid #d8e6ee;
    color: #385064;
    font-size: var(--sg-text-sm);
    padding: 14px 25px;
}
.sg-site .sg-quote-intro p { margin: 0; }
.sg-site .sg-quote-customer,
.sg-site .sg-quote-aside { padding-bottom: 25px; padding-top: 25px; }
.sg-site .sg-quote-customer { border-right: 1px solid #e3ebf0; }
.sg-site .sg-quote-panel { padding: 0 20px; }
.sg-site .sg-quote-panel h3,
.sg-site .sg-quote-selection h3 {
    color: var(--sg-color-ink);
    font-family: var(--sg-font-heading);
    font-size: 25px;
    margin: 0 0 18px;
}
.sg-site .sg-quote-field { margin-bottom: 14px; padding: 0; }
.sg-site .sg-quote-field label { display: block; margin-bottom: 6px; }
.sg-site .sg-quote-form .checkout-form input,
.sg-site .sg-quote-form .checkout-form select,
.sg-site .sg-quote-form .checkout-form textarea {
    border: 1px solid #cbd9e3;
    border-radius: var(--sg-radius-sm);
    color: var(--sg-color-text);
    font-family: var(--sg-font-sans);
    min-height: 43px;
    padding: 10px 12px;
    width: 100%;
}
.sg-site .sg-quote-form .checkout-form textarea { min-height: 148px; resize: vertical; }
.sg-site .sg-quote-form .checkout-form input:focus,
.sg-site .sg-quote-form .checkout-form select:focus,
.sg-site .sg-quote-form .checkout-form textarea:focus {
    border-color: var(--sg-color-primary);
    box-shadow: var(--sg-focus-ring);
    outline: 0;
}
.sg-site .sg-quote-form .checkout-form input:invalid:not(:placeholder-shown),
.sg-site .sg-quote-form .checkout-form select:invalid { border-color: var(--sg-color-danger); }
.sg-site .sg-quote-selection {
    background: #f7fafc;
    border: 1px solid #dbe7ed;
    border-radius: var(--sg-radius-md);
    margin: 0 20px 22px;
    padding: 18px;
}
.sg-site .sg-quote-selection-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.sg-site .sg-quote-selection-heading > div > span { color: var(--sg-color-primary); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sg-site .sg-quote-selection-heading h3 { font-size: 23px; margin: 2px 0 12px; }
.sg-site .sg-quote-edit-selection { color: var(--sg-color-primary); font-size: var(--sg-text-sm); font-weight: 800; white-space: nowrap; }
.sg-site .sg-quote-edit-selection:hover { color: var(--sg-color-primary-hover); text-decoration: underline; }
.sg-site .sg-quote-selection-list { list-style: none; margin: 0; padding: 0; }
.sg-site .sg-quote-selection-list li {
    border-top: 1px solid #dce7ed;
    display: grid;
    gap: 4px;
    padding: 12px 0;
}
.sg-site .sg-quote-selection-list li:last-child { padding-bottom: 0; }
.sg-site .sg-quote-selection-name { color: var(--sg-color-text); font-size: var(--sg-text-sm); font-weight: 800; }
.sg-site .sg-quote-selection-meta { color: var(--sg-color-muted); font-size: 12px; }
.sg-site .sg-quote-selection-meta b { color: var(--sg-color-primary); font-weight: 800; margin-left: 7px; }
.sg-site .sg-quote-actions {
    align-items: center;
    border-top: 1px solid #e3ebf0;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin: 0;
    padding: 20px 25px;
}
.sg-site .sg-quote-actions .sg-button { display: inline-flex; gap: 8px; }
.sg-site .sg-quote-actions button.sg-button { min-width: 200px; }

@media (max-width: 991px) {
    .sg-site .sg-cart-table { min-width: 0; }
    .sg-site .sg-cart-table thead { display: none; }
    .sg-site .sg-cart-table tbody tr.sg-cart-row { display: grid; grid-template-columns: 42px 86px 1fr; padding: 14px; }
    .sg-site .sg-cart-table tr.sg-cart-row td { border: 0; display: block; padding: 5px 0; text-align: left; }
    .sg-site .sg-cart-table .sg-cart-remove { grid-column: 1; grid-row: 1; padding-top: 19px; }
    .sg-site .sg-cart-table .sg-cart-thumbnail { display: block !important; grid-column: 2; grid-row: 1 / span 3; width: auto; }
    .sg-site .sg-cart-table .sg-cart-product { grid-column: 3; grid-row: 1; }
    .sg-site .sg-cart-table .sg-cart-reference,
    .sg-site .sg-cart-table .sg-cart-dimension,
    .sg-site .sg-cart-table .sg-cart-quantity,
    .sg-site .sg-cart-table .sg-cart-price,
    .sg-site .sg-cart-table .sg-cart-line-total { grid-column: 3; }
    .sg-site .sg-cart-table .sg-cart-price,
    .sg-site .sg-cart-table .sg-cart-line-total { min-width: 0; text-align: left; }
    .sg-site .sg-cart-table tr.cart_item td:not(.product-remove)::before { content: none; }
    .sg-site .sg-cart-table tr.cart_item td.sg-cart-price::before,
    .sg-site .sg-cart-table tr.cart_item td.sg-cart-line-total::before { color: #607789; content: attr(data-title); display: inline-block; font-size: 12px; font-weight: 700; margin-right: 9px; }
    .sg-site .sg-cart-actions { align-items: stretch; flex-direction: column-reverse; }
    .sg-site .sg-cart-continue { align-self: flex-start; }
    .sg-site .sg-cart-quote { width: 100%; }
    .sg-site .sg-quote-customer { border-bottom: 1px solid #e3ebf0; border-right: 0; }
}
@media (max-width: 575px) {
    .sg-site .sg-cart-section,
    .sg-site .sg-quote-section { padding-bottom: 45px; padding-top: 45px; }
    .sg-site .sg-cart-table tbody tr.sg-cart-row { grid-template-columns: 34px 70px 1fr; padding: 12px; }
    .sg-site .sg-cart-table .sg-cart-thumbnail img { height: 58px; width: 58px; }
    .sg-site .sg-cart-remove { padding-top: 14px !important; }
    .sg-site .sg-cart-quote { align-items: flex-start; flex-direction: column; gap: 13px; }
    .sg-site .sg-cart-quote .proceed-to-checkout,
    .sg-site .sg-cart-quote .checkout-button { width: 100%; }
    .sg-site .sg-cart-continue { align-self: stretch; }
    .sg-site .sg-cart-continue .checkout-button { display: flex; width: 100%; }
    .sg-site .sg-quote-intro { padding: 13px 18px; }
    .sg-site .sg-quote-customer,
    .sg-site .sg-quote-aside { padding-bottom: 19px; padding-top: 19px; }
    .sg-site .sg-quote-panel { padding: 0 18px; }
    .sg-site .sg-quote-selection { margin-left: 18px; margin-right: 18px; padding: 15px; }
    .sg-site .sg-quote-selection-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
    .sg-site .sg-quote-actions { align-items: stretch; flex-direction: column-reverse; padding: 18px; }
    .sg-site .sg-quote-actions .sg-button,
    .sg-site .sg-quote-actions button.sg-button { justify-content: center; width: 100%; }
}

/* Homepage composition follows the approved preview, with dynamic CakePHP cells. */
.sg-homepage .sg-home-shell { width: min(1540px, calc(100% - 48px)); margin-left: auto; margin-right: auto; }
.sg-homepage .sg-home { overflow: visible; }
.sg-homepage .sg-home-eyebrow { color: var(--sg-color-primary-hover); font-size: 11px; font-weight: 800; letter-spacing: .15em; margin: 0 0 12px; text-transform: uppercase; }
.sg-homepage .sg-home-section { padding-top: 82px; padding-bottom: 82px; }
.sg-homepage #sg-home-categories,
.sg-homepage #sg-home-products { scroll-margin-top: 150px; }
.sg-homepage .sg-home-section-heading { align-items: flex-end; display: flex; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.sg-homepage .sg-home-section-heading h2 { color: var(--sg-color-ink); font-family: var(--sg-font-heading); font-size: 32px; letter-spacing: -.025em; margin: 0; }

/* Desktop header: use the existing search trigger, cart ID, quote route and database menu. */
@media (min-width: 1200px) {
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay .ttm-topbar-wrapper { padding-bottom: 0; }
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay #ttm-stickable-header-w { position: relative; top: auto; }
    .sg-homepage #site-header-menu .site-header-menu-inner > .container { max-width: 1180px; padding-left: 0; padding-right: 0; }
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay .site-header-main {
        background: transparent;
        box-shadow: none;
        border: 0;
        display: grid;
        grid-template-columns: 250px minmax(0, 1fr);
        grid-template-rows: 92px 54px;
        align-items: center;
    }
    .sg-homepage #site-header-menu .site-branding { float: none; grid-column: 1; grid-row: 1; height: auto; line-height: 1 !important; padding: 0; }
    .sg-homepage #site-header-menu .site-branding #logo-img { max-height: 61px; }
    .sg-homepage #site-header-menu #site-navigation { display: contents; height: auto; line-height: 1 !important; padding: 0; }
    .sg-homepage #site-header-menu .sg-header-actions { float: none; grid-column: 2; grid-row: 1; height: auto; line-height: 1 !important; justify-content: flex-end; gap: 16px; width: 100%; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-icon,
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link { float: none; margin: 0; height: auto; line-height: 1 !important; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link { flex: 1; order: -1; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a {
        align-items: center;
        background: #fff;
        border: 1px solid var(--sg-color-border);
        border-radius: 7px;
        box-shadow: 0 4px 12px rgba(13,44,71,.05);
        color: var(--sg-color-primary);
        display: flex;
        flex-direction: row-reverse;
        font-size: 15px;
        height: 48px;
        justify-content: space-between;
        line-height: 1 !important;
        padding: 0 0 0 16px;
        text-align: left;
        width: 100%;
    }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a .sg-header-action-label { color: var(--sg-color-muted); display: inline; font-size: 14px; font-weight: 400; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a i { align-items: center; align-self: stretch; background: var(--sg-color-primary); color: #fff; display: flex; justify-content: center; min-width: 64px; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a:hover { border-color: var(--sg-color-primary); }
    .sg-homepage #site-header-menu .sg-header-actions .sg-header-quote { height: 45px; white-space: nowrap; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-cart-link a { height: 45px; line-height: 1 !important; width: 44px; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-icon .number-cart { bottom: 30px; left: 27px; }
    .sg-homepage #site-header-menu #menu { border-top: 1px solid var(--sg-color-border); float: none; grid-column: 1 / -1; grid-row: 2; height: 54px; line-height: 1; position: relative; width: 100%; }
    .sg-homepage #site-header-menu #menu > ul.dropdown { align-items: center; display: flex; height: 54px; justify-content: space-between; margin: 0; width: 100%; }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li { float: none; height: 54px; }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li > a,
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu #site-navigation .menu > ul > li > a {
        align-items: center; display: flex; height: 54px; line-height: 1 !important; margin: 0; padding: 0 18px;
    }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li:first-child > a { padding-left: 0; }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li.has-submenu > a { color: var(--sg-color-primary); }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li > a:before { top: 48px; }
    .sg-homepage #site-header-menu #menu > ul.dropdown > li:hover > a:before { top: 48px; }
    .sg-homepage #site-header-menu .ttm-menu-toggle { display: none; }
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu .ttm-stickable-header.fixed-header .site-branding,
    .sg-homepage .ttm-header-style-classic-box.ttm-header-overlay #site-header-menu .ttm-stickable-header.fixed-header .ttm-header-icons { height: auto !important; line-height: 1 !important; }
}

.sg-homepage .sg-home-hero {
    --sg-home-hero-image: none;
    align-items: stretch;
    background: #fff;
    border-radius: var(--sg-radius-lg);
    box-shadow: 0 18px 45px rgba(7,31,54,.12);
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    margin-top: 30px;
    min-height: 475px;
    overflow: hidden;
}
.sg-homepage .sg-home-hero-copy {
    background: linear-gradient(108deg, #fff 0%, #fff 51%, #f1f8fc 100%);
    box-shadow: none;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    justify-content: center;
    overflow: hidden;
    padding: 60px 64px;
    position: relative;
}
.sg-homepage .sg-home-hero-copy:before {
    background: var(--sg-home-hero-image);
    background-position: right center;
    background-repeat: no-repeat;
    background-size: 205% auto;
    content: "";
    filter: blur(24px) saturate(108%);
    height: 126%;
    opacity: .18;
    pointer-events: none;
    position: absolute;
    right: -16%;
    top: -13%;
    width: 64%;
    z-index: 0;
}
.sg-homepage .sg-home-hero-copy:after {
    display: none;
}
.sg-homepage .sg-home-hero-copy > * { position: relative; z-index: 1; }
.sg-homepage .sg-home-hero h1 { color: var(--sg-color-ink); font-family: var(--sg-font-sans); font-size: clamp(36px, 4vw, 57px); font-weight: 800; letter-spacing: -.045em; line-height: 1.04; margin: 0; }
.sg-homepage .sg-home-hero h1 em { color: var(--sg-color-primary); display: block; font-family: Georgia, serif; font-weight: 400; }
.sg-homepage .sg-home-hero-text { color: var(--sg-color-muted); font-size: 16px; line-height: 1.6; margin: 24px 0 30px; max-width: 510px; }
.sg-homepage .sg-home-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.sg-homepage .sg-home-hero-actions .sg-button { gap: 18px; }
.sg-homepage .sg-home-hero-primary-cta { animation: sg-home-cta-attention 4.2s cubic-bezier(.45,.05,.55,.95) infinite; background: #fff; border-color: var(--sg-color-primary); color: var(--sg-color-primary); }
.sg-homepage .sg-home-hero-primary-cta:hover,
.sg-homepage .sg-home-hero-primary-cta:focus { animation-play-state: paused; background: var(--sg-color-primary); border-color: var(--sg-color-primary); color: #fff; }
@keyframes sg-home-cta-attention {
    0%, 18%, 100% { background: #fff; border-color: var(--sg-color-primary); box-shadow: 0 0 0 0 rgba(0,59,113,.2); color: var(--sg-color-primary); transform: translateY(0); }
    50%, 68% { background: var(--sg-color-primary); border-color: var(--sg-color-primary); box-shadow: 0 0 0 7px rgba(0,59,113,0); color: #fff; transform: translateY(-1px); }
}
.sg-homepage .sg-home-hero-visual { background: linear-gradient(135deg,#ddecf7,#f6fafc); margin-left: -1px; min-height: 380px; overflow: hidden; position: relative; }
.sg-homepage .sg-home-slider__bridge {
    background-image: var(--sg-home-hero-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    filter: blur(15px) saturate(110%);
    inset: 0;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.88) 12%, rgba(0,0,0,.46) 25%, transparent 44%);
    mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.88) 12%, rgba(0,0,0,.46) 25%, transparent 44%);
    opacity: .82;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}
.sg-homepage .sg-home-hero-ring { border: 75px solid rgba(0,59,113,.1); border-radius: 50%; height: 500px; position: absolute; right: -210px; top: -140px; width: 500px; }
.sg-homepage .sg-home-slider { inset: 0; position: absolute; z-index: 2; }
.sg-homepage .sg-home-slider__viewport { height: 100%; overflow: hidden; }
.sg-homepage .sg-home-slider__track { display: block; height: 100%; overflow: hidden; position: relative; width: 100%; }
.sg-homepage .sg-home-slider__slide { display: none; height: 100%; inset: 0; margin: 0; min-width: 0; overflow: hidden; pointer-events: none; position: absolute; }
.sg-homepage .sg-home-slider__slide.is-active { display: block; pointer-events: auto; z-index: 1; }
.sg-homepage .sg-home-slider__slide a { color: inherit; display: block; height: 100%; text-decoration: none; }
.sg-homepage .sg-home-slider__slide img { height: 100%; object-fit: cover; width: 100%; }
.sg-homepage .sg-home-slider__overlay { background: linear-gradient(0deg, rgba(0,34,67,.92), rgba(0,45,87,.56) 38%, rgba(0,45,87,0) 74%); bottom: 0; color: #fff; left: 0; padding: 64px 28px 28px; position: absolute; right: 0; z-index: 2; }
.sg-homepage .sg-home-slider__overlay strong { display: block; font-size: 17px; font-weight: 800; line-height: 1.3; }
.sg-homepage .sg-home-slider__overlay small { display: block; font-size: 13px; line-height: 1.45; margin-top: 5px; max-width: 360px; }
.sg-homepage .sg-home-slider__controls { align-items: center; bottom: 22px; display: flex; gap: 7px; position: absolute; right: 25px; z-index: 5; }
.sg-homepage .sg-home-slider__dot { background: rgba(255,255,255,.62); border: 0; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.25); cursor: pointer; height: 8px; padding: 0; transition: background-color .18s ease, transform .18s ease; width: 8px; }
.sg-homepage .sg-home-slider__dot.is-active { background: #fff; transform: scale(1.35); }
.sg-homepage .sg-home-slider__dot:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.48); outline: 0; }
@media (prefers-reduced-motion: reduce) {
    .sg-homepage .sg-home-hero-primary-cta { animation: none; }
}

.sg-homepage .sg-home-service-strip { background: rgba(255,255,255,.84); border: 1px solid rgba(255,255,255,.95); border-radius: 12px; box-shadow: 0 12px 30px rgba(24,71,110,.08), inset 0 1px 0 rgba(255,255,255,.85); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 22px; overflow: hidden; }
.sg-homepage .sg-home-service-strip a { align-items: center; border-right: 1px solid #d7e3ed; color: var(--sg-color-text); display: flex; gap: 17px; min-height: 78px; padding: 14px 82px; }
.sg-homepage .sg-home-service-strip a:last-child { border-right: 0; }
.sg-homepage .sg-home-service-strip a:hover { background: rgba(235,245,252,.72); text-decoration: none; }
.sg-homepage .sg-home-service-strip i { align-items: center; background: #eaf3fb; border-radius: 50%; color: var(--sg-color-primary); display: inline-flex; flex: 0 0 56px; font-size: 22px; height: 56px; justify-content: center; min-width: 0; text-align: center; }
.sg-homepage .sg-home-service-strip strong { display: block; font-size: 17px; line-height: 1.2; }
.sg-homepage .sg-home-service-strip small { color: #5476a7; display: block; font-size: 14px; margin-top: 5px; }
.sg-homepage .sg-home-service-strip b { color: var(--sg-color-primary); font-size: 27px; font-weight: 400; margin-left: auto; }
.sg-homepage .sg-home-section-heading--catalogue,
.sg-homepage .sg-home-section-heading--products { align-items: end; display: flex; justify-content: space-between; }
.sg-homepage .sg-home-section-heading--catalogue .sg-home-eyebrow,
.sg-homepage .sg-home-section-heading--products .sg-home-eyebrow { display: none; }
.sg-homepage .sg-home-section-heading--catalogue h2,
.sg-homepage .sg-home-section-heading--products h2 { padding-bottom: 11px; position: relative; }
.sg-homepage .sg-home-section-heading--catalogue h2::after,
.sg-homepage .sg-home-section-heading--products h2::after { background: var(--sg-color-primary); bottom: 0; content: ''; height: 3px; left: 0; position: absolute; width: 47px; }
.sg-homepage #sg-home-categories { padding-bottom: 26px; padding-top: 28px; }
.sg-homepage #sg-home-products { padding-bottom: 42px; padding-top: 16px; }
.sg-homepage .sg-home-section-heading--catalogue > a,
.sg-homepage .sg-home-section-heading--products > a { align-items: center; color: var(--sg-color-primary); display: inline-flex; font-size: 13px; font-weight: 800; gap: 8px; text-decoration: none; }
.sg-homepage .sg-home-section-heading--catalogue > a:hover,
.sg-homepage .sg-home-section-heading--catalogue > a:focus,
.sg-homepage .sg-home-section-heading--products > a:hover,
.sg-homepage .sg-home-section-heading--products > a:focus { color: #0f5d9f; outline: 0; text-decoration: underline; }
.sg-homepage .sg-home-category-grid { display: flex; gap: 16px; overflow-x: auto; overflow-y: hidden; padding: 8px 1px 18px; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-color: rgba(0,59,113,.65) rgba(0,59,113,.10); scrollbar-width: thin; }
.sg-homepage .sg-home-category-grid::-webkit-scrollbar { height: 10px; }
.sg-homepage .sg-home-category-grid::-webkit-scrollbar-track { background: rgba(0,59,113,.10); border-radius: 99px; }
.sg-homepage .sg-home-category-grid::-webkit-scrollbar-thumb { background: linear-gradient(90deg, #0f5d9f, var(--sg-color-primary)); border: 2px solid #eef5f9; border-radius: 99px; }
.sg-homepage .sg-home-category-grid:focus { outline: 2px solid rgba(0,59,113,.35); outline-offset: 6px; }
.sg-homepage .sg-home-category-card { background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(242,248,252,.68)); border: 1px solid rgba(255,255,255,.92); border-radius: 8px; box-shadow: 0 9px 22px rgba(20,51,81,.10), inset 0 1px 0 rgba(255,255,255,.9); color: var(--sg-color-ink); display: flex; flex: 0 0 clamp(260px, calc((100% - 64px) / 5), 330px); flex-direction: column; min-height: 222px; overflow: hidden; position: relative; scroll-snap-align: start; transition: box-shadow var(--sg-transition), transform var(--sg-transition); }
.sg-homepage .sg-home-category-card::before { background: linear-gradient(115deg, rgba(255,255,255,.42), transparent 42%); content: ''; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.sg-homepage .sg-home-category-card:hover { box-shadow: 0 22px 38px rgba(20,51,81,.19), inset 0 1px 0 rgba(255,255,255,.95); color: var(--sg-color-ink); text-decoration: none; transform: translateY(-7px); }
.sg-homepage .sg-home-category-media { align-items: center; background: #dcecf6; display: flex; height: 175px; justify-content: center; overflow: hidden; }
.sg-homepage .sg-home-category-media img { height: 100%; object-fit: cover; transition: transform .45s ease; width: 100%; }
.sg-homepage .sg-home-category-card:hover .sg-home-category-media img { transform: scale(1.065); }
.sg-homepage .sg-home-category-media > i { color: var(--sg-color-primary); font-size: 48px; }
.sg-homepage .sg-home-category-copy { align-items: center; backdrop-filter: blur(14px) saturate(135%); -webkit-backdrop-filter: blur(14px) saturate(135%); background: rgba(255,255,255,.72); display: flex; flex: 1; gap: 12px; justify-content: space-between; padding: 14px 17px; position: relative; z-index: 2; }
.sg-homepage .sg-home-category-copy strong { font-size: 16px; line-height: 1.22; }
.sg-homepage .sg-home-category-copy i { color: var(--sg-color-primary); font-size: 18px; }

.sg-homepage .sg-home-feature-band { background: #003b71; color: #fff; margin-top: 0; overflow: hidden; position: relative; }
.sg-homepage .sg-home-feature-band::after { display: none; }
.sg-homepage .sg-home-feature-content { align-items: stretch; display: grid; gap: 0; grid-template-columns: 1fr 1fr; min-height: 244px; padding: 0; position: relative; width: 100%; z-index: 1; }
.sg-homepage .sg-home-feature-copy { background: linear-gradient(112deg, #002c59, #004d8f); clip-path: polygon(0 0, calc(100% - 76px) 0, 100% 100%, 0 100%); margin-right: -76px; padding: 35px max(52px, calc((100vw - 1540px) / 2 + 12px)) 30px max(52px, calc((100vw - 1540px) / 2 + 12px)); position: relative; z-index: 2; }
.sg-homepage .sg-home-feature-content h2 { color: #fff; font-family: var(--sg-font-sans); font-size: 34px; font-weight: 800; letter-spacing: -.035em; line-height: 1.09; margin: 0 0 11px; max-width: 660px; }
.sg-homepage .sg-home-feature-content p { color: #d3e2ef; font-size: 16px; margin: 0 0 20px; max-width: 530px; }
.sg-homepage .sg-home-feature-media { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: hidden; padding: 0; position: relative; }
.sg-homepage .sg-home-feature-media::after { background: linear-gradient(90deg, rgba(0,45,89,.24), transparent 24%); content: ''; inset: 0; pointer-events: none; position: absolute; }
.sg-homepage .sg-home-feature-media img { border: 0; border-radius: 0; box-shadow: none; display: block; height: 244px; object-fit: cover; width: 100%; }
.sg-homepage .sg-home-feature-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.sg-homepage .sg-button--feature-primary,
.sg-homepage .sg-button--feature-outline { align-items: center; display: inline-flex; gap: 10px; min-height: 48px; }
.sg-homepage .sg-button--feature-primary { background: #f3bd42; color: #132c42; }
.sg-homepage .sg-button--feature-primary:hover,
.sg-homepage .sg-button--feature-primary:focus { background: #ffd56e; color: #132c42; }
.sg-homepage .sg-button--feature-outline { background: transparent; border: 1px solid rgba(255,255,255,.76); color: #fff; }
.sg-homepage .sg-button--feature-outline:hover,
.sg-homepage .sg-button--feature-outline:focus { background: rgba(255,255,255,.12); color: #fff; }
.sg-homepage .sg-home-product-grid { display: grid; gap: 15px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sg-homepage .sg-home-product-card { background: rgba(255,255,255,.87); border: 1px solid #d9e6f0; border-radius: 10px; display: grid; grid-template-columns: 43% 57%; min-height: 178px; min-width: 0; overflow: hidden; position: relative; transition: box-shadow var(--sg-transition), transform var(--sg-transition); }
.sg-homepage .sg-home-product-card:hover { box-shadow: var(--sg-shadow-md); transform: translateY(-4px); }
.sg-homepage .sg-home-product-image { align-items: center; background: linear-gradient(135deg,#f4f7f8,#e9f1f5); display: flex; height: 100%; justify-content: center; padding: 20px; }
.sg-homepage .sg-home-product-image img { max-height: 136px; max-width: 100%; object-fit: contain; }
.sg-homepage .sg-home-product-image > i { color: var(--sg-color-primary); font-size: 34px; }
.sg-homepage .sg-home-product-info { display: flex; flex: 1; flex-direction: column; justify-content: center; padding: 26px 15px 14px 8px; }
.sg-homepage .sg-home-product-stock { align-self: flex-start; border-radius: 14px; font-size: 10px; font-weight: 800; left: 13px; line-height: 1; padding: 6px 9px; position: absolute; top: 12px; z-index: 1; }
.sg-homepage .sg-home-product-stock--in_stock { background: #e5f5ea; color: #18763b; }
.sg-homepage .sg-home-product-stock--on_order { background: #fff3d8; color: #895b00; }
.sg-homepage .sg-home-product-stock--out_of_stock { background: #fde6e7; color: #b12834; }
.sg-homepage .sg-home-product-info h3 { font-family: var(--sg-font-sans); font-size: 14px; line-height: 1.25; margin: 0; min-height: 0; }
.sg-homepage .sg-home-product-info h3 a { color: var(--sg-color-ink); }
.sg-homepage .sg-home-product-reference { color: #7890b1; font-size: 12px; margin: 6px 0 0; }
.sg-homepage .sg-home-product-footer { align-items: center; display: flex; justify-content: space-between; margin-top: 9px; padding-top: 0; }
.sg-homepage .sg-home-product-footer > strong { color: var(--sg-color-primary); font-size: 18px; }
.sg-homepage .sg-home-product-action { align-items: center; background: transparent; border-radius: 4px; color: var(--sg-color-primary); display: inline-flex; height: 28px; justify-content: center; width: 28px; }
.sg-homepage .sg-home-product-action:hover,
.sg-homepage .sg-home-product-action:focus { background: #0f5d9f; color: #fff; outline: 0; }
.sg-homepage .sg-home-cms { background: #fff; border: 1px solid var(--sg-color-border); border-radius: var(--sg-radius-lg); margin-top: 5px; margin-bottom: 60px; padding: 32px 40px; }
.sg-homepage .sg-home-cms h1,
.sg-homepage .sg-home-cms h2,
.sg-homepage .sg-home-cms h3 { color: var(--sg-color-ink); font-family: var(--sg-font-heading); }
.sg-homepage .sg-home-cms p { color: var(--sg-color-muted); line-height: 1.7; }
.sg-homepage .sg-home-cms { background: transparent; border: 0; padding: 0; }
.sg-homepage .sg-home-about { background: #fff; border: 1px solid var(--sg-color-border); border-radius: var(--sg-radius-lg); box-shadow: var(--sg-shadow-sm); overflow: hidden; }
.sg-homepage .sg-home-about-link { align-items: stretch; color: inherit; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr); min-height: 252px; text-decoration: none; }
.sg-homepage .sg-home-about-link:hover,
.sg-homepage .sg-home-about-link:focus { color: inherit; text-decoration: none; }
.sg-homepage .sg-home-about-link:focus { outline: 3px solid rgba(227,173,49,.9); outline-offset: -3px; }
.sg-homepage .sg-home-about-copy { align-self: center; padding: 42px 50px; }
.sg-homepage .sg-home-about-copy > h2 { color: var(--sg-color-ink); font-family: var(--sg-font-sans); font-size: clamp(27px, 3vw, 39px); font-weight: 800; letter-spacing: -.035em; line-height: 1.16; margin: 0; max-width: 650px; }
.sg-homepage .sg-home-about-summary { color: var(--sg-color-muted); font-size: 15px; line-height: 1.65; margin: 16px 0 0; max-width: 570px; }
.sg-homepage .sg-home-about-discover { align-items: center; color: var(--sg-color-primary); display: inline-flex; font-size: 14px; font-weight: 800; gap: 11px; margin-top: 23px; }
.sg-homepage .sg-home-about-discover i { transition: transform .2s ease; }
.sg-homepage .sg-home-about-link:hover .sg-home-about-discover i,
.sg-homepage .sg-home-about-link:focus .sg-home-about-discover i { transform: translateX(5px); }
.sg-homepage .sg-home-about-values { background: #0b4f86; color: #fff; padding: 31px 30px; position: relative; }
.sg-homepage .sg-home-about-values:before { background: radial-gradient(circle at 100% 0, rgba(118,199,239,.32), rgba(118,199,239,0) 56%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.sg-homepage .sg-home-about-values > * { position: relative; }
.sg-homepage .sg-home-about-values > p { color: #c7e8fb; font-size: 11px; font-weight: 800; letter-spacing: .16em; margin: 0 0 16px; }
.sg-homepage .sg-home-about-values ul { list-style: none; margin: 0; padding: 0; }
.sg-homepage .sg-home-about-values li { align-items: center; border-top: 1px solid rgba(255,255,255,.2); display: flex; gap: 12px; padding: 12px 0; }
.sg-homepage .sg-home-about-values li:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.sg-homepage .sg-home-about-values i { align-items: center; background: rgba(255,255,255,.12); border-radius: 50%; color: #fff; display: inline-flex; font-size: 16px; height: 32px; justify-content: center; margin: 0; width: 32px; }
.sg-homepage .sg-home-about-values strong { color: #fff; display: block; font-size: 14px; line-height: 1.3; }
.sg-homepage .sg-home-about-values small { color: #d6ecf9; display: block; font-size: 12px; line-height: 1.45; margin-top: 2px; }
.sg-homepage .sg-home-news { background: #edf4f8; }
.sg-homepage .sg-gallery-heading { background: var(--sg-color-primary); }
.sg-homepage .sg-gallery-grid { background: #f7f9fb; }
.sg-homepage .sg-home .cta-section.style2 { background: #dcecf7; border-radius: var(--sg-radius-lg); margin: 0 auto 82px; max-width: 1180px; width: calc(100% - 40px); }
.sg-homepage .sg-home .cta-section.style2 .featured-title h5,
.sg-homepage .sg-home .cta-section.style2 .featured-title h6 { color: var(--sg-color-ink) !important; text-shadow: none; }
.sg-homepage .sg-home .cta-section.style2 .ttm-btn { border-color: var(--sg-color-primary); color: var(--sg-color-primary); }
.sg-homepage .sg-home-contact-callout { align-items: center; background: linear-gradient(120deg, #003b71, #084f87); border-radius: var(--sg-radius-lg); box-shadow: 0 14px 28px rgba(0,59,113,.16); color: #fff; display: flex; justify-content: space-between; margin: 0 auto 82px; max-width: 1180px; padding: 28px 38px; width: calc(100% - 40px); }
.sg-homepage .sg-home-contact-callout-copy { align-items: center; display: flex; gap: 17px; }
.sg-homepage .sg-home-contact-callout-copy > span { align-items: center; background: rgba(255,255,255,.14); border-radius: 50%; display: flex; font-size: 23px; height: 56px; justify-content: center; width: 56px; }
.sg-homepage .sg-home-contact-callout p { color: #abd5f4; font-size: 11px; font-weight: 800; letter-spacing: .14em; margin: 0 0 4px; }
.sg-homepage .sg-home-contact-callout h2 { color: #fff; font-family: var(--sg-font-sans); font-size: 23px; font-weight: 800; line-height: 1.2; margin: 0 0 5px; }
.sg-homepage .sg-home-contact-callout small { color: #dcecf7; font-size: 13px; line-height: 1.5; }
.sg-homepage .sg-home-contact-callout > a { align-items: center; background: #fff; border-radius: 5px; color: #003b71; display: inline-flex; flex: 0 0 auto; font-size: 13px; font-weight: 800; gap: 10px; margin-left: 25px; padding: 13px 17px; text-decoration: none; }
.sg-homepage .sg-home-contact-callout > a:hover,
.sg-homepage .sg-home-contact-callout > a:focus { background: #e3ad31; color: #172838; outline: 0; }
@media (max-width: 860px) {
    .sg-homepage .sg-home-about-link { grid-template-columns: 1fr; }
    .sg-homepage .sg-home-about-values { padding: 34px 40px; }
    .sg-homepage .sg-home-about-values ul { display: grid; gap: 0 18px; grid-template-columns: repeat(3, 1fr); }
    .sg-homepage .sg-home-about-values li:last-child { border-bottom: 0; }
    .sg-homepage .sg-home-contact-callout { align-items: flex-start; flex-direction: column; gap: 22px; }
    .sg-homepage .sg-home-contact-callout > a { margin-left: 0; }
}
.sg-homepage .footer,
.sg-homepage .footer.ttm-bgcolor-black > .ttm-bg-layer { background: #0b2842; }
.sg-homepage .footer .second-footer-inner { padding-top: 52px; padding-bottom: 52px; }

/* Shared public masthead: the legacy element keeps its routes, modal search,
   cart counter and database-driven menu while following the approved preview. */
.sg-site #masthead { border-top: 3px solid #1c344c; }
.sg-site .sg-public-shell { max-width: 1326px; }
.sg-site .sg-utility-bar,
.sg-site .ttm-topbar-wrapper.sg-utility-bar { display: none; }
.sg-site .sg-utility-bar .ttm-topbar-content { min-height: 34px; }
.sg-site .sg-utility-bar .top-contact > li,
.sg-site .sg-utility-bar .top-contact a { color: #dbe6ee; }
.sg-site .sg-utility-bar .top-contact i { color: #a9d6fa; }
.sg-site .sg-utility-bar .ttm-btn,
.sg-site .sg-utility-bar .ttm-social-links-wrapper { display: none; }
.sg-site #site-header-menu .site-header-menu-inner { background: #fff; border: 0; box-shadow: none; }
.sg-site #site-header-menu .site-header-main { min-height: 160px; }
.sg-site .sg-header-actions { align-items: center; display: flex; gap: 13px; }
.sg-site .sg-header-quote { align-items: center; border: 1px solid var(--sg-color-border); border-radius: 5px; color: var(--sg-color-primary); display: inline-flex; font-size: 12px; font-weight: 800; gap: 7px; min-height: 42px; padding: 0 13px; text-transform: uppercase; }
.sg-site .sg-header-quote:hover { background: var(--sg-color-primary); border-color: var(--sg-color-primary); color: #fff; text-decoration: none; }
.sg-site .sg-header-actions .ttm-header-cart-link a { align-items: center; background: transparent; border: 0; color: var(--sg-color-ink); display: inline-flex; gap: 6px; height: 42px; justify-content: center; position: relative; width: auto; }
.sg-site .sg-header-actions .ttm-header-cart-link a > i { color: var(--sg-color-primary); font-size: 22px; }
.sg-site .sg-header-actions .number-cart { background: #e3ad31; border-radius: 50%; color: #172838; font-size: 10px; font-weight: 800; height: 17px; line-height: 17px; min-width: 17px; padding: 0; position: absolute; right: -6px; text-align: center; top: 0; }
.sg-site .sg-header-actions .ttm-header-search-link > a { align-items: center; background: #fff; border: 1px solid var(--sg-color-border); border-radius: 7px; color: var(--sg-color-primary); display: inline-flex; font-size: 15px; height: 46px; justify-content: space-between; min-width: 280px; padding-left: 15px; }
.sg-site .sg-header-actions .ttm-header-search-link > a i { align-items: center; align-self: stretch; background: var(--sg-color-primary); color: #fff; display: inline-flex; justify-content: center; margin-left: 18px; min-width: 52px; }
.sg-site .sg-header-actions .ttm-header-search-link > a:hover { border-color: var(--sg-color-primary); }
.sg-site .sg-header-actions .sg-header-action-label { color: var(--sg-color-muted); display: inline; font-size: 13px; font-weight: 400; }
.sg-site .sg-category-rail { align-items: center; background: #05447c; color: #fff; display: flex; font-size: 14px; font-weight: 800; gap: 12px; justify-content: center; letter-spacing: 0; min-height: 80px; padding: 0 24px; text-transform: uppercase; }
.sg-site .sg-category-rail:hover { background: var(--sg-color-primary-hover); color: #fff; text-decoration: none; }

/* Homepage editorial content is retained as dynamic content, but no longer
   falls back to the older theme's oversized section treatment. */
.sg-homepage .sg-home-news { background: #eef5f9; padding: 78px 0 68px; }
.sg-homepage .sg-home-news .section-title,
.sg-homepage .sg-gallery-heading .section-title { margin-bottom: 28px; }
.sg-homepage .sg-home-news .section-title h4,
.sg-homepage .sg-gallery-heading .section-title h4 { color: var(--sg-color-primary); font-size: 11px; font-weight: 800; letter-spacing: .15em; margin-bottom: 10px; }
.sg-homepage .sg-home-news .section-title h2.title,
.sg-homepage .sg-gallery-heading .section-title h2.title { color: var(--sg-color-ink); font-size: 32px; letter-spacing: -.025em; }
.sg-homepage .sg-home-news .title-img,
.sg-homepage .sg-gallery-heading .title-img { display: none; }
.sg-homepage .sg-home-news .event-slide { margin: 0 -8px; }
.sg-homepage .sg-home-news .sg-news-card { background: #fff; border: 1px solid var(--sg-color-border); border-radius: var(--sg-radius-md); box-shadow: var(--sg-shadow-sm); margin: 0 8px 22px; overflow: hidden; }
.sg-homepage .sg-home-news .sg-news-card .featured-thumbnail img { height: 220px; object-fit: cover; width: 100%; }
.sg-homepage .sg-home-news .sg-news-card .featured-content { padding: 22px; }
.sg-homepage .sg-home-news .sg-news-card .featured-title { color: var(--sg-color-ink); font-size: 16px; font-weight: 800; min-height: 42px; }
.sg-homepage .sg-home-news .sg-news-card .ttm-btn { background: var(--sg-color-primary); border-color: var(--sg-color-primary); border-radius: 5px; color: #fff; margin-top: 16px; }
.sg-homepage .sg-gallery-heading { background: var(--sg-color-primary); padding: 66px 0 45px; }
.sg-homepage .sg-gallery-heading .section-title h4 { color: #a9d6fa; }
.sg-homepage .sg-gallery-heading .section-title h2.title { color: #fff; }
.sg-homepage .sg-gallery-grid { background: #f7f9fb; padding: 10px 0 70px; }
.sg-homepage .sg-gallery-grid .sg-gallery-card { border-radius: 8px; overflow: hidden; }
.sg-homepage .sg-gallery-grid .sg-gallery-card .featured-thumbnail img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.sg-homepage .sg-gallery-grid .ttm-btn { background: var(--sg-color-primary); border-color: var(--sg-color-primary); border-radius: 5px; }

@media (min-width: 992px) {
    .sg-site #site-header-menu .site-header-main { display: grid; grid-template-columns: 258px minmax(0, 1fr); grid-template-rows: 80px 80px; }
    .sg-site #site-header-menu .site-branding { align-self: center; float: none; grid-column: 1; grid-row: 1; height: auto; line-height: 1 !important; padding: 0; }
    .sg-site #site-header-menu .site-branding #logo-img { max-height: 58px; max-width: 252px; }
    .sg-site #site-header-menu #site-navigation { display: contents; }
    .sg-site #site-header-menu .sg-header-actions { float: none; grid-column: 2; grid-row: 1; height: auto; justify-content: flex-end; line-height: 1 !important; width: 100%; }
    .sg-site #site-header-menu .sg-header-actions .ttm-header-search-link { flex: 1; order: -1; }
    .sg-site #site-header-menu .sg-header-actions .ttm-header-search-link > a { min-width: 0; width: 100%; }
    .sg-site #site-header-menu .ttm-menu-toggle { display: none; }
    .sg-site #site-header-menu .sg-category-rail { grid-column: 1; grid-row: 2; }
    .sg-site #site-header-menu #menu { border-bottom: 1px solid var(--sg-color-border); border-top: 1px solid var(--sg-color-border); float: none; grid-column: 2; grid-row: 2; height: 80px; line-height: 1; width: 100%; }
    .sg-site #site-header-menu #menu > ul.dropdown { align-items: center; display: flex; height: 78px; justify-content: space-around; margin: 0; width: 100%; }
    .sg-site #site-header-menu #menu > ul.dropdown > li { float: none; height: 78px; }
    .sg-site #site-header-menu #menu > ul.dropdown > li > a { align-items: center; color: #101010; display: flex; font-size: 14px; font-weight: 700; height: 78px; line-height: 1 !important; margin: 0; padding: 0 18px; }
    .sg-site #site-header-menu #menu > ul.dropdown > li:hover > a,
    .sg-site #site-header-menu #menu > ul.dropdown > li.active > a { color: var(--sg-color-primary); }
    .sg-site #site-header-menu #menu > ul.dropdown > li > a:before { background: var(--sg-color-primary); bottom: 0; top: auto; }
}

/* The homepage previously had an early, more-specific header experiment.
   These rules deliberately supersede it so every public page uses the same
   approved two-row header geometry. */
@media (min-width: 1200px) {
    .sg-site.sg-homepage .ttm-header-style-classic-box.ttm-header-overlay .site-header-main { grid-template-columns: 258px minmax(0, 1fr); grid-template-rows: 80px 80px; }
    .sg-site.sg-homepage #site-header-menu .site-branding { grid-column: 1; grid-row: 1; }
    .sg-site.sg-homepage #site-header-menu .sg-header-actions { grid-column: 2; grid-row: 1; }
    .sg-site.sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link { flex: 1; order: -1; }
    .sg-site.sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a { min-width: 0; width: 100%; }
    .sg-site.sg-homepage #site-header-menu .sg-category-rail { grid-column: 1; grid-row: 2; min-height: 80px; }
    .sg-site.sg-homepage #site-header-menu #menu { grid-column: 2; grid-row: 2; height: 80px; }
    .sg-site.sg-homepage #site-header-menu #menu > ul.dropdown { height: 78px; }
    .sg-site.sg-homepage #site-header-menu #menu > ul.dropdown > li,
    .sg-site.sg-homepage #site-header-menu #menu > ul.dropdown > li > a { height: 78px; }
}

@media (max-width: 991px) {
    .sg-site .sg-category-rail { display: none; }
    .sg-homepage .sg-home-category-grid { margin-left: 0; margin-right: 0; padding-left: 1px; padding-right: 1px; }
    .sg-homepage .sg-home-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sg-homepage .sg-home-service-strip { grid-template-columns: repeat(2, 1fr); }
    .sg-homepage .sg-home-service-strip a:nth-child(2) { border-right: 0; }
    .sg-homepage .sg-home-service-strip a:nth-child(-n+2) { border-bottom: 1px solid var(--sg-color-border); }
    .sg-homepage .sg-home-service-strip a:nth-child(3) { border-right: 0; grid-column: span 2; }
    .sg-homepage .sg-home-service-strip a { padding-left: 22px; padding-right: 22px; }
    .sg-homepage .sg-home-hero-copy { padding: 48px; }
    .sg-homepage .sg-home-feature-content { gap: 35px; }
}
@media (max-width: 680px) {
    .sg-homepage #sg-home-categories,
    .sg-homepage #sg-home-products { scroll-margin-top: 16px; }
    .sg-homepage #masthead { background: #fff; min-height: 80px; position: relative; z-index: 30; }
    .sg-homepage #ttm-stickable-header-w { min-height: 80px; }
    .sg-homepage #site-header-menu .site-header-main { min-height: 80px; }
    .sg-homepage #site-header-menu .site-branding {
        height: 80px !important;
        left: 55px;
        line-height: 80px !important;
        padding: 0;
        text-align: left;
        width: 180px;
    }
    .sg-homepage #site-header-menu .site-branding #logo-img { max-height: 46px; max-width: 180px; }
    .sg-homepage #site-header-menu .ttm-menu-toggle { left: 8px; margin: 0; position: absolute; top: 22px; z-index: 22; }
    .sg-homepage #site-header-menu .ttm-menu-toggle label { left: 0; top: 0; }
    .sg-homepage #site-header-menu .sg-header-actions { align-items: center; display: flex; gap: 3px; height: 80px !important; line-height: 1 !important; position: absolute; right: 8px; top: 0; z-index: 21; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-icon,
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link { float: none; height: auto; line-height: 1 !important; margin: 0; }
    .sg-homepage #site-header-menu .sg-header-actions .sg-header-quote,
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-cart-link a,
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link a { align-items: center; display: inline-flex; height: 32px; justify-content: center; min-width: 29px; padding: 4px; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a i { display: none; }
    .sg-homepage #site-header-menu .sg-header-actions .ttm-header-search-link > a:after { color: #fff; content: "\f002"; font-family: FontAwesome; font-size: 15px; }
    .sg-homepage .sg-home-shell { width: calc(100% - 28px); }
    .sg-homepage .sg-home-hero { grid-template-columns: 1fr; margin-top: 14px; }
    .sg-homepage .sg-home-hero-copy { padding: 38px 25px 25px; }
    .sg-homepage .sg-home-hero h1 { font-size: 37px; }
    .sg-homepage .sg-home-hero-visual { min-height: 290px; }
    .sg-homepage .sg-home-service-strip a { min-height: 66px; padding: 14px 9px; }
    .sg-homepage .sg-home-service-strip strong { font-size: 11px; }
    .sg-homepage .sg-home-service-strip small { font-size: 10px; }
    .sg-homepage .sg-home-section { padding-top: 55px; padding-bottom: 55px; }
    .sg-homepage .sg-home-section-heading h2 { font-size: 27px; }
    .sg-homepage .sg-home-category-grid { gap: 14px; margin-left: -16px; margin-right: -16px; padding: 6px 16px 18px; }
    .sg-homepage .sg-home-category-card { flex-basis: 238px; min-height: 246px; padding: 0; }
    .sg-homepage .sg-home-category-media { height: 166px; }
    .sg-homepage .sg-home-category-card img { height: 100%; margin: 0; width: 100%; }
    .sg-homepage .sg-home-category-copy { padding: 12px; }
    .sg-homepage .sg-home-section-heading--catalogue,
    .sg-homepage .sg-home-section-heading--products { align-items: flex-start; gap: 12px; }
    .sg-homepage .sg-home-section-heading--catalogue > a,
    .sg-homepage .sg-home-section-heading--products > a { font-size: 11px; text-align: right; }
    .sg-homepage .sg-home-feature-content { gap: 28px; grid-template-columns: 1fr; padding-top: 50px; padding-bottom: 50px; }
    .sg-homepage .sg-home-feature-copy { clip-path: none; margin-right: 0; padding: 0 24px; }
    .sg-homepage .sg-home-feature-content h2 { font-size: 31px; }
    .sg-homepage .sg-home-feature-content img { height: 190px; }
    .sg-homepage .sg-home-feature-actions { display: grid; grid-template-columns: 1fr; }
    .sg-homepage .sg-button--feature-primary,
    .sg-homepage .sg-button--feature-outline { justify-content: center; }
    .sg-homepage .sg-home-product-grid { gap: 10px; }
    .sg-homepage .sg-home-product-image { height: 150px; padding: 12px; }
    .sg-homepage .sg-home-product-image img { max-height: 120px; }
    .sg-homepage .sg-home-product-info { padding: 13px; }
    .sg-homepage .sg-home-product-info h3 { font-size: 13px; }
    .sg-homepage .sg-home-cms { margin-bottom: 40px; padding: 0; }
    .sg-homepage .sg-home-about-copy { padding: 34px 24px; }
    .sg-homepage .sg-home-about-copy > h2 { font-size: 28px; }
    .sg-homepage .sg-home-about-values { padding: 30px 24px; }
    .sg-homepage .sg-home-about-values ul { display: block; }
    .sg-homepage .sg-home-about-values li:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
    .sg-homepage .sg-home-contact-callout { margin-bottom: 54px; padding: 25px 22px; width: calc(100% - 28px); }
    .sg-homepage .sg-home-contact-callout-copy { align-items: flex-start; }
    .sg-homepage .sg-home-contact-callout h2 { font-size: 21px; }
    .sg-homepage .sg-home .cta-section.style2 { margin-bottom: 54px; width: calc(100% - 28px); }
}
@media (max-width: 575px) {
    .sg-homepage .sg-home-product-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Exact public header integration from ui-preview/styles.css. The preview's
   visual vocabulary is retained; only placeholder links are replaced by live
   CakePHP routes and the existing search overlay/cart counter. */
.sg-site .sg-preview-header { background: #f7f9fb; color: #172838; font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; line-height: 1.5; }
/* The legacy page wrapper ends immediately after the header, so sticky cannot
   retain it for the whole document. Fix the real header and reserve its space. */
.sg-site { padding-top: var(--sg-header-height, 184px); }
.sg-site #masthead.sg-preview-header { box-shadow: 0 4px 14px rgba(7, 31, 54, .1); left: 0; position: fixed; right: 0; top: 0; width: 100%; z-index: 1000; }
.sg-site #masthead.sg-preview-header .utility-bar { max-height: 28px; overflow: hidden; transition: max-height .2s ease, opacity .16s ease; }
.sg-site #masthead.sg-preview-header.is-scrolled .utility-bar { max-height: 0; opacity: 0; }
.sg-site .sg-preview-header .shell { margin: auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-site .sg-preview-header .utility-bar { background: #14081f; color: #e5ebf0; display: block; font-size: 12px; }
.sg-site .sg-preview-header .utility-content { display: flex; gap: 20px; justify-content: space-between; padding: 5px 0; }
.sg-site .sg-preview-header .utility-content a { color: #e5ebf0; font-weight: 700; text-decoration: none; }
.sg-site .sg-preview-header .masthead { align-items: center; display: grid; gap: 32px; grid-template-columns: 240px minmax(280px, 1fr) 145px; min-height: 88px; padding: 16px 0; }
.sg-site .sg-preview-header .brand { align-items: center; display: inline-flex; line-height: 1; text-decoration: none; }
.sg-site .sg-preview-header .brand img { display: block; height: auto; max-height: 68px; max-width: 235px; width: 100%; }
/* Pure HTML/CSS brand lockup (webroot/logo). The PNG above is the fallback for
   browsers that cannot clip the symbol with CSS shape(). */
.sg-site .sg-preview-header .brand .select-group-logo { --sgl-width: 235px; display: none; }
@supports (clip-path: shape(from 0 0, line to 1px 1px)) {
    .sg-site .sg-preview-header .brand .select-group-logo { display: block; }
    .sg-site .sg-preview-header .brand .brand-fallback { display: none; }
}
.sg-site .sg-preview-header .search { background: #fff; border: 1px solid #dbe4eb; border-radius: 7px; box-shadow: 0 4px 12px rgba(13,44,71,.05); display: flex; height: 48px; min-width: 0; overflow: visible; position: relative; }
.sg-site #masthead.sg-preview-header .search > .sg-search-trigger { align-items: center; appearance: none; background: #fff; border: 0; color: #5e6d78; cursor: pointer; display: flex; flex: 1; font: inherit; font-size: 16px; justify-content: space-between; min-width: 0; padding: 0; text-align: left; transition: border-color .18s ease, box-shadow .18s ease; }
.sg-site #masthead.sg-preview-header .search > .sg-search-trigger:hover,
.sg-site #masthead.sg-preview-header .search > .sg-search-trigger:focus { box-shadow: inset 0 0 0 2px rgba(0,59,113,.14); outline: 0; }
.sg-site .sg-preview-header .search > .sg-search-trigger > span { overflow: hidden; padding-left: 16px; text-overflow: ellipsis; white-space: nowrap; }
.sg-site #masthead.sg-preview-header .search > .sg-search-trigger > b { align-items: center; align-self: stretch; background: #003b71; color: #fff; display: flex; font-size: 17px; justify-content: center; min-width: 56px; transition: background-color .18s ease, transform .18s ease; }
.sg-site .sg-preview-header .search > .sg-search-trigger:hover > b { background: #0f5d9f; }
.sg-site #masthead.sg-preview-header .search > .sg-search-trigger.open > b { background: #0f5d9f; transform: scale(.96); }
.sg-site.sg-search-open { overflow: hidden; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay { align-items: flex-start; background: rgba(7, 23, 39, .62); border: 0; bottom: 0; display: none; inset: 0; justify-content: center; left: 0; padding: clamp(48px, 12vh, 140px) 20px 20px; position: fixed; right: 0; top: 0; width: auto; z-index: 9999; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay.st-show { animation: sg-search-backdrop-in .18s ease-out both; display: flex !important; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay.is-closing { animation: sg-search-backdrop-out .18s ease-in both; }
.sg-site #masthead.sg-preview-header .sg-search-dialog-panel { animation: sg-search-panel-in .24s cubic-bezier(.2,.75,.25,1) both; background: #fff; border-radius: 12px; box-shadow: 0 28px 70px rgba(0,0,0,.28); margin: 0; max-width: 760px; padding: 38px 54px 34px; position: relative; width: 100%; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay.is-closing .sg-search-dialog-panel { animation: sg-search-panel-out .18s ease-in both; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .row { display: block; margin: 0; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .ttm-site-searchform { margin: 0; max-width: none; width: 100%; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .w-search-form-h,
.sg-site #masthead.sg-preview-header .ttm-search-overlay .w-search-form-row { display: block; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .w-search-input { border: 1px solid #cbd9e3; border-radius: 7px; position: relative; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .ttm-site-searchform input[type="search"] { border: 0; border-bottom: 0; color: #172838; font-size: 20px; line-height: 1.3; padding: 17px 70px 17px 18px; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .ttm-site-searchform input[type="search"]::placeholder { color: #70808c; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .ttm-site-searchform button { align-items: center; background: #003b71; border-radius: 0 6px 6px 0; color: #fff; display: flex; font-size: 19px; height: 100%; justify-content: center; padding: 0; right: 0; top: 0; transition: background-color .18s ease; width: 57px; }
.sg-site #masthead.sg-preview-header .ttm-search-overlay .ttm-site-searchform button:hover { background: #0f5d9f; }
.sg-site #masthead.sg-preview-header .ttm-search-close { align-items: center; background: #f2f6f9; border: 0; border-radius: 50%; color: #294052; cursor: pointer; display: flex; height: 36px; justify-content: center; margin: 0; padding: 0; position: absolute; right: 14px; top: 14px; transition: background-color .18s ease, color .18s ease, transform .18s ease; width: 36px; }
.sg-site #masthead.sg-preview-header .ttm-search-close:hover,
.sg-site #masthead.sg-preview-header .ttm-search-close:focus { background: #003b71; color: #fff; outline: 0; transform: rotate(90deg); }
@keyframes sg-search-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes sg-search-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes sg-search-panel-in { from { opacity: 0; transform: translateY(-18px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes sg-search-panel-out { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-10px) scale(.985); } }
.sg-site .sg-visually-hidden { clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.sg-site #masthead.sg-preview-header .sg-product-search-form { align-items: stretch; display: flex; flex: 1; min-width: 0; }
.sg-site #masthead.sg-preview-header .sg-search-input { background: #fff; border: 0; border-radius: 7px 0 0 7px; color: #172838; flex: 1; font: 16px Inter, "Segoe UI", Roboto, Arial, sans-serif; min-width: 0; padding: 0 16px; }
.sg-site #masthead.sg-preview-header .sg-search-input::placeholder { color: #70808c; opacity: 1; }
.sg-site #masthead.sg-preview-header .sg-search-input:focus { box-shadow: inset 0 0 0 2px rgba(0,59,113,.22); outline: 0; }
.sg-site #masthead.sg-preview-header .sg-search-submit { align-items: center; background: #003b71; border: 0; border-radius: 0 6px 6px 0; color: #fff; cursor: pointer; display: flex; font-size: 17px; justify-content: center; min-width: 56px; padding: 0; transition: background-color .18s ease, transform .18s ease; }
.sg-site #masthead.sg-preview-header .sg-search-submit:hover,
.sg-site #masthead.sg-preview-header .sg-search-submit:focus { background: #0f5d9f; outline: 0; }
.sg-site #masthead.sg-preview-header .sg-search-submit:active { transform: scale(.96); }
.sg-site #masthead.sg-preview-header .sg-search-results { background: #fff; border: 1px solid #dbe4eb; border-radius: 0 0 7px 7px; box-shadow: 0 12px 24px rgba(13,44,71,.14); left: -1px; max-height: 300px; overflow-y: auto; position: absolute; right: -1px; top: calc(100% + 7px); z-index: 120; }
.sg-site #masthead.sg-preview-header .sg-search-result-group { border-bottom: 1px solid #e8f0f5; padding: 7px 0; }
.sg-site #masthead.sg-preview-header .sg-search-result-group-title { color: #587187; font-size: 10px; font-weight: 800; letter-spacing: .1em; margin: 4px 15px 6px; text-transform: uppercase; }
.sg-site #masthead.sg-preview-header .sg-search-results a.sg-search-result { align-items: baseline; background: #fff !important; border-bottom: 1px solid #edf2f5; color: #172838 !important; display: flex; gap: 12px; justify-content: space-between; padding: 12px 15px; text-decoration: none; transition: background-color .15s ease, color .15s ease; }
.sg-site #masthead.sg-preview-header .sg-search-results a.sg-search-result--category:before { color: #0d659e; content: "\f07b"; font-family: FontAwesome; font-size: 14px; }
.sg-site #masthead.sg-preview-header .sg-search-results a.sg-search-result--category strong { flex: 1; }
.sg-site #masthead.sg-preview-header .sg-search-result:last-child { border-bottom: 0; }
.sg-site #masthead.sg-preview-header .sg-search-results a.sg-search-result:hover,
.sg-site #masthead.sg-preview-header .sg-search-results a.sg-search-result:focus { background: #eff6fb !important; color: #003b71 !important; outline: 0; }
.sg-site #masthead.sg-preview-header .sg-search-result strong { font-size: 14px; font-weight: 650; }
.sg-site #masthead.sg-preview-header .sg-search-result small { color: #71808b; flex: 0 0 auto; font-size: 11px; }
.sg-site #masthead.sg-preview-header .sg-search-all-results { color: #003b71 !important; display: block; font-size: 13px; font-weight: 800; padding: 13px 15px; text-decoration: none; }
.sg-site #masthead.sg-preview-header .sg-search-all-results:hover,
.sg-site #masthead.sg-preview-header .sg-search-all-results:focus { background: #003b71; color: #fff !important; outline: 0; }
.sg-search-page .sg-search-hero { padding-bottom: 42px; }
.sg-search-page-form { display: flex; margin-top: 24px; max-width: 760px; }
.sg-search-page-form input { background: #fff; border: 1px solid #d2e0ea; border-radius: 7px 0 0 7px; color: #172838; flex: 1; font: inherit; min-width: 0; padding: 14px 17px; }
.sg-search-page-form input:focus { border-color: #003b71; box-shadow: 0 0 0 3px rgba(0,59,113,.12); outline: 0; }
.sg-search-page-form button { align-items: center; background: #003b71; border: 1px solid #003b71; border-radius: 0 7px 7px 0; color: #fff; display: inline-flex; font-size: 14px; font-weight: 800; gap: 9px; padding: 0 22px; transition: background-color .18s ease; }
.sg-search-page-form button:hover,
.sg-search-page-form button:focus { background: #0f5d9f; outline: 0; }
.sg-search-result-count { background: #eaf4fb; border-radius: 20px; color: #003b71; font-size: 12px; font-weight: 800; padding: 8px 12px; }
.sg-search-empty { margin: 45px auto; max-width: 680px; }
.sg-search-empty a { align-items: center; color: #003b71; display: inline-flex; font-weight: 800; gap: 9px; margin-top: 8px; text-decoration: none; }
.sg-search-empty a:hover,
.sg-search-empty a:focus { color: #0f5d9f; outline: 0; text-decoration: underline; }
@media (max-width: 560px) {
    .sg-search-page-form button { font-size: 0; min-width: 52px; padding: 0; justify-content: center; }
    .sg-search-page-form button .fa { font-size: 15px; }
    .sg-search-result-count { margin-top: 12px; }
}
.sg-site .sg-preview-header .quick-actions { display: flex; gap: 19px; justify-content: flex-end; }
.sg-site .sg-preview-header .quick-actions a { align-items: center; color: #14081f; display: flex; gap: 6px; position: relative; text-decoration: none; }
.sg-site .sg-preview-header .quick-actions span:first-child { font-size: 25px; line-height: 1; }
.sg-site .sg-preview-header .quick-actions .cart-icon .ti { display: block; line-height: 1; }
.sg-site .sg-preview-header .quick-actions small { font-size: 11px; line-height: 1.15; }
.sg-site .sg-preview-header .quick-actions .counter { background: #e3ad31; border-radius: 50%; color: #1b2632; font-size: 10px; height: 17px; left: 17px; line-height: 17px; position: absolute; text-align: center; top: -6px; width: 17px; }
.sg-site .sg-preview-header .sg-cart-preview { position: relative; }
.sg-site .sg-preview-header .sg-cart-preview-toggle { align-items: center; background: transparent; border: 0; color: #14081f; cursor: pointer; display: flex; gap: 6px; margin: 0; padding: 0; position: relative; text-align: left; }
.sg-site .sg-preview-header .sg-cart-preview-toggle .cart-icon { font-size: 25px; line-height: 1; }
.sg-site .sg-preview-header .sg-cart-preview-toggle small { font-size: 11px; line-height: 1.15; }
.sg-site .sg-preview-header .sg-cart-preview-toggle:focus { border-radius: 4px; box-shadow: 0 0 0 3px rgba(0,59,113,.2); outline: 0; }
.sg-site .sg-preview-header .sg-cart-preview-panel { background: #fff; border: 1px solid #dce6ee; border-radius: 10px; box-shadow: 0 16px 34px rgba(12,42,67,.18); min-width: 280px; opacity: 0; padding: 15px; position: absolute; right: -12px; top: calc(100% + 14px); transform: translateY(-7px); transition: opacity .16s ease, transform .16s ease; visibility: hidden; z-index: 180; }
.sg-site .sg-preview-header .sg-cart-preview-panel.is-open { opacity: 1; transform: translateY(0); visibility: visible; }
.sg-site .sg-preview-header .sg-cart-preview-heading { align-items: baseline; border-bottom: 1px solid #e8eef3; color: #17334a; display: flex; font-size: 13px; justify-content: space-between; padding-bottom: 10px; }
.sg-site .sg-preview-header .sg-cart-preview-heading span { color: #71808c; font-size: 11px; }
.sg-site .sg-preview-header .sg-cart-preview-empty { color: #607789; font-size: 13px; line-height: 1.45; margin: 16px 0; }
.sg-site .sg-preview-header .sg-cart-preview-items { list-style: none; margin: 8px 0 12px; max-height: 210px; overflow-x: hidden; overflow-y: auto; padding: 0; }
.sg-site .sg-preview-header .sg-cart-preview-items li { align-items: center; border-bottom: 1px solid #eef2f5; color: #29465d; display: flex; font-size: 12px; gap: 10px; justify-content: space-between; min-width: 0; padding: 9px 0; width: 100%; }
.sg-site .sg-preview-header .sg-cart-preview-items li:last-child { border-bottom: 0; }
.sg-site .sg-preview-header .sg-cart-preview-product { align-items: center; display: flex; flex: 1 1 auto !important; gap: 9px; max-width: calc(100% - 48px); min-width: 0; }
.sg-site .sg-preview-header .sg-cart-preview-thumb { background: #fff; border: 1px solid #e0e9f0; border-radius: 6px; display: block; flex: 0 0 38px; height: 38px; object-fit: contain; padding: 3px; width: 38px; }
.sg-site .sg-preview-header .sg-cart-preview-thumb--empty { align-items: center; background: #edf4f8; color: #5f7c91; display: inline-flex; font-size: 17px; justify-content: center; }
.sg-site .sg-preview-header .sg-cart-preview-items strong { color: #29465d; display: block; flex: 1 1 auto; font-size: 12px !important; font-weight: 700; line-height: 1.35; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sg-site .sg-preview-header .sg-cart-preview-items span { color: #71808c; flex: 0 0 auto; font-size: 11px; }
.sg-site .sg-preview-header .sg-cart-preview-items li > span:last-child { flex: 0 0 auto; font-size: 11px !important; white-space: nowrap; }
.sg-site .sg-preview-header .sg-cart-preview-link { align-items: center; background: #003b71; border-radius: 5px; color: #fff !important; display: flex !important; font-size: 12px; font-weight: 700; justify-content: space-between; padding: 10px 12px; text-decoration: none; }
.sg-site .sg-preview-header .sg-cart-preview-link:hover,
.sg-site .sg-preview-header .sg-cart-preview-link:focus { background: #0f5d9f; color: #fff !important; outline: 0; }
.sg-site .sg-preview-header .main-nav { background: #fff; border-bottom: 1px solid #dbe4eb; border-top: 1px solid #dbe4eb; }
.sg-site .sg-preview-header .nav-inner { align-items: center; display: flex; gap: 24px; min-height: 53px; }
.sg-site .sg-preview-header .sg-menu-toggle-input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.sg-site .sg-preview-header .category-toggle { align-items: center; background: #003b71; border: 0; border-radius: 4px; color: #fff; cursor: pointer; display: inline-flex; font: 700 13px inherit; gap: 8px; margin: 0; padding: 12px 16px; transition: background-color .18s ease, box-shadow .18s ease; white-space: nowrap; }
.sg-site .sg-preview-header .category-toggle:hover,
.sg-site .sg-preview-header .category-toggle:focus { background: #0f5d9f; box-shadow: 0 5px 12px rgba(0,59,113,.2); outline: 0; }
.sg-site .sg-preview-header .category-toggle span { font-size: 18px; margin-right: 8px; }
@media (max-width: 950px) {
    .sg-site .sg-preview-header .nav-menu > .category-toggle:hover,
    .sg-site .sg-preview-header .nav-menu > .category-toggle:focus {
        background: #e6eef5;
        box-shadow: none;
    }
}

.sg-site .sg-preview-header .category-toggle i { display: none; font-size: 16px; font-style: normal; line-height: 1; transition: transform .18s ease; }
.sg-site .sg-preview-header .category-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.sg-site .sg-preview-header .nav-inner { position: relative; }
.sg-site .sg-preview-header .sg-category-panel { background: #fff; border: 1px solid #dbe4eb; border-radius: 0 0 8px 8px; box-shadow: 0 18px 38px rgba(7,31,54,.16); left: 0; opacity: 0; padding: 22px 24px; position: absolute; right: 0; top: calc(100% - 1px); transform: translateY(-8px); transform-origin: top center; transition: opacity .18s ease, transform .18s ease; visibility: hidden; z-index: 140; }
.sg-site .sg-preview-header .sg-category-panel.is-open { opacity: 1; transform: translateY(0); visibility: visible; }
.sg-site .sg-preview-header .sg-category-panel > ul { display: grid; gap: 22px 30px; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.sg-site .sg-preview-header .sg-category-panel ul { list-style: none; margin: 0; padding: 0; }
.sg-site .sg-preview-header .sg-category-panel > ul > li > a { color: #003b71; display: block; font-size: 13px; font-weight: 800; letter-spacing: .01em; margin-bottom: 8px; text-decoration: none; }
.sg-site .sg-preview-header .sg-category-panel > ul > li > a:hover,
.sg-site .sg-preview-header .sg-category-panel > ul > li > a:focus { color: #0f5d9f; outline: 0; text-decoration: underline; }
.sg-site .sg-preview-header .sg-category-panel ul ul { display: block; }
.sg-site .sg-preview-header .sg-category-panel ul ul li { margin: 0; }
.sg-site .sg-preview-header .sg-category-panel ul ul a { color: #405462; display: block; font-size: 12px; line-height: 1.3; padding: 5px 0; text-decoration: none; }
.sg-site .sg-preview-header .sg-category-panel ul ul a:hover,
.sg-site .sg-preview-header .sg-category-panel ul ul a:focus { color: #003b71; outline: 0; text-decoration: underline; }
.sg-site .sg-preview-header .sg-category-panel ul ul ul { border-left: 2px solid #e5edf3; margin: 3px 0 3px 4px; padding-left: 10px; }

/* Desktop category explorer: the first column selects a main family and the
   adjacent panel exposes its real child categories without changing routes. */
@media (min-width: 951px) {
    .sg-site .sg-preview-header .sg-category-panel {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        display: flex;
        left: 0;
        max-width: calc(100vw - 40px);
        min-height: 0;
        overflow: visible;
        padding: 0;
        right: auto;
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease, width .22s cubic-bezier(.2,.75,.25,1);
        width: 248px;
    }
    .sg-site .sg-preview-header .sg-category-panel.has-category-detail {
        width: 528px;
    }
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary {
        background: #f4f8fb;
        border: 1px solid #dbe4eb;
        border-right: 1px solid #dbe4eb;
        border-radius: 0 0 0 8px;
        box-shadow: 0 18px 38px rgba(7,31,54,.16);
        display: block;
        flex: 0 0 248px;
        margin: 0;
        padding: 10px 0;
        width: 248px;
    }
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li {
        margin: 0;
        position: relative;
    }
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li > a {
        align-items: center;
        color: #294052;
        display: flex;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.25;
        margin: 0;
        min-height: 43px;
        padding: 10px 16px 10px 19px;
        transition: background-color .16s ease, color .16s ease, padding-left .16s ease;
    }
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li > a:hover,
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li > a:focus,
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li:hover > a,
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li:focus-within > a,
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li.active > a {
        background: #e4f0f8;
        color: #003b71;
        outline: 0;
        padding-left: 23px;
        text-decoration: none;
    }
    .sg-site .sg-preview-header .sg-category-arrow {
        font-size: 22px;
        font-weight: 400;
        line-height: 1;
        margin-left: auto;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary {
        background: #fff;
        border: 1px solid #dbe4eb;
        border-left: 0;
        border-radius: 0 0 8px 0;
        box-sizing: border-box;
        box-shadow: 12px 18px 28px rgba(7,31,54,.10);
        display: block;
        height: auto;
        left: 100%;
        margin: 0;
        opacity: 0;
        overflow: visible;
        padding: 0;
        pointer-events: none;
        position: absolute;
        right: auto;
        top: 0;
        transform: translateX(-8px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
        visibility: hidden;
        width: max-content;
        min-width: 190px;
        max-width: 280px;
    }
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li:hover > .sg-category-secondary,
    .sg-site .sg-preview-header .sg-category-panel > ul.sg-category-primary > li:focus-within > .sg-category-secondary {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        visibility: visible;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li {
        background: transparent;
        border: 0;
        border-bottom: 1px solid #dbe4eb;
        margin: 0;
        min-width: 0;
        transition: background-color .16s ease;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li:hover,
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li:focus-within {
        background: #e4f0f8;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li > a {
        align-items: center;
        color: #294052;
        display: flex;
        font-size: 13px;
        font-weight: 700;
        justify-content: space-between;
        line-height: 1.25;
        min-height: 43px;
        padding: 10px 16px 10px 19px;
        transition: color .16s ease, padding-left .16s ease;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li.sub-dropdown > a:after {
        color: #4f7fa6;
        content: '›';
        font-size: 20px;
        font-weight: 400;
        line-height: 1;
        margin-left: auto;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li > a:hover,
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li > a:focus { color: #003b71; outline: 0; padding-left: 23px; text-decoration: none; }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-secondary > li:last-child {
        border-bottom: 0;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-tertiary {
        border-left: 0;
        border-top: 1px solid #dfeaf1;
        display: block;
        margin: 0;
        padding: 5px 15px 9px;
    }
    .sg-site .sg-preview-header .sg-category-panel .sg-category-tertiary a { color: #526f84; padding: 4px 0; }
}
.sg-site .sg-preview-header .nav-links { align-items: center; display: flex; flex: 1; min-width: 0; overflow: auto; white-space: nowrap; }
.sg-site .sg-preview-header .nav-links #menu { float: none; height: auto; margin: 0; width: 100%; }
.sg-site .sg-preview-header .nav-links #menu > ul.dropdown { align-items: center; display: flex; gap: 22px; margin: 0; }
.sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li { float: none; }
.sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li > a,
.sg-site .sg-preview-header .quote-link { color: #233a4c; font-size: 13px; font-weight: 650; line-height: 53px; margin: 0; padding: 0; text-decoration: none; }
.sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li > a:before { display: none; }
.sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li > a:hover,
.sg-site .sg-preview-header .quote-link:hover { color: #0f5d9f; }
.sg-site .sg-preview-header .quote-link { color: #003b71; flex: 0 0 auto; font-weight: 800; }
/* Everything that collapses into the Menu panel on tablets and phones. On
   desktop the wrapper is transparent, so its children stay in the nav row. */
.sg-site .sg-preview-header .nav-menu { display: contents; }
/* Three-line trigger: icon only, 44px target. */
.sg-site .sg-preview-header .nav-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: #003b71;
    cursor: pointer;
    display: none;
    flex: 0 0 auto;
    height: 44px;
    justify-content: center;
    padding: 0;
    width: 44px;
}
.sg-site .sg-preview-header .nav-toggle:hover,
.sg-site .sg-preview-header .nav-toggle:focus { background: #eaf3f9; outline: 0; }
.sg-site .sg-preview-header .nav-toggle-box { display: block; height: 16px; position: relative; width: 22px; }
.sg-site .sg-preview-header .nav-toggle-box span {
    background: currentColor;
    border-radius: 2px;
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
    transition: top .2s ease, transform .2s ease, opacity .16s ease;
}
.sg-site .sg-preview-header .nav-toggle-box span:nth-child(1) { top: 0; }
.sg-site .sg-preview-header .nav-toggle-box span:nth-child(2) { top: 7px; }
.sg-site .sg-preview-header .nav-toggle-box span:nth-child(3) { top: 14px; }
.sg-site .sg-preview-header .nav-toggle[aria-expanded="true"] .nav-toggle-box span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.sg-site .sg-preview-header .nav-toggle[aria-expanded="true"] .nav-toggle-box span:nth-child(2) { opacity: 0; }
.sg-site .sg-preview-header .nav-toggle[aria-expanded="true"] .nav-toggle-box span:nth-child(3) { top: 7px; transform: rotate(-45deg); }
.sg-site .sg-preview-header .nav-backdrop,
.sg-site .sg-preview-header .nav-close { display: none; }
html.sg-menu-open { overflow: hidden; }

/* Service Entreprise: a Select Group B2B presentation page, using the
   existing public-header palette and local imagery. */
.sg-site .sg-enterprise-page { background: #f5f8fa; color: #233a4c; font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; padding-bottom: 76px; }
.sg-site .sg-enterprise-shell { margin-left: auto; margin-right: auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-site .sg-enterprise-intro { background: #fff; border-bottom: 1px solid #e2eaf0; padding: 54px 0 48px; text-align: center; }
.sg-site .sg-enterprise-eyebrow { color: #0f5d9f; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; }
.sg-site .sg-enterprise-intro h1 { color: #172838; font-size: clamp(31px, 4vw, 48px); font-weight: 800; letter-spacing: .035em; margin: 0; text-transform: uppercase; }
.sg-site .sg-enterprise-intro p { color: #657783; font-size: 17px; margin: 12px auto 0; max-width: 630px; }
.sg-site .sg-enterprise-hero { background-color: #003b71; background-position: center; background-size: cover; border-radius: 10px; box-shadow: 0 18px 34px rgba(7,31,54,.15); color: #fff; margin-top: 42px; min-height: 315px; overflow: hidden; padding: 52px 62px; position: relative; }
.sg-site .sg-enterprise-hero-copy { max-width: 760px; position: relative; z-index: 1; }
.sg-site .sg-enterprise-hero-copy > span { color: #cae4f7; font-size: 13px; font-weight: 800; letter-spacing: .15em; }
.sg-site .sg-enterprise-hero h2 { color: #fff; font-size: clamp(32px, 4.7vw, 62px); font-weight: 850; letter-spacing: .01em; line-height: 1.04; margin: 16px 0; text-transform: uppercase; }
.sg-site .sg-enterprise-hero p { color: #f3f8fc; font-size: 18px; line-height: 1.55; margin: 0 0 24px; max-width: 610px; }
.sg-site .sg-enterprise-hero a { background: #fff; border-radius: 4px; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; gap: 12px; padding: 13px 18px; text-decoration: none; transition: background-color .18s ease, color .18s ease, transform .18s ease; }
.sg-site .sg-enterprise-hero a:hover,
.sg-site .sg-enterprise-hero a:focus { background: #e3ad31; color: #172838; outline: 0; transform: translateY(-2px); }
.sg-site .sg-enterprise-contact-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); margin-top: -44px; position: relative; z-index: 2; }
.sg-site .sg-enterprise-contact-card { align-items: center; background: #fff; border: 1px solid #dfe8ee; border-radius: 8px; box-shadow: 0 10px 24px rgba(7,31,54,.1); color: #233a4c; display: flex; flex-direction: column; justify-content: center; min-height: 158px; padding: 34px 24px 23px; position: relative; text-align: center; text-decoration: none; transition: box-shadow .18s ease, transform .18s ease; }
.sg-site .sg-enterprise-contact-card:hover,
.sg-site .sg-enterprise-contact-card:focus { box-shadow: 0 16px 30px rgba(7,31,54,.16); color: #003b71; outline: 0; transform: translateY(-4px); }
.sg-site .sg-enterprise-icon { align-items: center; background: #003b71; border: 4px solid #f5f8fa; border-radius: 50%; color: #fff; display: flex; font-size: 25px; height: 66px; justify-content: center; left: 50%; position: absolute; top: -33px; transform: translateX(-50%); width: 66px; }
.sg-site .sg-enterprise-contact-card small { color: #71808b; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sg-site .sg-enterprise-contact-card strong { color: #233a4c; font-size: 18px; line-height: 1.35; margin-top: 8px; }
.sg-site .sg-enterprise-benefits { padding-top: 80px; text-align: center; }
.sg-site .sg-enterprise-benefits h2 { color: #172838; font-size: clamp(28px, 3.2vw, 40px); font-weight: 800; margin: 0; }
.sg-site .sg-enterprise-lead { color: #526775; font-size: 18px; line-height: 1.6; margin: 16px auto 34px; max-width: 850px; }
.sg-site .sg-enterprise-benefit-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); text-align: left; }
.sg-site .sg-enterprise-benefit-grid article { background: #fff; border: 1px solid #e0e8ee; border-radius: 7px; min-height: 224px; padding: 25px; }
.sg-site .sg-enterprise-benefit-grid article > span { align-items: center; background: #eaf3f9; border-radius: 50%; color: #003b71; display: flex; font-size: 26px; height: 58px; justify-content: center; width: 58px; }
.sg-site .sg-enterprise-benefit-grid h3 { color: #003b71; font-size: 18px; font-weight: 800; line-height: 1.2; margin: 21px 0 10px; text-transform: uppercase; }
.sg-site .sg-enterprise-benefit-grid p { color: #627480; font-size: 14px; line-height: 1.55; margin: 0; }

/* The legacy menu renders arbitrary nested <ul> elements from the database.
   Keep only level one in the navigation row; children are real fly-out panels. */
@media (min-width: 681px) {
    .sg-site .sg-preview-header .nav-links { overflow: visible; }
    .sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li { position: relative; }
    .sg-site .sg-preview-header .nav-links #menu ul ul { background: #fff; border: 1px solid #dbe4eb; box-shadow: 0 14px 28px rgba(7,31,54,.14); display: none; left: 0; margin: 0; min-width: 245px; padding: 8px 0; position: absolute; top: 100%; z-index: 100; }
    .sg-site .sg-preview-header .nav-links #menu ul li:hover > ul,
    .sg-site .sg-preview-header .nav-links #menu ul li:focus-within > ul { display: block; }
    .sg-site .sg-preview-header .nav-links #menu ul ul li { display: block; float: none; position: relative; white-space: normal; }
    .sg-site .sg-preview-header .nav-links #menu ul ul li > a { color: #233a4c; display: block; font-size: 13px; font-weight: 600; line-height: 1.25; padding: 9px 16px; text-decoration: none; }
    .sg-site .sg-preview-header .nav-links #menu ul ul li > a:hover { background: #eaf3f9; color: #003b71; }
    .sg-site .sg-preview-header .nav-links #menu ul ul ul { left: calc(100% - 1px); top: -9px; }
}

@media (max-width: 950px) {
    .sg-site { padding-top: var(--sg-header-height, 120px); }
    .sg-site .sg-preview-header .masthead { gap: 16px; grid-template-columns: auto 170px minmax(0, 1fr) auto; }
    .sg-site .sg-preview-header .quick-actions { gap: 14px; }
    .sg-site .sg-preview-header .quick-actions small { display: none; }
    .sg-site .sg-preview-header .nav-toggle { display: inline-flex; }
    /* The mobile nav row disappears; the panel becomes a full-height drawer. */
    .sg-site .sg-preview-header .main-nav { background: transparent; border: 0; }
    .sg-site .sg-preview-header .nav-inner { min-height: 0; }
    .sg-site .sg-preview-header .nav-menu {
        background: #fff;
        bottom: 0;
        box-shadow: 10px 0 40px rgba(7,31,54,.3);
        display: block;
        height: 100%;
        left: 0;
        max-height: none;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: calc(16px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));
        position: fixed;
        right: auto;
        top: 0;
        transform: translateX(-102%);
        transition: transform .28s cubic-bezier(.2,.75,.25,1), visibility .28s;
        visibility: hidden;
        white-space: normal;
        width: min(420px, 92vw);
        z-index: 1200;
    }
    .sg-site .sg-preview-header .nav-menu.is-open { transform: none; visibility: visible; }
    .sg-site .sg-preview-header .nav-backdrop {
        background: rgba(7,23,39,.55);
        display: block;
        inset: 0;
        opacity: 0;
        pointer-events: none;
        position: fixed;
        transition: opacity .28s ease, visibility .28s;
        visibility: hidden;
        z-index: 1100;
    }
    .sg-site .sg-preview-header .nav-backdrop.is-open { opacity: 1; pointer-events: auto; visibility: visible; }
    .sg-site .sg-preview-header .nav-close {
        align-items: center;
        background: #f1f6fa;
        border: 0;
        border-radius: 50%;
        color: #003b71;
        cursor: pointer;
        display: flex;
        font-size: 15px;
        height: 44px;
        justify-content: center;
        margin: 0 0 12px auto;
        padding: 0;
        width: 44px;
    }
    .sg-site .sg-preview-header .nav-close:hover,
    .sg-site .sg-preview-header .nav-close:focus { background: #003b71; color: #fff; outline: 0; }
    /* Categories behave as an accordion row inside the drawer. */
    .sg-site .sg-preview-header .nav-menu > .category-toggle {
        background: #f1f6fa;
        border: 0;
        border-radius: 4px;
        color: #003b71;
        display: flex;
        font-size: 14px;
        justify-content: flex-start;
        margin: 0 0 6px;
        min-height: 46px;
        padding: 12px 14px;
        width: 100%;
    }
    .sg-site .sg-preview-header .nav-menu > .category-toggle i { display: block; margin-left: auto; }
    .sg-site .sg-preview-header .nav-menu .sg-category-panel {
        border: 0;
        box-shadow: none;
        left: auto;
        max-height: none;
        opacity: 1;
        overflow: visible;
        padding: 0 0 8px 12px;
        position: static;
        right: auto;
        top: auto;
        transform: none;
        visibility: visible;
    }
    .sg-site .sg-preview-header .nav-menu .sg-category-panel > ul {
        gap: 0 16px;
        grid-template-columns: 1fr;
    }
    .sg-site .sg-preview-header .nav-links {
        display: block;
        overflow: visible;
        white-space: normal;
        width: 100%;
    }
    .sg-site .sg-preview-header .nav-links #menu > ul.dropdown { display: block; }
    .sg-site .sg-preview-header .nav-links #menu > ul.dropdown > li > a {
        border-bottom: 1px solid #edf1f4;
        display: block;
        line-height: 1.2;
        padding: 13px 10px;
    }
    .sg-site .sg-preview-header .nav-links #menu ul ul {
        border: 0;
        box-shadow: none;
        display: block;
        margin: 0;
        padding: 0 0 6px 15px;
        position: static;
    }
    .sg-site .sg-preview-header .nav-links #menu ul ul a { padding: 8px 10px; }
    .sg-site .sg-preview-header .nav-menu > .quote-link {
        background: #003b71;
        border-radius: 4px;
        color: #fff;
        display: flex;
        font-size: 14px;
        gap: 8px;
        justify-content: center;
        line-height: 1.2;
        margin-top: 10px;
        min-height: 46px;
        padding: 12px;
        text-align: center;
    }
    .sg-site .sg-preview-header .nav-menu > .quote-link:hover,
    .sg-site .sg-preview-header .nav-menu > .quote-link:focus { background: #0f5d9f; color: #fff; }
    .sg-site .sg-enterprise-benefit-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .sg-site .sg-preview-header .nav-menu,
    .sg-site .sg-preview-header .nav-backdrop,
    .sg-site .sg-preview-header .nav-toggle-box span { transition: none; }
}
@media (max-width: 680px) {
    .sg-site { padding-top: var(--sg-header-height, 174px); }
    .sg-site .sg-preview-header .shell { width: calc(100% - 28px); }
    .sg-site .sg-preview-header .utility-content { justify-content: center; text-align: center; }
    .sg-site .sg-preview-header .utility-content span:last-child { display: none; }
    .sg-site .sg-preview-header .masthead { gap: 12px; grid-template-columns: auto minmax(0, 1fr) auto; padding: 16px 0; }
    .sg-site .sg-preview-header .brand img { max-height: 52px; max-width: 205px; }
    .sg-site .sg-preview-header .brand .select-group-logo { --sgl-width: 184px; }
    .sg-site .sg-preview-header .search { grid-column: 1 / -1; grid-row: 2; height: 45px; }
    .sg-site .sg-preview-header .quick-actions { gap: 10px; }
    .sg-site .sg-preview-header .quick-actions a:first-child { display: none; }
    .sg-site .sg-preview-header .sg-cart-preview-panel { min-width: min(280px, calc(100vw - 28px)); right: -5px; }
    .sg-site .sg-preview-header .category-toggle { font-size: 12px; padding: 10px 12px; }
    .sg-site .sg-preview-header .sg-category-panel > ul { gap: 0 14px; }
    .sg-site .sg-preview-header .sg-category-panel > ul > li > a { font-size: 13px; margin-bottom: 2px; }
    .sg-site .sg-enterprise-shell { width: calc(100% - 28px); }
    .sg-site .sg-enterprise-intro { padding: 40px 0 35px; }
    .sg-site .sg-enterprise-intro p { font-size: 15px; }
    .sg-site .sg-enterprise-hero { margin-top: 24px; min-height: 0; padding: 38px 24px; }
    .sg-site .sg-enterprise-hero p { font-size: 16px; }
    .sg-site .sg-enterprise-contact-grid { gap: 46px; grid-template-columns: 1fr; margin-top: 52px; }
    .sg-site .sg-enterprise-contact-card { min-height: 145px; }
    .sg-site .sg-enterprise-benefits { padding-top: 58px; }
    .sg-site .sg-enterprise-benefit-grid { grid-template-columns: 1fr; }
}
}

/* ==========================================================================
   Select Group footer — Mytek-inspired structure, Select Group palette.
   Content is administered in Paramètres > Pied de page.
   ========================================================================== */
.sg-footer { background: #f2f6f9; color: #334b5e; font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; font-size: 15px; }
.sg-footer * { box-sizing: border-box; }
.sg-footer__shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }

.sg-footer__social { background: #eef3f7; border-bottom: 1px solid #e1e9ef; padding: 14px 0; }
.sg-footer__social .sg-footer__shell { align-items: center; display: flex; gap: 18px; justify-content: center; }
.sg-footer__social-label { color: #4c6274; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sg-footer__social-list { display: flex; gap: 12px; list-style: none; margin: 0; padding: 0; }
.sg-footer__social-list a { align-items: center; background: #003b71; border-radius: 50%; color: #fff; display: flex; height: 44px; justify-content: center; text-decoration: none; transition: background-color .18s ease, transform .18s ease; width: 44px; }
.sg-footer__social-list a:hover,
.sg-footer__social-list a:focus { background: #2f6aa6; color: #fff; outline: 0; transform: translateY(-2px); }
.sg-footer__social-list i { font-size: 18px; }

.sg-footer__main { padding: 46px 0 40px; }
.sg-footer__grid { display: grid; gap: 38px; grid-template-columns: 1.05fr 1fr 1.2fr 1.2fr; }
.sg-footer__title { color: #003b71; font-size: 14px; font-weight: 800; letter-spacing: .08em; line-height: 1.3; margin: 0 0 16px; text-transform: uppercase; }
.sg-footer__links,
.sg-footer__contact,
.sg-footer__legal-links,
.sg-footer__payments-list { list-style: none; margin: 0; padding: 0; }
.sg-footer__links li { margin: 0 0 2px; }
.sg-footer__links a { color: #334b5e; display: inline-block; font-size: 15px; font-weight: 500; line-height: 2; text-decoration: none; transition: color .15s ease; }
.sg-footer__links a:hover,
.sg-footer__links a:focus { color: #003b71; outline: 0; text-decoration: underline; }
.sg-footer__contact li { align-items: flex-start; color: #334b5e; display: flex; font-size: 15px; font-weight: 500; gap: 10px; line-height: 1.6; margin-bottom: 12px; }
.sg-footer__contact i { color: #2f6aa6; flex: 0 0 18px; font-size: 18px; line-height: 1.6; text-align: center; }
.sg-footer__contact a { color: #334b5e; text-decoration: none; }
.sg-footer__contact a:hover,
.sg-footer__contact a:focus { color: #003b71; outline: 0; text-decoration: underline; }

.sg-footer__newsletter-text { color: #4c6274; font-size: 15px; line-height: 1.6; margin: 0 0 14px; }
.sg-footer__newsletter-field { align-items: stretch; background: #fff; border: 1px solid #d6e1e9; border-radius: 4px; display: flex; overflow: hidden; }
.sg-footer__newsletter-field > i { align-items: center; color: #8e99a5; display: flex; padding-left: 12px; }
.sg-footer__newsletter-field input { background: #fff; border: 0; color: #233a4c; flex: 1; font: 15px/1.4 inherit; min-width: 0; padding: 11px 10px; }
.sg-footer__newsletter-field input:focus { outline: 2px solid rgba(0,59,113,.2); outline-offset: -2px; }
.sg-footer__newsletter-field button { background: #003b71; border: 0; color: #fff; cursor: pointer; font: 800 13px/1 inherit; letter-spacing: .04em; padding: 0 16px; text-transform: uppercase; transition: background-color .18s ease; }
.sg-footer__newsletter-field button:hover,
.sg-footer__newsletter-field button:focus { background: #0f5d9f; outline: 0; }
.sg-footer__payments { margin-top: 18px; }
.sg-footer__payments-label { color: #4c6274; display: block; font-size: 12px; font-weight: 800; letter-spacing: .06em; margin-bottom: 8px; text-transform: uppercase; }
.sg-footer__payments-list { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.sg-footer__payments-list li { align-items: center; color: #334b5e; display: flex; font-size: 13px; gap: 6px; }
.sg-footer__payments-list i { color: #003b71; }

.sg-footer__trust {
    background: linear-gradient(180deg, rgba(0,59,113,.86) 0%, rgba(0,41,79,.74) 100%);
    border-bottom: 1px solid rgba(255,255,255,.12);
    border-top: 1px solid rgba(255,255,255,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 12px 30px rgba(7,31,54,.12);
    padding: 28px 0;
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    backdrop-filter: blur(18px) saturate(140%);
}
.sg-footer__trust-grid { display: grid; gap: 18px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sg-footer__trust-item { align-items: center; display: flex; flex-direction: column; gap: 10px; justify-content: flex-start; text-align: center; }
.sg-footer__trust-icon { align-items: center; background: #c3cad2; border-radius: 50%; color: #003b71; display: flex; flex: 0 0 54px; height: 54px; justify-content: center; width: 54px; }
.sg-footer__trust-icon i { font-size: 22px; }
.sg-footer__trust-copy { align-items: center; display: flex; flex-direction: column; gap: 2px; }
.sg-footer__trust-copy strong { color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .03em; line-height: 1.3; text-align: center; text-transform: uppercase; }
.sg-footer__trust-copy small { color: #cfe0ee; font-size: 12px; line-height: 1.35; }

.sg-footer__legal { background: #14081f; color: #d2dbe3; padding: 16px 0; }
.sg-footer__legal-inner { align-items: center; display: flex; gap: 18px; justify-content: space-between; }
.sg-footer__legal p { font-size: 13px; margin: 0; }
.sg-footer__legal-links { display: flex; flex-wrap: wrap; gap: 16px; }
.sg-footer__legal-links a { color: #d2dbe3; font-size: 13px; text-decoration: none; }
.sg-footer__legal-links a:hover,
.sg-footer__legal-links a:focus { color: #fff; outline: 0; text-decoration: underline; }

@media (max-width: 1150px) {
    .sg-footer__trust-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    .sg-footer__grid { gap: 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .sg-footer__shell { width: calc(100% - 28px); }
    .sg-footer__social .sg-footer__shell { flex-direction: column; gap: 10px; }
    .sg-footer__main { padding: 34px 0 30px; }
    .sg-footer__grid { gap: 26px; grid-template-columns: 1fr; }
    .sg-footer__trust-grid { grid-template-columns: 1fr; }
    .sg-footer__trust-item { gap: 12px; }
    .sg-footer__legal-inner { align-items: flex-start; flex-direction: column; gap: 10px; }
}

/* ==========================================================================
   Legal page (Conditions Générales de Vente)
   ========================================================================== */
.sg-legal-page { background: #f5f8fa; color: #334b5e; }
.sg-legal-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }

.sg-legal-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 54px 0 42px; text-align: center; }
.sg-legal-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.sg-legal-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0; }
.sg-legal-intro { color: #405462; font-size: 17px; line-height: 1.65; margin: 16px auto 0; max-width: 720px; }
.sg-legal-updated { color: #71808b; font-size: 13px; margin: 18px 0 0; }

.sg-legal-layout { align-items: start; display: grid; gap: 44px; grid-template-columns: 260px minmax(0, 1fr); padding: 44px 0 64px; }
.sg-legal-toc { background: #fff; border: 1px solid #dfe8ee; border-radius: 8px; box-shadow: 0 8px 20px rgba(7,31,54,.05); padding: 22px; position: sticky; top: calc(var(--sg-header-height, 184px) + 22px); }
.sg-legal-toc-title { color: #003b71; font-size: 12px; font-weight: 800; letter-spacing: .1em; margin: 0 0 14px; text-transform: uppercase; }
.sg-legal-toc ol { counter-reset: legal-toc; list-style: none; margin: 0; padding: 0; }
.sg-legal-toc li { counter-increment: legal-toc; margin: 0 0 2px; }
.sg-legal-toc a { color: #405462; display: block; font-size: 14px; line-height: 1.4; padding: 6px 0; text-decoration: none; }
.sg-legal-toc a::before { color: #8e99a5; content: counter(legal-toc, decimal-leading-zero) " "; font-size: 11px; font-weight: 700; }
.sg-legal-toc a:hover,
.sg-legal-toc a:focus { color: #003b71; outline: 0; text-decoration: underline; }
.sg-legal-toc-toggle { align-items: center; background: #f1f6fa; border: 0; border-radius: 4px; color: #003b71; cursor: pointer; display: none; font: 700 14px/1.2 inherit; justify-content: space-between; min-height: 46px; padding: 12px 14px; width: 100%; }
.sg-legal-toc-toggle i { margin-left: 12px; transition: transform .18s ease; }
.sg-legal-toc.is-open .sg-legal-toc-toggle i { transform: rotate(180deg); }

.sg-legal-content { background: #fff; border: 1px solid #dfe8ee; border-radius: 8px; box-shadow: 0 8px 20px rgba(7,31,54,.05); padding: 42px 48px; }
.sg-legal-content h2 { border-top: 1px solid #e6edf3; color: #003b71; font-size: 22px; font-weight: 800; line-height: 1.3; margin: 34px 0 12px; padding-top: 26px; scroll-margin-top: calc(var(--sg-header-height, 184px) + 24px); }
.sg-legal-content h2:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.sg-legal-content p { color: #334b5e; font-size: 15.5px; line-height: 1.8; margin: 0 0 14px; }
.sg-legal-content ul,
.sg-legal-content ol { color: #334b5e; font-size: 15.5px; line-height: 1.8; margin: 0 0 16px; padding-left: 22px; }
.sg-legal-content li { margin-bottom: 6px; }
.sg-legal-content strong { color: #172838; }
.sg-legal-content a { color: #003b71; text-decoration: underline; }
.sg-legal-content a:hover { color: #0f5d9f; }
.sg-legal-content table { border-collapse: collapse; margin: 16px 0; width: 100%; }
.sg-legal-content th,
.sg-legal-content td { border: 1px solid #dfe8ee; padding: 10px 12px; text-align: left; }

.sg-legal-cta { align-items: center; background: #003b71; border-radius: 10px; box-shadow: 0 18px 34px rgba(7,31,54,.15); color: #fff; display: flex; gap: 28px; justify-content: space-between; margin-bottom: 64px; padding: 36px 40px; }
.sg-legal-cta .sg-legal-eyebrow { color: #c3cad2; }
.sg-legal-cta h2 { color: #fff; font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; line-height: 1.2; margin: 0 0 8px; }
.sg-legal-cta p { color: #cfe0ee; font-size: 15px; line-height: 1.6; margin: 0; max-width: 560px; }
.sg-legal-cta-actions { align-items: flex-start; display: flex; flex: 0 0 auto; flex-direction: column; gap: 10px; }
.sg-legal-button { align-items: center; background: #fff; border-radius: 4px; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; justify-content: center; min-height: 44px; padding: 12px 20px; text-decoration: none; transition: background-color .18s ease, color .18s ease; }
.sg-legal-button:hover,
.sg-legal-button:focus { background: #c3cad2; color: #003b71; outline: 0; }
.sg-legal-link { color: #fff; font-size: 14px; text-decoration: none; }
.sg-legal-link i { color: #c3cad2; margin-right: 7px; }
.sg-legal-link:hover,
.sg-legal-link:focus { color: #fff; outline: 0; text-decoration: underline; }

@media (max-width: 980px) {
    .sg-legal-layout { gap: 22px; grid-template-columns: 1fr; padding: 30px 0 48px; }
    .sg-legal-toc { padding: 14px; position: static; top: auto; }
    .sg-legal-toc-title { display: none; }
    .sg-legal-toc-toggle { display: flex; }
    .sg-legal-toc ol { display: none; padding-top: 12px; }
    .sg-legal-toc.is-open ol { display: block; }
    .sg-legal-cta { align-items: flex-start; flex-direction: column; gap: 22px; }
}
@media (max-width: 640px) {
    .sg-legal-shell { width: calc(100% - 28px); }
    .sg-legal-hero { padding: 38px 0 32px; }
    .sg-legal-hero h1 { font-size: 30px; }
    .sg-legal-intro { font-size: 15.5px; }
    .sg-legal-content { padding: 26px 22px; }
    .sg-legal-content h2 { font-size: 20px; margin-top: 28px; padding-top: 22px; }
    .sg-legal-content p,
    .sg-legal-content ul,
    .sg-legal-content ol { font-size: 15px; }
    .sg-legal-cta { margin-bottom: 42px; padding: 26px 22px; }
    .sg-legal-cta-actions { width: 100%; }
    .sg-legal-button { width: 100%; }
}
@media print {
    .sg-site .header,
    .sg-site .sg-footer,
    .sg-legal-toc,
    .sg-legal-cta,
    #totop { display: none !important; }
    .sg-site { padding-top: 0 !important; }
    .sg-legal-page { background: #fff; }
    .sg-legal-hero { border: 0; padding: 0 0 20px; text-align: left; }
    .sg-legal-layout { display: block; padding: 0; }
    .sg-legal-content { border: 0; box-shadow: none; padding: 0; }
    .sg-legal-content h2 { break-after: avoid; }
}

/* ==========================================================================
   About Select Group — CMS copy is rendered through SafeHtmlHelper.
   ========================================================================== */
.sg-about-page { background: #f5f8fa; color: #334b5e; }
.sg-about-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-about-hero { background-color: #003b71; background-position: center; background-repeat: no-repeat; background-size: cover; color: #fff; height: clamp(390px, 33.4vw, 650px); overflow: hidden; }
.sg-about-hero__grid { align-items: stretch; display: grid; grid-template-columns: minmax(0, .95fr) minmax(380px, 1.05fr); min-height: 100%; }
.sg-about-hero__copy { align-self: center; padding: 56px 14px 56px 0; position: relative; z-index: 1; }
.sg-about-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.3; margin: 0 0 11px; text-transform: uppercase; }
.sg-about-hero .sg-about-eyebrow { color: #c3cad2; }
.sg-about-hero h1 { color: #fff; font-size: clamp(38px, 5vw, 62px); font-weight: 800; letter-spacing: -.035em; line-height: 1; margin: 0; }
.sg-about-hero p:not(.sg-about-eyebrow) { color: #dce9f1; font-size: 18px; line-height: 1.65; margin: 20px 0 0; max-width: 520px; }
.sg-about-overview { padding: 68px 0 18px; text-align: center; }
.sg-about-overview__intro { margin: 0 auto; max-width: 770px; }
.sg-about-overview__intro h2 { color: #003b71; font-size: clamp(28px, 3vw, 39px); font-weight: 800; line-height: 1.18; margin: 0; }
.sg-about-overview__intro > p:last-child { color: #405462; font-size: 16px; line-height: 1.7; margin: 15px auto 0; max-width: 680px; }
.sg-about-overview__grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 34px; text-align: left; }
.sg-about-overview__card { background: #fff; border: 1px solid #dfe8ee; border-radius: 9px; box-shadow: 0 9px 22px rgba(7,31,54,.05); padding: 26px 25px; }
.sg-about-overview__icon { align-items: center; background: #eaf1f6; border-radius: 50%; color: #003b71; display: flex; height: 42px; justify-content: center; margin-bottom: 18px; width: 42px; }
.sg-about-overview__icon i { font-size: 18px; }
.sg-about-overview__card > strong { color: #2f6aa6; display: block; font-size: 12px; font-weight: 800; letter-spacing: .09em; line-height: 1.4; text-transform: uppercase; }
.sg-about-overview__card h3 { color: #003b71; font-size: 19px; font-weight: 800; line-height: 1.3; margin: 7px 0 8px; }
.sg-about-overview__card p { color: #526775; font-size: 14.5px; line-height: 1.65; margin: 0; }
.sg-about-story { align-items: start; display: grid; gap: 70px; grid-template-columns: minmax(250px, .65fr) minmax(0, 1.35fr); padding: 72px 0; }
.sg-about-story__heading { position: sticky; top: calc(var(--sg-header-height, 184px) + 24px); }
.sg-about-story h2 { color: #003b71; font-size: clamp(28px, 3vw, 40px); font-weight: 800; line-height: 1.15; margin: 0; }
.sg-about-story__content { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 10px 26px rgba(7,31,54,.06); padding: 38px 42px; }
.sg-about-story__content > :last-child { margin-bottom: 0; }
.sg-about-story__content h1,
.sg-about-story__content h2,
.sg-about-story__content h3 { color: #003b71; font-weight: 800; line-height: 1.28; }
.sg-about-story__content h1 { font-size: 28px; margin: 0 0 16px; }
.sg-about-story__content h2 { font-size: 23px; margin: 32px 0 12px; }
.sg-about-story__content h3 { font-size: 19px; margin: 26px 0 10px; }
.sg-about-story__content p,
.sg-about-story__content li { color: #405462; font-size: 16px; line-height: 1.8; }
.sg-about-story__content p { margin: 0 0 15px; }
.sg-about-story__content ul,
.sg-about-story__content ol { margin: 0 0 16px; padding-left: 22px; }
.sg-about-story__content li { margin-bottom: 5px; }
.sg-about-story__content a { color: #003b71; text-decoration: underline; }
.sg-about-contact { background: #eaf1f6; border-top: 1px solid #d9e4ec; padding: 64px 0 68px; text-align: center; }
.sg-about-contact__heading h2 { color: #003b71; font-size: clamp(27px, 3vw, 36px); font-weight: 800; line-height: 1.2; margin: 0; }
.sg-about-contact__grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 34px 0 28px; text-align: left; }
.sg-about-contact__card { align-items: center; background: #fff; border: 1px solid #d9e4ec; border-radius: 8px; box-shadow: 0 8px 18px rgba(7,31,54,.05); color: #334b5e; display: flex; gap: 15px; min-height: 106px; padding: 18px 20px; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.sg-about-contact__card:hover,
.sg-about-contact__card:focus { border-color: #9ab7cf; box-shadow: 0 12px 24px rgba(7,31,54,.1); color: #003b71; outline: 0; transform: translateY(-2px); }
.sg-about-contact__icon { align-items: center; background: #003b71; border-radius: 50%; color: #fff; display: flex; flex: 0 0 42px; height: 42px; justify-content: center; width: 42px; }
.sg-about-contact__icon i { font-size: 18px; }
.sg-about-contact__card span:last-child { display: block; min-width: 0; }
.sg-about-contact__card small { color: #71808b; display: block; font-size: 11px; font-weight: 800; letter-spacing: .08em; margin-bottom: 4px; text-transform: uppercase; }
.sg-about-contact__card strong { color: #003b71; display: block; font-size: 14px; line-height: 1.45; overflow-wrap: break-word; }
.sg-about-contact__button { align-items: center; background: #003b71; border-radius: 4px; color: #fff; display: inline-flex; font-size: 14px; font-weight: 800; gap: 9px; justify-content: center; min-height: 46px; padding: 12px 21px; text-decoration: none; transition: background-color .18s ease, transform .18s ease; }
.sg-about-contact__button:hover,
.sg-about-contact__button:focus { background: #0f5d9f; color: #fff; outline: 0; transform: translateY(-1px); }

@media (max-width: 900px) {
    .sg-about-hero { background-position: 60% center; height: auto; }
    .sg-about-hero__grid { grid-template-columns: 1fr; min-height: 310px; }
    .sg-about-hero__copy { padding: 50px 0 34px; }
    .sg-about-overview__grid { grid-template-columns: 1fr; }
    .sg-about-story { gap: 26px; grid-template-columns: 1fr; padding: 52px 0; }
    .sg-about-story__heading { position: static; top: auto; }
    .sg-about-contact__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .sg-about-shell { width: calc(100% - 28px); }
    .sg-about-hero__copy { padding: 40px 0 28px; }
    .sg-about-hero h1 { font-size: 36px; }
    .sg-about-hero p:not(.sg-about-eyebrow) { font-size: 15.5px; }
    .sg-about-hero { background-position: 66% center; }
    .sg-about-overview { padding: 42px 0 6px; }
    .sg-about-story { padding: 40px 0; }
    .sg-about-story__content { padding: 26px 21px; }
    .sg-about-story__content p,
    .sg-about-story__content li { font-size: 15px; }
    .sg-about-contact { padding: 45px 0 48px; }
    .sg-about-contact__grid { margin-top: 26px; }
}

/* Align the Service Entreprise and Contact heroes with the CGV hero. */
.sg-site .sg-contact-intro,
.sg-site .sg-enterprise-intro { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 54px 0 42px; text-align: center; }
.sg-site .sg-contact-intro .sg-contact-eyebrow,
.sg-site .sg-enterprise-intro .sg-enterprise-eyebrow { color: #2f6aa6; display: block; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 auto 10px; max-width: none; text-align: center; text-transform: uppercase; }
.sg-site .sg-contact-intro h1,
.sg-site .sg-enterprise-intro h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; letter-spacing: normal; line-height: 1.1; margin: 0; text-transform: none; }
.sg-site .sg-contact-intro p,
.sg-site .sg-enterprise-intro p { color: #405462; font-size: 17px; line-height: 1.65; margin: 16px auto 0; max-width: 720px; }
@media (max-width: 640px) {
    .sg-site .sg-contact-intro,
    .sg-site .sg-enterprise-intro { padding: 38px 0 32px; }
    .sg-site .sg-contact-intro h1,
    .sg-site .sg-enterprise-intro h1 { font-size: 30px; }
    .sg-site .sg-contact-intro p,
    .sg-site .sg-enterprise-intro p { font-size: 15.5px; }
}

/* ==========================================================================
   FAQ page
   ========================================================================== */
.sg-faq-page { background: #f5f8fa; color: #334b5e; }
.sg-faq-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }

.sg-faq-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 54px 0 42px; text-align: center; }
.sg-faq-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.sg-faq-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0; }
.sg-faq-intro { color: #405462; font-size: 17px; line-height: 1.65; margin: 16px auto 0; max-width: 720px; }

.sg-faq-body { align-items: start; display: grid; gap: 36px; grid-template-columns: minmax(0, 1fr) 340px; padding: 44px 0 64px; }
.sg-faq-list { display: grid; gap: 12px; }
.sg-faq-item { background: #fff; border: 1px solid #dfe8ee; border-radius: 8px; box-shadow: 0 6px 16px rgba(7,31,54,.05); overflow: hidden; }
.sg-faq-item[open] { border-color: #c9d9e4; box-shadow: 0 10px 24px rgba(7,31,54,.08); }
.sg-faq-item summary { align-items: center; color: #003b71; cursor: pointer; display: flex; font-size: 16px; font-weight: 700; gap: 16px; justify-content: space-between; line-height: 1.4; list-style: none; padding: 18px 22px; transition: background-color .15s ease; }
.sg-faq-item summary::-webkit-details-marker { display: none; }
.sg-faq-item summary:hover,
.sg-faq-item summary:focus { background: #f7fafc; outline: 0; }
.sg-faq-item summary:focus-visible { box-shadow: inset 0 0 0 2px rgba(47,106,166,.45); }
.sg-faq-item summary i { color: #2f6aa6; flex: 0 0 auto; font-size: 16px; transition: transform .18s ease; }
.sg-faq-item[open] summary { border-bottom: 1px solid #e6edf3; }
.sg-faq-item[open] summary i { transform: rotate(180deg); }
.sg-faq-answer { padding: 16px 22px 20px; }
.sg-faq-answer p { color: #334b5e; font-size: 15.5px; line-height: 1.8; margin: 0; }
.sg-faq-empty { background: #fff; border: 1px solid #dfe8ee; border-radius: 8px; padding: 32px; text-align: center; }
.sg-faq-empty h2 { color: #003b71; font-size: 22px; margin: 0 0 8px; }
.sg-faq-empty p { color: #405462; margin: 0; }

.sg-faq-aside { background: #003b71; border-radius: 10px; box-shadow: 0 16px 32px rgba(7,31,54,.15); color: #fff; padding: 30px; position: sticky; top: calc(var(--sg-header-height, 184px) + 24px); }
.sg-faq-aside-eyebrow { color: #c3cad2; font-size: 11px; font-weight: 800; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.sg-faq-aside h2 { color: #fff; font-size: 23px; font-weight: 800; line-height: 1.25; margin: 0 0 10px; }
.sg-faq-aside p { color: #cfe0ee; font-size: 14.5px; line-height: 1.65; margin: 0 0 18px; }
.sg-faq-button { align-items: center; background: #fff; border-radius: 4px; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; justify-content: center; min-height: 44px; padding: 12px 18px; text-decoration: none; transition: background-color .18s ease, color .18s ease; }
.sg-faq-button:hover,
.sg-faq-button:focus { background: #c3cad2; color: #003b71; outline: 0; }
.sg-faq-link { color: #fff; display: block; font-size: 14px; margin-top: 10px; text-decoration: none; }
.sg-faq-link i { color: #c3cad2; margin-right: 7px; }
.sg-faq-link:hover,
.sg-faq-link:focus { color: #fff; outline: 0; text-decoration: underline; }

@media (max-width: 980px) {
    .sg-faq-body { gap: 22px; grid-template-columns: 1fr; padding: 30px 0 48px; }
    .sg-faq-aside { position: static; top: auto; }
}
@media (max-width: 640px) {
    .sg-faq-shell { width: calc(100% - 28px); }
    .sg-faq-hero { padding: 38px 0 32px; }
    .sg-faq-hero h1 { font-size: 30px; }
    .sg-faq-intro { font-size: 15.5px; }
    .sg-faq-item summary { font-size: 15px; padding: 16px 18px; }
    .sg-faq-answer { padding: 14px 18px 18px; }
    .sg-faq-answer p { font-size: 15px; }
    .sg-faq-aside { padding: 24px 20px; }
}

/* ==========================================================================
   Public news — each card is driven by Admin > News.
   ========================================================================== */
.sg-news-page { background: #f5f8fa; color: #334b5e; }
.sg-news-page .sg-news-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-news-page .sg-news-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 54px 0 42px; text-align: center; }
.sg-news-page .sg-news-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.3; margin: 0 0 10px; text-transform: uppercase; }
.sg-news-page .sg-news-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0; }
.sg-news-page .sg-news-intro { color: #405462; font-size: 17px; line-height: 1.65; margin: 16px auto 0; max-width: 720px; }
.sg-news-page .sg-news-body { padding: 48px 0 70px; }
.sg-news-page .sg-news-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); }
.sg-news-page .sg-news-card { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 9px 22px rgba(7,31,54,.06); display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sg-news-page .sg-news-card:hover { border-color: #b8cede; box-shadow: 0 16px 30px rgba(7,31,54,.12); transform: translateY(-4px); }
.sg-news-page .sg-news-card-media { background: #eaf1f6; display: block; overflow: hidden; position: relative; }
.sg-news-page .sg-news-card-media::after { background: linear-gradient(180deg, transparent 55%, rgba(0,39,74,.16)); content: ''; inset: 0; pointer-events: none; position: absolute; }
.sg-news-page .sg-news-card-media img { display: block; height: 215px; object-fit: cover; transition: transform .32s ease; width: 100%; }
.sg-news-page .sg-news-card:hover .sg-news-card-media img { transform: scale(1.045); }
.sg-news-page .sg-news-card-placeholder { align-items: center; color: #2f6aa6; display: flex; font-size: 36px; height: 215px; justify-content: center; }
.sg-news-page .sg-news-card-body { display: flex; flex: 1; flex-direction: column; padding: 22px 22px 21px; }
.sg-news-page .sg-news-date { align-items: center; color: #2f6aa6; display: inline-flex; font-size: 12px; font-weight: 800; gap: 7px; letter-spacing: .055em; line-height: 1.4; margin: 0 0 12px; text-transform: uppercase; }
.sg-news-page .sg-news-date i { font-size: 14px; }
.sg-news-page .sg-news-card h2 { font-size: 21px; font-weight: 800; line-height: 1.27; margin: 0 0 12px; }
.sg-news-page .sg-news-card h2 a { color: #003b71; text-decoration: none; transition: color .18s ease; }
.sg-news-page .sg-news-card h2 a:hover,
.sg-news-page .sg-news-card h2 a:focus { color: #2f6aa6; outline: 0; }
.sg-news-page .sg-news-excerpt { color: #526775; font-size: 15px; line-height: 1.7; margin: 0 0 20px; }
.sg-news-page .sg-news-excerpt > :first-child { margin-top: 0; }
.sg-news-page .sg-news-excerpt > :last-child { margin-bottom: 0; }
.sg-news-page .sg-news-excerpt h1,
.sg-news-page .sg-news-excerpt h2,
.sg-news-page .sg-news-excerpt h3 { color: #334b5e; font-size: 16px; line-height: 1.45; margin: 0 0 8px; }
.sg-news-page .sg-news-excerpt p,
.sg-news-page .sg-news-excerpt ul,
.sg-news-page .sg-news-excerpt ol { margin: 0 0 10px; }
.sg-news-page .sg-news-more { align-items: center; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; gap: 9px; margin-top: auto; text-decoration: none; }
.sg-news-page .sg-news-more i { transition: transform .18s ease; }
.sg-news-page .sg-news-more:hover,
.sg-news-page .sg-news-more:focus { color: #2f6aa6; outline: 0; text-decoration: none; }
.sg-news-page .sg-news-more:hover i,
.sg-news-page .sg-news-more:focus i { transform: translateX(3px); }
.sg-news-page .sg-news-empty { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 9px 22px rgba(7,31,54,.05); margin: 0 auto; max-width: 620px; padding: 46px 32px; text-align: center; }
.sg-news-page .sg-news-empty-icon { align-items: center; background: #eaf1f6; border-radius: 50%; color: #003b71; display: inline-flex; font-size: 24px; height: 54px; justify-content: center; margin-bottom: 16px; width: 54px; }
.sg-news-page .sg-news-empty h2 { color: #003b71; font-size: 24px; font-weight: 800; margin: 0 0 9px; }
.sg-news-page .sg-news-empty p { color: #526775; line-height: 1.7; margin: 0 auto 20px; max-width: 440px; }
.sg-news-page .sg-news-empty-button { background: #003b71; border-radius: 4px; color: #fff; display: inline-flex; font-size: 14px; font-weight: 800; min-height: 44px; padding: 12px 19px; text-decoration: none; }
.sg-news-page .sg-news-empty-button:hover,
.sg-news-page .sg-news-empty-button:focus { background: #0f5d9f; color: #fff; outline: 0; text-decoration: none; }
.sg-news-page .sg-news-pagination { margin-top: 38px; text-align: center; }
.sg-news-page .sg-news-pagination .pagination { display: inline-flex; gap: 6px; margin: 0; }
.sg-news-page .sg-news-pagination .pagination > li > a,
.sg-news-page .sg-news-pagination .pagination > li > span { border: 1px solid #cfdee8; border-radius: 4px; color: #003b71; font-weight: 700; margin: 0; min-width: 38px; }
.sg-news-page .sg-news-pagination .pagination > .active > a,
.sg-news-page .sg-news-pagination .pagination > .active > a:hover,
.sg-news-page .sg-news-pagination .pagination > .active > a:focus { background: #003b71; border-color: #003b71; color: #fff; }

@media (max-width: 640px) {
    .sg-news-page .sg-news-shell { width: calc(100% - 28px); }
    .sg-news-page .sg-news-hero { padding: 38px 0 32px; }
    .sg-news-page .sg-news-hero h1 { font-size: 30px; }
    .sg-news-page .sg-news-intro { font-size: 15.5px; }
    .sg-news-page .sg-news-body { padding: 30px 0 48px; }
    .sg-news-page .sg-news-grid { gap: 16px; grid-template-columns: 1fr; }
    .sg-news-page .sg-news-card-media img,
    .sg-news-page .sg-news-card-placeholder { height: 205px; }
    .sg-news-page .sg-news-card-body { padding: 20px; }
}

/* Article detail uses the same hierarchy as the public news listing. */
.sg-news-article { background: #f5f8fa; color: #334b5e; padding-bottom: 70px; }
.sg-news-article-shell { margin: 0 auto; max-width: 1040px; width: calc(100% - 40px); }
.sg-news-article-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 42px 0 44px; text-align: center; }
.sg-news-back { align-items: center; color: #003b71; display: inline-flex; font-size: 13px; font-weight: 800; gap: 8px; margin-bottom: 24px; text-decoration: none; }
.sg-news-back:hover,
.sg-news-back:focus { color: #2f6aa6; outline: 0; text-decoration: none; }
.sg-news-article-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 11px; text-transform: uppercase; }
.sg-news-article-hero h1 { color: #003b71; font-size: clamp(31px, 4.1vw, 50px); font-weight: 800; line-height: 1.13; margin: 0 auto; max-width: 860px; }
.sg-news-article-date { align-items: center; color: #526775; display: inline-flex; font-size: 14px; font-weight: 700; gap: 8px; margin-top: 18px; }
.sg-news-article-date i { color: #2f6aa6; }
.sg-news-article-body { align-items: start; display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) 260px; padding-top: 46px; }
.sg-news-article-media { background: #eaf1f6; border: 1px solid #dfe8ee; border-radius: 10px; grid-column: 1 / -1; margin: 0; overflow: hidden; }
.sg-news-article-media img { display: block; height: clamp(260px, 46vw, 500px); object-fit: cover; width: 100%; }
.sg-news-article-content { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 9px 22px rgba(7,31,54,.06); min-width: 0; padding: 38px 42px; }
.sg-news-article-lead { border-bottom: 1px solid #e3ebf0; color: #003b71; font-size: 19px; font-weight: 700; line-height: 1.65; margin-bottom: 28px; padding-bottom: 25px; }
.sg-news-article-lead > :first-child,
.sg-news-article-copy > :first-child { margin-top: 0; }
.sg-news-article-lead > :last-child,
.sg-news-article-copy > :last-child { margin-bottom: 0; }
.sg-news-article-copy { color: #405462; font-size: 16px; line-height: 1.82; }
.sg-news-article-copy h1,
.sg-news-article-copy h2,
.sg-news-article-copy h3 { color: #003b71; font-weight: 800; line-height: 1.28; }
.sg-news-article-copy h1 { font-size: 27px; margin: 0 0 17px; }
.sg-news-article-copy h2 { font-size: 23px; margin: 33px 0 13px; }
.sg-news-article-copy h3 { font-size: 19px; margin: 27px 0 10px; }
.sg-news-article-copy p { margin: 0 0 16px; }
.sg-news-article-copy ul,
.sg-news-article-copy ol { margin: 0 0 18px; padding-left: 23px; }
.sg-news-article-copy li { margin-bottom: 6px; }
.sg-news-article-copy a { color: #003b71; text-decoration: underline; }
.sg-news-article-aside { background: #003b71; border-radius: 10px; box-shadow: 0 14px 28px rgba(7,31,54,.14); color: #fff; padding: 28px 25px; position: sticky; top: calc(var(--sg-header-height, 184px) + 24px); }
.sg-news-article-aside-eyebrow { color: #c3cad2; font-size: 11px; font-weight: 800; letter-spacing: .12em; margin: 0 0 10px; text-transform: uppercase; }
.sg-news-article-aside h2 { color: #fff; font-size: 21px; font-weight: 800; line-height: 1.3; margin: 0 0 10px; }
.sg-news-article-aside p { color: #d4e4ef; font-size: 14.5px; line-height: 1.65; margin: 0 0 18px; }
.sg-news-article-aside a { align-items: center; background: #fff; border-radius: 4px; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; justify-content: center; min-height: 43px; padding: 11px 17px; text-decoration: none; }
.sg-news-article-aside a:hover,
.sg-news-article-aside a:focus { background: #c3cad2; color: #003b71; outline: 0; text-decoration: none; }

@media (max-width: 900px) {
    .sg-news-article-body { grid-template-columns: 1fr; }
    .sg-news-article-aside { position: static; top: auto; }
}
@media (max-width: 640px) {
    .sg-news-article { padding-bottom: 48px; }
    .sg-news-article-shell { width: calc(100% - 28px); }
    .sg-news-article-hero { padding: 32px 0 34px; }
    .sg-news-back { margin-bottom: 20px; }
    .sg-news-article-hero h1 { font-size: 30px; }
    .sg-news-article-body { gap: 18px; padding-top: 30px; }
    .sg-news-article-media img { height: 230px; }
    .sg-news-article-content { padding: 26px 21px; }
    .sg-news-article-copy { font-size: 15px; }
    .sg-news-article-aside { padding: 25px 20px; }
}

/* ==========================================================================
   Category landing and catalogue pages — data comes from Admin > Categories.
   ========================================================================== */
.sg-category-page,
.sg-catalogue-page { background: #f5f8fa; color: #334b5e; }
.sg-category-shell,
.sg-catalogue-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-category-hero,
.sg-catalogue-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 54px 0 42px; text-align: center; }
.sg-category-eyebrow,
.sg-catalogue-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.3; margin: 0 0 10px; text-transform: uppercase; }
.sg-category-hero h1,
.sg-catalogue-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.12; margin: 0; }
.sg-category-hero > .sg-category-shell > p:last-child,
.sg-catalogue-intro,
.sg-catalogue-description { color: #405462; font-size: 17px; line-height: 1.65; margin: 16px auto 0; max-width: 740px; }
.sg-catalogue-description > :first-child { margin-top: 0; }
.sg-catalogue-description > :last-child { margin-bottom: 0; }
.sg-category-body { padding: 48px 0 70px; }
.sg-category-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.sg-category-card { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 9px 22px rgba(7,31,54,.06); display: flex; flex-direction: column; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sg-category-card:hover { border-color: #b8cede; box-shadow: 0 16px 30px rgba(7,31,54,.12); transform: translateY(-4px); }
.sg-category-card-media { background: #eaf1f6; display: block; height: 205px; overflow: hidden; position: relative; }
.sg-category-card-media::after { background: linear-gradient(180deg, transparent 46%, rgba(0,39,74,.18)); content: ''; inset: 0; position: absolute; }
.sg-category-card-media img { display: block; height: 100%; object-fit: cover; transition: transform .32s ease; width: 100%; }
.sg-category-card:hover .sg-category-card-media img { transform: scale(1.045); }
.sg-category-card-media span { align-items: center; color: #2f6aa6; display: flex; font-size: 36px; height: 100%; justify-content: center; }
.sg-category-card-content { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.sg-category-card h2 { font-size: 22px; font-weight: 800; line-height: 1.25; margin: 0 0 11px; }
.sg-category-card h2 a { color: #003b71; text-decoration: none; }
.sg-category-card h2 a:hover,
.sg-category-card h2 a:focus { color: #2f6aa6; outline: 0; }
.sg-category-card-description { color: #526775; font-size: 14.5px; line-height: 1.65; margin: 0 0 15px; }
.sg-category-card-description > :first-child { margin-top: 0; }
.sg-category-card-description > :last-child { margin-bottom: 0; }
.sg-category-card-description h1,
.sg-category-card-description h2,
.sg-category-card-description h3 { color: #405462; font-size: 15px; line-height: 1.45; margin: 0 0 7px; }
.sg-category-card-description p { margin: 0 0 8px; }
.sg-category-card-children { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; margin: 0 0 17px; padding: 0; }
.sg-category-card-children a { background: #edf4f8; border-radius: 20px; color: #003b71; display: block; font-size: 12px; font-weight: 700; padding: 6px 10px; text-decoration: none; }
.sg-category-card-children a:hover,
.sg-category-card-children a:focus { background: #dceaf3; color: #003b71; outline: 0; }
.sg-category-card-action { align-items: center; color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; gap: 9px; margin-top: auto; text-decoration: none; }
.sg-category-card-action:hover,
.sg-category-card-action:focus { color: #2f6aa6; outline: 0; text-decoration: none; }
.sg-category-card-action i { transition: transform .18s ease; }
.sg-category-card-action:hover i,
.sg-category-card-action:focus i { transform: translateX(3px); }
.sg-category-empty,
.sg-catalogue-empty { background: #fff; border: 1px solid #dfe8ee; border-radius: 10px; box-shadow: 0 9px 22px rgba(7,31,54,.05); margin: 0 auto; max-width: 620px; padding: 46px 32px; text-align: center; }
.sg-category-empty > span,
.sg-catalogue-empty > span { align-items: center; background: #eaf1f6; border-radius: 50%; color: #003b71; display: inline-flex; font-size: 24px; height: 54px; justify-content: center; margin-bottom: 16px; width: 54px; }
.sg-category-empty h2,
.sg-catalogue-empty h3 { color: #003b71; font-size: 24px; font-weight: 800; margin: 0 0 9px; }
.sg-category-empty p,
.sg-catalogue-empty p { color: #526775; line-height: 1.7; margin: 0; }

.sg-catalogue-breadcrumb { align-items: center; color: #647887; display: flex; flex-wrap: wrap; font-size: 13px; gap: 8px; justify-content: center; margin-bottom: 20px; }
.sg-catalogue-breadcrumb a { color: #003b71; font-weight: 700; text-decoration: none; }
.sg-catalogue-breadcrumb a:hover,
.sg-catalogue-breadcrumb a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-catalogue-breadcrumb i { color: #95a8b5; }
.sg-catalogue-subcategories { background: #eaf1f6; border-bottom: 1px solid #d8e4ec; padding: 22px 0; }
.sg-catalogue-subcategories-title { color: #003b71; font-size: 12px; font-weight: 800; letter-spacing: .1em; margin: 0 0 12px; text-transform: uppercase; }
.sg-catalogue-subcategory-list { display: flex; flex-wrap: wrap; gap: 10px; }
.sg-catalogue-subcategory-list a { align-items: center; background: #fff; border: 1px solid #cfdee8; border-radius: 4px; color: #003b71; display: inline-flex; font-size: 13px; font-weight: 700; gap: 8px; min-height: 38px; padding: 8px 12px; text-decoration: none; }
.sg-catalogue-subcategory-list a:hover,
.sg-catalogue-subcategory-list a:focus { background: #003b71; border-color: #003b71; color: #fff; outline: 0; }
.sg-catalogue-products-section { padding: 48px 0 70px; }
.sg-catalogue-products-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 26px; }
.sg-catalogue-products-heading h2 { color: #003b71; font-size: 30px; font-weight: 800; line-height: 1.2; margin: 0; }
.sg-catalogue-products-heading .sg-catalogue-eyebrow { margin-bottom: 8px; }
.sg-catalogue-current-link { color: #2f6aa6; font-size: 13px; font-weight: 800; text-decoration: none; }
.sg-catalogue-current-link:hover,
.sg-catalogue-current-link:focus { color: #003b71; outline: 0; text-decoration: underline; }
.sg-catalogue-product-grid { margin-bottom: 0; }
.sg-catalogue-product-grid .sg-product-card-item { margin-bottom: 28px; }
.sg-catalogue-product-grid .sg-product-image-placeholder { align-items: center; background: #edf4f8; color: #2f6aa6; display: flex; font-size: 32px; height: 190px; justify-content: center; }
.sg-catalogue-pagination { margin-top: 20px; text-align: center; }
.sg-catalogue-pagination .pagination { display: inline-flex; gap: 6px; margin: 0; }
.sg-catalogue-pagination .pagination > li > a,
.sg-catalogue-pagination .pagination > li > span { border: 1px solid #cfdee8; border-radius: 4px; color: #003b71; font-weight: 700; margin: 0; min-width: 38px; }
.sg-catalogue-pagination .pagination > .active > a,
.sg-catalogue-pagination .pagination > .active > a:hover,
.sg-catalogue-pagination .pagination > .active > a:focus { background: #003b71; border-color: #003b71; color: #fff; }

/* Catalogue controls and commercial metadata. Values are managed in Admin >
   Products; this layer only presents them and never drives cart calculations. */
.sg-catalogue-layout { align-items: flex-start; display: grid; gap: 28px; grid-template-columns: 238px minmax(0, 1fr); }
.sg-catalogue-filters { background: #fff; border: 1px solid #dbe6ed; border-radius: 12px; box-shadow: 0 10px 24px rgba(7,31,54,.06); overflow: hidden; }
.sg-catalogue-filter-heading { align-items: center; background: #003b71; color: #fff; display: flex; font-size: 16px; font-weight: 800; justify-content: space-between; padding: 16px 18px; }
.sg-catalogue-filter-heading span { align-items: center; display: inline-flex; gap: 9px; }
.sg-catalogue-filter-heading a { color: #fff; font-size: 12px; font-weight: 700; text-decoration: underline; }
.sg-catalogue-filter-group { border-bottom: 1px solid #e8eef2; padding: 17px 18px; }
.sg-catalogue-filter-group label,
.sg-catalogue-sort label { color: #29465b; display: block; font-size: 13px; font-weight: 800; margin: 0 0 8px; }
.sg-catalogue-filter-group select,
.sg-catalogue-sort select { background: #fff; border: 1px solid #cbdbe6; border-radius: 5px; color: #30495b; font-size: 14px; min-height: 40px; padding: 8px 10px; width: 100%; }
.sg-catalogue-filter-group select:focus,
.sg-catalogue-sort select:focus { border-color: #2f6aa6; box-shadow: 0 0 0 3px rgba(47,106,166,.16); outline: 0; }
.sg-catalogue-price-fields { align-items: center; display: grid; gap: 7px; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.sg-catalogue-price-fields input { background: #fff; border: 1px solid #cbdbe6; border-radius: 5px; color: #30495b; font-size: 13px; min-width: 0; min-height: 40px; padding: 8px; width: 100%; }
.sg-catalogue-price-fields input:focus { border-color: #2f6aa6; box-shadow: 0 0 0 3px rgba(47,106,166,.16); outline: 0; }
.sg-catalogue-price-fields span { color: #7890a0; font-weight: 700; }
.sg-catalogue-filter-submit { background: #fff; border: 1px solid #003b71; border-radius: 5px; color: #003b71; font-size: 13px; font-weight: 800; margin: 18px; min-height: 41px; padding: 9px 13px; transition: background .2s ease, color .2s ease; width: calc(100% - 36px); }
.sg-catalogue-filter-submit:hover,
.sg-catalogue-filter-submit:focus { background: #003b71; color: #fff; outline: 0; }
.sg-catalogue-results { min-width: 0; }
.sg-catalogue-sort { align-items: center; background: #fff; border: 1px solid #dbe6ed; border-radius: 8px; display: flex; gap: 12px; justify-content: flex-end; margin: 0 0 24px; padding: 12px 14px; }
.sg-catalogue-sort label { margin: 0; white-space: nowrap; }
.sg-catalogue-sort select { max-width: 230px; }
.sg-catalogue-sort button { background: #edf4f8; border: 1px solid #bfd1df; border-radius: 4px; color: #003b71; font-size: 13px; font-weight: 800; min-height: 40px; padding: 8px 13px; }
.sg-catalogue-sort button:hover,
.sg-catalogue-sort button:focus { background: #dceaf3; outline: 0; }
.sg-catalogue-product-grid { align-items: stretch; display: flex; flex-wrap: wrap; }
.sg-catalogue-product-grid .sg-product-card-item { display: flex; }
.sg-site .sg-catalogue-product-grid .sg-product-card { background: #fff; border: 1px solid #dce6ed; border-radius: 10px; box-shadow: 0 8px 20px rgba(7,31,54,.06); display: flex; flex: 1; flex-direction: column; height: 100%; overflow: hidden; }
.sg-site .sg-catalogue-product-grid .sg-product-card:hover { border-color: #a9c4d8; box-shadow: 0 15px 28px rgba(7,31,54,.13); }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-box-inner { flex: 0 0 auto; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box { align-items: center; background: #f4f8fa; display: flex; height: 218px; justify-content: center; padding: 16px; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box a { align-items: center; display: flex; height: 100%; justify-content: center; width: 100%; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box img { height: 100%; max-height: 186px; max-width: 100%; object-fit: contain; width: 100%; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content { display: flex; flex: 1; flex-direction: column; padding: 17px 18px 19px; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content h3 { font-size: 15px; line-height: 1.42; margin: 10px 0 0; min-height: 64px; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content h3 a { color: #003b71; text-decoration: none; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content h3 a:hover,
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content h3 a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-product-stock { align-self: flex-start; border-radius: 14px; display: inline-flex; font-size: 11px; font-weight: 800; letter-spacing: .02em; line-height: 1; padding: 6px 9px; }
.sg-product-stock--in_stock { background: #e5f5ea; color: #18763b; }
.sg-product-stock--on_order { background: #fff3d8; color: #895b00; }
.sg-product-stock--out_of_stock { background: #fde6e7; color: #b12834; }
.sg-product-brand { color: #718390; font-size: 12px; font-weight: 700; margin: 8px 0 0; }
.sg-product-price { align-items: baseline; display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 16px; }
.sg-product-price strong { color: #003b71; font-size: 18px; font-weight: 800; }
.sg-product-price del { color: #7f909a; font-size: 12px; }
.sg-product-price .sg-product-price--quote { color: #2f6aa6; font-size: 14px; }
.sg-product-commercial-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; margin: 17px 0 4px; }
.sg-product-commercial-meta .sg-product-price { margin: 0; padding: 0; }

@media (max-width: 760px) {
    .sg-category-grid { grid-template-columns: 1fr; }
    .sg-catalogue-products-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
    .sg-catalogue-layout { grid-template-columns: 1fr; }
    .sg-catalogue-filters { order: 2; }
    .sg-catalogue-sort { justify-content: flex-start; }
}
@media (max-width: 640px) {
    .sg-category-shell,
    .sg-catalogue-shell { width: calc(100% - 28px); }
    .sg-category-hero,
    .sg-catalogue-hero { padding: 38px 0 32px; }
    .sg-category-hero h1,
    .sg-catalogue-hero h1 { font-size: 30px; }
    .sg-category-hero > .sg-category-shell > p:last-child,
    .sg-catalogue-intro,
    .sg-catalogue-description { font-size: 15.5px; }
    .sg-category-body,
    .sg-catalogue-products-section { padding: 30px 0 48px; }
    .sg-category-grid { gap: 16px; }
    .sg-category-card-media { height: 190px; }
    .sg-category-card-content { padding: 20px; }
    .sg-catalogue-products-heading h2 { font-size: 25px; }
    .sg-catalogue-sort { align-items: stretch; flex-direction: column; gap: 8px; }
    .sg-catalogue-sort select { max-width: none; }
    .sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box { height: 205px; }
}

/* Keep the standalone selection page independent from the earlier legacy cart
   component styles defined above. */
.sg-site .sg-cart-page .sg-cart-empty { display: block; margin: 0 auto; }
.sg-site .sg-cart-page .sg-cart-form { border: 1px solid #dfe8ee; border-radius: 12px; box-shadow: 0 13px 30px rgba(7,31,54,.06); margin: 0; overflow: hidden; padding: 0; }
.sg-site .sg-cart-page .sg-cart-table { margin: 0; min-width: 750px; }
.sg-site .sg-cart-page .sg-cart-table th { border: 0; padding: 15px 13px; }
.sg-site .sg-cart-page .sg-cart-table td { border-top: 1px solid #e6edf2; padding: 15px 13px; }
.sg-site .sg-cart-page .sg-cart-quantity { width: 115px; }
.sg-site .sg-cart-page .sg-cart-quote { gap: 28px; margin-left: auto; max-width: 680px; padding: 18px 20px; }
.sg-site .sg-cart-page .sg-cart-actions { align-items: center; gap: 18px; margin-top: 24px; }
@media (max-width: 767px) {
    .sg-site .sg-cart-page .sg-cart-table { min-width: 0; }
    .sg-site .sg-cart-page .sg-cart-table tbody tr.sg-cart-row { grid-template-columns: 34px 70px 1fr; padding: 13px; }
    .sg-site .sg-cart-page .sg-cart-actions { align-items: stretch; flex-direction: column-reverse; }
    .sg-site .sg-cart-page .sg-cart-quote { align-items: flex-start; flex-direction: column; gap: 13px; margin-left: 0; max-width: none; width: 100%; }
}

/* Quotation page, aligned with the catalogue and selection journey. */
.sg-quote-page { background: #f5f8fa; color: #334b5e; }
.sg-quote-shell { margin: 0 auto; max-width: 1180px; width: calc(100% - 40px); }
.sg-quote-hero { background: #fff; border-bottom: 1px solid #e1e9ef; padding: 35px 0 32px; text-align: center; }
.sg-quote-breadcrumb { align-items: center; display: flex; flex-wrap: wrap; font-size: 13px; gap: 8px; justify-content: center; margin-bottom: 16px; }
.sg-quote-breadcrumb a { color: #003b71; font-weight: 700; text-decoration: none; }
.sg-quote-breadcrumb a:hover,
.sg-quote-breadcrumb a:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-quote-breadcrumb i { color: #95a8b5; }
.sg-quote-eyebrow,
.sg-quote-panel-eyebrow { color: #2f6aa6; font-size: 12px; font-weight: 800; letter-spacing: .14em; margin: 0 0 9px; text-transform: uppercase; }
.sg-quote-hero h1 { color: #003b71; font-size: clamp(32px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0; }
.sg-quote-hero > .sg-quote-shell > p:last-child { color: #526775; font-size: 16px; line-height: 1.6; margin: 13px auto 0; max-width: 680px; }
.sg-quote-main-section { padding: 44px 0 70px; }
.sg-quote-empty { background: #fff; border: 1px solid #dfe8ee; border-radius: 12px; box-shadow: 0 13px 30px rgba(7,31,54,.06); margin: 0 auto; max-width: 600px; padding: 48px 32px; text-align: center; }
.sg-quote-empty > span { align-items: center; background: #eaf2f7; border-radius: 50%; color: #003b71; display: inline-flex; font-size: 29px; height: 62px; justify-content: center; margin-bottom: 18px; width: 62px; }
.sg-quote-empty h2 { color: #003b71; font-size: 26px; font-weight: 800; margin: 0 0 9px; }
.sg-quote-empty p { color: #607789; line-height: 1.7; margin: 0 auto 22px; max-width: 440px; }
.sg-quote-form { background: #fff; border: 1px solid #dfe8ee; border-radius: 12px; box-shadow: 0 13px 30px rgba(7,31,54,.06); margin: 0; overflow: hidden; }
.sg-quote-form-intro { align-items: center; background: #edf5fa; border-bottom: 1px solid #d8e6ee; color: #405462; display: flex; font-size: 14px; gap: 11px; line-height: 1.6; padding: 15px 26px; }
.sg-quote-form-intro i { color: #003b71; font-size: 17px; }
.sg-quote-form-intro p { margin: 0; }
.sg-quote-form-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); }
.sg-quote-customer-panel { border-right: 1px solid #e3ebf0; padding: 31px; }
.sg-quote-customer-panel h2,
.sg-quote-notes-panel h2,
.sg-quote-selection h2 { color: #003b71; font-size: 25px; font-weight: 800; margin: 0 0 20px; }
.sg-quote-fields-grid { display: grid; gap: 14px 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sg-quote-field { margin: 0; padding: 0; }
.sg-quote-field--wide { grid-column: 1 / -1; }
.sg-quote-field label { color: #003b71; display: block; font-size: 13px; font-weight: 800; margin: 0 0 6px; }
.sg-quote-field .required { color: #b2313d; text-decoration: none; }
.sg-quote-field input,
.sg-quote-field select,
.sg-quote-field textarea { background: #fff; border: 1px solid #c5d6e1; border-radius: 5px; color: #243f53; min-height: 43px; padding: 10px 12px; width: 100%; }
.sg-quote-field textarea { min-height: 155px; resize: vertical; }
.sg-quote-field input:focus,
.sg-quote-field select:focus,
.sg-quote-field textarea:focus { border-color: #003b71; box-shadow: 0 0 0 3px rgba(0,59,113,.13); outline: 0; }
.sg-quote-field input[readonly] { background: #f3f7f9; color: #607789; cursor: not-allowed; }
.sg-quote-field-help { color: #6d8190; display: block; font-size: 11px; line-height: 1.4; margin-top: 5px; }
.sg-quote-aside-panel { background: #f9fbfc; padding: 25px; }
.sg-quote-page .sg-quote-selection { background: #fff; border: 1px solid #dbe7ed; border-radius: 9px; margin: 0 0 18px; padding: 20px; }
.sg-quote-page .sg-quote-selection-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.sg-quote-page .sg-quote-selection-heading > div > span { color: #2f6aa6; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sg-quote-page .sg-quote-selection h2 { font-size: 22px; margin: 3px 0 12px; }
.sg-quote-edit-selection { color: #003b71; font-size: 13px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.sg-quote-edit-selection:hover,
.sg-quote-edit-selection:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-quote-page .sg-quote-selection-list { list-style: none; margin: 0; padding: 0; }
.sg-quote-page .sg-quote-selection-list li { border-top: 1px solid #e1eaf0; display: grid; gap: 4px; padding: 12px 0; }
.sg-quote-page .sg-quote-selection-list li:last-child { padding-bottom: 0; }
.sg-quote-page .sg-quote-selection-name { color: #29455a; font-size: 14px; font-weight: 800; }
.sg-quote-page .sg-quote-selection-meta { color: #647887; font-size: 12px; }
.sg-quote-page .sg-quote-selection-meta b { color: #003b71; font-weight: 800; margin-left: 7px; }
.sg-quote-notes-panel { background: #fff; border: 1px solid #dbe7ed; border-radius: 9px; padding: 20px; }
.sg-quote-notes-panel h2 { font-size: 20px; margin-bottom: 15px; }
.sg-quote-actions { align-items: center; border-top: 1px solid #e3ebf0; display: flex; gap: 13px; justify-content: flex-end; padding: 20px 26px; }
.sg-quote-outline-button,
.sg-quote-primary-button { align-items: center; border-radius: 5px; display: inline-flex; font-size: 14px; font-weight: 800; gap: 10px; justify-content: center; min-height: 44px; padding: 10px 17px; text-decoration: none; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
.sg-quote-outline-button { background: #fff; border: 1px solid #003b71; color: #003b71; }
.sg-quote-outline-button:hover,
.sg-quote-outline-button:focus { background: #edf4f8; color: #003b71; outline: 0; text-decoration: none; }
.sg-quote-primary-button { background: #003b71; border: 1px solid #003b71; color: #fff; }
.sg-quote-primary-button:hover,
.sg-quote-primary-button:focus { background: #002c54; border-color: #002c54; color: #fff; outline: 0; transform: translateY(-1px); }
@media (max-width: 850px) {
    .sg-quote-form-grid { grid-template-columns: 1fr; }
    .sg-quote-customer-panel { border-bottom: 1px solid #e3ebf0; border-right: 0; }
}
@media (max-width: 640px) {
    .sg-quote-shell { width: calc(100% - 28px); }
    .sg-quote-hero { padding: 29px 0 26px; }
    .sg-quote-main-section { padding: 28px 0 48px; }
    .sg-quote-empty { padding: 38px 22px; }
    .sg-quote-customer-panel,
    .sg-quote-aside-panel { padding: 24px 19px; }
    .sg-quote-form-intro { align-items: flex-start; padding: 14px 19px; }
    .sg-quote-fields-grid { grid-template-columns: 1fr; }
    .sg-quote-field--wide { grid-column: auto; }
    .sg-quote-actions { align-items: stretch; flex-direction: column-reverse; padding: 18px 19px; }
    .sg-quote-actions .sg-quote-outline-button,
    .sg-quote-actions .sg-quote-primary-button { width: 100%; }
}

/* Public customer account journey. These selectors are isolated from the
   Bootstrap 4 legacy forms used elsewhere in the public site. */
.sg-account-page { background: linear-gradient(135deg, #f4f8fa 0%, #eaf2f7 100%); min-height: 620px; padding: 60px 20px 84px; }
.sg-account-shell { margin: 0 auto; max-width: 760px; }
.sg-account-back { color: #003b71; display: inline-flex; font-size: 14px; font-weight: 800; gap: 8px; margin: 0 0 16px; text-decoration: none; }
.sg-account-back:hover, .sg-account-back:focus { color: #2f6aa6; outline: 0; text-decoration: underline; }
.sg-account-card { background: rgba(255,255,255,.96); border: 1px solid #dce7ed; border-radius: 14px; box-shadow: 0 18px 46px rgba(7,31,54,.10); margin: 0 auto; max-width: 510px; padding: 38px; }
.sg-account-card--wide { max-width: 760px; }
.sg-account-intro { margin-bottom: 26px; text-align: center; }
.sg-account-intro h1 { color: #003b71; font-size: 32px; font-weight: 800; margin: 0 0 9px; }
.sg-account-intro p:last-child { color: #617687; line-height: 1.6; margin: 0; }
.sg-account-intro--with-action { align-items: center; display: flex; gap: 20px; justify-content: space-between; text-align: left; }
.sg-account-form { margin: 0; }
.sg-account-required-note { color: #627b8c; font-size: 12px; margin: -9px 0 18px; text-align: right; }
.sg-account-required-note span { color: #be2434; font-size: 15px; font-weight: 800; vertical-align: -1px; }
.sg-account-form--grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sg-account-field { margin: 0; }
.sg-account-field--wide { grid-column: 1 / -1; }
.sg-account-field label { color: #003b71; display: block; font-size: 13px; font-weight: 800; margin: 0 0 7px; }
.sg-account-field input, .sg-account-field select { background: #fff; border: 1px solid #c5d6e1; border-radius: 5px; color: #243f53; min-height: 44px; padding: 10px 12px; width: 100%; }
.sg-account-field input:focus, .sg-account-field select:focus { border-color: #003b71; box-shadow: 0 0 0 3px rgba(0,59,113,.13); outline: 0; }
.sg-account-form .error-message { color: #a32332; display: block; font-size: 12px; line-height: 1.4; margin-top: 5px; }
.sg-account-form-actions { margin-top: 5px; }
.sg-account-form-actions .sg-quote-primary-button, .sg-account-form > .sg-quote-primary-button { width: 100%; }
.sg-account-alternate { border-top: 1px solid #e2ebf0; color: #607789; font-size: 14px; margin: 25px 0 0; padding-top: 21px; text-align: center; }
.sg-account-alternate a { color: #003b71; font-weight: 800; }
.sg-account-logout { margin: 22px 0 0; text-align: center; }
.sg-account-logout button { background: transparent; border: 0; color: #607789; cursor: pointer; font-size: 13px; text-decoration: underline; }
.sg-account-logout button:hover, .sg-account-logout button:focus { color: #003b71; outline: 0; }
.sg-identity-summary { background: #f2f7fa; border: 1px solid #d8e5ed; border-radius: 8px; color: #365267; display: flex; flex-direction: column; gap: 3px; margin: 0 auto 18px; max-width: 470px; padding: 14px 17px; text-align: center; }
.sg-identity-summary strong { color: #003b71; }
.sg-social-actions { display: grid; gap: 11px; margin: 0 auto; max-width: 470px; }
.sg-social-actions--login { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sg-social-button { align-items: center; border: 1px solid #cbdbe5; border-radius: 6px; color: #173d5e; display: inline-flex; font-size: 14px; font-weight: 800; gap: 11px; justify-content: center; min-height: 46px; padding: 10px 15px; text-decoration: none; transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease; }
.sg-social-button:hover, .sg-social-button:focus { border-color: #7fa7c4; box-shadow: 0 7px 16px rgba(11,59,95,.11); color: #003b71; outline: 0; text-decoration: none; transform: translateY(-1px); }
.sg-social-button--google { background: #fff; }
.sg-social-button--google .fa { color: #d44835; }
.sg-social-button--facebook { background: #1877f2; border-color: #1877f2; color: #fff; }
.sg-social-button--facebook:hover, .sg-social-button--facebook:focus { color: #fff; }
.sg-social-separator { border-top: 1px solid #e2ebf0; height: 1px; margin: 24px 0; text-align: center; }
.sg-social-separator span { background: rgba(255,255,255,.96); color: #7890a1; display: inline-block; font-size: 12px; font-weight: 700; padding: 0 12px; position: relative; top: -10px; text-transform: uppercase; }
.sg-account-alternate--compact { margin-top: 18px; padding-top: 16px; }
.sg-identity-state { color: #356276; font-size: 13px; margin: 19px 0 0; text-align: center; }
.sg-identity-state .fa { color: #168a59; margin-right: 6px; }
@media (max-width: 640px) {
    .sg-account-page { padding: 38px 14px 58px; }
    .sg-account-card { padding: 27px 20px; }
    .sg-account-form--grid { grid-template-columns: 1fr; }
    .sg-account-field--wide { grid-column: auto; }
    .sg-account-intro--with-action { align-items: flex-start; flex-direction: column; }
    .sg-social-actions--login { grid-template-columns: 1fr; }
}

/* Stable catalogue-card interaction. This intentionally supersedes the
   legacy hover toolbar: images always remain in their own card surface and
   product actions never change the grid's geometry. */
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-box-inner { display: block; flex: 0 0 218px; overflow: hidden; position: relative; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box { height: 218px; min-height: 0; padding: 16px; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box .sg-product-image-preview { align-items: center; background: transparent; border: 0; cursor: zoom-in; display: flex; height: 100%; justify-content: center; overflow: hidden; padding: 0; width: 100%; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box .sg-product-image-preview img { height: 100%; max-height: 186px; max-width: 100%; object-fit: contain; transform: none; transition: transform 180ms ease; width: 100%; }
.sg-site .sg-catalogue-product-grid .sg-product-card:hover .ttm-product-image-box .sg-product-image-preview img { transform: scale(1.025); }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content { min-height: 0; }
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-card-main-link { color: inherit; display: flex; flex: 1; flex-direction: column; min-height: 0; text-decoration: none; }
.sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-content h3 { margin: 12px 0 0; min-height: 0; }
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-card-reference { margin: 5px 0 0; min-height: 18px; }
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-price { align-items: center; border-top: 1px solid #e3edf3; display: flex; margin-top: auto; min-height: 48px; padding-top: 12px; }
.sg-site ul.products.sg-catalogue-product-grid li.product .sg-product-card .sg-product-card-actions { align-items: stretch; bottom: auto; display: flex; flex: 0 0 auto; gap: 8px; left: auto; margin: 12px 0 0; padding: 0; position: static; right: auto; top: auto; visibility: visible; width: 100%; z-index: auto; }
.sg-site ul.products.sg-catalogue-product-grid li.product .sg-product-card .sg-product-card-add { align-items: center; border-radius: 5px; display: inline-flex; font-size: 11px; font-weight: 800; justify-content: center; min-height: 35px; text-decoration: none; transform: none; }
.sg-site ul.products.sg-catalogue-product-grid li.product .sg-product-card .sg-product-card-add { background: #003b71; border: 1px solid #003b71; color: #fff; cursor: pointer; flex: 1 1 100%; gap: 6px; padding: 7px 9px; width: 100%; }
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-card-add:hover,
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-card-add:focus { background: #002c54; border-color: #002c54; outline: 0; }
.sg-site .sg-catalogue-product-grid .sg-product-card .sg-product-card-add:disabled { cursor: wait; opacity: .72; }
@media (max-width: 640px) {
    .sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-box-inner,
    .sg-site .sg-catalogue-product-grid .sg-product-card .ttm-product-image-box { height: 205px; }
}

/* Bootstrap manages the backdrop, focus and escape handling for this preview.
   The modal itself is deliberately simple so it remains reliable on all cards. */
.sg-product-preview-modal { background: rgba(4, 24, 43, .62); display: none; overflow-x: hidden; overflow-y: auto; padding: 24px; }
.sg-product-preview-modal.is-open { display: block; opacity: 1; }
.sg-product-preview-modal .modal-dialog { margin: 1.5rem auto; max-width: 760px; opacity: 0; transform: translateY(14px); transition: opacity 180ms ease, transform 220ms ease; }
.sg-product-preview-modal.is-open .modal-dialog { opacity: 1; transform: translateY(0); }
.sg-product-preview-modal .modal-content { border: 0; border-radius: 12px; box-shadow: 0 22px 65px rgba(0, 42, 79, .28); overflow: hidden; }
.sg-product-preview-modal .sg-product-preview-close { align-items: center; background: rgba(255, 255, 255, .94); border-radius: 50%; color: #003b71; display: flex; font-size: 25px; height: 34px; justify-content: center; line-height: 1; opacity: 1; position: absolute; right: 12px; top: 12px; width: 34px; z-index: 2; }
.sg-product-preview-modal .sg-product-preview-media { align-items: center; background: #f4f8fb; display: flex; height: 390px; justify-content: center; padding: 25px; }
.sg-product-preview-modal .sg-product-preview-media img { height: 100%; max-width: 100%; object-fit: contain; width: 100%; }
.sg-product-preview-modal .sg-product-preview-body { padding: 22px 26px 25px; }
.sg-product-preview-modal .sg-product-preview-body h2 { color: #123e68; font-family: inherit; font-size: 22px; font-weight: 800; line-height: 1.3; margin: 10px 0 0; }
.sg-product-preview-modal .sg-product-card-reference { color: #7c91a1; font-size: 13px; margin: 6px 0 0; }
.sg-product-preview-modal .sg-product-preview-price { color: #003b71; display: block; font-size: 21px; margin-top: 16px; }
.sg-product-preview-modal .sg-product-preview-actions { display: flex; gap: 10px; margin-top: 19px; }
.sg-product-preview-modal .sg-product-preview-details,
.sg-product-preview-modal .sg-product-preview-add { align-items: center; border-radius: 5px; display: inline-flex; font-size: 13px; font-weight: 800; justify-content: center; min-height: 40px; text-decoration: none; }
.sg-product-preview-modal .sg-product-preview-details { background: #fff; border: 1px solid #b9cdda; color: #003b71; flex: 0 0 122px; }
.sg-product-preview-modal .sg-product-preview-add { background: #003b71; border: 1px solid #003b71; color: #fff; cursor: pointer; flex: 1; gap: 7px; padding: 8px 13px; }
.sg-product-preview-modal .sg-product-preview-add:disabled { cursor: wait; opacity: .7; }
body.sg-product-preview-open { overflow: hidden; }
@media (max-width: 575px) {
    .sg-product-preview-modal .modal-dialog { margin: .75rem; }
    .sg-product-preview-modal .sg-product-preview-media { height: 285px; padding: 18px; }
    .sg-product-preview-modal .sg-product-preview-body { padding: 18px; }
}
