/* ==========================================================
   terra-legacy-compatibility-layer-phase2c-20260814

   TERRA INDUSTRIES WEBSITE 2.0
   Frozen legacy stylesheet.

   RULE:
   - Do not add new styling here.
   - Central ownership now lives in:
     /assets/css/terra-core.css
     /assets/css/terra-public.css
     /assets/css/terra-admin.css
     /assets/css/terra-customer.css

   The duplicated Phase 1A Admin canvas block has been removed
   from this legacy layer because terra-admin.css now owns it.
========================================================== */
:root { --ink:#000000; --red:#ff834f; --red-dark:#e96f3f; --paper:#ffffff; --line:#d8ddd3; --muted:#5f7680; --good:#176b38; --bad:#b42318; --soft-red:#fff1e8; --header:#1b283a; --sea:#7b97a1; --white:#ffffff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 Arial, Helvetica, sans-serif; }
.site-header { min-height:92px; background:var(--header); display:flex; justify-content:space-between; align-items:center; gap:24px; padding:16px max(28px, calc((100vw - 1120px)/2)); border-bottom:4px solid var(--red); box-shadow:0 3px 14px #00000024; }
.brand { color:var(--white); text-decoration:none; display:flex; flex-direction:column; align-items:flex-start; gap:2px; font-weight:800; }
.brand img { display:block; width:210px; max-width:58vw; height:auto; }
.brand small { display:block; color:var(--paper); font-size:10px; letter-spacing:.14em; text-transform:uppercase; margin-left:2px; opacity:.92; }
nav { display:flex; gap:18px; flex-wrap:wrap; align-items:center; } nav a { color:var(--white); text-decoration:none; font-size:13px; font-weight:800; } nav a:hover { color:var(--red); }.quote-count { display:inline-grid; min-width:18px; height:18px; place-items:center; margin-left:4px; border-radius:99px; background:var(--red); color:#fff; font-size:11px; line-height:1; }
.container { max-width:1120px; margin:0 auto; padding:42px 28px 60px; }.hero { max-width:790px; }.eyebrow { color:var(--red); font-size:12px; font-weight:800; letter-spacing:.11em; margin:0 0 10px; }.hero h1, h1 { font-size:clamp(30px,5vw,48px); line-height:1.1; margin:0 0 16px; }.hero > p:not(.eyebrow), .admin-heading p { color:var(--muted); font-size:18px; }
.search-form { background:#fff; border:1px solid var(--line); border-radius:10px; margin:28px 0; padding:22px; box-shadow:0 4px 12px #13232809; }.search-form label, label { display:block; font-weight:700; font-size:13px; margin:0 0 7px; color:#314247; }.search-form > div { display:flex; gap:10px; }.search-form small, .upload-form small { display:block; color:var(--muted); font-size:12px; margin-top:9px; }
input, select, textarea { width:100%; border:1px solid #bdcacc; border-radius:5px; padding:11px 12px; font:inherit; color:var(--ink); background:#fff; } input:focus, select:focus, textarea:focus { outline:3px solid #ff834f55; border-color:var(--red); }
button, .button-link { display:inline-block; border:0; background:var(--red); color:#fff; border-radius:5px; padding:11px 18px; font:inherit; font-weight:800; cursor:pointer; text-decoration:none; } button:hover, .button-link:hover { background:var(--red-dark); }.search-form button { flex-shrink:0; }.small-button { padding:8px 12px; font-size:13px; }.small-button.secondary { background:var(--header); }.small-button.secondary:hover { background:#263a53; }button.added, .small-button.added { background:var(--good); }
.button-link.secondary { background:var(--header); }.button-link.secondary:hover { background:#263a53; }
.card { margin:26px 0; padding:26px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 4px 12px #13232809; }.card h2 { font-size:22px; margin:0 0 18px; }.results > h2 { font-size:28px; margin:0 0 12px; }.empty-result h3 { margin-top:0; }.result-intro { margin:0 0 20px; color:var(--muted); }
.missing-part-form { margin-top:20px; display:grid; gap:14px; }.form-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }.form-success { display:block; margin:18px 0; padding:14px 16px; color:var(--good); background:#edf9f0; border:1px solid #a8d7b5; border-left:5px solid var(--good); border-radius:7px; font-weight:800; }.checkbox-row { display:flex; align-items:center; gap:10px; margin:4px 0 14px; padding:13px 14px; border:1px solid #ffd0ba; border-radius:7px; background:#fff7ef; font-weight:800; }.checkbox-row input[type="checkbox"] { width:18px !important; height:18px; flex:0 0 auto; margin:0; accent-color:var(--red); }.checkbox-row span { line-height:1.3; }.missing-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:8px; }.honeypot { display:none !important; }.whatsapp-button { display:inline-flex; align-items:center; gap:8px; background:#25d366; color:#fff; }.whatsapp-button:hover { background:#1fb85a; }.whatsapp-button img { width:20px; height:20px; display:block; }
.product-result { padding:0; overflow:hidden; }.sakura-product { display:grid; grid-template-columns:230px minmax(0, 1fr); gap:28px; padding:28px; background:linear-gradient(90deg, #fff7ef, #fff); border-top:5px solid var(--red); }.product-image { min-height:190px; align-self:stretch; border:1px solid #e2e3e4; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }.product-image img { display:block; width:100%; height:100%; min-height:190px; object-fit:contain; }.image-placeholder { width:100%; min-height:190px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#fff; color:var(--red); letter-spacing:.08em; font-size:32px; }.image-placeholder span { color:var(--ink); font-size:15px; font-weight:700; letter-spacing:.22em; margin-top:4px; }.sakura-copy h3 { margin:0; color:var(--header); font-size:36px; line-height:1.1; }.result-label { color:var(--red); font-size:12px; font-weight:800; letter-spacing:.1em; margin:0 0 8px; }.product-title { margin:9px 0; font-size:18px; font-weight:700; }.tag { display:inline-block; background:var(--soft-red); color:var(--header); border:1px solid #ffd0ba; border-radius:99px; padding:5px 10px; font-size:12px; font-weight:700; }.availability { margin:12px 0 4px; font-weight:700; }.remarks { color:var(--muted); margin:4px 0 0; }.quote-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:14px 0 10px; }.quote-actions button, .quote-actions .button-link { width:auto; }
.detail-section { padding:25px 28px; border-top:1px solid var(--line); }.detail-section h4 { margin:0 0 15px; font-size:18px; }.reference-list { border-top:1px solid var(--line); }.reference-brand { display:grid; grid-template-columns:180px 1fr; gap:16px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }.reference-brand strong { text-transform:uppercase; font-size:13px; }.part-chips { display:flex; flex-wrap:wrap; gap:8px; }.part-chips span { border:1px solid #cfd5d6; border-radius:3px; padding:5px 8px; background:#fafafa; font-size:14px; }
.table-scroll { overflow-x:auto; } table { width:100%; min-width:600px; border-collapse:collapse; } th, td { text-align:left; padding:10px 11px; border-bottom:1px solid var(--line); vertical-align:top; } th { color:#435155; font-size:12px; text-transform:uppercase; letter-spacing:.03em; background:#f7f8f8; } td { font-size:14px; }
.trust { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:38px 0; }.trust div { border-left:3px solid var(--red); padding-left:13px; }.trust strong, .trust span { display:block; }.trust span { color:var(--muted); font-size:14px; }.text-link { color:var(--header); font-weight:700; }.text-link:hover { color:var(--red); }.success { color:var(--good); font-weight:700; }.error { color:var(--bad); font-weight:700; }.muted { color:var(--muted); }
.bulk-search h2, .quote-panel h2, .contact-card h2, .contact-details h2 { margin:0 0 10px; }.bulk-search form, .quote-form { display:grid; gap:14px; margin-top:18px; }.bulk-search textarea { min-height:150px; }.bulk-actions { margin:16px 0 0; }.bulk-results-table td:first-child, .quote-table td:first-child { width:32%; }.qty-input { max-width:86px; padding:8px; }
.section-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:16px; }.section-heading h2 { margin:0; }.quote-panel h3 { margin:24px 0 4px; }.quote-table small { color:var(--muted); }.contact-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }.contact-card { margin:0; }.contact-card h2 { font-size:24px; color:var(--header); overflow-wrap:anywhere; }.contact-card p { color:var(--muted); }.contact-info-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; margin-top:18px; }.contact-info-grid div { border-left:3px solid var(--red); padding-left:13px; }.contact-info-grid strong, .contact-info-grid span { display:block; }.contact-info-grid span { color:var(--muted); font-size:14px; }
.narrow { max-width:560px; margin:28px auto; }.form-stack label { margin:14px 0; }.form-stack button { margin-top:8px; }.admin-heading { display:flex; justify-content:space-between; gap:18px; align-items:start; }.admin-heading h1 { font-size:34px; }.quiet-link { color:var(--header); font-weight:700; }.notice { margin:23px 0; border-left:4px solid var(--red); padding:14px; background:#fff1e8; color:var(--header); }.admin-steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin:25px 0; }.admin-steps article { position:relative; padding:20px 20px 20px 62px; background:#fff; border:1px solid var(--line); border-radius:8px; }.admin-steps span { position:absolute; top:20px; left:20px; width:28px; height:28px; background:var(--red); color:#fff; border-radius:50%; display:grid; place-items:center; font-weight:800; }.admin-steps h2 { margin:0 0 8px; font-size:20px; }.admin-steps p { margin:0 0 14px; color:var(--muted); font-size:14px; }.upload-form { display:grid; gap:12px; max-width:680px; }.upload-form button { width:max-content; margin-top:6px; }.catalogue-status h2 { margin-bottom:14px; }.status-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }.status-grid div { border-left:3px solid var(--red); padding-left:12px; }.status-grid strong, .status-grid span { display:block; }.status-grid strong { font-size:22px; }.status-grid span { color:var(--muted); font-size:13px; }
footer { padding:22px 28px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; text-align:center; }
@media (max-width:720px) { .site-header, .admin-heading, .section-heading { align-items:flex-start; flex-direction:column; }.container { padding:28px 18px 45px; }.search-form > div, .missing-actions, .quote-actions { flex-direction:column; align-items:stretch; }.search-form button, .upload-form button, .missing-actions button, .missing-actions .button-link, .quote-actions button, .quote-actions .button-link { width:100%; text-align:center; }.sakura-product, .admin-steps, .status-grid, .trust, .form-grid, .contact-grid, .contact-info-grid { grid-template-columns:1fr; }.sakura-product { gap:18px; padding:20px; }.product-image { max-width:280px; }.detail-section { padding:20px; }.reference-brand { grid-template-columns:1fr; gap:6px; }.card { padding:19px; }.product-result { padding:0; }.admin-steps article { padding-left:58px; } }

/* UX patch: consistent search panels, suggestions, quote layout and contact cards. */
.hero, .bulk-search { max-width:790px; }
.search-form > .search-input-row { display:flex; gap:10px; }
.search-form > .suggestions-list { display:grid; gap:0; margin:8px 0 0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; box-shadow:0 8px 22px #13232814; }
.suggestions-list button { display:flex; justify-content:space-between; gap:16px; width:100%; border-radius:0; background:#fff; color:var(--ink); padding:10px 12px; text-align:left; border-bottom:1px solid var(--line); }
.suggestions-list button:last-child { border-bottom:0; }
.suggestions-list button:hover, .suggestions-list button:focus { background:#fff7ef; color:var(--ink); }
.suggestions-list span { color:var(--muted); font-size:12px; }
.table-card { padding:0; overflow:hidden; }
.bulk-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:flex-end; margin:18px 0; }
.bulk-toolbar.bottom { margin-top:20px; }
.quote-page-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px; align-items:start; margin:26px 0; }
.quote-page-grid .quote-panel { margin:0; }
.customer-fields { display:grid; grid-template-columns:1fr; gap:14px; }
.quote-form button[type="submit"] { width:100%; }
.contact-grid { align-items:stretch; }
.contact-card { display:flex; flex-direction:column; height:100%; }
.contact-card .button-link { margin-top:auto; align-self:flex-start; }
button.added, .small-button.added, button.added:hover, .small-button.added:hover { background:var(--good); }
@media (max-width:900px) { .quote-page-grid { grid-template-columns:1fr; } }
@media (max-width:720px) { .hero, .bulk-search { max-width:none; }.search-form > .search-input-row, .bulk-toolbar { flex-direction:column; align-items:stretch; }.suggestions-list button { flex-direction:column; gap:3px; }.contact-card .button-link { width:100%; text-align:center; } }

/* Responsive polish patch: matching card widths, taller nav and mobile slide-in menu. */
body { font-family:"Segoe UI", Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; }
.container { width:100%; max-width:1120px; }
.hero, .bulk-search { max-width:none; }
.search-form, .bulk-search, .results, .empty-result, .table-card, .quote-panel, .contact-details { width:100%; max-width:none; }
.search-form, .bulk-search, .empty-result, .table-card, .quote-panel, .contact-card, .contact-details {
  border-top:5px solid var(--red);
}
.site-header {
  min-height:102px;
  padding-top:18px;
  padding-bottom:18px;
}
.brand img {
  width:238px;
  max-width:min(238px, 42vw);
  max-height:66px;
  object-fit:contain;
}
.brand small { display:none; }
.site-header nav {
  gap:24px;
  font-family:"Segoe UI", Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif;
}
.site-header nav a {
  font-size:15px;
  line-height:1.2;
  padding:10px 0;
  letter-spacing:.01em;
  white-space:nowrap;
}
.quote-count {
  min-width:20px;
  height:20px;
  font-size:12px;
  vertical-align:middle;
}
.nav-toggle, .nav-backdrop { display:none; }
.nav-toggle {
  width:46px;
  height:42px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  border:1px solid #ffffff3d;
  border-radius:8px;
  background:#ffffff0f;
  padding:0;
}
.nav-toggle span {
  width:22px;
  height:2px;
  border-radius:99px;
  background:#fff;
  transition:transform .2s ease, opacity .2s ease;
}
body.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { opacity:0; }
body.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.quote-page-grid {
  grid-template-columns:1fr;
  max-width:none;
}
.quote-page-grid .quote-panel { width:100%; }
.quote-panel .table-scroll { border-radius:6px; }
.quote-table { min-width:0; }
.contact-card { min-height:280px; }
.contact-card .button-link {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.search-form > .search-input-row { align-items:stretch; }
.search-form input { min-height:48px; }
.search-form button { min-height:48px; }
.bulk-search textarea { min-height:190px; }
.bulk-search button { min-height:48px; }

@media (max-width:960px) {
  .container { padding-left:24px; padding-right:24px; }
  .sakura-product { grid-template-columns:190px minmax(0,1fr); gap:22px; }
  .product-image, .product-image img, .image-placeholder { min-height:170px; }
  .sakura-copy h3 { font-size:32px; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-card { min-height:0; }
}

@media (max-width:720px) {
  body.nav-open { overflow:hidden; }
  .site-header {
    min-height:86px;
    padding:14px 20px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .brand img {
    width:195px;
    max-width:68vw;
    max-height:56px;
  }
  .nav-toggle { display:inline-flex; position:relative; z-index:70; }
  .site-header nav {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:60;
    width:min(330px, 86vw);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:92px 26px 28px;
    background:var(--header);
    box-shadow:-18px 0 42px #0000003b;
    transform:translateX(106%);
    transition:transform .22s ease;
  }
  body.nav-open .site-header nav { transform:translateX(0); }
  .site-header nav a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:54px;
    font-size:18px;
    padding:14px 0;
    border-bottom:1px solid #ffffff24;
  }
  .nav-backdrop {
    position:fixed;
    inset:0;
    z-index:50;
    background:#0000008a;
    border:0;
    border-radius:0;
    padding:0;
  }
  .nav-backdrop:not([hidden]) { display:block; }
  .nav-backdrop[hidden] { display:none !important; }
  .container { padding:30px 18px 48px; }
  .hero h1, h1 { font-size:38px; }
  .hero > p:not(.eyebrow), .admin-heading p { font-size:16px; }
  .search-form, .bulk-search, .card { border-radius:9px; padding:20px; }
  .product-result { padding:0; }
  .search-form > .search-input-row { flex-direction:column; }
  .sakura-product {
    grid-template-columns:1fr;
    gap:18px;
    padding:20px;
  }
  .product-image {
    width:100%;
    max-width:none;
    min-height:210px;
  }
  .product-image img, .image-placeholder { min-height:210px; }
  .quote-actions, .missing-actions { align-items:stretch; }
  .quote-actions button, .quote-actions .button-link, .missing-actions button, .missing-actions .button-link {
    width:100%;
    text-align:center;
    justify-content:center;
  }
  .detail-section { padding:20px; }
  .trust { gap:16px; }
  .quote-page-grid { gap:18px; }
  .section-heading {
    flex-direction:row;
    align-items:flex-start;
  }
  .section-heading .small-button { width:auto; }
  .quote-table th, .quote-table td { padding:9px 8px; }
  .qty-input { max-width:70px; }
  .contact-card .button-link { width:100%; }
  footer { padding:20px 18px; }
}

@media (max-width:460px) {
  .site-header { padding-left:14px; padding-right:14px; }
  .brand img { width:165px; max-width:64vw; }
  .container { padding-left:14px; padding-right:14px; }
  .hero h1, h1 { font-size:32px; }
  .search-form, .bulk-search, .card { padding:16px; }
  .sakura-product { padding:16px; }
  .sakura-copy h3 { font-size:30px; }
  .reference-brand { grid-template-columns:1fr; }
  .quote-table { font-size:13px; }
  .quote-table th:nth-child(2), .quote-table td:nth-child(2) { display:none; }
}

/* AI/SEO/news patch: Sakura homepage category visuals, icon nav and crawl-friendly content sections. */
.site-header nav a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  font-weight:600;
}
.site-header nav a svg {
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ai-confirmation-box {
  display:grid;
  gap:7px;
  padding:14px;
  border:1px solid #ffd0ba;
  border-radius:8px;
  background:#fffaf6;
}
.ai-confirmation-box span {
  color:var(--muted);
  font-weight:400;
  font-size:13px;
}
.featured-products {
  margin-top:30px;
}
.featured-products > p:not(.eyebrow) {
  color:var(--muted);
  margin-top:-6px;
}
.featured-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
  margin-top:22px;
}
.featured-grid article {
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px;
  background:#fff;
}
.featured-grid img {
  display:block;
  width:100%;
  height:150px;
  object-fit:contain;
  margin-bottom:12px;
}
.featured-grid h3 {
  margin:0 0 8px;
  font-size:18px;
  color:var(--header);
}
.featured-grid p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.news-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
  margin:28px 0 44px;
}
.news-card {
  display:flex;
  flex-direction:column;
  margin:0;
}
.news-card img {
  width:100%;
  height:190px;
  object-fit:contain;
  background:#fff7ef;
  border:1px solid var(--line);
  border-radius:7px;
  padding:12px;
  margin-bottom:16px;
}
.news-card h2 {
  font-size:20px;
  line-height:1.25;
}
.news-card h2 a {
  color:var(--ink);
  text-decoration:none;
}
.news-card h2 a:hover {
  color:var(--red-dark);
}
.news-card p:not(.eyebrow) {
  color:var(--muted);
}
.news-card .text-link {
  margin-top:auto;
}
.news-article {
  max-width:880px;
}
.news-article .article-meta,
.news-article .article-summary {
  color:var(--muted);
  font-size:18px;
}
.article-hero {
  width:100%;
  max-height:360px;
  object-fit:contain;
  padding:22px;
  margin:18px 0 24px;
  background:#fff7ef;
  border:1px solid var(--line);
  border-top:5px solid var(--red);
  border-radius:10px;
}

@media (max-width:960px) {
  .featured-grid,
  .news-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* v8 final override: keep the rebuilt UX in control after older patch rules. */
.filter-select-row,
.category-browser,
.product-line-search,
.product-line-results {
  display: none !important;
}

.site-header nav {
  overflow: visible;
}

.site-header nav a,
.nav-dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 10px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--white);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
}

.site-header nav a:hover,
.nav-dropdown-toggle:hover,
.nav-dropdown.is-open .nav-dropdown-toggle {
  background: transparent;
  color: var(--red);
}

.site-header nav a svg,
.nav-dropdown-toggle svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nav-dropdown {
  position: relative;
}

.dropdown-caret {
  margin-left: 1px;
  font-size: 13px;
  line-height: 1;
}

.nav-dropdown-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 100;
  width: 340px;
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--red);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 42px #00000030;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(12px);
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown.is-open .nav-dropdown-panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(4px);
  visibility: visible;
}

.product-menu-link {
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 11px !important;
  align-items: center;
  padding: 11px !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: var(--header) !important;
  text-decoration: none;
}

.product-menu-link:hover {
  background: #fff7ef !important;
  color: var(--header) !important;
}

.product-menu-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 8px;
  border: 1px solid #ffd0ba;
  border-radius: 10px;
  background: #fff7ef;
}

.product-menu-icon svg {
  width: 100% !important;
  height: 100% !important;
  stroke: var(--red) !important;
  stroke-width: 4 !important;
}

.product-menu-link strong,
.product-menu-link small {
  display: block;
}

.product-menu-link strong {
  color: var(--header);
  font-size: 15px;
  line-height: 1.15;
}

.product-menu-link small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}

.product-overview-card,
.source-context-card,
.about-story,
.about-focus {
  border-top: 5px solid var(--red);
}

.product-overview-card {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}

.product-overview-card .category-illustration {
  min-height: 230px;
}

.product-overview-card h2 {
  margin: 0 0 12px;
  color: var(--header);
  font-size: 28px;
}

.capability-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0;
  margin: 18px 0 8px;
  list-style: none;
}

.capability-list li {
  position: relative;
  padding: 12px 12px 12px 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.capability-list li::before {
  content: "";
  position: absolute;
  top: 16px;
  left: 14px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--red);
}

.source-context-card p:not(.eyebrow),
.about-story p,
.about-focus span {
  color: var(--muted);
}

.about-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 28px 0;
}

.about-grid .card {
  margin: 0;
  border-top: 5px solid var(--red);
}

.focus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.focus-grid div {
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--red);
  border-radius: 8px;
  background: #fff;
}

.focus-grid strong,
.focus-grid span {
  display: block;
}

.focus-grid span {
  margin-top: 7px;
}

.legal-content {
  display: grid;
  gap: 14px;
}

.legal-content p {
  margin: 0;
  padding: 14px 16px;
  border-left: 4px solid var(--red);
  border-radius: 7px;
  background: #fffaf6;
}

.product-request-form {
  max-width: none;
}

.product-request-form button[type="submit"] {
  width: max-content;
  min-width: 230px;
}

@media (max-width: 960px) {
  .about-grid,
  .focus-grid,
  .capability-list,
  .product-overview-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .site-header nav {
    overflow-y: auto;
  }

  .site-header nav a,
  .nav-dropdown-toggle {
    width: 100%;
    justify-content: flex-start;
    gap: 13px;
    min-height: 56px;
    padding: 14px 0;
    border-bottom: 1px solid #ffffff24;
    color: #fff;
    font-size: 19px;
    font-weight: 500;
  }

  .nav-dropdown {
    width: 100%;
  }

  .nav-dropdown-toggle {
    justify-content: space-between;
  }

  .nav-dropdown-panel {
    position: static;
    width: 100%;
    display: none;
    padding: 8px 0 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
  }

  .nav-dropdown:hover .nav-dropdown-panel {
    display: none;
    transform: none;
  }

  .nav-dropdown.is-open .nav-dropdown-panel {
    display: grid;
    transform: none;
  }

  .product-menu-link {
    grid-template-columns: 38px minmax(0, 1fr);
    margin-left: 12px;
    color: #fff !important;
  }

  .product-menu-link:hover {
    background: #ffffff14 !important;
  }

  .product-menu-link strong {
    color: #fff;
  }

  .product-menu-link small {
    color: #c8d6dd;
  }

  .product-menu-icon {
    width: 38px;
    height: 38px;
    background: #ffffff10;
  }

  .product-overview-card .category-illustration {
    min-height: 190px;
  }

  .product-request-form button[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}

/* v8 basics rebuild: home-first navigation, product dropdown, cleaner product/legal pages. */
.filter-select-row,
.category-browser {
  display:none !important;
}

.site-header nav {
  overflow:visible;
}

.site-header nav a,
.nav-dropdown-toggle {
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:48px;
  color:var(--white);
  text-decoration:none;
  font-family:"Segoe UI", Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif;
  font-size:17px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:.01em;
  background:transparent;
  border:0;
  border-radius:0;
  padding:10px 0;
  cursor:pointer;
}

.site-header nav a:hover,
.nav-dropdown-toggle:hover,
.nav-dropdown.is-open .nav-dropdown-toggle {
  color:var(--red);
  background:transparent;
}

.site-header nav a svg,
.nav-dropdown-toggle svg {
  width:19px;
  height:19px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.nav-dropdown {
  position:relative;
}

.dropdown-caret {
  font-size:13px;
  line-height:1;
  margin-left:1px;
}

.nav-dropdown-panel {
  position:absolute;
  top:100%;
  left:50%;
  z-index:100;
  width:340px;
  display:grid;
  gap:4px;
  padding:10px;
  border:1px solid var(--line);
  border-top:5px solid var(--red);
  border-radius:10px;
  background:#fff;
  box-shadow:0 18px 42px #00000030;
  opacity:0;
  pointer-events:none;
  transform:translateX(-50%) translateY(12px);
  visibility:hidden;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown.is-open .nav-dropdown-panel {
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(4px);
  visibility:visible;
}

.product-menu-link {
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:44px minmax(0, 1fr);
  gap:11px !important;
  align-items:center;
  padding:11px !important;
  border:0 !important;
  border-radius:8px !important;
  color:var(--header) !important;
  text-decoration:none;
}

.product-menu-link:hover {
  background:#fff7ef !important;
  color:var(--header) !important;
}

.product-menu-icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  padding:8px;
  border:1px solid #ffd0ba;
  border-radius:10px;
  background:#fff7ef;
}

.product-menu-icon svg {
  width:100% !important;
  height:100% !important;
  stroke:var(--red) !important;
  stroke-width:4 !important;
}

.product-menu-link strong,
.product-menu-link small {
  display:block;
}

.product-menu-link strong {
  color:var(--header);
  font-size:15px;
  line-height:1.15;
}

.product-menu-link small {
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
}

.product-overview-card,
.source-context-card,
.about-story,
.about-focus {
  border-top:5px solid var(--red);
}

.product-overview-card {
  display:grid;
  grid-template-columns:240px minmax(0, 1fr);
  gap:28px;
  align-items:center;
}

.product-overview-card .category-illustration {
  min-height:230px;
}

.product-overview-card h2 {
  margin:0 0 12px;
  font-size:28px;
  color:var(--header);
}

.capability-list {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  padding:0;
  margin:18px 0 8px;
  list-style:none;
}

.capability-list li {
  padding:12px 12px 12px 38px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  position:relative;
}

.capability-list li::before {
  content:"";
  position:absolute;
  left:14px;
  top:16px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--red);
}

.source-context-card p:not(.eyebrow),
.about-story p,
.about-focus span {
  color:var(--muted);
}

.about-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin:28px 0;
}

.about-grid .card {
  margin:0;
  border-top:5px solid var(--red);
}

.focus-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  margin-top:18px;
}

.focus-grid div {
  padding:16px;
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:8px;
  background:#fff;
}

.focus-grid strong,
.focus-grid span {
  display:block;
}

.focus-grid span {
  margin-top:7px;
}

.legal-content {
  display:grid;
  gap:14px;
}

.legal-content p {
  margin:0;
  padding:14px 16px;
  border-left:4px solid var(--red);
  border-radius:7px;
  background:#fffaf6;
}

.product-request-form {
  max-width:none;
}

.product-request-form button[type="submit"] {
  width:max-content;
  min-width:230px;
}

@media (max-width:960px) {
  .about-grid,
  .focus-grid,
  .capability-list {
    grid-template-columns:1fr;
  }

  .product-overview-card {
    grid-template-columns:1fr;
  }
}

@media (max-width:720px) {
  .site-header nav {
    overflow-y:auto;
  }

  .site-header nav a,
  .nav-dropdown-toggle {
    width:100%;
    justify-content:flex-start;
    gap:13px;
    min-height:56px;
    border-bottom:1px solid #ffffff24;
    color:#fff;
    font-size:19px;
    font-weight:500;
    padding:14px 0;
  }

  .nav-dropdown {
    width:100%;
  }

  .nav-dropdown-toggle {
    justify-content:space-between;
  }

  .nav-dropdown-toggle svg {
    margin-right:0;
  }

  .nav-dropdown-panel {
    position:static;
    width:100%;
    display:none;
    padding:8px 0 12px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    pointer-events:auto;
    transform:none;
    visibility:visible;
  }

  .nav-dropdown:hover .nav-dropdown-panel {
    display:none;
    transform:none;
  }

  .nav-dropdown.is-open .nav-dropdown-panel {
    display:grid;
    transform:none;
  }

  .product-menu-link {
    grid-template-columns:38px minmax(0, 1fr);
    margin-left:12px;
    color:#fff !important;
  }

  .product-menu-link:hover {
    background:#ffffff14 !important;
  }

  .product-menu-link strong {
    color:#fff;
  }

  .product-menu-link small {
    color:#c8d6dd;
  }

  .product-menu-icon {
    width:38px;
    height:38px;
    background:#ffffff10;
  }

  .product-overview-card .category-illustration {
    min-height:190px;
  }

  .product-request-form button[type="submit"] {
    width:100%;
    min-width:0;
  }
}

/* Catalogue rebuild patch: commerce-style category search and cleaner product pages. */
.catalogue-search-row {
  display:grid !important;
  grid-template-columns:210px minmax(0, 1fr) auto;
  align-items:stretch;
}
.catalogue-search-row select,
.catalogue-search-row input,
.catalogue-search-row button {
  min-height:52px;
}
.catalogue-search-row select {
  font-weight:800;
  color:var(--header);
}
.parts-category-grid a {
  display:grid;
  grid-template-columns:64px minmax(0, 1fr);
  gap:8px 16px;
  align-items:center;
  min-height:148px;
}
.parts-category-grid .category-icon {
  grid-row:1 / span 2;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#fff7ef;
  border:1px solid #ffd0ba;
}
.category-icon svg,
.category-illustration svg,
.category-mini-icon svg {
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--red);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.parts-category-grid strong {
  font-size:20px;
  color:var(--header);
}
.product-category-card {
  grid-template-columns:128px minmax(0, 1fr);
  align-items:center;
  min-height:218px;
}
.product-category-card .category-illustration {
  grid-row:1 / span 3;
}
.category-illustration {
  width:100%;
  min-height:190px;
  display:grid;
  place-items:center;
  border:1px solid #ffd0ba;
  border-radius:10px;
  background:linear-gradient(135deg, #fff7ef, #ffffff);
  padding:28px;
}
.category-illustration.compact {
  width:128px;
  height:128px;
  min-height:128px;
  padding:20px;
}
.product-line-help {
  grid-template-columns:220px minmax(0,1fr);
}
.product-line-search {
  margin-bottom:0;
}
.product-line-results {
  margin:34px 0 0;
}
.product-result-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin-top:20px;
}
.product-range-result {
  display:grid;
  grid-template-columns:78px minmax(0, 1fr);
  gap:18px;
  align-items:start;
  border-top:5px solid var(--red);
}
.product-range-result h3 {
  margin:0 0 10px;
  color:var(--header);
  font-size:22px;
}
.product-range-result p {
  margin:0 0 12px;
}
.product-range-result .source-note {
  color:var(--muted);
  font-size:14px;
}
.category-mini-icon {
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  padding:14px;
  border:1px solid #ffd0ba;
  border-radius:12px;
  background:#fff7ef;
}
.service-kit-panel {
  border-top:5px solid var(--red);
}
.service-kit-panel > p:not(.eyebrow) {
  color:var(--muted);
}
.service-kit-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin:18px 0 22px;
}
.service-kit-grid article {
  padding:16px;
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:8px;
  background:#fff;
}
.service-kit-grid strong,
.service-kit-grid span {
  display:block;
}
.service-kit-grid span {
  margin-top:7px;
  color:var(--muted);
  font-size:14px;
}

@media (max-width:900px) {
  .catalogue-search-row {
    grid-template-columns:1fr;
  }
  .product-result-grid,
  .service-kit-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width:720px) {
  .parts-category-grid a,
  .product-range-result {
    grid-template-columns:1fr;
  }
  .parts-category-grid .category-icon {
    grid-row:auto;
  }
  .product-category-card,
  .product-line-help {
    grid-template-columns:1fr;
  }
  .product-category-card .category-illustration {
    grid-row:auto;
    width:100%;
  }
  .category-illustration.compact {
    width:100%;
    height:150px;
  }
  .category-mini-icon {
    width:72px;
    height:72px;
  }
}

@media (max-width:720px) {
  .site-header nav a {
    justify-content:flex-start;
    gap:12px;
    font-size:19px;
    font-weight:600;
  }
  .site-header nav a .quote-count {
    margin-left:8px;
  }
  .featured-grid,
  .news-grid {
    grid-template-columns:1fr;
  }
  .featured-grid img,
  .news-card img {
    height:180px;
  }
  .news-article .article-meta,
  .news-article .article-summary {
    font-size:16px;
  }
}

/* Site expansion patch: category browsing, product pages, Terra footer and cookie notice. */
.filter-select-row {
  margin:14px 0 0;
}
.filter-select-row select {
  margin-top:7px;
}
.category-browser {
  margin:22px 0 30px;
}
.category-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.category-grid a {
  display:block;
  padding:16px;
  border:1px solid var(--line);
  border-top:4px solid var(--red);
  border-radius:9px;
  color:var(--ink);
  text-decoration:none;
  background:#fff;
  box-shadow:0 4px 12px #13232809;
}
.category-grid a:hover,
.category-grid a.active {
  border-color:var(--red);
  background:#fff7ef;
}
.category-grid strong,
.category-grid span {
  display:block;
}
.category-grid span {
  margin-top:6px;
  color:var(--muted);
  font-size:14px;
}
.product-category-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
  margin:28px 0 44px;
}
.product-category-card {
  display:grid;
  grid-template-columns:150px minmax(0, 1fr);
  gap:18px;
  color:var(--ink);
  text-decoration:none;
  border-top:5px solid var(--red);
}
.product-category-card img {
  width:100%;
  height:150px;
  object-fit:contain;
  background:#fff7ef;
  border:1px solid var(--line);
  border-radius:7px;
  padding:10px;
  grid-row:1 / span 3;
}
.product-category-card h2 {
  margin:0 0 8px;
  color:var(--header);
}
.product-category-card p:not(.eyebrow) {
  margin:0;
  color:var(--muted);
}
.product-category-card:hover h2 {
  color:var(--red-dark);
}
.product-line-card {
  display:grid;
  grid-template-columns:260px minmax(0, 1fr);
  gap:26px;
  align-items:center;
  border-top:5px solid var(--red);
}
.product-line-card img {
  width:100%;
  max-height:260px;
  object-fit:contain;
  background:#fff7ef;
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px;
}
.product-line-card h2 {
  margin-top:0;
}
.product-request-form {
  border-top:5px solid var(--red);
}
.product-request-form > p:not(.eyebrow) {
  color:var(--muted);
}
.legal-content {
  border-top:5px solid var(--red);
  max-width:880px;
}
.legal-content p {
  font-size:17px;
}
.site-footer {
  padding:0;
  border-top:0;
  color:#d9e1e6;
  background:var(--header);
  text-align:left;
  font-size:15px;
}
.footer-disclaimer {
  background:var(--red);
  color:#fff;
  padding:13px max(24px, calc((100vw - 1120px)/2));
  text-align:center;
  font-size:14px;
  line-height:1.35;
}
.footer-main {
  max-width:1120px;
  margin:0 auto;
  padding:42px 28px 36px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:34px;
}
.footer-main h2 {
  margin:0 0 16px;
  font-size:18px;
  color:#fff;
}
.footer-main ul {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.footer-main a {
  color:#d9e1e6;
  text-decoration:none;
}
.footer-main a:hover {
  color:var(--red);
}
.footer-brand {
  text-align:right;
}
.footer-brand img {
  display:inline-block;
  width:245px;
  max-width:100%;
  margin-bottom:10px;
}
.footer-brand p {
  margin:8px 0;
}
.footer-bottom {
  border-top:1px solid #ffffff12;
  max-width:1120px;
  margin:0 auto;
  padding:22px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:#9fb1ba;
}
.footer-bottom strong {
  color:var(--red);
}
.back-to-top {
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.cookie-notice {
  position:fixed;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:90;
  max-width:980px;
  margin:0 auto;
  padding:14px;
  display:flex;
  align-items:center;
  gap:16px;
  justify-content:space-between;
  border:1px solid #ffd0ba;
  border-left:5px solid var(--red);
  border-radius:9px;
  background:#fff;
  box-shadow:0 12px 35px #00000026;
}
.cookie-notice[hidden] {
  display:none !important;
}
.cookie-notice p {
  margin:0;
  color:#314247;
  font-size:14px;
}
.cookie-notice a {
  color:var(--header);
  font-weight:700;
}
.cookie-notice button {
  flex:0 0 auto;
}
@media (max-width:900px) {
  .category-grid,
  .product-category-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .product-line-card {
    grid-template-columns:1fr;
  }
  .product-line-card img {
    max-height:220px;
  }
  .footer-main {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .footer-brand {
    text-align:left;
  }
}
@media (max-width:720px) {
  .category-grid,
  .product-category-grid,
  .footer-main {
    grid-template-columns:1fr;
  }
  .product-category-card {
    grid-template-columns:1fr;
  }
  .product-category-card img {
    grid-row:auto;
    height:190px;
  }
  .footer-main {
    padding:34px 22px;
    gap:28px;
  }
  .footer-bottom {
    padding:20px 22px;
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-disclaimer {
    padding-left:18px;
    padding-right:18px;
  }
  .cookie-notice {
    flex-direction:column;
    align-items:stretch;
    left:12px;
    right:12px;
    bottom:12px;
  }
  .cookie-notice button {
    width:100%;
  }
}

/* v7 final catalogue overrides. Keep this block last so old patch CSS cannot override it. */
.container {
  width:100%;
  max-width:1180px;
}

.hero,
.bulk-search,
.results,
.search-form {
  max-width:none;
}

.site-header {
  min-height:104px;
  padding-top:18px;
  padding-bottom:18px;
}

.brand img {
  width:240px;
  max-width:min(240px, 46vw);
  max-height:68px;
  object-fit:contain;
}

.brand small {
  display:none !important;
}

.site-header nav {
  gap:24px;
}

.site-header nav a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:"Segoe UI", Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif;
  font-size:16px;
  font-weight:600;
  line-height:1.2;
  padding:12px 0;
}

.site-header nav a svg {
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.catalogue-search-row {
  display:grid !important;
  grid-template-columns:220px minmax(0, 1fr) auto;
  gap:10px;
  align-items:stretch;
}

.catalogue-search-row select,
.catalogue-search-row input,
.catalogue-search-row button,
.search-form button {
  min-height:52px;
}

.catalogue-search-row select {
  font-weight:800;
  color:var(--header);
}

.filter-select-row[hidden] {
  display:none !important;
}

.search-form,
.bulk-search,
.card.empty-result,
.card.table-card,
.quote-panel,
.contact-card,
.contact-details,
.product-category-card,
.product-range-result,
.service-kit-panel,
.product-request-form {
  border-top:5px solid var(--red);
}

.category-grid.parts-category-grid {
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.parts-category-grid a {
  display:grid;
  grid-template-columns:72px minmax(0, 1fr);
  gap:8px 16px;
  align-items:center;
  min-height:150px;
  border-top:5px solid var(--red);
}

.parts-category-grid .category-icon {
  grid-row:1 / span 2;
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#fff7ef;
  border:1px solid #ffd0ba;
  padding:12px;
}

.category-icon svg,
.category-illustration svg,
.category-mini-icon svg {
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--red);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.parts-category-grid strong {
  color:var(--header);
  font-size:20px;
}

.product-category-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
  margin:28px 0 44px;
}

.product-category-card {
  display:grid;
  grid-template-columns:128px minmax(0, 1fr);
  gap:18px;
  align-items:center;
  min-height:218px;
  color:var(--ink);
  text-decoration:none;
}

.product-category-card .category-illustration {
  grid-row:1 / span 3;
}

.product-category-card img {
  display:none;
}

.category-illustration {
  width:100%;
  min-height:190px;
  display:grid;
  place-items:center;
  border:1px solid #ffd0ba;
  border-radius:10px;
  background:linear-gradient(135deg, #fff7ef, #ffffff);
  padding:28px;
}

.category-illustration.compact {
  width:128px;
  height:128px;
  min-height:128px;
  padding:20px;
}

.product-line-help {
  display:grid;
  grid-template-columns:220px minmax(0, 1fr);
  gap:26px;
  align-items:center;
}

.product-line-search {
  margin-bottom:0;
}

.product-line-results {
  margin:34px 0 0;
}

.product-result-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin-top:20px;
}

.product-range-result {
  display:grid;
  grid-template-columns:78px minmax(0, 1fr);
  gap:18px;
  align-items:start;
}

.product-range-result h3 {
  margin:0 0 10px;
  color:var(--header);
  font-size:22px;
}

.product-range-result p {
  margin:0 0 12px;
}

.product-range-result .source-note {
  color:var(--muted);
  font-size:14px;
}

.category-mini-icon {
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  padding:14px;
  border:1px solid #ffd0ba;
  border-radius:12px;
  background:#fff7ef;
}

.service-kit-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin:18px 0 22px;
}

.service-kit-grid article {
  padding:16px;
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:8px;
  background:#fff;
}

.service-kit-grid strong,
.service-kit-grid span {
  display:block;
}

.service-kit-grid span {
  margin-top:7px;
  color:var(--muted);
  font-size:14px;
}

.quote-page-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

.quote-page-grid .quote-panel {
  width:100%;
  margin:0;
}

.customer-fields {
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}

.contact-grid {
  align-items:stretch;
}

.contact-card {
  display:flex;
  flex-direction:column;
  min-height:280px;
}

.contact-card .button-link {
  margin-top:auto;
  align-self:flex-start;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.nav-toggle,
.nav-backdrop {
  display:none;
}

@media (max-width:960px) {
  .category-grid.parts-category-grid,
  .product-category-grid,
  .product-result-grid,
  .service-kit-grid {
    grid-template-columns:1fr;
  }

  .contact-grid {
    grid-template-columns:1fr;
  }

  .contact-card {
    min-height:0;
  }
}

@media (max-width:720px) {
  body.nav-open {
    overflow:hidden;
  }

  .site-header {
    min-height:86px;
    padding:14px 20px;
    flex-direction:row;
    align-items:center;
  }

  .brand img {
    width:194px;
    max-width:68vw;
    max-height:56px;
  }

  .nav-toggle {
    display:inline-flex;
    position:relative;
    z-index:70;
  }

  .site-header nav {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:60;
    width:min(330px, 86vw);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:92px 26px 28px;
    background:var(--header);
    box-shadow:-18px 0 42px #0000003b;
    transform:translateX(106%);
    transition:transform .22s ease;
  }

  body.nav-open .site-header nav {
    transform:translateX(0);
  }

  .site-header nav a {
    min-height:54px;
    font-size:18px;
    padding:14px 0;
    border-bottom:1px solid #ffffff24;
  }

  .nav-backdrop:not([hidden]) {
    display:block;
    position:fixed;
    inset:0;
    z-index:50;
    background:#0000008a;
    border:0;
    border-radius:0;
    padding:0;
  }

  .catalogue-search-row,
  .parts-category-grid a,
  .product-category-card,
  .product-line-help,
  .product-range-result {
    grid-template-columns:1fr;
  }

  .parts-category-grid .category-icon,
  .product-category-card .category-illustration {
    grid-row:auto;
  }

  .category-illustration.compact {
    width:100%;
    height:150px;
  }

  .category-mini-icon {
    width:72px;
    height:72px;
  }

  .quote-actions,
  .missing-actions {
    align-items:stretch;
  }

  .quote-actions button,
  .quote-actions .button-link,
  .missing-actions button,
  .missing-actions .button-link,
  .contact-card .button-link {
    width:100%;
    justify-content:center;
    text-align:center;
  }
}

/* v9 home hero and Canva-ready slider */
.home-hero-search {
  width:100%;
  max-width:none;
  margin:0 0 28px;
}

.home-hero-search h1 {
  max-width:900px;
}

.home-hero-search > p:not(.eyebrow) {
  max-width:920px;
}

.home-hero-search .search-form {
  width:100%;
  max-width:none;
  border-top:5px solid var(--red);
  border-radius:12px;
  margin:26px 0 0;
  padding:24px;
  box-shadow:0 14px 34px #13232810;
}

.home-hero-search .catalogue-search-row {
  display:grid !important;
  grid-template-columns:minmax(240px, 300px) minmax(0, 1fr) minmax(105px, 120px);
  gap:12px;
  align-items:stretch;
}

.home-hero-search select,
.home-hero-search input,
.home-hero-search button {
  min-height:54px;
  font-size:16px;
}

.home-hero-search select {
  font-weight:800;
}

.home-hero-search small {
  display:block;
  margin-top:12px;
  color:var(--muted);
  line-height:1.6;
}

.home-hero-search small strong {
  color:var(--header);
}

.home-marketplace {
  display:grid;
  grid-template-columns:minmax(260px, 320px) minmax(0, 1fr);
  gap:22px;
  align-items:stretch;
  margin:0 0 28px;
}

.home-category-menu,
.home-slider-card {
  border:1px solid var(--line);
  border-top:5px solid var(--red);
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 28px #1323280e;
}

.home-category-menu {
  padding:22px;
}

.home-category-menu h2 {
  margin:0 0 18px;
  font-size:24px;
}

.home-category-list {
  display:grid;
  gap:10px;
}

.home-category-list a {
  display:grid;
  grid-template-columns:48px minmax(0, 1fr);
  gap:12px;
  align-items:center;
  min-height:66px;
  padding:10px;
  border:1px solid transparent;
  border-radius:10px;
  color:var(--text);
  text-decoration:none;
}

.home-category-list a:hover,
.home-category-list a.is-active {
  border-color:#ffd0ba;
  background:#fff7ef;
}

.home-category-icon {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid #ffd0ba;
  border-radius:10px;
  background:#fff7ef;
  color:var(--red);
}

.home-category-icon svg {
  width:24px;
  height:24px;
}

.home-category-list strong,
.home-category-list small {
  display:block;
}

.home-category-list strong {
  font-size:16px;
  line-height:1.2;
}

.home-category-list small {
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.07em;
}

.home-slider-card {
  position:relative;
  overflow:hidden;
  min-height:420px;
}

.home-slide {
  position:relative;
  min-height:420px;
  height:100%;
  aspect-ratio:16 / 7;
  overflow:hidden;
  background:var(--header);
}

.home-slide[hidden] {
  display:none !important;
}

.home-slide picture,
.home-slide img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.home-slide img {
  object-fit:cover;
  object-position:center;
  transform:scale(1.015);
}

.home-slide::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, #132328f0 0%, #132328bf 42%, #13232836 100%);
}

.home-slide-copy {
  position:relative;
  z-index:2;
  max-width:560px;
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px;
  color:#fff;
}

.home-slide-copy h2 {
  margin:0 0 14px;
  font-size:clamp(32px, 4vw, 52px);
  line-height:1.04;
  color:#fff;
}

.home-slide-copy p:not(.eyebrow) {
  margin:0 0 24px;
  max-width:520px;
  color:#f8f7e5;
  font-size:18px;
  line-height:1.55;
}

.home-slide-copy .button-link {
  align-self:flex-start;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding-inline:24px;
}

.home-slide-dots {
  position:absolute;
  left:42px;
  bottom:24px;
  z-index:4;
  display:flex;
  gap:8px;
}

.home-slide-dots button {
  width:32px;
  height:8px;
  min-height:0;
  padding:0;
  border-radius:999px;
  background:#ffffff80;
}

.home-slide-dots button.is-active {
  width:44px;
  background:var(--red);
}

@media (max-width:980px) {
  .home-marketplace {
    grid-template-columns:1fr;
  }

  .home-category-list {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:720px) {
  .home-hero-search .search-form {
    padding:18px;
  }

  .home-hero-search .catalogue-search-row {
    grid-template-columns:1fr;
  }

  .home-hero-search select,
  .home-hero-search input,
  .home-hero-search button {
    width:100%;
  }

  .home-category-menu {
    padding:18px;
  }

  .home-category-list {
    grid-template-columns:1fr;
  }

  .home-slider-card {
    min-height:430px;
  }

  .home-slide {
    min-height:430px;
    aspect-ratio:4 / 5;
  }

  .home-slide::after {
    background:linear-gradient(180deg, #132328f2 0%, #132328c9 54%, #1323284a 100%);
  }

  .home-slide-copy {
    min-height:430px;
    padding:28px 22px 70px;
    justify-content:flex-start;
  }

  .home-slide-copy h2 {
    font-size:34px;
  }

  .home-slide-copy p:not(.eyebrow) {
    font-size:16px;
  }

  .home-slide-dots {
    left:22px;
    bottom:22px;
  }
}

/* v9b compact home category slider */
.home-marketplace {
  grid-template-columns:minmax(280px, 340px) minmax(0, 1fr);
  gap:18px;
}

.home-category-menu {
  padding:18px;
}

.home-category-menu h2 {
  margin-bottom:12px;
  font-size:21px;
  line-height:1.25;
}

.home-category-list {
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.home-category-list a {
  grid-template-columns:34px minmax(0, 1fr);
  gap:9px;
  min-height:48px;
  padding:7px;
}

.home-category-icon {
  width:34px;
  height:34px;
  border-radius:8px;
}

.home-category-icon svg {
  width:18px;
  height:18px;
}

.home-category-list strong {
  font-size:13px;
}

.home-category-list small {
  margin-top:2px;
  font-size:9px;
  letter-spacing:.055em;
}

.home-slider-card,
.home-slide,
.home-slide-copy {
  min-height:250px;
}

.home-slide {
  aspect-ratio:16 / 5;
}

.home-slide-copy {
  max-width:500px;
  padding:26px 34px 48px;
}

.home-slide-copy h2 {
  margin-bottom:9px;
  font-size:clamp(28px, 3vw, 38px);
  line-height:1.05;
}

.home-slide-copy p:not(.eyebrow) {
  margin-bottom:16px;
  font-size:15px;
  line-height:1.45;
}

.home-slide-copy .button-link {
  min-height:40px;
  padding:9px 18px;
}

.home-slide-dots {
  left:34px;
  bottom:17px;
}

.home-slide-dots button {
  width:26px;
  height:7px;
}

.home-slide-dots button.is-active {
  width:36px;
}

@media (max-width:980px) {
  .home-category-list {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:720px) {
  .home-marketplace {
    gap:16px;
  }

  .home-category-list {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .home-slider-card,
  .home-slide,
  .home-slide-copy {
    min-height:320px;
  }

  .home-slide {
    aspect-ratio:4 / 3;
  }

  .home-slide-copy {
    padding:24px 20px 58px;
    justify-content:center;
  }

  .home-slide-copy h2 {
    font-size:30px;
  }
}

@media (max-width:460px) {
  .home-category-list {
    grid-template-columns:1fr;
  }
}

/* v10 category and navigation polish */
.home-marketplace {
  grid-template-columns:minmax(250px, 320px) minmax(0, 1fr);
  align-items:stretch;
}

.home-category-menu {
  padding:0 !important;
  overflow:hidden;
  border-top:0 !important;
  border-radius:10px;
  box-shadow:0 12px 30px #13232810;
}

.home-category-menu > .eyebrow {
  margin:0;
  padding:13px 18px;
  background:var(--red);
  color:#fff;
  font-size:13px;
  line-height:1;
  letter-spacing:.045em;
}

.home-category-menu h2 {
  display:none;
}

.home-category-list {
  display:grid;
  grid-template-columns:1fr !important;
  gap:0;
  padding:10px 16px 14px;
}

.home-category-list a {
  display:grid;
  grid-template-columns:25px minmax(0, 1fr);
  gap:12px;
  min-height:38px;
  padding:7px 5px;
  border:0 !important;
  border-radius:6px;
  background:transparent;
  color:var(--header);
}

.home-category-list a + a {
  border-top:1px solid #edf0ec !important;
}

.home-category-list a:hover,
.home-category-list a.is-active {
  background:#fff7ef;
  color:var(--header);
}

.home-category-icon {
  width:22px;
  height:22px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--header);
}

.home-category-icon svg {
  width:21px;
  height:21px;
  stroke:currentColor !important;
  stroke-width:2 !important;
}

.home-category-list strong {
  color:var(--header);
  font-size:14px;
  font-weight:500;
  line-height:1.15;
}

.home-category-list small {
  margin-top:1px;
  color:var(--muted);
  font-size:10px;
  font-weight:600;
  letter-spacing:.035em;
}

.nav-dropdown::after {
  content:"";
  position:absolute;
  left:-34px;
  right:-34px;
  top:100%;
  height:22px;
}

.nav-dropdown-panel {
  width:min(440px, calc(100vw - 32px));
  gap:0;
  padding:12px;
  border-top-width:4px;
  border-radius:9px;
  box-shadow:0 18px 42px #00000024;
}

.product-menu-link {
  grid-template-columns:28px minmax(0, 1fr) !important;
  gap:12px !important;
  min-height:44px !important;
  padding:9px 10px !important;
  border-radius:6px !important;
}

.product-menu-link + .product-menu-link {
  border-top:1px solid #edf0ec !important;
}

.product-menu-icon {
  width:24px !important;
  height:24px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--red);
}

.product-menu-icon svg {
  width:23px !important;
  height:23px !important;
  stroke:currentColor !important;
  stroke-width:2 !important;
}

.product-menu-link strong {
  font-size:15px;
  font-weight:500;
  letter-spacing:0;
}

.product-menu-link small {
  margin-top:2px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.035em;
}

@media (max-width:1024px) {
  body.nav-open {
    overflow:hidden;
  }

  .site-header {
    min-height:86px;
    padding:14px 20px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }

  .brand img {
    width:195px;
    max-width:68vw;
    max-height:56px;
  }

  .nav-toggle {
    display:inline-flex;
    position:relative;
    z-index:70;
  }

  .site-header nav {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:60;
    width:min(360px, 88vw);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:92px 24px 28px;
    background:var(--header);
    box-shadow:-18px 0 42px #0000003b;
    transform:translateX(106%);
    transition:transform .22s ease;
  }

  body.nav-open .site-header nav {
    transform:translateX(0);
  }

  .site-header nav a,
  .nav-dropdown-toggle {
    width:100%;
    justify-content:flex-start;
    gap:12px;
    min-height:50px;
    padding:12px 0;
    border-bottom:1px solid #ffffff24;
    color:#fff;
    font-size:17px;
    font-weight:500;
  }

  .nav-dropdown {
    width:100%;
  }

  .nav-dropdown::after {
    display:none;
  }

  .nav-dropdown-toggle {
    justify-content:space-between;
  }

  .nav-dropdown-toggle > span:first-of-type {
    margin-right:auto;
  }

  .nav-dropdown-panel {
    position:static;
    width:100%;
    display:none;
    padding:6px 0 10px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    pointer-events:auto;
    transform:none;
    visibility:visible;
  }

  .nav-dropdown:hover .nav-dropdown-panel {
    display:none;
    transform:none;
  }

  .nav-dropdown.is-open .nav-dropdown-panel {
    display:grid;
    transform:none;
  }

  .product-menu-link {
    grid-template-columns:24px minmax(0, 1fr) !important;
    gap:12px !important;
    min-height:40px !important;
    margin-left:8px;
    padding:8px 0 !important;
    border-radius:0 !important;
    color:#fff !important;
  }

  .product-menu-link + .product-menu-link {
    border-top:1px solid #ffffff18 !important;
  }

  .product-menu-link:hover {
    background:transparent !important;
    color:var(--red) !important;
  }

  .product-menu-icon {
    width:22px !important;
    height:22px !important;
    color:var(--red);
  }

  .product-menu-icon svg {
    width:21px !important;
    height:21px !important;
    stroke-width:2 !important;
  }

  .product-menu-link strong {
    color:inherit;
    font-size:15px;
    font-weight:500;
  }

  .product-menu-link small {
    color:#c8d6dd;
    font-size:10px;
    letter-spacing:.035em;
  }

  .nav-backdrop:not([hidden]) {
    display:block;
    position:fixed;
    inset:0;
    z-index:50;
    background:#0000008a;
    border:0;
    border-radius:0;
    padding:0;
  }
}

/* v14 focused functionality update: quantity steppers, enquiry accordions and phone footer. */
.quantity-stepper {
  width:max-content;
  display:grid;
  grid-template-columns:48px 54px 48px;
  align-items:center;
  overflow:hidden;
  border:1px solid #aebdc2;
  border-radius:8px;
  background:#fff;
  box-shadow:0 2px 7px #1323280c;
}

.quantity-button {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:0;
  background:var(--header);
  color:#fff;
  font-size:28px;
  font-weight:500;
  line-height:1;
  touch-action:manipulation;
  user-select:none;
}

.quantity-button:hover,
.quantity-button:focus-visible {
  background:var(--red);
}

.quantity-button:focus-visible {
  position:relative;
  z-index:1;
  outline:3px solid #ff834f55;
  outline-offset:-3px;
}

.quantity-button:disabled {
  cursor:not-allowed;
  background:#d8dfe2;
  color:#6f7f86;
}

.quantity-value {
  min-width:54px;
  padding:0 6px;
  color:var(--header);
  font-size:18px;
  font-weight:800;
  line-height:48px;
  text-align:center;
  font-variant-numeric:tabular-nums;
}

.admin-enquiries {
  width:100%;
  max-width:none;
}

.enquiry-search-form {
  padding:18px;
  border-left:5px solid var(--red);
  background:#fff;
  box-shadow:0 4px 14px #1323280a;
}

.enquiry-search-form input {
  min-width:0;
  font-size:16px;
}

.enquiry-list-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:4px 0 14px;
}

.enquiry-list-toolbar .enquiry-list-note {
  margin:0;
}

.enquiry-list-toolbar > span {
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}

.enquiry-status-tabs .status-tab.active {
  color:#fff;
}

.enquiry-status-tabs .status-needs_attention {
  border-color:#b42318;
  background:#fff0ef;
  color:#8f1c13;
}

.enquiry-status-tabs .status-needs_attention.active {
  border-color:#b42318;
  background:#b42318;
}

.enquiry-status-tabs .status-in_progress {
  border-color:#e0ac00;
  background:#fff7cc;
  color:#604900;
}

.enquiry-status-tabs .status-in_progress.active {
  border-color:#d5a000;
  background:#e7b416;
  color:#332600;
}

.enquiry-status-tabs .status-completed {
  border-color:#27824a;
  background:#edf9f0;
  color:#176b38;
}

.enquiry-status-tabs .status-completed.active {
  border-color:#176b38;
  background:#176b38;
}

.enquiry-accordion-list {
  display:grid;
  gap:12px;
}

.enquiry-accordion {
  overflow:hidden;
  border:1px solid var(--line);
  border-left:6px solid var(--line);
  border-radius:9px;
  background:#fff;
  box-shadow:0 4px 13px #1323280b;
}

.enquiry-accordion.enquiry-needs_attention {
  border-left-color:#b42318;
}

.enquiry-accordion.enquiry-in_progress {
  border-left-color:#e7b416;
}

.enquiry-accordion.enquiry-completed {
  border-left-color:#176b38;
}

.enquiry-accordion > summary {
  min-height:84px;
  display:grid;
  grid-template-columns:minmax(240px, 1.25fr) minmax(190px, .9fr) auto 150px;
  gap:20px;
  align-items:center;
  padding:16px 18px;
  list-style:none;
  cursor:pointer;
}

.enquiry-accordion > summary::-webkit-details-marker {
  display:none;
}

.enquiry-accordion > summary:hover {
  background:#f8fafb;
}

.enquiry-accordion > summary:focus-visible {
  outline:3px solid #ff834f55;
  outline-offset:-3px;
}

.enquiry-reference,
.enquiry-summary-customer {
  min-width:0;
  display:grid;
  gap:2px;
}

.enquiry-reference small {
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
}

.enquiry-reference strong {
  overflow-wrap:anywhere;
  color:var(--header);
  font-size:18px;
  line-height:1.2;
}

.enquiry-summary-customer strong {
  overflow:hidden;
  color:#26383f;
  font-size:14px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.enquiry-summary-customer small {
  color:var(--muted);
  font-size:12px;
}

.enquiry-status-badge {
  min-width:118px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 11px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  text-align:center;
  white-space:nowrap;
}

.enquiry-status-badge.status-needs_attention,
.status-select.status-needs_attention {
  border-color:#b42318;
  background:#fff0ef;
  color:#8f1c13;
}

.enquiry-status-badge.status-in_progress,
.status-select.status-in_progress {
  border-color:#d5a000;
  background:#fff4b8;
  color:#604900;
}

.enquiry-status-badge.status-completed,
.status-select.status-completed {
  border-color:#27824a;
  background:#edf9f0;
  color:#176b38;
}

.enquiry-toggle-label {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  color:var(--header);
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}

.enquiry-toggle-label > span:last-child {
  display:inline-block;
  color:var(--red);
  font-size:22px;
  line-height:1;
  transition:transform .18s ease;
}

.collapse-label {
  display:none;
}

.enquiry-accordion[open] .expand-label {
  display:none;
}

.enquiry-accordion[open] .collapse-label {
  display:inline;
}

.enquiry-accordion[open] .enquiry-toggle-label > span:last-child {
  transform:rotate(180deg);
}

.enquiry-accordion-body {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr) minmax(250px, .9fr);
  gap:0;
  border-top:1px solid var(--line);
  background:#fbfcfc;
}

.enquiry-detail-block {
  min-width:0;
  padding:22px;
}

.enquiry-detail-block + .enquiry-detail-block {
  border-left:1px solid var(--line);
}

.enquiry-detail-block h3 {
  margin:0 0 14px;
  color:var(--header);
  font-size:16px;
}

.enquiry-detail-block dl {
  display:grid;
  gap:9px;
  margin:0;
}

.enquiry-detail-block dl div {
  display:grid;
  gap:1px;
}

.enquiry-detail-block dt {
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.enquiry-detail-block dd {
  min-width:0;
  margin:0;
  overflow-wrap:anywhere;
  color:#26383f;
  font-size:14px;
}

.enquiry-subject {
  display:block;
  margin:8px 0;
  color:#26383f;
}

.enquiry-detail-block pre {
  max-height:180px;
  overflow:auto;
  margin:10px 0;
  padding:11px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:#263238;
  font:13px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  white-space:pre-wrap;
}

.attachment-name {
  overflow-wrap:anywhere;
  color:var(--muted);
  font-size:13px;
}

.customer-notes {
  margin-top:14px;
}

.enquiry-management {
  background:#fff;
}

.enquiry-status-form {
  min-width:0;
}

/* v15 Terra contact bar: shared across public and administration headers. */
.top-contact-bar {
  position:relative;
  z-index:80;
  width:100%;
  border-bottom:1px solid var(--red);
  background:var(--header);
  color:#fff;
  font-size:13px;
  line-height:1;
}

.top-contact-inner {
  width:100%;
  max-width:none;
  min-height:44px;
  display:flex;
  align-items:stretch;
  margin:0 auto;
  padding:0 22px;
}

.top-contact-link {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 20px;
  border-right:1px solid var(--red);
  color:#fff;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .18s ease, color .18s ease;
}

.top-contact-link:first-child {
  padding-left:0;
}

.top-contact-link:hover,
.top-contact-link:focus-visible {
  background:#ffffff0b;
  color:var(--red);
}

.top-contact-link:focus-visible {
  outline:2px solid var(--red);
  outline-offset:-3px;
}

.top-contact-link svg {
  width:16px;
  height:16px;
  flex:0 0 16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:720px) {
  .top-contact-inner {
    min-height:0;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    padding:0 14px;
  }

  .top-contact-link {
    min-width:0;
    min-height:36px;
    gap:6px;
    padding:0 10px;
    font-size:12px;
  }

  .top-contact-link:first-child {
    padding-left:0;
  }

  .top-contact-link:nth-child(2) {
    border-right:0;
  }

  .top-contact-email {
    grid-column:1 / -1;
    min-height:34px;
    justify-content:center;
    padding:0;
    border-top:1px solid #ffffff1c;
    border-right:0;
  }

  .top-contact-link svg {
    width:15px;
    height:15px;
    flex-basis:15px;
  }
}

@media (max-width:390px) {
  .top-contact-inner {
    padding:0 10px;
  }

  .top-contact-link {
    padding-right:6px;
    font-size:11.5px;
  }
}

.enquiry-status-form > label:not(.sr-only) {
  margin:2px 0 0;
}

.enquiry-status-form > small {
  color:var(--muted);
  font-size:11px;
}

/* v18: align the desktop contact strip with the site content. */
.top-contact-inner {
  width:calc(100% - 56px);
  max-width:1120px;
  min-height:44px;
  align-items:center;
  padding:0;
}

.top-contact-link {
  height:44px;
  min-height:44px;
  align-items:center;
  line-height:1.2;
}

.top-contact-link .terra-partdo-icon,
.top-contact-link > span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

/* The contact strip is intentionally desktop-only. */
@media (max-width:1024px) {
  .top-contact-bar {
    display:none !important;
  }
}

.enquiry-status-form .small-button {
  width:100%;
  min-height:42px;
}

.enquiry-pagination {
  display:grid;
  grid-template-columns:120px 1fr 120px;
  gap:14px;
  align-items:center;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line);
  text-align:center;
}

.enquiry-pagination .button-link,
.pagination-disabled {
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border-radius:6px;
  font-size:13px;
  font-weight:800;
}

.pagination-disabled {
  border:1px solid var(--line);
  background:#f3f5f5;
  color:#9aa5aa;
}

@media (max-width:960px) {
  .enquiry-accordion > summary {
    grid-template-columns:minmax(210px, 1fr) auto 145px;
  }

  .enquiry-summary-customer {
    display:none;
  }

  .enquiry-accordion-body {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .enquiry-management {
    grid-column:1 / -1;
    border-top:1px solid var(--line);
    border-left:0 !important;
  }
}

@media (max-width:600px) {
  .quote-table,
  .quote-table tbody {
    display:block;
    min-width:0;
    width:100%;
  }

  .quote-table thead {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
  }

  .quote-table tbody tr {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:12px;
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }

  .quote-table tbody td {
    display:block;
    min-width:0;
    padding:0;
    border:0;
  }

  .quote-table tbody td:nth-child(2) {
    display:none;
  }

  .quote-table tbody td:nth-child(3) {
    justify-self:end;
  }

  .quote-table tbody td:nth-child(4) {
    grid-column:1 / -1;
  }

  .quote-table tbody td:nth-child(4) .small-button {
    width:100%;
    min-height:42px;
  }

  .quantity-stepper {
    grid-template-columns:46px 48px 46px;
  }

  .quantity-button {
    width:46px;
    height:48px;
  }

  .quantity-value {
    min-width:48px;
  }

  .enquiry-list-toolbar {
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .enquiry-list-toolbar > span {
    white-space:normal;
  }

  .enquiry-accordion > summary {
    min-height:0;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:10px 12px;
    padding:15px;
  }

  .enquiry-reference {
    grid-column:1 / -1;
  }

  .enquiry-reference strong {
    font-size:17px;
  }

  .enquiry-status-badge {
    min-width:0;
    justify-self:start;
  }

  .enquiry-toggle-label {
    justify-self:end;
  }

  .enquiry-accordion-body {
    grid-template-columns:1fr;
  }

  .enquiry-detail-block + .enquiry-detail-block {
    border-top:1px solid var(--line);
    border-left:0;
  }

  .enquiry-management {
    grid-column:auto;
  }

  .enquiry-pagination {
    grid-template-columns:1fr 1fr;
  }

  .enquiry-pagination > span:nth-child(2) {
    grid-column:1 / -1;
    grid-row:1;
  }

  .site-footer .footer-main {
    grid-template-columns:1fr;
    gap:18px;
    padding:24px 18px 20px;
    text-align:center;
  }

  .site-footer .footer-brand {
    order:-1;
    text-align:center;
  }

  .site-footer .footer-brand img {
    width:172px;
    margin:0 auto 5px;
  }

  .site-footer .footer-brand p {
    margin:4px 0;
    font-size:13px;
    line-height:1.4;
  }

  .site-footer .footer-main h2 {
    margin:0 0 6px;
    font-size:16px;
  }

  .site-footer .footer-main ul {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:0 12px;
  }

  .site-footer .footer-main li {
    min-width:0;
  }

  .site-footer .footer-main a {
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6px 2px;
    font-size:14px;
    line-height:1.25;
  }

  .site-footer .footer-disclaimer {
    padding:11px 16px;
    font-size:12px;
    line-height:1.4;
  }

  .site-footer .footer-bottom {
    align-items:center;
    gap:13px;
    padding:17px 18px calc(20px + env(safe-area-inset-bottom));
    text-align:center;
  }

  .footer-copyright {
    display:flex;
    flex-direction:column;
    gap:1px;
    font-size:12px;
    line-height:1.35;
  }

  .back-to-top {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 16px;
    border:1px solid #ffffff38;
    border-radius:6px;
    background:#ffffff0a;
    white-space:nowrap;
  }
}

/* v12 admin enquiries */
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}

.admin-enquiries {
  margin-top:24px;
}

.admin-enquiries .section-heading {
  align-items:center;
}

.enquiry-search-form {
  display:grid;
  gap:8px;
  margin:18px 0 14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8fafb;
}

.enquiry-search-form label {
  color:var(--header);
  font-size:13px;
  font-weight:800;
}

.enquiry-search-form > div {
  display:flex;
  gap:10px;
  align-items:center;
}

.enquiry-search-form input {
  flex:1 1 360px;
  min-height:42px;
}

.enquiry-search-form .button-link,
.enquiry-search-form button {
  white-space:nowrap;
}

.enquiry-list-note {
  margin:0 0 14px;
  font-size:13px;
}

.enquiry-status-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0;
}

.enquiry-status-tabs a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:var(--header);
  font-size:13px;
  font-weight:700;
}

.enquiry-status-tabs a.active {
  background:var(--header);
  border-color:var(--header);
  color:#fff;
}

.enquiry-status-tabs span {
  min-width:23px;
  padding:2px 7px;
  border-radius:999px;
  background:#f1f4f5;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}

.enquiry-status-tabs a.active span {
  background:#ffffff21;
  color:#fff;
}

.admin-enquiry-table {
  min-width:960px;
}

.admin-enquiry-table th:nth-child(1) { width:19%; }
.admin-enquiry-table th:nth-child(2) { width:24%; }
.admin-enquiry-table th:nth-child(3) { width:36%; }
.admin-enquiry-table th:nth-child(4) { width:21%; }

.admin-enquiry-table td > strong,
.admin-enquiry-table td > span,
.admin-enquiry-table td > small,
.admin-enquiry-table td > a {
  display:block;
  margin-bottom:4px;
}

.admin-enquiry-table td > span,
.admin-enquiry-table td > small {
  color:var(--muted);
}

.admin-enquiry-table pre {
  max-height:150px;
  overflow:auto;
  margin:8px 0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f7f9fa;
  color:#263238;
  font:13px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  white-space:pre-wrap;
}

.admin-enquiry-table details {
  margin-top:8px;
}

.admin-enquiry-table summary {
  cursor:pointer;
  color:var(--red);
  font-weight:700;
}

.enquiry-type {
  display:inline-block !important;
  width:max-content;
  margin-bottom:8px !important;
  padding:3px 8px;
  border-radius:999px;
  background:#edf3f5;
  color:#254554 !important;
  font-size:12px;
  font-weight:800;
}

.warning-text {
  color:#a55a00 !important;
}

.enquiry-status-form {
  display:grid;
  gap:8px;
  min-width:190px;
}

.enquiry-status-form textarea {
  min-height:62px;
  padding:9px 10px;
  font-size:13px;
  resize:vertical;
}

.status-select {
  min-height:40px;
  border-width:1px;
  font-weight:800;
}

.status-needs_attention {
  border-color:#ff834f;
  background:#fff5ef;
  color:#983c0c;
}

.status-in_progress {
  border-color:#7b97a1;
  background:#edf5f7;
  color:#254554;
}

.status-completed {
  border-color:#68a66b;
  background:#eff8f0;
  color:#27612c;
}

@media (max-width:760px) {
  .admin-enquiries .section-heading {
    align-items:flex-start;
  }

  .enquiry-status-tabs a {
    width:100%;
    justify-content:space-between;
  }

  .enquiry-search-form > div {
    align-items:stretch;
    flex-direction:column;
  }

  .enquiry-search-form input,
  .enquiry-search-form .button-link,
  .enquiry-search-form button {
    width:100%;
  }

  .admin-enquiry-table {
    min-width:820px;
  }
}

@media (max-width:760px) {
  .home-marketplace {
    display:none !important;
  }
}

/* v11 mobile nav cleanup: prevent top-level nav icons from floating beside the products menu. */
@media (max-width:1024px) {
  .site-header nav#site-nav {
    display:block !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  .site-header nav#site-nav > a,
  .site-header nav#site-nav > .nav-dropdown {
    display:flex !important;
    width:100% !important;
    max-width:100% !important;
    clear:both !important;
    float:none !important;
    position:relative !important;
  }

  .site-header nav#site-nav > a {
    align-items:center !important;
    justify-content:flex-start !important;
    gap:12px !important;
    white-space:normal !important;
  }

  .site-header nav#site-nav > a svg,
  .site-header nav#site-nav .nav-dropdown-toggle > svg {
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    flex:0 0 18px !important;
  }

  .site-header nav#site-nav > a span {
    min-width:0 !important;
  }

  .site-header nav#site-nav .nav-dropdown {
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .site-header nav#site-nav .nav-dropdown-toggle {
    display:flex !important;
    width:100% !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:12px !important;
    white-space:normal !important;
  }

  .site-header nav#site-nav .dropdown-caret {
    margin-left:auto !important;
    flex:0 0 auto !important;
  }

  .site-header nav#site-nav .nav-dropdown-panel {
    position:relative !important;
    top:auto !important;
    right:auto !important;
    left:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    transform:none !important;
    overflow:hidden !important;
  }

  .site-header nav#site-nav .product-menu-link {
    display:grid !important;
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:24px minmax(0, 1fr) !important;
    align-items:center !important;
    white-space:normal !important;
  }
}

/* v14 final cascade guard. */
.enquiry-search-form {
  padding:18px;
  border-left:5px solid var(--red);
  background:#fff;
  box-shadow:0 4px 14px #1323280a;
}

.enquiry-status-form {
  min-width:0;
}

/* v20 Phase 1 mobile functionality fix:
   stable Quote List badge + touch-friendly fly-out counter. */
.quote-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:22px;
  height:22px;
  padding:0 6px;
  margin-left:6px;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

@media (max-width:720px) {
  .site-header nav a > span {
    display:inline-flex;
    align-items:center;
    min-width:0;
  }

  .site-header nav a .quote-count {
    margin-left:7px;
  }
}

/* Phase 2 Step 2 - customer account application and compliance pages */
.account-application-hero { position:relative; padding-right:0; }

.account-application-form { display:grid; gap:0; padding:0; overflow:hidden; border-top:5px solid var(--red); }
.account-form-section { padding:24px 26px; border-bottom:1px solid var(--line); }
.account-form-section:last-of-type { border-bottom:0; }
.account-form-section h2 { margin:0 0 17px; color:var(--header); }
.account-form-section .eyebrow { margin-bottom:5px; }
.account-form-section label { margin-bottom:14px; }
.account-form-section label:last-child { margin-bottom:0; }
.account-form-section textarea { resize:vertical; }
.account-form-section small { display:block; margin-top:6px; color:var(--muted); font-size:12px; }
.account-legal-section { background:#fffaf6; }
.account-optional-consent { background:#f7f9f9; border-color:#d8e0e1; font-weight:700; }
.account-document-links { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 18px; }
.account-document-links .text-link { padding:7px 0; }
.account-pending-note { margin:0 26px 16px; padding:14px 16px; background:#f4f7f7; border-left:4px solid var(--sea); color:var(--header); font-size:14px; }
.account-submit-button { margin:0 26px 26px; min-height:50px; font-size:16px; }
.account-success-card { border-top:5px solid var(--good); }
.account-success-card h2 { color:var(--header); }
.account-error-notice p { margin:0 0 6px; }
.account-error-notice p:last-child { margin-bottom:0; }
.account-legal-page h2 { margin-top:24px; color:var(--header); }
.account-legal-page h2:first-child { margin-top:0; }
.account-legal-page p { color:#34464d; }
.compliance-law-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0 24px; }
.compliance-law-grid article { border:1px solid var(--line); border-left:4px solid var(--red); border-radius:7px; padding:15px; background:#fff; }
.compliance-law-grid strong, .compliance-law-grid span { display:block; }
.compliance-law-grid span { margin-top:5px; color:var(--muted); font-size:14px; }

@media (max-width:720px) {
  .account-application-hero { padding-right:0; padding-top:0; }
  .account-language-switch { left:0; right:auto; }
  .account-form-section { padding:20px 18px; }
  .account-document-links { flex-direction:column; align-items:stretch; }
  .account-document-links .button-link, .account-document-links .text-link { width:100%; text-align:center; }
  .account-pending-note { margin:0 18px 14px; }
  .account-submit-button { margin:0 18px 20px; width:calc(100% - 36px); }
  .compliance-law-grid { grid-template-columns:1fr; }
}

/* Phase 2 Step 2 refinement - location selectors and consent layout */
.account-location-manual {
  margin-top:9px;
  background:#fff;
}

.account-consent-heading {
  margin:20px 0 9px;
  color:var(--header);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.account-consent-heading-optional {
  margin-top:22px;
  color:var(--muted);
}

.account-consent-stack {
  display:grid;
  gap:12px;
}

.account-legal-section .checkbox-row {
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  align-items:start;
  gap:12px;
  margin:0;
  padding:16px 17px;
  border-radius:7px;
  background:#fff;
  color:var(--header);
  font-weight:700;
  line-height:1.45;
}

.account-legal-section .account-required-consent {
  border:1px solid #d9dfdf;
  border-left:4px solid var(--red);
}

.account-legal-section .account-optional-consent {
  border:1px solid #d9e1e3;
  border-left:4px solid var(--sea);
  background:#f7f9f9;
  font-weight:650;
}

.account-legal-section .checkbox-row input[type="checkbox"] {
  margin-top:2px;
  width:18px !important;
  height:18px;
}

.account-legal-section .checkbox-row span {
  line-height:1.45;
}

.account-legal-section .checkbox-row:has(input:checked) {
  box-shadow:0 0 0 1px rgba(255,131,79,.08);
}

@media (max-width:720px) {
  .account-legal-section .checkbox-row {
    padding:14px;
    gap:10px;
  }
}



/* Phase 2 Step 2.5 - global EN/PT language control */
.nav-language-switch {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 7px;
  color:#c9d2d6;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  white-space:nowrap;
}
.nav-language-switch a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:27px;
  min-height:27px;
  padding:3px 5px;
  border-radius:5px;
  color:#dbe2e5;
  text-decoration:none;
}
.nav-language-switch a:hover,
.nav-language-switch a.is-active {
  background:rgba(255,131,79,.14);
  color:#ff834f;
}
@media (max-width:980px) {
  .nav-language-switch {
    width:100%;
    justify-content:flex-start;
    padding:12px 18px;
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-language-switch a { min-width:38px; min-height:34px; }
}

/* Phase 2 Step 2.5 final navigation simplification */
@media (min-width:1025px) {
  .site-header {
    gap:22px;
  }

  .site-header nav {
    flex:1 1 auto;
    justify-content:flex-end;
    flex-wrap:nowrap;
    gap:22px;
    min-width:0;
  }

  .site-header nav > a,
  .nav-dropdown-toggle,
  .nav-language-switch {
    flex:0 0 auto;
  }
}

.footer-main-expanded {
  grid-template-columns:1fr 1fr 1.25fr 1.45fr;
  gap:34px;
}

.footer-social-links {
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:14px;
}

.footer-social-links a {
  font-size:13px;
  color:#b8c7ce;
}

.footer-utility-links {
  display:flex;
  align-items:center;
  gap:18px;
}

.staff-access-link {
  color:#82959f;
  text-decoration:none;
  font-size:12px;
  font-weight:600;
}

.staff-access-link:hover {
  color:var(--red);
}

@media (max-width:900px) {
  .footer-main-expanded {
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .footer-social-links {
    justify-content:flex-start;
  }
}

@media (max-width:720px) {
  .footer-main-expanded {
    grid-template-columns:1fr;
  }

  .footer-utility-links {
    width:100%;
    justify-content:space-between;
  }
}

/* Phase 2 Step 2.5 - site-wide typography consistency */
html,
body {
  font-family:Arial, Helvetica, sans-serif;
  font-size:16px;
  line-height:1.5;
}

body,
input,
select,
textarea,
button {
  font-family:Arial, Helvetica, sans-serif;
}

.hero h1,
h1 {
  font-size:clamp(30px,5vw,48px);
  font-weight:800;
  line-height:1.1;
}

h2,
.card h2 {
  font-size:22px;
  font-weight:800;
  line-height:1.25;
}

h3 {
  font-size:18px;
  font-weight:800;
  line-height:1.3;
}

.hero > p:not(.eyebrow) {
  font-size:18px;
  font-weight:400;
  line-height:1.5;
}

p,
li {
  line-height:1.5;
}

.eyebrow {
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.11em;
}

label,
.search-form label,
.form-stack label,
.account-form-section label {
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

input,
select,
textarea {
  font-size:16px;
  font-weight:400;
  line-height:1.4;
}

button,
.button-link {
  font-size:14px;
  font-weight:800;
  line-height:1.2;
}

.small-button {
  font-size:13px;
  font-weight:800;
  line-height:1.2;
}

small,
.search-form small,
.upload-form small,
.account-form-section small,
.form-helper,
.account-pending-note {
  line-height:1.45;
}

.site-header nav > a,
.site-header .nav-dropdown-toggle,
.site-header .nav-language-switch a,
.site-header .nav-language-switch span {
  font-size:14px;
  font-weight:700;
  line-height:1.2;
}

.footer-main h2 {
  font-size:15px;
  font-weight:800;
  line-height:1.25;
}

.footer-main a,
.footer-main p,
.footer-bottom {
  line-height:1.5;
}

/* Language must never change typography size or weight. */
html[lang^="en"] .site-header nav > a,
html[lang^="pt"] .site-header nav > a,
html[lang^="en"] .site-header .nav-dropdown-toggle,
html[lang^="pt"] .site-header .nav-dropdown-toggle {
  font-size:14px;
  font-weight:700;
  line-height:1.2;
}

/* Phase 2 Step 2.5 - one global language selector only */
.account-language-switch {
  display:none !important;
}

html.notranslate,
html.notranslate body {
  translate:no;
}

/* Phase 2 Step 3 - Admin Customer Approval & Management */
.admin-customers {
  margin-bottom:28px;
}

.admin-rule-banner {
  margin:16px 0 20px;
  padding:14px 16px;
  border-left:4px solid var(--red);
  background:#fff7f1;
  color:var(--header);
  font-size:14px;
  line-height:1.5;
}

.customer-status-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:16px 0;
}

.customer-account-list {
  display:grid;
  gap:12px;
}

.customer-account-card {
  border:1px solid var(--line);
  border-left:5px solid var(--sea);
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}

.customer-account-card.customer-pending { border-left-color:var(--red); }
.customer-account-card.customer-active { border-left-color:#17823b; }
.customer-account-card.customer-suspended { border-left-color:#d49a00; }
.customer-account-card.customer-closed { border-left-color:#777; }

.customer-account-card > summary {
  display:grid;
  grid-template-columns:1.2fr 1.4fr auto auto;
  gap:18px;
  align-items:center;
  padding:17px 18px;
  cursor:pointer;
  list-style:none;
}

.customer-account-card > summary::-webkit-details-marker {
  display:none;
}

.customer-account-card > summary small,
.customer-account-card > summary strong {
  display:block;
}

.customer-account-card > summary small {
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}

.customer-account-card > summary strong {
  color:var(--header);
  font-size:14px;
  line-height:1.35;
}

.customer-account-badges {
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}

.customer-cash-only-badge {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border-radius:999px;
  background:#1b283a;
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}

.customer-account-body {
  border-top:1px solid var(--line);
  background:#fbfcfc;
}

.customer-management-form {
  display:grid;
}

.customer-admin-section {
  padding:22px;
  border-bottom:1px solid var(--line);
}

.customer-admin-section:last-child {
  border-bottom:0;
}

.customer-admin-section h3 {
  margin:0 0 14px;
}

.customer-admin-section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.customer-language-indicator {
  padding:8px 10px;
  border-radius:6px;
  background:#eef3f4;
  color:var(--header);
  font-size:12px;
}

.customer-admin-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 18px;
}

.customer-admin-section label {
  display:grid;
  gap:6px;
  font-size:13px;
  font-weight:700;
}

.customer-admin-section input,
.customer-admin-section select,
.customer-admin-section textarea {
  width:100%;
}

.customer-original-message {
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-left:4px solid var(--sea);
  border-radius:7px;
  background:#fff;
}

.customer-original-message pre {
  margin:8px 0 0;
  white-space:pre-wrap;
  font-family:inherit;
  font-size:14px;
  line-height:1.5;
}

.customer-readonly-field {
  display:grid;
  gap:6px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f5f7f7;
}

.customer-readonly-field span {
  font-size:12px;
  font-weight:700;
}

.customer-hard-rule {
  color:#a22c1b !important;
  font-weight:800;
}

.customer-permission-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.customer-permission-option {
  grid-template-columns:20px minmax(0,1fr) !important;
  align-items:start;
  padding:14px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
}

.customer-permission-option input {
  width:18px !important;
  height:18px;
  margin-top:2px;
}

.customer-permission-option strong,
.customer-permission-option small {
  display:block;
}

.customer-permission-option small {
  margin-top:5px;
  color:var(--muted);
  font-weight:400;
  line-height:1.4;
}

.customer-action-row {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}

.customer-action-row button {
  min-height:42px;
  padding:10px 15px;
  border:0;
  border-radius:6px;
  cursor:pointer;
  font-size:13px;
  font-weight:800;
}

.customer-action-approve {
  background:#17823b;
  color:#fff;
}

.customer-action-warning {
  background:#e8a600;
  color:#17202a;
}

.customer-action-danger {
  background:#b83225;
  color:#fff;
}

.customer-audit-list {
  display:grid;
  gap:8px;
}

.customer-audit-list > div {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
}

.customer-audit-list strong {
  font-size:13px;
}

.customer-audit-list span {
  color:var(--muted);
  font-size:12px;
  white-space:nowrap;
}

@media (max-width:900px) {
  .customer-account-card > summary {
    grid-template-columns:1fr 1fr;
  }

  .customer-permission-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width:720px) {
  .customer-account-card > summary,
  .customer-admin-grid {
    grid-template-columns:1fr;
  }

  .customer-admin-section {
    padding:18px;
  }

  .customer-admin-section-heading,
  .customer-audit-list > div {
    flex-direction:column;
  }

  .customer-action-row {
    display:grid;
  }

  .customer-action-row button,
  .customer-action-row .button-link {
    width:100%;
    text-align:center;
  }

  .customer-audit-list span {
    white-space:normal;
  }
}

/* Phase 2 Step 3 - Customer application human verification */
.account-human-verification {
  margin:0 26px 16px;
  padding:16px 18px;
  border:1px solid var(--line);
  border-left:4px solid var(--sea);
  border-radius:7px;
  background:#f7f9f9;
}

.account-human-verification .account-consent-heading {
  margin:0 0 10px;
}

.account-human-confirm {
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr) !important;
  align-items:start !important;
  gap:12px !important;
  margin:0 !important;
  padding:13px 14px !important;
  border:1px solid #d8e0e1 !important;
  border-radius:6px;
  background:#fff !important;
  color:var(--header);
  font-weight:700 !important;
  line-height:1.45;
}

.account-human-confirm input[type="checkbox"] {
  width:18px !important;
  height:18px;
  margin:2px 0 0 !important;
}

.account-human-confirm:has(input:checked) {
  border-color:#8aa0a8 !important;
  box-shadow:0 0 0 1px rgba(123,151,161,.10);
}

@media (max-width:720px) {
  .account-human-verification {
    margin:0 18px 14px;
    padding:14px;
  }

  .account-human-confirm {
    padding:12px !important;
    gap:10px !important;
  }
}

/* Phase 2 Step 4 - secure customer account */
.customer-auth-hero,
.customer-dashboard-hero {
  max-width:980px;
}

.customer-auth-card {
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
  border-top:5px solid var(--red);
}

.customer-auth-form {
  display:grid;
  gap:15px;
}

.customer-auth-form label {
  display:grid;
  gap:7px;
  font-size:13px;
  font-weight:700;
}

.customer-auth-form input {
  width:100%;
}

.password-field {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:stretch;
}

.password-visibility-toggle {
  min-width:76px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f4f6f6;
  color:var(--header);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}

.password-visibility-toggle:hover {
  border-color:var(--red);
}

.customer-auth-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}

.customer-dashboard-notice {
  margin-bottom:18px;
}

.customer-dashboard-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-bottom:18px;
}

.customer-dashboard-card {
  min-width:0;
}

.customer-profile-list {
  display:grid;
  gap:0;
  margin:0;
}

.customer-profile-list > div {
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}

.customer-profile-list > div:last-child {
  border-bottom:0;
}

.customer-profile-list dt {
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.customer-profile-list dd {
  margin:0;
  color:var(--header);
  font-size:14px;
}

.customer-cash-rule {
  margin-top:14px;
  padding:12px 14px;
  border-left:4px solid var(--red);
  background:#fff7f1;
  color:#8e291c;
  font-size:13px;
  font-weight:800;
}

.customer-dashboard-permissions {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.customer-dashboard-permissions > div {
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
}

.customer-dashboard-permissions > div.is-allowed {
  border-left:4px solid #17823b;
}

.customer-dashboard-permissions > div.is-not-allowed {
  border-left:4px solid #8a969b;
  opacity:.75;
}

.customer-dashboard-permissions strong,
.customer-dashboard-permissions span {
  display:block;
}

.customer-dashboard-permissions span {
  color:var(--muted);
  font-size:12px;
}

.customer-address-list {
  display:grid;
  gap:12px;
}

.customer-address-list address {
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#f8faf9;
  font-style:normal;
  line-height:1.55;
}

.customer-address-list strong {
  display:block;
  margin-bottom:5px;
}

.customer-logout-form {
  margin-top:14px;
}

.customer-login-control {
  border-top:1px solid var(--line);
}

.customer-login-state {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  align-items:center;
  margin-bottom:12px;
  padding:12px 14px;
  border-radius:7px;
}

.customer-login-state.is-active {
  background:#eef8f1;
  border-left:4px solid #17823b;
}

.customer-login-state.is-pending {
  background:#fff8e7;
  border-left:4px solid #d49a00;
}

.customer-login-state strong {
  color:var(--header);
}

.customer-login-state span {
  color:var(--muted);
  font-size:12px;
}

.customer-activation-form {
  margin-top:10px;
}

.protected-data-notice,
.protected-inline-data {
  border-left:5px solid var(--header);
}

.protected-data-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:15px;
}

.protected-inline-data {
  background:#f5f7f7;
}

@media (max-width:800px) {
  .customer-dashboard-grid,
  .customer-dashboard-permissions {
    grid-template-columns:1fr;
  }

  .customer-profile-list > div {
    grid-template-columns:1fr;
    gap:3px;
  }
}

@media (max-width:560px) {
  .password-field {
    grid-template-columns:1fr;
  }

  .password-visibility-toggle {
    width:100%;
  }

  .customer-auth-links,
  .protected-data-actions {
    display:grid;
  }

  .customer-auth-links a,
  .protected-data-actions a {
    width:100%;
    text-align:center;
  }
}

/* Phase 2 Step 4 polish - explicit authenticated state */
.customer-account-nav.is-authenticated {
  gap:7px !important;
}

.customer-signed-in-badge {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:10px !important;
  font-weight:800;
  line-height:1 !important;
  letter-spacing:.02em;
  white-space:nowrap;
}

.customer-signed-in-dot {
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#36b96b;
  box-shadow:0 0 0 2px rgba(54,185,107,.16);
}

.customer-account-nav.is-authenticated:hover .customer-signed-in-badge {
  color:#fff;
  border-color:rgba(255,131,79,.55);
}

@media (max-width:720px) {
  .customer-account-nav.is-authenticated {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto;
    justify-content:stretch !important;
  }

  .customer-signed-in-badge {
    justify-self:end;
    font-size:11px !important;
  }
}

/* Phase 2 Step 4 polish v2 - visible customer account controls */
.customer-account-menu {
  position:relative;
  margin:0;
}

.customer-account-menu > summary {
  list-style:none;
  cursor:pointer;
}

.customer-account-menu > summary::-webkit-details-marker {
  display:none;
}

.customer-account-menu .customer-account-nav {
  display:flex !important;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:0 4px;
  color:#fff;
  font-weight:700;
}

.customer-account-menu[open] .customer-account-nav,
.customer-account-menu .customer-account-nav:hover {
  color:var(--red);
}

.customer-account-chevron {
  display:inline-block;
  margin-left:1px;
  color:#fff;
  font-size:12px;
  line-height:1;
  transition:transform .16s ease;
}

.customer-account-menu[open] .customer-account-chevron {
  transform:rotate(180deg);
}

.customer-account-dropdown {
  position:absolute;
  z-index:1200;
  top:calc(100% + 9px);
  right:0;
  width:240px;
  overflow:hidden;
  border:1px solid rgba(27,40,58,.18);
  border-top:3px solid var(--red);
  border-radius:7px;
  background:#fff;
  box-shadow:0 14px 34px rgba(27,40,58,.18);
}

.customer-account-dropdown-head {
  display:grid;
  gap:3px;
  padding:13px 15px;
  background:#f5f7f7;
  border-bottom:1px solid var(--line);
}

.customer-account-dropdown-head strong {
  color:var(--header);
  font-size:13px;
  line-height:1.3;
}

.customer-account-dropdown-head span {
  color:var(--muted);
  font-size:11px;
}

.customer-account-dropdown > a,
.customer-header-logout-form button {
  display:block !important;
  width:100%;
  min-height:40px;
  padding:11px 15px !important;
  border:0 !important;
  border-bottom:1px solid var(--line) !important;
  border-radius:0 !important;
  background:#fff !important;
  color:var(--header) !important;
  text-align:left !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  text-decoration:none !important;
  cursor:pointer;
}

.customer-account-dropdown > a:hover,
.customer-header-logout-form button:hover {
  background:#fff7f1 !important;
  color:var(--red) !important;
}

.customer-header-logout-form {
  margin:0;
}

.customer-header-logout-form button {
  border-bottom:0 !important;
}

@media (max-width:720px) {
  .customer-account-menu {
    width:100%;
  }

  .customer-account-menu .customer-account-nav {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto auto;
    width:100%;
    padding:10px 0;
  }

  .customer-account-dropdown {
    position:static;
    width:100%;
    margin:4px 0 8px;
    box-shadow:none;
  }

  .customer-account-dropdown > a,
  .customer-header-logout-form button {
    min-height:44px;
  }
}

/* Phase 2 Step 4 - My Account logged-in indicator polish */
.customer-account-menu .customer-account-nav.is-authenticated {
  display:flex !important;
  align-items:center;
  gap:7px;
  min-height:46px;
  padding:3px 4px;
}

.customer-account-label-stack {
  display:grid;
  grid-template-rows:auto auto;
  gap:2px;
  align-items:center;
  line-height:1;
}

.customer-account-label {
  display:block;
  color:inherit;
  font-size:inherit;
  font-weight:700;
  line-height:1.1;
  white-space:nowrap;
}

.customer-signed-in-status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#dfe9e5;
  font-size:9px !important;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  white-space:nowrap;
}

.customer-signed-in-status .customer-signed-in-dot {
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#36b96b;
  box-shadow:none;
}

/* Remove the previous pill/arrow treatment entirely. */
.customer-account-menu .customer-signed-in-badge,
.customer-account-menu .customer-account-chevron {
  display:none !important;
}

.customer-account-menu[open] .customer-account-label {
  color:var(--red);
}

.customer-account-menu[open] .customer-signed-in-status {
  color:#dfe9e5;
}

@media (max-width:720px) {
  .customer-account-menu .customer-account-nav.is-authenticated {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr);
    gap:9px;
    width:100%;
    padding:10px 0;
  }

  .customer-account-label-stack {
    justify-items:start;
  }

  .customer-signed-in-status {
    font-size:10px !important;
  }
}

/* Phase 2 Step 4 - final My Account alignment + chevron */
.customer-account-menu {
  align-self:stretch;
  display:flex;
  align-items:center;
}

.customer-account-menu .customer-account-nav.is-authenticated {
  position:relative;
  display:flex !important;
  align-items:center !important;
  gap:6px;
  min-height:40px !important;
  height:40px;
  padding:0 3px !important;
  margin:0 !important;
  line-height:1 !important;
}

.customer-account-menu .customer-account-nav.is-authenticated > .nav-icon,
.customer-account-menu .customer-account-nav.is-authenticated > svg {
  align-self:center;
}

.customer-account-label-wrap {
  position:relative;
  display:inline-flex;
  align-items:center;
  height:40px;
  padding-bottom:0;
}

.customer-account-label {
  display:block;
  color:inherit;
  font-size:inherit !important;
  font-weight:700;
  line-height:40px !important;
  white-space:nowrap;
}

/* Status is visually underneath, but removed from normal flow so My Account
   stays perfectly aligned with the rest of the main navigation. */
.customer-signed-in-status {
  position:absolute;
  left:0;
  top:28px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#dfe9e5;
  font-size:8px !important;
  font-weight:700;
  line-height:1 !important;
  white-space:nowrap;
  pointer-events:none;
}

.customer-signed-in-status .customer-signed-in-dot {
  width:5px;
  height:5px;
  flex:0 0 5px;
  border-radius:50%;
  background:#36b96b;
  box-shadow:none;
}

/* Clean CSS chevron — no text glyph. */
.customer-account-css-chevron {
  position:relative;
  display:inline-block;
  width:7px;
  height:7px;
  margin-left:1px;
  margin-top:-2px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
  transition:transform .16s ease, margin-top .16s ease;
}

.customer-account-menu[open] .customer-account-css-chevron {
  margin-top:3px;
  transform:rotate(225deg);
}

.customer-account-menu[open] .customer-account-label {
  color:var(--red);
}

.customer-account-menu[open] .customer-signed-in-status {
  color:#dfe9e5;
}

/* Neutralise the previous stacked-layout rules. */
.customer-account-label-stack {
  display:contents !important;
}

@media (max-width:720px) {
  .customer-account-menu {
    display:block;
    width:100%;
  }

  .customer-account-menu .customer-account-nav.is-authenticated {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center !important;
    width:100%;
    height:auto;
    min-height:48px !important;
    padding:6px 0 10px !important;
    gap:9px;
  }

  .customer-account-label-wrap {
    display:grid;
    align-content:center;
    height:auto;
    min-height:38px;
  }

  .customer-account-label {
    line-height:1.2 !important;
  }

  .customer-signed-in-status {
    position:static;
    margin-top:4px;
    font-size:10px !important;
  }

  .customer-account-css-chevron {
    justify-self:end;
  }
}

/* Phase 2 Step 4 - clean final authenticated navigation */
.customer-account-menu {
  position:relative;
  display:flex !important;
  align-items:center !important;
  align-self:auto !important;
  height:auto !important;
}

.customer-account-menu > summary.customer-account-nav.is-authenticated {
  position:relative;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  color:#fff;
  font-size:inherit !important;
  font-weight:700 !important;
  line-height:inherit !important;
  white-space:nowrap;
  cursor:pointer;
  list-style:none;
}

.customer-account-menu > summary.customer-account-nav.is-authenticated::-webkit-details-marker {
  display:none;
}

.customer-account-menu > summary.customer-account-nav.is-authenticated .nav-icon,
.customer-account-menu > summary.customer-account-nav.is-authenticated > svg {
  display:none !important;
}

.customer-account-main-label {
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
  color:inherit;
  font-size:inherit !important;
  font-weight:inherit !important;
  line-height:inherit !important;
}

.customer-login-dot {
  display:inline-block;
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#36b96b;
  box-shadow:0 0 0 1px rgba(54,185,107,.20);
}

.customer-account-clean-chevron {
  display:inline-block;
  width:6px;
  height:6px;
  margin:0 0 3px 2px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
  transition:transform .15s ease, margin .15s ease;
}

.customer-account-menu[open] > summary .customer-account-clean-chevron {
  margin-top:5px;
  margin-bottom:0;
  transform:rotate(225deg);
}

.customer-account-menu[open] > summary.customer-account-nav.is-authenticated,
.customer-account-menu > summary.customer-account-nav.is-authenticated:hover {
  color:var(--red);
}

/* Hide all previous experimental signed-in layouts. */
.customer-account-label-wrap,
.customer-account-label-stack,
.customer-account-label,
.customer-signed-in-status,
.customer-signed-in-badge,
.customer-account-css-chevron,
.customer-account-chevron {
  display:none !important;
}

.customer-account-dropdown {
  top:calc(100% + 14px) !important;
  right:0 !important;
  width:235px !important;
}

.customer-account-dropdown-head {
  display:grid !important;
  gap:3px !important;
  padding:13px 15px !important;
}

.customer-dropdown-signed-in {
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:max-content;
  margin-bottom:3px;
  color:#237c47 !important;
  font-size:10px !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.customer-dropdown-signed-in .customer-login-dot {
  width:6px;
  height:6px;
  flex-basis:6px;
}

.customer-account-dropdown-head strong {
  font-size:13px !important;
  line-height:1.25 !important;
}

.customer-dropdown-account-number {
  color:var(--muted) !important;
  font-size:11px !important;
}

@media (max-width:720px) {
  .customer-account-menu {
    display:block !important;
    width:100%;
  }

  .customer-account-menu > summary.customer-account-nav.is-authenticated {
    display:flex !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:44px !important;
    padding:10px 0 !important;
    gap:7px !important;
  }

  .customer-account-dropdown {
    position:static !important;
    width:100% !important;
    margin:2px 0 8px !important;
  }
}



/* Phase 2 Step 4 - public quote without exposing protected mapping */
.public-reference-quote-line {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:16px;
  padding:15px 16px;
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:7px;
  background:#fff;
}

.public-reference-quote-line > div {
  display:grid;
  gap:3px;
}

.public-reference-brand {
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.public-reference-quote-line strong {
  color:var(--header);
  font-size:20px;
  line-height:1.15;
}

.public-reference-quote-line button {
  flex:0 0 auto;
}

@media (max-width:620px) {
  .public-reference-quote-line {
    display:grid;
    gap:12px;
  }

  .public-reference-quote-line button {
    width:100%;
  }
}

/* -------------------------------------------------------------------------
   Terra mobile + tablet fly-out navigation final polish
   Applies only up to 1024px. Desktop navigation is unchanged.
   ------------------------------------------------------------------------- */
@media (max-width:1024px) {
  body.nav-open {
    overflow:hidden;
  }

  .site-header nav#site-nav {
    width:min(380px, 90vw) !important;
    padding:88px 24px calc(26px + env(safe-area-inset-bottom)) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    gap:0 !important;
  }

  body.nav-open .nav-toggle {
    position:fixed;
    top:20px;
    right:20px;
    z-index:80;
    width:48px;
    height:48px;
    border-radius:9px;
  }

  .site-header nav#site-nav > a,
  .site-header nav#site-nav .nav-dropdown-toggle {
    width:100% !important;
    min-height:58px !important;
    padding:15px 0 !important;
    margin:0 !important;
    border-bottom:1px solid rgba(255,255,255,.13) !important;
    color:#fff !important;
    font-size:17px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
    justify-content:flex-start !important;
    gap:11px !important;
    white-space:normal !important;
  }

  .site-header nav#site-nav > a:hover,
  .site-header nav#site-nav .nav-dropdown-toggle:hover,
  .site-header nav#site-nav .nav-dropdown.is-open .nav-dropdown-toggle {
    color:var(--red) !important;
  }

  .site-header nav#site-nav .nav-dropdown {
    display:block !important;
    width:100% !important;
  }

  .site-header nav#site-nav .nav-dropdown-toggle {
    display:flex !important;
    align-items:center !important;
  }

  .site-header nav#site-nav .nav-dropdown-toggle > span:first-of-type {
    margin-right:auto !important;
  }

  .site-header nav#site-nav .dropdown-caret {
    display:inline-block !important;
    margin-left:auto !important;
    color:var(--red);
    font-size:14px !important;
    line-height:1 !important;
  }

  .site-header nav#site-nav .nav-dropdown-panel {
    position:static !important;
    display:none;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:4px 0 10px 12px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    overflow:visible !important;
  }

  .site-header nav#site-nav .nav-dropdown:hover .nav-dropdown-panel {
    display:none;
  }

  .site-header nav#site-nav .nav-dropdown.is-open .nav-dropdown-panel {
    display:grid !important;
    gap:0 !important;
  }

  /*
   * The older mobile quote-counter rule makes every direct span inside
   * a nav link inline-flex. Reset the product text wrapper so the product
   * name and its subtitle are two clean rows rather than one run-on line.
   */
  .site-header nav#site-nav a.product-menu-link {
    display:grid !important;
    grid-template-columns:30px minmax(0,1fr) !important;
    align-items:center !important;
    gap:11px !important;
    width:100% !important;
    min-height:56px !important;
    margin:0 !important;
    padding:10px 8px 10px 4px !important;
    border:0 !important;
    border-bottom:1px solid rgba(255,255,255,.09) !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#fff !important;
  }

  .site-header nav#site-nav a.product-menu-link:last-child {
    border-bottom:0 !important;
  }

  .site-header nav#site-nav a.product-menu-link > span:last-child {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:2px !important;
    align-items:start !important;
    min-width:0 !important;
    width:100% !important;
  }

  .site-header nav#site-nav .product-menu-icon {
    display:grid !important;
    place-items:center !important;
    width:28px !important;
    height:28px !important;
    padding:3px !important;
    border:0 !important;
    border-radius:5px !important;
    background:transparent !important;
    color:var(--red) !important;
  }

  .site-header nav#site-nav .product-menu-icon svg {
    display:block !important;
    width:24px !important;
    height:24px !important;
    stroke:var(--red) !important;
    stroke-width:2 !important;
  }

  .site-header nav#site-nav .product-menu-link strong {
    display:block !important;
    min-width:0 !important;
    margin:0 !important;
    color:#fff !important;
    font-size:16px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    white-space:normal !important;
  }

  .site-header nav#site-nav .product-menu-link small {
    display:block !important;
    min-width:0 !important;
    margin:0 !important;
    color:#aebfc7 !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1.3 !important;
    letter-spacing:.045em !important;
    white-space:normal !important;
    text-transform:uppercase;
  }

  .site-header nav#site-nav .product-menu-link:hover strong,
  .site-header nav#site-nav .product-menu-link:hover .product-menu-icon {
    color:var(--red) !important;
  }

  /* Quote counter remains circular and cannot be squeezed by the drawer. */
  .site-header nav#site-nav .quote-count {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    min-width:24px !important;
    width:auto !important;
    height:24px !important;
    padding:0 7px !important;
    margin-left:7px !important;
    border:0 !important;
    border-radius:999px !important;
    background:var(--red) !important;
    color:#fff !important;
    font-size:11px !important;
    font-weight:800 !important;
    line-height:1 !important;
  }

  /* Language control: compact two-button row instead of stretched nav links. */
  .site-header nav#site-nav .nav-language-switch {
    display:flex !important;
    width:100% !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    margin:10px 0 0 !important;
    padding:18px 0 0 !important;
    border-top:1px solid rgba(255,255,255,.13) !important;
    border-bottom:0 !important;
  }

  .site-header nav#site-nav .nav-language-switch > a {
    display:inline-flex !important;
    width:auto !important;
    max-width:none !important;
    min-width:44px !important;
    min-height:38px !important;
    padding:7px 10px !important;
    margin:0 !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:6px !important;
    background:transparent !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1 !important;
    justify-content:center !important;
  }

  .site-header nav#site-nav .nav-language-switch > a.is-active {
    border-color:rgba(255,131,79,.42) !important;
    background:rgba(255,131,79,.14) !important;
    color:var(--red) !important;
  }

  .site-header nav#site-nav .nav-language-switch > span {
    display:inline !important;
    width:auto !important;
    min-width:0 !important;
    flex:0 0 auto !important;
    color:#83959e !important;
    font-size:13px !important;
  }

  /* Logged-in customer account menu must also behave like a drawer section. */
  .site-header nav#site-nav .customer-account-menu {
    display:block !important;
    width:100% !important;
  }

  .site-header nav#site-nav .customer-account-menu > summary {
    display:flex !important;
    width:100% !important;
    min-height:58px !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:7px !important;
    padding:15px 0 !important;
    border-bottom:1px solid rgba(255,255,255,.13) !important;
    color:#fff !important;
    font-size:17px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
  }

  .site-header nav#site-nav .customer-account-dropdown {
    position:static !important;
    width:100% !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  .site-header nav#site-nav .customer-account-dropdown-head {
    padding:13px 14px !important;
  }
}

@media (max-width:560px) {
  .site-header nav#site-nav {
    width:min(360px, 90vw) !important;
    padding-left:22px !important;
    padding-right:22px !important;
  }

  body.nav-open .nav-toggle {
    top:18px;
    right:18px;
  }
}

/* -------------------------------------------------------------------------
   Mobile/tablet fly-out icons + duplicate-label cleanup
   ------------------------------------------------------------------------- */

/* Main navigation SVG icons are intentionally hidden on desktop so the
   approved desktop header remains unchanged. */
.terra-mobile-nav-svg {
  display:none;
}

/* Product SVGs replace the old icon-font dependency. */
.terra-product-svg {
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:1024px) {
  .site-header nav#site-nav .terra-mobile-nav-svg {
    display:block !important;
    width:21px !important;
    height:21px !important;
    flex:0 0 21px !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.8 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
  }

  .site-header nav#site-nav > a > .terra-mobile-nav-svg,
  .site-header nav#site-nav .nav-dropdown-toggle > .terra-mobile-nav-svg {
    color:var(--red) !important;
  }

  /* One clean product label on phones/tablets. The old eyebrow text caused
     "Starter Motors / STARTER MOTORS" and similar duplicate-looking rows. */
  .site-header nav#site-nav .product-menu-link small {
    display:none !important;
  }

  .site-header nav#site-nav a.product-menu-link {
    grid-template-columns:38px minmax(0,1fr) !important;
    min-height:58px !important;
    padding:10px 8px 10px 6px !important;
    gap:12px !important;
  }

  .site-header nav#site-nav .product-menu-icon {
    display:grid !important;
    place-items:center !important;
    width:34px !important;
    height:34px !important;
    padding:5px !important;
    border:1px solid rgba(255,131,79,.28) !important;
    border-radius:8px !important;
    background:rgba(255,131,79,.07) !important;
    color:var(--red) !important;
  }

  .site-header nav#site-nav .product-menu-icon .terra-product-svg {
    width:23px !important;
    height:23px !important;
    stroke:currentColor !important;
  }

  .site-header nav#site-nav .product-menu-link strong {
    font-size:17px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
  }

  /* Give main rows a consistent icon/name rhythm. */
  .site-header nav#site-nav > a,
  .site-header nav#site-nav .nav-dropdown-toggle {
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
  }

  .site-header nav#site-nav .nav-dropdown-toggle > span:nth-of-type(1) {
    margin-right:auto !important;
  }

  /* Quote List contains its own counter; keep icon, text and counter aligned. */
  .site-header nav#site-nav > a[href="/quote.php"] > span {
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
  }

  /* Customer/account icon remains visible for logged-out menu state. */
  .site-header nav#site-nav > a[href="/customer/login.php"] .terra-mobile-nav-svg {
    display:block !important;
  }
}

/* Desktop product dropdown can also use the new SVGs without relying on the
   broken Partdo icon-font stylesheet. */
@media (min-width:1025px) {
  .product-menu-icon .terra-product-svg {
    width:23px !important;
    height:23px !important;
    color:var(--red);
  }
}



/* ========================================================================
   PHASE 2A.1 — TERRA ANALYTICS & PRIVACY FOUNDATION
   ======================================================================== */
.terra-consent-banner {
  position:fixed;
  z-index:2200;
  left:22px;
  right:22px;
  bottom:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  max-width:1180px;
  margin:0 auto;
  padding:18px 20px;
  border:1px solid rgba(27,40,58,.17);
  border-top:4px solid var(--red);
  border-radius:9px;
  background:#fff;
  box-shadow:0 18px 44px rgba(27,40,58,.22);
}
.terra-consent-banner[hidden], .terra-consent-modal[hidden] { display:none !important; }
.terra-consent-banner strong { display:block; color:var(--header); font-size:16px; margin-bottom:4px; }
.terra-consent-banner p { margin:0 0 4px; max-width:720px; color:var(--muted); font-size:13px; line-height:1.5; }
.terra-consent-banner a { font-size:12px; font-weight:700; }
.terra-consent-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex:0 0 auto; }
.terra-consent-actions button, .terra-consent-dialog-actions button {
  min-height:40px; padding:9px 14px; border:1px solid var(--red); border-radius:6px; background:var(--red); color:#fff; font-weight:800; cursor:pointer;
}
.terra-consent-actions button.secondary, .terra-consent-dialog-actions button.secondary { background:#fff; color:var(--header); border-color:var(--line); }
.terra-consent-actions button:hover, .terra-consent-dialog-actions button:hover { filter:brightness(.97); }
body.consent-modal-open { overflow:hidden; }
.terra-consent-modal { position:fixed; inset:0; z-index:2300; display:grid; place-items:center; padding:20px; background:rgba(9,18,29,.62); }
.terra-consent-dialog { width:min(680px, 100%); max-height:min(760px, 92vh); overflow:auto; padding:24px; border-top:4px solid var(--red); border-radius:10px; background:#fff; box-shadow:0 24px 60px rgba(0,0,0,.28); }
.terra-consent-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:16px; }
.terra-consent-dialog-head h2 { margin:0; }
.terra-consent-close { width:40px; height:40px; padding:0; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--header); font-size:26px; line-height:1; cursor:pointer; }
.terra-consent-option { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:10px 0; padding:15px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.terra-consent-option.is-required { background:#f6f8f8; }
.terra-consent-option strong { display:block; margin-bottom:3px; color:var(--header); }
.terra-consent-option small { display:block; max-width:520px; color:var(--muted); line-height:1.45; }
.terra-consent-option input[type="checkbox"] { width:20px; height:20px; flex:0 0 20px; accent-color:var(--red); }
.terra-consent-legal { margin:16px 0 8px; color:var(--muted); font-size:12px; line-height:1.5; }
.terra-consent-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }

.admin-heading-actions { margin-top:16px; }
.admin-insights-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.insights-controls { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.insights-period-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.insights-period-links a { display:inline-flex; padding:7px 10px; border:1px solid var(--line); border-radius:5px; color:var(--header); font-size:12px; font-weight:800; text-decoration:none; }
.insights-period-links a.is-active { border-color:var(--red); background:#fff4ee; color:var(--red); }
.insights-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.insights-metric { margin:0; padding:18px; }
.insights-metric span { display:block; color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.insights-metric strong { display:block; margin:5px 0 4px; color:var(--header); font-size:30px; line-height:1; }
.insights-metric small { color:var(--muted); line-height:1.35; }
.insights-metric.warning { border-top:3px solid #d98b00; }
.insights-two-column { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.insights-two-column > .card { margin:0; }
.insights-table { width:100%; border-collapse:collapse; }
.insights-table th, .insights-table td { padding:10px 9px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:12px; }
.insights-table th { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.consent-admin-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0; }
.consent-admin-stats > div { padding:14px; border:1px solid var(--line); border-radius:6px; background:#f8faf9; }
.consent-admin-stats span { display:block; color:var(--muted); font-size:11px; font-weight:700; }
.consent-admin-stats strong { display:block; margin-top:4px; color:var(--header); font-size:24px; }
.insights-privacy-note { margin-bottom:28px; }

@media (max-width:980px) {
  .insights-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .insights-two-column { grid-template-columns:1fr; }
  .terra-consent-banner { align-items:flex-start; flex-direction:column; gap:14px; }
  .terra-consent-actions { width:100%; justify-content:flex-start; flex-wrap:wrap; }
}
@media (max-width:620px) {
  .terra-consent-banner { left:10px; right:10px; bottom:10px; padding:15px; }
  .terra-consent-actions { display:grid; grid-template-columns:1fr; }
  .terra-consent-actions button { width:100%; }
  .terra-consent-dialog { padding:18px; }
  .terra-consent-option { align-items:flex-start; }
  .terra-consent-dialog-actions { display:grid; grid-template-columns:1fr; }
  .insights-metric-grid { grid-template-columns:1fr; }
  .insights-controls, .admin-insights-heading-row { align-items:stretch; flex-direction:column; }
  .consent-admin-stats { grid-template-columns:1fr; }
}

/* ========================================================================
   PHASE 2A.1 — INSIGHTS ADMIN DASHBOARD POLISH
   ======================================================================== */

.admin-insights-page {
  width:100%;
  max-width:1120px;
  margin:0 auto;
}

.admin-insights-page *,
.admin-insights-page *::before,
.admin-insights-page *::after {
  box-sizing:border-box;
}

.admin-insights-hero {
  margin:0 0 22px;
  padding:24px 26px;
  border:1px solid var(--line);
  border-top:4px solid var(--red);
  border-radius:10px;
  background:
    linear-gradient(135deg, rgba(255,131,79,.055), rgba(123,151,161,.035) 55%, transparent 100%),
    #fff;
  box-shadow:0 4px 14px rgba(19,35,40,.045);
}

.admin-insights-hero .eyebrow {
  margin-bottom:8px;
}

.admin-insights-hero h1 {
  margin:0 0 7px !important;
  font-size:clamp(30px,3.4vw,40px) !important;
  line-height:1.05 !important;
}

.admin-insights-hero p:not(.eyebrow) {
  max-width:720px;
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.5;
}

.admin-insights-heading-row {
  align-items:center !important;
}

.admin-insights-heading-row .button-link {
  flex:0 0 auto;
  white-space:nowrap;
}

.admin-insights-page .card {
  min-width:0;
}

.admin-insights-page .insights-controls {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin:0 0 18px;
  padding:20px 22px;
}

.insights-period-control {
  min-width:0;
}

.insights-control-label {
  display:block;
  margin-bottom:4px;
  color:var(--red);
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
}

.insights-period-control > strong {
  display:block;
  color:var(--header);
  font-size:15px;
}

.insights-period-links {
  gap:8px !important;
  margin-top:10px !important;
}

.insights-period-links a {
  min-width:62px;
  justify-content:center;
  padding:8px 11px !important;
  border-radius:6px !important;
}

.insights-export-control {
  display:grid;
  justify-items:end;
  gap:6px;
}

.insights-export-control > span {
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}

.insights-metric-grid {
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-bottom:18px !important;
}

.insights-metric {
  position:relative;
  min-width:0;
  min-height:128px;
  overflow:hidden;
  padding:17px 18px !important;
  border-radius:9px !important;
}

.insights-metric::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:var(--sea);
}

.insights-metric:nth-child(2)::before,
.insights-metric:nth-child(4)::before,
.insights-metric:nth-child(6)::before,
.insights-metric:nth-child(8)::before {
  background:var(--red);
}

.insights-metric.warning::before {
  height:3px;
  background:#d98b00;
}

.insights-metric span {
  min-height:30px;
  font-size:11px !important;
  line-height:1.3;
}

.insights-metric strong {
  margin:2px 0 7px !important;
  font-size:28px !important;
}

.insights-metric small {
  display:block;
  font-size:11px;
  line-height:1.4 !important;
}

.admin-insights-page .insights-two-column {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:18px !important;
  width:100%;
  min-width:0;
  margin-bottom:18px !important;
}

.admin-insights-page .insights-two-column > .card {
  width:100%;
  min-width:0 !important;
  overflow:hidden;
  padding:22px;
}

.admin-insights-page .section-heading {
  margin-bottom:5px;
}

.admin-insights-page .section-heading h2,
.admin-insights-page > .card h2 {
  margin:0 !important;
  font-size:21px !important;
  line-height:1.2;
}

.admin-insights-page .muted {
  margin-top:8px;
  font-size:12px;
  line-height:1.55;
}

.admin-insights-page .table-scroll {
  width:100%;
  max-width:100%;
  margin-top:14px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  border:1px solid rgba(215,221,211,.65);
  border-radius:7px;
}

.admin-insights-page .insights-table {
  width:100% !important;
  min-width:0 !important;
  table-layout:auto;
  border-collapse:collapse;
}

.admin-insights-page .insights-table th,
.admin-insights-page .insights-table td {
  padding:10px 10px !important;
  overflow-wrap:anywhere;
  word-break:normal;
}

.admin-insights-page .insights-table th {
  background:#f6f8f7;
  color:#64767d;
  font-size:9px !important;
  white-space:nowrap;
}

.admin-insights-page .insights-table td {
  color:var(--header);
  font-size:11px !important;
  line-height:1.35;
}

.admin-insights-page .insights-table tbody tr:last-child td {
  border-bottom:0;
}

.admin-insights-page .insights-demand-table td:first-child,
.admin-insights-page .insights-demand-table th:first-child {
  width:28%;
}

.admin-insights-page .insights-demand-table td:nth-child(2),
.admin-insights-page .insights-demand-table th:nth-child(2) {
  width:18%;
}

.admin-insights-page .insights-demand-table td:nth-child(3),
.admin-insights-page .insights-demand-table th:nth-child(3) {
  width:18%;
}

.admin-insights-page .consent-admin-stats {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
}

.admin-insights-page .consent-admin-stats > div {
  min-width:0;
  padding:16px !important;
  border-left:3px solid var(--sea);
}

.admin-insights-page .consent-admin-stats > div:nth-child(2) {
  border-left-color:var(--red);
}

.admin-insights-page .consent-admin-stats > div:nth-child(3) {
  border-left-color:#d98b00;
}

.admin-insights-page .consent-admin-stats strong {
  font-size:27px !important;
}

.admin-insights-page > .card {
  margin:0 0 18px;
  padding:22px;
}

.admin-insights-page .insights-privacy-note {
  margin-bottom:0 !important;
  background:#f8faf9;
  border-left:4px solid var(--sea);
}

.admin-insights-page .insights-privacy-note p:not(.eyebrow) {
  max-width:900px;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}

/* Prevent global 600px table minimums from forcing the Insights grid wider
   than the admin container. */
.admin-insights-page .table-scroll > table {
  min-width:0 !important;
}

@media (max-width:1040px) {
  .admin-insights-page .insights-metric-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .admin-insights-page .insights-two-column {
    grid-template-columns:1fr !important;
  }

  .admin-insights-page .insights-table {
    min-width:520px !important;
  }
}

@media (max-width:720px) {
  .admin-insights-hero {
    padding:19px;
  }

  .admin-insights-heading-row {
    align-items:stretch !important;
    flex-direction:column !important;
  }

  .admin-insights-heading-row .button-link {
    width:100%;
    text-align:center;
  }

  .admin-insights-page .insights-controls {
    grid-template-columns:1fr;
    gap:16px;
    padding:18px;
  }

  .insights-export-control {
    justify-items:stretch;
  }

  .insights-export-control .button-link {
    width:100%;
    text-align:center;
  }

  .admin-insights-page .insights-metric-grid {
    grid-template-columns:1fr !important;
  }

  .admin-insights-page .insights-metric {
    min-height:0;
  }

  .admin-insights-page .consent-admin-stats {
    grid-template-columns:1fr !important;
  }

  .admin-insights-page .insights-two-column > .card,
  .admin-insights-page > .card {
    padding:18px;
  }
}


/* ========================================================================
   TERRA HIGH-VISIBILITY ADD-TO-QUOTE CTA + INSIGHTS TABLE POLISH
   ======================================================================== */

/* Primary commercial action.
   Warm gold draws attention without competing with WhatsApp green or using
   an alarm/danger colour. Terra navy keeps the text highly legible. */
button[data-add-quote],
.button-link[data-add-quote] {
  background:#FFC83D !important;
  border-color:#DFA817 !important;
  color:#1b283a !important;
  box-shadow:0 5px 14px rgba(223,168,23,.22) !important;
  font-weight:800 !important;
  transition:
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    transform .16s ease !important;
}

button[data-add-quote]::before,
.button-link[data-add-quote]::before {
  content:"+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  margin-right:7px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:14px;
  font-weight:900;
  line-height:1;
}

button[data-add-quote]:hover,
.button-link[data-add-quote]:hover {
  background:#FFD45C !important;
  border-color:#C9960E !important;
  color:#1b283a !important;
  box-shadow:0 8px 18px rgba(223,168,23,.30) !important;
  transform:translateY(-1px);
}

button[data-add-quote]:focus-visible,
.button-link[data-add-quote]:focus-visible {
  outline:3px solid rgba(255,200,61,.36) !important;
  outline-offset:3px;
}

/* Existing quote.js adds .added after the item reaches the quote list. */
button[data-add-quote].added,
.button-link[data-add-quote].added {
  background:#198754 !important;
  border-color:#146c43 !important;
  color:#fff !important;
  box-shadow:0 4px 12px rgba(25,135,84,.20) !important;
  transform:none !important;
}

button[data-add-quote].added::before,
.button-link[data-add-quote].added::before {
  content:"✓";
}

/* Keep the protected-reference CTA visually dominant without enlarging it. */
.public-reference-quote-line button[data-add-quote] {
  min-width:142px;
}

/* Final Insights table legibility:
   do not split normal brand names such as DONALDSON across two lines. */
.admin-insights-page .insights-demand-table th:nth-child(3),
.admin-insights-page .insights-demand-table td:nth-child(3) {
  white-space:nowrap !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  min-width:86px;
}

.admin-insights-page .insights-demand-table th:first-child,
.admin-insights-page .insights-demand-table td:first-child {
  overflow-wrap:normal !important;
  word-break:normal !important;
}

/* Long deliberate test/search numbers may wrap only at hyphens rather than
   in the middle of ordinary words. */
.admin-insights-page .insights-demand-table td:first-child {
  hyphens:manual;
}

@media (max-width:620px) {
  .public-reference-quote-line button[data-add-quote] {
    width:100%;
    min-width:0;
  }
}



/* ================================================================
   TERRA PUBLIC RESULT - PRIMARY ADD TO QUOTE CTA
   ================================================================ */
.public-reference-quote-line button[data-add-quote] {
    appearance: none !important;
    -webkit-appearance: none !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;

    min-width: 158px !important;
    min-height: 44px !important;
    padding: 10px 18px !important;

    border: 1px solid #d99b00 !important;
    border-radius: 7px !important;

    background: linear-gradient(135deg, #ffd75a 0%, #ffc22e 100%) !important;
    color: #1b283a !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .01em !important;

    box-shadow:
        0 5px 12px rgba(27, 40, 58, .10),
        0 2px 4px rgba(217, 155, 0, .18) !important;

    cursor: pointer !important;
    transform: translateY(0) !important;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease,
        border-color .16s ease !important;
}

.public-reference-quote-line button[data-add-quote]::before {
    content: "+" !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;

    margin: 0 !important;

    border: 1.5px solid #1b283a !important;
    border-radius: 50% !important;

    color: #1b283a !important;
    background: rgba(255,255,255,.28) !important;

    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.public-reference-quote-line button[data-add-quote]:hover {
    background: linear-gradient(135deg, #ffe27d 0%, #ffca3d 100%) !important;
    border-color: #c88900 !important;

    box-shadow:
        0 8px 18px rgba(27, 40, 58, .15),
        0 3px 7px rgba(217, 155, 0, .24) !important;

    transform: translateY(-1px) !important;
}

.public-reference-quote-line button[data-add-quote]:active {
    transform: translateY(0) !important;
    box-shadow: 0 3px 8px rgba(27,40,58,.12) !important;
}

.public-reference-quote-line button[data-add-quote]:focus-visible {
    outline: 3px solid rgba(255, 194, 46, .34) !important;
    outline-offset: 3px !important;
}

/* Successful state after quote.js confirms the item is in the basket. */
.public-reference-quote-line button[data-add-quote].added {
    background: #198754 !important;
    border-color: #146c43 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 11px rgba(25,135,84,.20) !important;
    transform: none !important;
}

.public-reference-quote-line button[data-add-quote].added::before {
    content: "✓" !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.12) !important;
}

@media (max-width: 620px) {
    .public-reference-quote-line button[data-add-quote] {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 46px !important;
    }
}



/* ========================================================================
   PHASE 2A.2.1 — TERRA MARKETING CRM FOUNDATION
   ======================================================================== */

.marketing-hero {
  max-width:920px;
}

.marketing-signup-card,
.marketing-preferences-card,
.marketing-preference-access,
.marketing-confirm-card {
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}

.marketing-signup-form {
  display:grid;
  gap:24px;
}

.marketing-topic-section {
  padding:20px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fbfcfb;
}

.marketing-topic-section h2 {
  margin:2px 0 15px;
}

.marketing-topic-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.marketing-topic-option,
.marketing-channel-card {
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-height:58px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  cursor:pointer;
}

.marketing-topic-option input,
.marketing-channel-card input {
  flex:0 0 auto;
  margin-top:3px;
}

.marketing-channel-card span {
  display:grid;
  gap:3px;
}

.marketing-channel-card small {
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.marketing-consent-section {
  display:grid;
  gap:10px;
}

.marketing-consent-row {
  border:1px solid rgba(255,131,79,.35);
  background:#fff8f4;
}

.marketing-human-row {
  border:1px solid var(--line);
  background:#f6f8f7;
}

.marketing-privacy-copy {
  margin:0;
}

.marketing-existing-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.marketing-preference-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:20px;
}

.marketing-preference-summary > div {
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-left:3px solid var(--sea);
  border-radius:7px;
  background:#fff;
}

.marketing-preference-summary span {
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}

.marketing-channel-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.marketing-preference-actions {
  margin-top:18px;
}

.marketing-unsubscribe-all {
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.marketing-admin-metrics {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.marketing-admin-metrics .card {
  display:grid;
  gap:6px;
  min-height:104px;
}

.marketing-admin-metrics span {
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.marketing-admin-metrics strong {
  color:var(--header);
  font-size:28px;
}

.marketing-admin-search {
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px auto;
  gap:10px;
  margin-bottom:18px;
}

.marketing-admin-contact-stack {
  display:grid;
  gap:10px;
}

.marketing-admin-contact {
  border:1px solid var(--line);
  border-left:4px solid var(--sea);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.marketing-admin-contact > summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px 16px;
  cursor:pointer;
}

.marketing-admin-contact > summary > div:first-child {
  display:grid;
  gap:3px;
}

.marketing-admin-contact summary small {
  color:var(--muted);
}

.marketing-admin-statuses {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.marketing-admin-statuses span {
  padding:5px 8px;
  border-radius:999px;
  background:#eef2f1;
  color:var(--header);
  font-size:10px;
  font-weight:800;
}

.marketing-admin-contact-body {
  padding:18px;
  border-top:1px solid var(--line);
}

.marketing-admin-detail-grid,
.marketing-admin-permission-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}

.marketing-admin-detail-grid > div,
.marketing-admin-permission-grid > div {
  display:grid;
  gap:4px;
  padding:11px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fbfcfb;
}

.marketing-admin-detail-grid span,
.marketing-admin-permission-grid strong {
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.marketing-admin-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.marketing-admin-history {
  padding-top:14px;
  border-top:1px solid var(--line);
}

.marketing-admin-history ul {
  list-style:none;
  margin:10px 0 0;
  padding:0;
  display:grid;
  gap:6px;
}

.marketing-admin-history li {
  display:grid;
  grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);
  gap:10px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:6px;
  font-size:11px;
}

.customer-marketing-preferences {
  margin-top:22px;
}

@media (max-width:900px) {
  .marketing-admin-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .marketing-admin-detail-grid,
  .marketing-admin-permission-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .marketing-admin-search {
    grid-template-columns:1fr;
  }
}

@media (max-width:650px) {
  .marketing-topic-grid,
  .marketing-channel-grid,
  .marketing-preference-summary,
  .marketing-admin-metrics,
  .marketing-admin-detail-grid,
  .marketing-admin-permission-grid {
    grid-template-columns:1fr;
  }

  .marketing-existing-link {
    align-items:stretch;
    flex-direction:column;
  }

  .marketing-admin-contact > summary {
    grid-template-columns:1fr;
  }

  .marketing-admin-statuses {
    justify-content:flex-start;
  }

  .marketing-admin-history li {
    grid-template-columns:1fr;
  }
}



/* ========================================================================
   PHASE 2A.2.1 — NEWSLETTER UI + BUTTON POLISH
   ======================================================================== */

.marketing-signup-card {
  padding:24px !important;
}

.marketing-signup-form .form-grid {
  gap:16px 14px !important;
}

.marketing-signup-form label {
  min-width:0;
}

/* Interest choices: keep checkbox physically attached to its label. */
.marketing-signup-card .marketing-topic-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:12px !important;
}

.marketing-signup-card .marketing-topic-option {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:11px !important;
  width:100% !important;
  min-height:62px !important;
  margin:0 !important;
  padding:14px 15px !important;
  border:1px solid #d7ddd3 !important;
  border-radius:8px !important;
  background:#ffffff !important;
  cursor:pointer !important;
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}

.marketing-signup-card .marketing-topic-option:hover {
  border-color:#ff834f !important;
  background:#fff9f6 !important;
  box-shadow:0 3px 10px rgba(27,40,58,.05) !important;
}

.marketing-signup-card .marketing-topic-option input[type="checkbox"] {
  appearance:auto !important;
  -webkit-appearance:auto !important;
  display:block !important;
  position:static !important;
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  margin:1px 0 0 !important;
  padding:0 !important;
  transform:none !important;
}

.marketing-signup-card .marketing-topic-option span {
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  color:#1b283a !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
}

/* Consent rows: clean checkbox / text alignment. */
.marketing-signup-card .marketing-consent-row,
.marketing-signup-card .marketing-human-row {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:11px !important;
  width:100% !important;
  margin:0 !important;
  padding:14px 15px !important;
  border-radius:8px !important;
}

.marketing-signup-card .marketing-consent-row input[type="checkbox"],
.marketing-signup-card .marketing-human-row input[type="checkbox"] {
  appearance:auto !important;
  -webkit-appearance:auto !important;
  position:static !important;
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  margin:1px 0 0 !important;
  padding:0 !important;
  transform:none !important;
}

.marketing-signup-card .marketing-consent-row span,
.marketing-signup-card .marketing-human-row span {
  flex:1 1 auto !important;
  min-width:0 !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.45 !important;
}

/* Action area */
.marketing-form-actions {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  flex-wrap:wrap;
  margin-top:2px;
}

.marketing-submit-button,
.marketing-manage-button {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:46px !important;
  padding:11px 18px !important;
  border-radius:7px !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-decoration:none !important;
}

.marketing-submit-button {
  min-width:230px !important;
  background:#ff834f !important;
  border:1px solid #ff7340 !important;
  color:#fff !important;
  box-shadow:0 5px 13px rgba(255,131,79,.18) !important;
}

.marketing-submit-button:hover {
  background:#ff7540 !important;
  border-color:#ee6433 !important;
  box-shadow:0 7px 17px rgba(255,131,79,.24) !important;
  transform:translateY(-1px);
}

.marketing-existing-link {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  margin-top:22px !important;
  padding:18px !important;
  border:1px solid #d7ddd3 !important;
  border-radius:8px !important;
  background:#f7f9f8 !important;
}

.marketing-existing-copy {
  display:grid;
  gap:3px;
}

.marketing-existing-copy strong {
  color:#1b283a;
  font-size:14px;
}

.marketing-existing-copy span {
  color:#62757d;
  font-size:12px;
  line-height:1.4;
}

.marketing-manage-button {
  flex:0 0 auto !important;
  min-width:170px !important;
  background:#1b283a !important;
  border:1px solid #1b283a !important;
  color:#fff !important;
}

.marketing-manage-button:hover {
  background:#26394f !important;
  border-color:#26394f !important;
  color:#fff !important;
}

.marketing-privacy-copy {
  margin:0 !important;
  padding:12px 14px !important;
  border-left:3px solid #7b97a1 !important;
  background:#f7f9f8 !important;
  color:#62757d !important;
  font-size:12px !important;
  line-height:1.5 !important;
}

.marketing-privacy-copy a {
  font-weight:700;
}

@media (max-width:720px) {
  .marketing-signup-card .marketing-topic-grid {
    grid-template-columns:1fr !important;
  }

  .marketing-form-actions,
  .marketing-existing-link {
    align-items:stretch !important;
    flex-direction:column !important;
  }

  .marketing-submit-button,
  .marketing-manage-button {
    width:100% !important;
    min-width:0 !important;
  }
}


/* ==========================================================
   terra-mobile-footer-flyout-compact-v1
   MOBILE-ONLY FOOTER + FLYOUT POLISH
   Desktop/tablet desktop navigation is intentionally untouched.
========================================================== */

/* ---------- FLYOUT / MOBILE NAV ---------- */
@media (max-width: 760px) {
  body.nav-open {
    overflow: hidden !important;
  }

  .site-header nav#site-nav {
    width: min(338px, 88vw) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;

    padding: 72px 18px 18px !important;
    gap: 0 !important;

    border-left: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: -16px 0 42px rgba(7,17,31,.34) !important;
  }

  body.nav-open .nav-toggle {
    top: 14px !important;
    right: 14px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }

  /* Compact top-level rows */
  .site-header nav#site-nav > a,
  .site-header nav#site-nav > .product-menu > button,
  .site-header nav#site-nav > .product-menu > [data-product-menu-toggle],
  .site-header nav#site-nav > .customer-account-menu > summary,
  .site-header nav#site-nav > details > summary {
    min-height: 52px !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
  }

  .site-header nav#site-nav > a,
  .site-header nav#site-nav > .product-menu,
  .site-header nav#site-nav > .customer-account-menu,
  .site-header nav#site-nav > details {
    width: 100% !important;
    margin: 0 !important;
  }

  /* Product submenu: keep the same icons, but remove excess vertical bulk */
  .site-header nav#site-nav .product-submenu,
  .site-header nav#site-nav .product-menu-panel,
  .site-header nav#site-nav [data-product-menu] .dropdown-menu,
  .site-header nav#site-nav [data-product-menu] .product-dropdown {
    margin: 0 !important;
    padding-top: 4px !important;
    padding-bottom: 6px !important;
  }

  .site-header nav#site-nav .product-submenu a,
  .site-header nav#site-nav .product-menu-panel a,
  .site-header nav#site-nav [data-product-menu] .dropdown-menu a,
  .site-header nav#site-nav [data-product-menu] .product-dropdown a {
    min-height: 46px !important;
    margin: 0 !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  /* My Account: remove the stark white desktop dropdown treatment */
  .site-header nav#site-nav .customer-account-dropdown {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 7px !important;
    background: rgba(255,255,255,.035) !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  .site-header nav#site-nav .customer-account-dropdown-head {
    margin: 0 !important;
    padding: 11px 13px !important;
    min-height: 0 !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
    background: transparent !important;
    color: #ffffff !important;
  }

  .site-header nav#site-nav .customer-account-dropdown-head *,
  .site-header nav#site-nav .customer-dropdown-signed-in,
  .site-header nav#site-nav .customer-account-dropdown strong,
  .site-header nav#site-nav .customer-account-dropdown small,
  .site-header nav#site-nav .customer-account-dropdown span {
    color: inherit !important;
  }

  .site-header nav#site-nav .customer-dropdown-signed-in {
    color: #7ee0a3 !important;
  }

  .site-header nav#site-nav .customer-account-dropdown a {
    display: flex !important;
    align-items: center !important;
    min-height: 45px !important;
    margin: 0 !important;
    padding: 10px 13px !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    background: transparent !important;
    color: #ffffff !important;
    text-decoration: none !important;
  }

  .site-header nav#site-nav .customer-account-dropdown a:last-child {
    border-bottom: 0 !important;
  }

  .site-header nav#site-nav .customer-account-dropdown a:hover,
  .site-header nav#site-nav .customer-account-dropdown a:focus-visible {
    background: rgba(255,131,79,.10) !important;
    color: #ffffff !important;
  }

  /* Keep the language selector close to the final menu item */
  .site-header nav#site-nav .language-switcher,
  .site-header nav#site-nav .language-selector,
  .site-header nav#site-nav [class*="language"] {
    margin-top: 12px !important;
  }
}

@media (max-width: 560px) {
  .site-header nav#site-nav {
    width: min(326px, 86vw) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ---------- MOBILE FOOTER ---------- */
@media (max-width: 620px) {
  .site-footer {
    font-size: 13px !important;
  }

  .site-footer img {
    max-width: 150px !important;
    height: auto !important;
  }

  .site-footer p {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    line-height: 1.35 !important;
  }

  .site-footer h2,
  .site-footer h3,
  .site-footer h4 {
    margin-top: 16px !important;
    margin-bottom: 7px !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
  }

  /* Collapse inherited large gaps between footer columns/sections */
  .site-footer .footer-main,
  .site-footer .footer-content,
  .site-footer .footer-grid,
  .site-footer .footer-columns,
  .site-footer .site-footer-grid {
    gap: 14px !important;
    row-gap: 14px !important;
  }

  .site-footer .footer-column,
  .site-footer .footer-section,
  .site-footer .footer-block {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Link lists remain readable but much tighter */
  .site-footer ul {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-left: 0 !important;
  }

  .site-footer li {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-footer li a {
    display: block !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    line-height: 1.25 !important;
  }

  /* Social row: wrap cleanly without large gaps */
  .site-footer .social-links,
  .site-footer .footer-social,
  .site-footer .footer-social-links {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 7px 18px !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
  }

  .site-footer .social-links a,
  .site-footer .footer-social a,
  .site-footer .footer-social-links a {
    margin: 0 !important;
    padding: 3px 0 !important;
  }

  /* Copyright area */
  .site-footer .footer-bottom,
  .site-footer .site-footer-bottom,
  .site-footer .footer-copyright {
    margin-top: 14px !important;
    padding-top: 14px !important;
    padding-bottom: 0 !important;
  }

  /* Utility controls: two neat columns instead of a long horizontal row */
  .footer-utility-links {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  .footer-utility-links a {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 8px 9px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.1 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 380px) {
  .footer-utility-links {
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================
   terra-mobile-flyout-final-polish-v2
   FINAL MOBILE-ONLY FLYOUT POLISH
========================================================== */
@media (max-width: 760px) {

  /* Force every account submenu action — including Log Out — into
     the same dark mobile treatment. */
  .site-header nav#site-nav .customer-account-dropdown a,
  .site-header nav#site-nav .customer-account-dropdown a:link,
  .site-header nav#site-nav .customer-account-dropdown a:visited,
  .site-header nav#site-nav .customer-account-dropdown a:last-child,
  .site-header nav#site-nav .customer-account-dropdown .logout-link,
  .site-header nav#site-nav .customer-account-dropdown [href*="logout"] {
    background: transparent !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,.08) !important;
  }

  .site-header nav#site-nav .customer-account-dropdown a:hover,
  .site-header nav#site-nav .customer-account-dropdown a:focus-visible,
  .site-header nav#site-nav .customer-account-dropdown [href*="logout"]:hover,
  .site-header nav#site-nav .customer-account-dropdown [href*="logout"]:focus-visible {
    background: rgba(255,131,79,.10) !important;
    color: #ffffff !important;
  }

  /* Keep Contact and the language switcher visually grouped. */
  .site-header nav#site-nav > a[href*="contact"],
  .site-header nav#site-nav > a[href$="/contact"],
  .site-header nav#site-nav > a[href$="contact.php"] {
    margin-bottom: 0 !important;
  }

  .site-header nav#site-nav .language-switcher,
  .site-header nav#site-nav .language-selector,
  .site-header nav#site-nav [class*="language"] {
    margin-top: 8px !important;
    padding-top: 10px !important;
  }

  /* Slightly reduce the empty visual tail after the language selector,
     while retaining enough breathing room for safe scrolling. */
  .site-header nav#site-nav {
    padding-bottom: 12px !important;
  }
}


/* ==========================================================
   terra-mobile-flyout-logout-final-v3
   FINAL MOBILE LOG OUT BUTTON TREATMENT
========================================================== */
@media (max-width: 760px) {

  /* Logout is rendered as a form/button on mobile, so explicitly
     style both the form wrapper and button to match the dark flyout. */
  .site-header nav#site-nav .customer-account-dropdown form {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
  }

  .site-header nav#site-nav .customer-account-dropdown form button,
  .site-header nav#site-nav .customer-account-dropdown button[type="submit"],
  .site-header nav#site-nav .customer-account-dropdown .logout-button {
    width: 100% !important;
    min-height: 45px !important;
    margin: 0 !important;
    padding: 10px 13px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 0 !important;

    background: transparent !important;
    color: #ffffff !important;

    font: inherit !important;
    font-weight: 600 !important;
    text-align: left !important;
    box-shadow: none !important;
    cursor: pointer !important;
  }

  .site-header nav#site-nav .customer-account-dropdown form button:hover,
  .site-header nav#site-nav .customer-account-dropdown form button:focus-visible,
  .site-header nav#site-nav .customer-account-dropdown button[type="submit"]:hover,
  .site-header nav#site-nav .customer-account-dropdown button[type="submit"]:focus-visible {
    background: rgba(255,131,79,.10) !important;
    color: #ffffff !important;
    outline: none !important;
  }
}


/* ==========================================================
   terra-workspace-ux-v1
   SHARED ADMIN + CUSTOMER WORKSPACE UX
========================================================== */

.terra-workspace-shell{
  width:100%;
  box-sizing:border-box;
  margin:0 0 20px;
  border:1px solid #d7ddd3;
  border-radius:9px;
  background:#f7f9f8;
  box-shadow:none;
}

.terra-workspace-heading{
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
}

.terra-workspace-heading > div{
  display:grid;
  gap:2px;
}

.terra-workspace-heading strong{
  color:#1b283a;
  font-size:16px;
  line-height:1.2;
}

.terra-workspace-eyebrow{
  display:block;
  color:#ff834f;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.terra-workspace-nav{
  display:flex;
  align-items:center;
  gap:5px;
  min-height:54px;
  padding:7px;
  box-sizing:border-box;
}

.terra-workspace-link,
.terra-workspace-group > summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 12px;
  box-sizing:border-box;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#1b283a;
  font-size:13px;
  font-weight:850;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}

.terra-workspace-link:hover,
.terra-workspace-link:focus-visible,
.terra-workspace-group > summary:hover,
.terra-workspace-group > summary:focus-visible{
  background:#edf1f2;
  color:#1b283a;
  outline:none;
}

.terra-workspace-link.is-active,
.terra-workspace-group.is-active-group > summary{
  background:#1b283a;
  color:#fff;
}

.terra-workspace-group{
  position:relative;
}

.terra-workspace-group > summary{
  list-style:none;
}

.terra-workspace-group > summary::-webkit-details-marker{
  display:none;
}

.terra-workspace-group > summary::after{
  content:'▾';
  margin-left:7px;
  font-size:10px;
  opacity:.72;
}

.terra-workspace-group[open] > summary::after{
  transform:rotate(180deg);
}

.terra-workspace-submenu{
  position:absolute;
  z-index:100;
  top:calc(100% + 6px);
  left:0;
  min-width:215px;
  display:grid;
  gap:3px;
  padding:7px;
  border:1px solid #cfd9dc;
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 30px rgba(27,40,58,.13);
}

.terra-workspace-submenu .terra-workspace-link{
  justify-content:flex-start;
  width:100%;
}

.terra-workspace-spacer{
  flex:1 1 auto;
}

.terra-workspace-logout{
  color:#a92b23;
}

.terra-workspace-mobile-toggle{
  min-height:38px;
  padding:8px 12px;
  border:1px solid #bcc8cd;
  border-radius:7px;
  background:#fff;
  color:#1b283a;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}

.terra-workspace-legacy-nav-hidden{
  display:none !important;
}

/* ----------------------------------------------------------
   PRICING ENGINE LARGE-DATA UX
---------------------------------------------------------- */

.terra-workspace-collapsible{
  position:relative;
}

.terra-workspace-collapse-button{
  position:absolute;
  top:15px;
  right:18px;
  min-width:78px;
  min-height:34px;
  padding:6px 10px;
  border:1px solid #bcc8cd;
  border-radius:6px;
  background:#fff;
  color:#1b283a;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}

.terra-workspace-collapse-button:hover,
.terra-workspace-collapse-button:focus-visible{
  border-color:#ff834f;
  color:#ff834f;
}

.terra-workspace-card-subtitle{
  display:block;
  margin:-5px 95px 14px 0;
  color:#60757d;
  font-size:12px;
  font-weight:650;
}

.terra-workspace-collapsible.is-collapsed{
  padding-bottom:17px !important;
}

.terra-workspace-collapsible.is-collapsed > h2,
.terra-workspace-collapsible.is-collapsed > h3{
  margin-bottom:5px !important;
}

.terra-workspace-product-tools{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px auto;
  align-items:center;
  gap:9px;
  margin:4px 0 10px;
}

.terra-workspace-product-tools input,
.terra-workspace-product-tools select{
  width:100%;
  min-height:40px;
  box-sizing:border-box;
}

.terra-workspace-product-count{
  min-width:95px;
  color:#60757d;
  font-size:12px;
  font-weight:800;
  text-align:right;
}

.terra-workspace-product-scroll{
  max-height:520px;
  overflow:auto !important;
  border:1px solid #e1e6e3;
  border-radius:6px;
}

.terra-workspace-audit-scroll{
  max-height:430px;
  overflow:auto !important;
  border:1px solid #e1e6e3;
  border-radius:6px;
}

.terra-workspace-product-scroll table,
.terra-workspace-audit-scroll table{
  margin:0 !important;
}

.terra-workspace-product-scroll thead th,
.terra-workspace-audit-scroll thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f4f6f5;
}

/* ----------------------------------------------------------
   CUSTOMER ACCOUNT HUB
---------------------------------------------------------- */

.terra-workspace-shell--customer{
  width:min(1040px,100%);
  margin-left:auto;
  margin-right:auto;
}

.terra-customer-quick-actions{
  width:min(1040px,100%);
  margin:0 auto 20px;
  padding:18px;
  box-sizing:border-box;
  border:1px solid #d7ddd3;
  border-top:3px solid #ff834f;
  border-radius:9px;
  background:#fff;
}

.terra-customer-quick-actions-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}

.terra-customer-quick-actions-heading strong{
  color:#1b283a;
  font-size:19px;
}

.terra-customer-quick-actions-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.terra-customer-action{
  display:grid;
  gap:5px;
  min-width:0;
  min-height:78px;
  padding:13px 14px;
  box-sizing:border-box;
  border:1px solid #d7ddd3;
  border-radius:8px;
  background:#fbfcfb;
  color:#1b283a;
  text-decoration:none;
}

.terra-customer-action:hover,
.terra-customer-action:focus-visible{
  border-color:#ff834f;
  background:#fff8f4;
}

.terra-customer-action strong{
  color:#1b283a;
  font-size:14px;
}

.terra-customer-action small{
  color:#60757d;
  font-size:11px;
  line-height:1.35;
}

.terra-customer-rfq-scroll{
  max-height:420px;
  overflow:auto !important;
}

.terra-customer-rfq-scroll thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f4f6f5;
}

.terra-customer-profile-workspace form{
  display:grid;
  gap:16px;
}

.terra-customer-profile-section{
  scroll-margin-top:20px;
}

/* ----------------------------------------------------------
   RESPONSIVE WORKSPACE NAVIGATION
---------------------------------------------------------- */

@media(max-width:900px){
  .terra-workspace-heading{
    display:flex;
  }

  .terra-workspace-nav{
    display:none;
    min-height:0;
    padding:0 10px 10px;
  }

  .terra-workspace-shell.is-menu-open .terra-workspace-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }

  .terra-workspace-link,
  .terra-workspace-group > summary{
    width:100%;
    justify-content:flex-start;
    min-height:42px;
    padding:9px 11px;
    border:1px solid #e1e6e3;
    background:#fff;
  }

  .terra-workspace-group{
    position:static;
  }

  .terra-workspace-submenu{
    position:static;
    min-width:0;
    margin-top:5px;
    padding:5px;
    box-shadow:none;
  }

  .terra-workspace-spacer{
    display:none;
  }

  .terra-customer-quick-actions-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .terra-workspace-shell.is-menu-open .terra-workspace-nav{
    grid-template-columns:1fr;
  }

  .terra-workspace-product-tools{
    grid-template-columns:1fr;
  }

  .terra-workspace-product-count{
    text-align:left;
  }

  .terra-customer-quick-actions-grid{
    grid-template-columns:1fr;
  }

  .terra-customer-quick-actions-heading{
    display:grid;
    align-items:start;
  }

  .terra-workspace-collapse-button{
    position:static;
    margin:8px 0 0;
  }

  .terra-workspace-card-subtitle{
    margin-right:0;
  }
}


/* ==========================================================
   terra-workspace-ux-v2-1-unified-width
========================================================== */

/* Customer Account Hub + Quick Actions must follow the same content width. */
.terra-customer-full-workspace-width{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Keep Admin workspace menus above the content cards below them. */
.terra-workspace-shell{
  position:relative !important;
  z-index:80 !important;
  overflow:visible !important;
}

.terra-workspace-nav,
.terra-workspace-group{
  overflow:visible !important;
}

.terra-workspace-submenu{
  z-index:10000 !important;
}

.terra-workspace-group[open]{
  z-index:10001 !important;
}

/* Quote Snapshot table: compact audit instead of a permanently long table. */
.terra-workspace-snapshot-lines-card{
  position:relative !important;
}

.terra-workspace-snapshot-scroll{
  max-height:460px !important;
  overflow:auto !important;
  border:1px solid #e1e6e3 !important;
  border-radius:6px !important;
}

.terra-workspace-snapshot-scroll table{
  margin:0 !important;
}

.terra-workspace-snapshot-scroll thead th{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  background:#f4f6f5 !important;
}

/* Insights: force dense paired cards onto their own full-width rows. */
.terra-insights-stack-card{
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
}

.terra-insights-contained-scroll{
  max-height:430px !important;
  overflow:auto !important;
  border:1px solid #e1e6e3 !important;
  border-radius:6px !important;
}

.terra-insights-contained-scroll table{
  margin:0 !important;
}

.terra-insights-contained-scroll thead th{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  background:#f4f6f5 !important;
}

/*
 * When a card sits in a two-column grid, grid-column alone is the safest
 * way to stack it. These broader selectors cover legacy Insights wrappers.
 */
.insights-grid > .terra-insights-stack-card,
.terra-insights-grid > .terra-insights-stack-card,
.analytics-grid > .terra-insights-stack-card,
.terra-analytics-grid > .terra-insights-stack-card{
  grid-column:1 / -1 !important;
}

/* Ensure old module navigation really disappears after shared nav is active. */
.terra-workspace-legacy-nav-hidden{
  display:none !important;
}

/* Collapsed cards keep a clean compact summary row. */
.terra-insights-collapsible-card.is-collapsed,
.terra-workspace-snapshot-lines-card.is-collapsed{
  min-height:78px !important;
}

@media(max-width:900px){
  .terra-workspace-submenu{
    z-index:auto !important;
  }
}

/* ----------------------------------------------------------
   TERRA UNIFIED WORKSPACE WIDTH
   Use one desktop content width across Admin + Customer areas.
   The public product/search layout remains the visual reference.
---------------------------------------------------------- */
:root{
  --terra-workspace-content-max:1120px;
  --terra-workspace-side-gap:24px;
}

/*
 * Top-level authenticated workspace shells.
 * These selectors cover the current Admin, pricing, insights,
 * marketing and customer-account page families.
 */
.admin-shell,
.admin-dashboard-shell,
.terra-admin-shell,
.terra-pricing-shell,
.terra-pricing-import-shell,
.snapshot-shell,
.pricing-resolver-shell,
.pilot-shell,
.insights-shell,
.terra-insights-shell,
.marketing-shell,
.terra-marketing-shell,
.whatsapp-shell,
.terra-whatsapp-shell,
.customer-dashboard-shell,
.customer-dashboard-wrap,
.customer-account-shell,
.customer-pricing-shell,
.bulk-pricing-shell,
.customer-profile-shell,
.terra-customer-profile-workspace{
  width:min(
    var(--terra-workspace-content-max),
    calc(100% - (var(--terra-workspace-side-gap) * 2))
  ) !important;
  max-width:var(--terra-workspace-content-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/*
 * Shared navigation / Quick Actions always consume exactly the
 * width of their workspace, rather than introducing another cap.
 */
.terra-workspace-shell--admin,
.terra-workspace-shell--customer,
.terra-customer-quick-actions{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/*
 * Some historic modules place the hero and the content in sibling
 * wrappers. Give their primary page containers the same standard.
 */
body:has(.terra-workspace-nav--admin) main,
body:has(.terra-workspace-nav--customer) main{
  width:min(
    var(--terra-workspace-content-max),
    calc(100% - (var(--terra-workspace-side-gap) * 2))
  );
  max-width:var(--terra-workspace-content-max);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

/*
 * Do not double-constrain a recognised workspace shell that is
 * already inside main.
 */
body:has(.terra-workspace-nav--admin) main >
.admin-shell,
body:has(.terra-workspace-nav--admin) main >
.admin-dashboard-shell,
body:has(.terra-workspace-nav--admin) main >
.terra-admin-shell,
body:has(.terra-workspace-nav--admin) main >
.terra-pricing-shell,
body:has(.terra-workspace-nav--admin) main >
.terra-pricing-import-shell,
body:has(.terra-workspace-nav--admin) main >
.snapshot-shell,
body:has(.terra-workspace-nav--admin) main >
.pricing-resolver-shell,
body:has(.terra-workspace-nav--admin) main >
.pilot-shell,
body:has(.terra-workspace-nav--admin) main >
.insights-shell,
body:has(.terra-workspace-nav--customer) main >
.customer-dashboard-shell,
body:has(.terra-workspace-nav--customer) main >
.customer-pricing-shell,
body:has(.terra-workspace-nav--customer) main >
.bulk-pricing-shell{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

@media(max-width:760px){
  :root{
    --terra-workspace-side-gap:14px;
  }
}


/* ==========================================================
   terra-workspace-ux-v2-2-admin-nav-finalize
========================================================== */

/*
 * When the shared Admin workspace exists, historic module navigation must
 * not remain visible. This also catches legacy nav created after DOM ready.
 */
body:has(.terra-workspace-nav--admin) .terra-admin-quicknav,
body:has(.terra-workspace-nav--admin) .admin-dashboard-nav,
body:has(.terra-workspace-nav--admin) .terra-pricing-nav,
body:has(.terra-workspace-nav--admin) .terra-pricing-import-nav,
body:has(.terra-workspace-nav--admin) .snapshot-nav,
body:has(.terra-workspace-nav--admin) .pricing-resolver-nav,
body:has(.terra-workspace-nav--admin) .pilot-nav,
body:has(.terra-workspace-nav--admin) .insights-nav,
body:has(.terra-workspace-nav--admin) .marketing-nav,
body:has(.terra-workspace-nav--admin) .whatsapp-nav,
body:has(.terra-workspace-nav--admin) .terra-insights-nav,
body:has(.terra-workspace-nav--admin) .terra-marketing-nav,
body:has(.terra-workspace-nav--admin) .terra-whatsapp-nav{
  display:none !important;
}

/*
 * Older page-level scripts used inline display:none on links named
 * Insights & Analytics / Marketing CRM / WhatsApp Consent.
 * The shared Workspace links always win.
 */
body:has(.terra-workspace-nav--admin)
.terra-workspace-nav--admin
.terra-workspace-submenu
.terra-workspace-link{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* An OPEN workspace dropdown must render as a proper menu, never an empty bar. */
body:has(.terra-workspace-nav--admin)
.terra-workspace-group[open] > .terra-workspace-submenu{
  display:grid !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}


/* ==========================================================
   terra-workspace-ux-v2-3-legacy-nav-cleanup
========================================================== */
body:has(.terra-workspace-nav--admin)
.terra-workspace-legacy-nav-hidden,
body:has(.terra-workspace-nav--admin)
[data-terra-legacy-admin-nav="hidden-v2-3"]{
  display:none !important;
}


/* ==========================================================
   terra-workspace-ux-v2-4-legacy-nav-final
========================================================== */

body:has(.terra-workspace-nav--admin)
.terra-workspace-legacy-nav-hidden-v24,
body:has(.terra-workspace-nav--admin)
[data-terra-old-admin-nav="hidden"]{
  display:none !important;
}

body:has(.terra-workspace-nav--admin)
.terra-workspace-legacy-control-hidden-v24{
  display:none !important;
}

/*
 * Keep the new shared Workspace navigation explicitly visible even if an
 * older page stylesheet contains broad Admin-nav selectors.
 */
body:has(.terra-workspace-nav--admin)
.terra-workspace-nav--admin{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
}

body:has(.terra-workspace-nav--admin)
.terra-workspace-nav--admin .terra-workspace-link,
body:has(.terra-workspace-nav--admin)
.terra-workspace-nav--admin .terra-workspace-group{
  visibility:visible !important;
  opacity:1 !important;
}


/* ==========================================================
   terra-sitewide-content-width-v2-6
   TERRA SITEWIDE CONTENT WIDTH STANDARD

   Content width only:
   - Desktop: 1120px maximum
   - Tablet: 22px side gutters
   - Mobile: 14px side gutters

   Full-width header/footer/background bars remain untouched.
========================================================== */
:root{
  --terra-site-content-max:1120px;
  --terra-site-content-gutter:24px;
}

/*
 * One authoritative content canvas for normal pages.
 * This does not target the header, top bar, footer or full-width
 * decorative backgrounds.
 */
body > main{
  width:min(
    var(--terra-site-content-max),
    calc(100% - (var(--terra-site-content-gutter) * 2))
  ) !important;
  max-width:var(--terra-site-content-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

/*
 * If a normal page uses a direct inner .container, it consumes the
 * content canvas instead of creating a second narrower width.
 */
body > main > .container,
body > main.container{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

/*
 * Current Admin + Customer top-level shells.
 * Older modules contain 1040/1100/1180 width rules. Inside the one
 * 1120px canvas these shells must be full width, not separately capped.
 */
body > main >
.admin-shell,
body > main >
.admin-dashboard-shell,
body > main >
.terra-admin-shell,
body > main >
.terra-pricing-shell,
body > main >
.terra-pricing-import-shell,
body > main >
.resolver-shell,
body > main >
.pricing-resolver-shell,
body > main >
.pilot-shell,
body > main >
.snapshot-shell,
body > main >
.admin-insights-page,
body > main >
.insights-shell,
body > main >
.terra-insights-shell,
body > main >
.marketing-shell,
body > main >
.terra-marketing-shell,
body > main >
.whatsapp-shell,
body > main >
.terra-whatsapp-shell,
body > main >
.whatsapp-integration-wrap,
body > main >
.wa-free-wrap,
body > main >
.customer-dashboard-shell,
body > main >
.customer-dashboard-wrap,
body > main >
.customer-account-shell,
body > main >
.customer-pricing-shell,
body > main >
.bulk-pricing-shell,
body > main >
.customer-profile-shell,
body > main >
.terra-customer-profile-workspace{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/*
 * Workspace hero / navigation / Quick Actions / primary content
 * use the same left and right edges.
 */
.terra-workspace-shell--admin,
.terra-workspace-shell--customer,
.terra-customer-quick-actions,
.admin-dashboard-hero,
.terra-pricing-hero,
.terra-pricing-import-hero,
.resolver-hero,
.pilot-hero,
.snapshot-hero,
.terra-admin-page-banner,
.terra-marketing-banner,
.whatsapp-integration-hero,
.wa-free-hero{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* ==========================================================
   ADMIN LOG OUT — ALL ADMIN WORKSPACE PAGES
========================================================== */

/*
 * Historic Insights code can apply inline display:none to a Log out
 * link outside its obsolete quicknav. The shared Workspace link wins.
 */
.terra-workspace-nav--admin .terra-workspace-logout{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  color:#a92b23 !important;
}

/* Tablet uses the same physical content gutters as the established site. */
@media(max-width:1024px){
  :root{
    --terra-site-content-gutter:22px;
  }

  body > main{
    width:calc(100% - 44px) !important;
    max-width:none !important;
  }
}

/*
 * Workspace nav changes to its existing mobile/tablet menu at 900px.
 * Keep Log out easy to find and full width in the opened Admin menu.
 */
@media(max-width:900px){
  .terra-workspace-shell--admin.is-menu-open
  .terra-workspace-nav--admin
  .terra-workspace-logout{
    grid-column:1 / -1 !important;
    width:100% !important;
    justify-content:flex-start !important;
  }
}

/* Mobile uses the approved 14px side gutter. */
@media(max-width:720px){
  :root{
    --terra-site-content-gutter:14px;
  }

  body > main{
    width:calc(100% - 28px) !important;
    max-width:none !important;
  }
}
