:root {
	--a11y-scale: 1;
  --ink: #172f38;
  --ink-soft: #40535a;
  --muted: #6d7b80;
  --primary: #164b5f;
  --primary-dark: #0f3949;
  --accent: #d9561c;
  --accent-soft: #fff0e8;
  --cream: #f6f2ea;
  --surface: #f6f8f8;
  --white: #ffffff;
  --line: #dfe5e6;
  --line-dark: #cbd4d6;
  --success: #2f7053;
  --danger: #b73c32;
  --shadow-sm: 0 8px 24px rgba(23, 47, 56, .07);
  --shadow-md: 0 18px 48px rgba(23, 47, 56, .12);
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;
}

* { box-sizing: border-box; }
html { font-size: calc(16px * var(--a11y-scale)); scroll-behavior: smooth; scroll-padding-top: 24px; }
body,
input,
button,
select,
textarea {
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-size: .9375rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body > #container { min-height: 100vh; position: relative; margin-bottom: 0; }
main, #content { padding-bottom: 56px; }
a { color: var(--primary); text-decoration: none; transition: color .2s ease, opacity .2s ease; }
a:hover { color: var(--accent); text-decoration: none; }
img { max-width: 100%; }
p { color: var(--ink-soft); }
h1, h2, h3, h4, h5, h6 {
  color: var(--ink);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.025em;
}
h1 { font-size: clamp(2.15rem, 3.2vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 2.4vw, 2.5rem); }
h3 { font-size: 1.3rem; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid rgba(217, 86, 28, .28); outline-offset: 2px; }
[hidden] { display: none !important; }

.container {
  width: calc(100% - 64px);
  max-width: 1320px;
  padding-left: 0;
  padding-right: 0;
}
.row > #content,
.row > .col { min-width: 0; }
.eyebrow {
  margin: 0 0 10px;
  color: var(--accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  z-index: 10000;
  padding: 12px 18px;
  color: var(--white);
  background: var(--primary);
  border-radius: var(--radius-sm);
}
.skip-link:focus { top: 16px; color: var(--white); }

/* Header */
.announcement {
  position: relative;
  z-index: 1100;
  color: rgba(255,255,255,.9);
  background: var(--ink);
  font-size: .7rem;
  letter-spacing: .015em;
}
.announcement-inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  min-height: 42px;
}
.announcement i { margin-right: 7px; color: #f3b08d; }
.announcement a { color: var(--white); }
.announcement a:hover { color: #ffd1b9; }
.utility-links { display: flex; align-items: center; min-width: 0; }
.utility-links a { flex: none; padding-right: 11px; margin-right: 11px; border-right: 1px solid rgba(255,255,255,.2); white-space: nowrap; }
.utility-links a:last-child { padding-right: 0; margin-right: 0; border-right: 0; }
.utility-actions { display: flex; align-items: center; gap: 13px; margin-left: auto; white-space: nowrap; }
.a11y-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 4px 9px;
  color: var(--white);
  background: transparent;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 6px;
  font: inherit;
  font-weight: 700;
}
.a11y-trigger:hover,
.a11y-trigger:focus-visible,
.a11y-trigger[aria-expanded="true"] { color: var(--ink); background: var(--white); border-color: var(--white); }
.a11y-trigger i { margin: 0; color: inherit; font-size: .92rem; }
.a11y-trigger-checkout { align-self: center; margin-left: 8px; color: var(--primary); border-color: var(--line-dark); font-size: .68rem; }
.a11y-trigger-checkout:hover,
.a11y-trigger-checkout:focus-visible,
.a11y-trigger-checkout[aria-expanded="true"] { color: var(--white); background: var(--primary); border-color: var(--primary); }
.utility-phone { font-weight: 650; }
.utility-checkout {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 5px 12px;
  color: var(--white) !important;
  background: var(--accent);
  border-radius: 5px;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.utility-checkout:hover { background: #bf4512; }
.utility-checkout i { color: var(--white); }
.utility-mobile { display: none; }
.site-header { position: relative; z-index: 1000; background: var(--white); border-bottom: 1px solid var(--line); }
.header-inner {
  display: grid;
  grid-template-columns: 210px minmax(320px, 1fr) 205px auto;
  align-items: center;
  gap: 28px;
  min-height: 106px;
}
.brand { display: inline-flex; align-items: center; width: fit-content; }
.brand img { display: block; width: 190px; height: auto; }
.brand strong { color: var(--ink); font-size: 1.5rem; letter-spacing: .14em; }
.green-energy { display: flex; justify-content: center; align-items: center; min-width: 0; }
.green-energy img { display: block; width: 205px; height: auto; }
.header-search { position: relative; z-index: 2; max-width: 580px; width: 100%; justify-self: center; }
.site-search {
  display: flex;
  width: 100%;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.site-search:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(22, 75, 95, .08);
}
.site-search .form-control {
  min-width: 0;
  height: 48px;
  padding: 0 20px;
  color: var(--ink);
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: .92rem;
}
.site-search .form-control:focus { box-shadow: none; }
.site-search .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 112px;
  justify-content: center;
  color: var(--white);
  background: var(--primary);
  border: 0;
  border-radius: 999px;
  font-size: .82rem;
}
.site-search .btn:hover { color: var(--white); background: var(--primary-dark); }
.search-suggestions {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 30;
  width: 100%;
  overflow: hidden;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: var(--radius);
  box-shadow: 0 24px 58px rgba(23, 47, 56, .2);
}
.search-suggestions-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 44px;
  padding: 9px 14px 8px 17px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.search-suggestions-head strong { font-size: .77rem; letter-spacing: .01em; }
.search-suggestions-head span:not(:empty) {
  display: grid;
  place-items: center;
  min-width: 27px;
  height: 27px;
  padding: 0 8px;
  color: var(--primary);
  background: #e5eff2;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
}
.search-suggestions-list {
  max-height: min(570px, calc(100vh - 230px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--line-dark) transparent;
  scrollbar-width: thin;
}
.search-suggestion {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 92px;
  padding: 9px 14px;
  color: var(--ink);
  background: var(--white);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.search-suggestion:last-child { border-bottom: 0; }
.search-suggestion:hover,
.search-suggestion:focus-visible,
.search-suggestion.is-active { color: var(--primary); background: #f2f7f8; }
.search-suggestion-image {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 9px;
}
.search-suggestion-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.search-suggestion-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.search-suggestion-details { display: flex; flex-direction: column; min-width: 0; gap: 5px; }
.search-suggestion-name {
  display: -webkit-box;
  overflow: hidden;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.32;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.search-suggestion-model {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: .65rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.search-suggestion-price { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; color: var(--ink); white-space: nowrap; }
.search-suggestion-price strong { font-size: .8rem; line-height: 1.25; }
.search-suggestion-price strong.is-special { color: var(--accent); }
.search-suggestion-price del { color: var(--muted); font-size: .63rem; line-height: 1.2; }
.search-suggestions-state {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 132px;
  padding: 24px;
  color: var(--muted);
  text-align: center;
  font-size: .77rem;
}
.search-suggestions-state i { color: var(--primary); font-size: 1.18rem; }
.search-suggestions-state.is-error i { color: var(--danger); }
.search-suggestions-all {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 52px;
  padding: 11px 17px;
  color: var(--white);
  background: var(--primary);
  font-size: .74rem;
  font-weight: 800;
}
.search-suggestions-all:hover,
.search-suggestions-all:focus-visible { color: var(--white); background: var(--primary-dark); }
.search-suggestions-all i { margin-left: 14px; font-size: .7rem; }
.header-actions { display: flex; align-items: center; gap: 22px; }
.header-action {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex: none;
  color: var(--ink);
  font-size: .71rem;
  white-space: nowrap;
}
.header-action i { font-size: 1.2rem; }
.header-action:hover { color: var(--accent); }
.header-cart { min-width: 170px; }
#cart { margin: 0; }
.cart-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 7px 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  text-align: left;
}
.cart-trigger::after { display: none; }
.cart-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--white);
  background: var(--primary);
  border-radius: 50%;
  font-size: 1rem;
}
.cart-copy { display: flex; flex-direction: column; line-height: 1.25; }
.cart-copy small { color: var(--muted); font-size: .68rem; }
.cart-copy strong { max-width: 125px; overflow: hidden; color: var(--ink); font-size: .78rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cart-dropdown {
  width: 420px;
  margin-top: 13px !important;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
}
.mini-cart-heading { padding: 18px 20px; border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 750; }
.mini-cart-products { max-height: 330px; overflow-y: auto; }
.mini-cart-item {
  display: grid;
  grid-template-columns: 72px 1fr 28px;
  gap: 12px;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
}
.mini-cart-image {
  display: grid;
  place-items: center;
  width: 72px;
  height: 68px;
  overflow: hidden;
  background: var(--surface);
  border-radius: var(--radius-sm);
}
.mini-cart-image img { width: 100%; height: 100%; object-fit: contain; }
.mini-cart-copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.mini-cart-copy > a { color: var(--ink); font-size: .83rem; font-weight: 700; line-height: 1.35; }
.mini-cart-copy small { color: var(--muted); font-size: .71rem; }
.mini-cart-copy span { margin-top: 3px; color: var(--accent); font-size: .78rem; font-weight: 750; }
.mini-cart-remove { width: 28px; height: 28px; color: var(--muted); background: transparent; border: 0; border-radius: 50%; }
.mini-cart-remove:hover { color: var(--danger); background: #fff1ef; }
.mini-cart-totals { padding: 12px 20px; background: var(--surface); }
.mini-cart-totals div { display: flex; justify-content: space-between; gap: 15px; padding: 3px 0; font-size: .83rem; }
.mini-cart-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 16px 20px 20px; }
.mini-cart-actions .btn { padding: 11px 8px; font-size: .76rem; }
.mini-cart-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 42px 20px; color: var(--muted); text-align: center; }
.mini-cart-empty i { margin-bottom: 6px; color: var(--line-dark); font-size: 2rem; }
.mini-cart-empty strong { color: var(--ink); }
.mini-cart-empty span { font-size: .82rem; }
.header-top:empty { display: none; }

/* Main navigation */
.navigation-shell {
  position: sticky;
  top: 0;
  z-index: 900;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(23,47,56,.035);
  backdrop-filter: blur(14px);
}
#menu {
  position: relative;
  min-height: 60px;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
#menu .navbar-collapse { width: 100%; }
#menu .navbar-nav {
  position: static;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  gap: clamp(2px, .55vw, 10px);
}
#menu .nav-item { position: static; }
#menu .nav-item-row { display: flex; align-items: stretch; }
#menu .nav-link {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 60px;
  padding: 0 13px;
  color: var(--ink);
  border-radius: 10px 10px 0 0;
  font-size: .82rem;
  font-weight: 750;
  white-space: nowrap;
  transition: color .18s ease, background-color .18s ease;
}
#menu .navbar-nav > li > a { color: var(--ink); }
#menu .nav-link::before {
  position: absolute;
  right: 13px;
  bottom: -1px;
  left: 13px;
  height: 2px;
  background: var(--accent);
  border-radius: 999px 999px 0 0;
  content: "";
  opacity: 0;
  transform: scaleX(.4);
  transition: opacity .18s ease, transform .18s ease;
}
#menu .menu-category > .nav-item-row > .nav-link::after {
  width: 6px;
  height: 6px;
  margin: -3px 0 0 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: rotate(45deg);
  transition: transform .18s ease;
}
#menu .nav-link:hover,
#menu .nav-link:focus,
#menu .nav-item.active > .nav-item-row > .nav-link,
#menu .nav-item.is-open > .nav-item-row > .nav-link,
#menu .navbar-nav > li > a:hover { color: var(--accent); background: transparent; }
#menu .nav-link:hover::before,
#menu .nav-link:focus-visible::before,
#menu .nav-item.active > .nav-item-row > .nav-link::before,
#menu .nav-item.is-open > .nav-item-row > .nav-link::before { opacity: 1; transform: scaleX(1); }
#menu .menu-category.is-open > .nav-item-row > .nav-link::after { transform: translateY(3px) rotate(225deg); }
.nav-category-icon { display: none; }
.mobile-submenu-toggle { display: none; }
#menu .nav-sale .nav-link { color: var(--accent); }
#menu .nav-sale .nav-link small {
  margin-left: 7px;
  padding: 3px 6px;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 999px;
  font-size: .52rem;
  font-weight: 850;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}
#menu #category { color: var(--ink); font-weight: 750; }
#menu #category small { display: block; color: var(--accent); font-size: .54rem; font-weight: 850; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
#menu #category strong { display: block; margin-top: 2px; font-size: .82rem; }
.category-menu-icon { display: grid; place-items: center; width: 34px; height: 34px; margin-right: 10px; color: var(--primary); background: #eaf1f3; border-radius: 9px; }
#menu .navbar-toggler { color: var(--white); background: var(--primary); border: 0; box-shadow: none; }

.mega-menu {
  position: absolute;
  top: calc(100% - 1px);
  left: 50%;
  z-index: 80;
  display: block;
  width: min(1240px, calc(100vw - 48px));
  max-height: min(70vh, 650px);
  overflow-x: hidden;
  overflow-y: auto;
  background: rgba(255,255,255,.99);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: 0 0 20px 20px;
  box-shadow: 0 28px 70px rgba(23,47,56,.18);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transform-origin: top center;
  visibility: hidden;
  scrollbar-color: var(--line-dark) transparent;
  scrollbar-width: thin;
  transition: opacity .16s ease, transform .18s ease, visibility 0s linear .18s;
}
#menu .menu-category:hover > .mega-menu,
#menu .menu-category.is-open > .mega-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
  transition-delay: 0s;
}
.mega-menu-shell { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 310px; }
.mega-menu-intro {
  position: relative;
  padding: 32px 28px;
  overflow: hidden;
  background: var(--cream);
  border-right: 1px solid #e7ded1;
}
.mega-menu-intro::after {
  position: absolute;
  right: -55px;
  bottom: -70px;
  width: 175px;
  height: 175px;
  background: rgba(217,86,28,.07);
  border-radius: 50%;
  content: "";
}
.mega-menu-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 26px; color: var(--white); background: var(--primary); border-radius: 14px; font-size: 1.15rem; box-shadow: 0 10px 24px rgba(22,75,95,.16); }
.mega-menu-intro .eyebrow { margin-bottom: 6px; font-size: .61rem; }
.mega-menu-intro h2 { margin: 0 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: 1.75rem; font-weight: 400; }
.mega-menu-intro > p:not(.eyebrow) { margin: 0 0 24px; color: var(--ink-soft); font-size: .78rem; line-height: 1.65; }
.mega-menu-all { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 9px; color: var(--primary); font-size: .74rem; font-weight: 800; }
.mega-menu-all i { transition: transform .18s ease; }
.mega-menu-all:hover i { transform: translateX(3px); }
.mega-menu-content { min-width: 0; padding: 26px; }
.mega-menu-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 19px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.mega-menu-heading span { display: block; margin-bottom: 3px; color: var(--accent); font-size: .6rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.mega-menu-heading strong { display: block; color: var(--ink); font-size: 1.05rem; }
.mega-menu-heading small { color: var(--muted); font-size: .67rem; white-space: nowrap; }
.mega-menu-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.mega-menu-links-wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega-menu-links-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mega-menu-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 10px 12px 10px 15px;
  color: var(--ink-soft);
  background: var(--surface);
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: .75rem;
  font-weight: 680;
  line-height: 1.35;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.mega-menu-links a i { flex: none; color: #94a2a6; font-size: .62rem; transition: color .16s ease, transform .16s ease; }
.mega-menu-links a:hover,
.mega-menu-links a:focus-visible { color: var(--primary); background: var(--white); border-color: var(--line); box-shadow: 0 7px 18px rgba(23,47,56,.07); transform: translateX(2px); }
.mega-menu-links a:hover i,
.mega-menu-links a:focus-visible i { color: var(--accent); transform: translateX(2px); }

/* Shared controls */
.btn {
  min-height: 44px;
  padding: 10px 18px;
  border-radius: var(--radius-sm);
  box-shadow: none;
  font-weight: 750;
  letter-spacing: 0;
  text-shadow: none;
  transition: transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary,
.btn-primary:focus,
.btn-primary:active {
  color: var(--white);
  background: var(--primary);
  border-color: var(--primary);
}
.btn-primary:hover { color: var(--white); background: var(--primary-dark); border-color: var(--primary-dark); }
.btn-light,
.btn-default {
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line-dark);
}
.btn-light:hover,
.btn-default:hover { color: var(--primary); background: var(--surface); border-color: var(--primary); }
.btn-link { color: var(--primary); background: transparent; border: 0; }
.btn-danger { color: var(--white); background: var(--danger); border-color: var(--danger); }
.form-control,
.form-select {
  min-height: 46px;
  color: var(--ink);
  background-color: var(--white);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-sm);
  box-shadow: none;
  font-size: .9rem;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(22, 75, 95, .08);
}
.form-label,
.form-group label { margin-bottom: 7px; color: var(--ink); font-size: .8rem; font-weight: 700; }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.input-group-text { color: var(--ink-soft); background: var(--surface); border-color: var(--line-dark); }
.alert { border: 0; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
#alert { position: fixed; top: 14px; right: 20px; z-index: 9999; width: min(480px, calc(100% - 40px)); }
#alert .alert { margin-bottom: 10px; }

.breadcrumb {
  position: relative;
  z-index: 2;
  isolation: isolate;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: none;
  min-height: 53px;
  padding: .7rem 0;
  margin: 0 0 32px;
  overflow: visible;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: .72rem;
  list-style: none;
}
.breadcrumb::before {
  position: absolute;
  inset-block: 0;
  right: 0;
  left: 0;
  z-index: -1;
  width: auto;
  background: linear-gradient(90deg, rgba(246,242,234,.82), rgba(255,255,255,.9) 48%, rgba(231,239,241,.66));
  border-bottom: 1px solid rgba(22,75,95,.1);
  box-shadow:
    -100vmax 0 0 100vmax rgba(246,242,234,.82),
    100vmax 0 0 100vmax rgba(231,239,241,.66),
    inset 0 1px 0 rgba(255,255,255,.76);
  clip-path: inset(0 -100vmax);
  content: "";
}
.breadcrumb > li.breadcrumb-item { display: flex; align-items: center; flex: 0 0 auto; padding: 0 !important; text-shadow: none; white-space: normal; }
.breadcrumb > li.breadcrumb-item + li::before {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  padding: 0;
  margin: 0 .8rem 0 .7rem;
  border-top: 1.5px solid rgba(22,75,95,.42);
  border-right: 1.5px solid rgba(22,75,95,.42);
  content: "";
  transform: rotate(45deg);
}
.breadcrumb > li.breadcrumb-item::after { display: none; content: none; }
.breadcrumb a {
  display: inline;
  min-height: 0;
  padding: 0;
  color: var(--muted);
  font-weight: 650;
  letter-spacing: .015em;
  line-height: 1.45;
}
.breadcrumb a:hover,
.breadcrumb a:focus-visible { color: var(--primary); }
.breadcrumb .breadcrumb-item:last-child a,
.breadcrumb a[aria-current="page"] {
  display: block;
  max-width: min(48ch, 48vw);
  overflow: hidden;
  color: var(--ink);
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Home */
#content.home-page { padding-bottom: 0; }
.home-page + .site-footer { margin-top: 0; }
.home-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.home-band > .container { position: relative; z-index: 1; }
.home-band::before,
.home-band::after {
  position: absolute;
  z-index: 0;
  display: block;
  pointer-events: none;
  content: "";
}
.home-band-intro {
  background:
    radial-gradient(circle at 8% 16%, rgba(222,232,227,.68), transparent 23%),
    linear-gradient(180deg, #fcfdfc 0%, #f3f7f5 100%);
}
.home-band-intro::before {
  top: 82px;
  right: -126px;
  width: 310px;
  height: 310px;
  border: 1px solid rgba(22,75,95,.09);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(22,75,95,.025);
}
.home-band-intro::after {
  bottom: 34px;
  left: 22px;
  width: 132px;
  height: 82px;
  background-image: radial-gradient(circle, rgba(217,86,28,.18) 0 1.5px, transparent 1.8px);
  background-size: 16px 16px;
}
.hero-wrap { padding-top: 28px; }
.home-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  min-height: 500px;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 35% 110%, rgba(217,86,28,.22), transparent 34%),
    linear-gradient(135deg, #0d2d39 0%, var(--primary) 56%, #103d4d 100%);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 58px rgba(23,47,56,.14);
}
.hero-decoration { position: absolute; z-index: -1; display: block; pointer-events: none; }
.hero-decoration-ring { top: -155px; left: -130px; width: 390px; height: 390px; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; }
.hero-decoration-ring::after { position: absolute; inset: 45px; border: 1px solid rgba(255,255,255,.075); border-radius: 50%; content: ""; }
.hero-decoration-dots {
  bottom: 18px;
  left: 25px;
  width: 155px;
  height: 92px;
  background-image: radial-gradient(circle, rgba(255,179,141,.31) 0 1.2px, transparent 1.5px);
  background-size: 17px 17px;
  opacity: .72;
}
.hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-width: 0; padding: 52px 46px 58px; }
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 7px 12px;
  margin: 0 0 18px;
  color: #ffd2bb;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 999px;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}
.hero-eyebrow > span { width: 7px; height: 7px; background: #ff9b67; border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,155,103,.12); }
.hero-copy h1 {
  margin: 0 0 20px;
  color: var(--white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 4.35vw, 4rem);
  font-weight: 400;
  line-height: .96;
  letter-spacing: -.055em;
}
.hero-copy h1 span,
.hero-copy h1 em { display: block; }
.hero-copy h1 em { margin-top: .08em; color: #ff9b67; font-weight: 400; }
.hero-lead { max-width: 445px; margin: 0 0 24px; color: rgba(255,255,255,.75); font-size: .96rem; line-height: 1.58; }
.hero-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hero-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 49px; padding: 11px 20px; border-radius: 9px; font-size: .75rem; font-weight: 800; }
.hero-primary-action { color: var(--white); background: var(--accent); border: 1px solid var(--accent); box-shadow: 0 10px 25px rgba(6,25,32,.2); }
.hero-primary-action:hover,
.hero-primary-action:focus-visible { color: var(--primary-dark); background: var(--white); border-color: var(--white); }
.hero-primary-action i { font-size: .68rem; transition: transform .2s ease; }
.hero-primary-action:hover i { transform: translateX(3px); }
.hero-secondary-action { color: var(--white); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.42); }
.hero-secondary-action:hover,
.hero-secondary-action:focus-visible { color: var(--primary-dark); background: var(--white); border-color: var(--white); }
.hero-photo { position: relative; min-width: 0; min-height: 468px; margin: 16px 16px 16px 0; overflow: hidden; background: #dfd1c2; border-radius: 17px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.15); }
.hero-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.hero-photo::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,29,36,.02) 38%, rgba(9,29,36,.75) 100%); content: ""; pointer-events: none; }
.hero-photo-label {
  position: absolute;
  z-index: 2;
  top: 20px;
  right: 20px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
  color: var(--ink);
  background: rgba(255,255,255,.91);
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(9,29,36,.12);
  font-size: .64rem;
  font-weight: 800;
  backdrop-filter: blur(10px);
}
.hero-photo-label > span { width: 7px; height: 7px; background: var(--accent); border-radius: 50%; }
.hero-product-links { position: absolute; z-index: 2; right: 16px; bottom: 16px; left: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hero-product-card {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) 27px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 76px;
  padding: 7px 9px 7px 7px;
  color: var(--ink);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.84);
  border-radius: 12px;
  box-shadow: 0 12px 26px rgba(9,29,36,.14);
  backdrop-filter: blur(12px);
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.hero-product-card:hover,
.hero-product-card:focus-visible { color: var(--primary); background: var(--white); box-shadow: 0 16px 32px rgba(9,29,36,.2); transform: translateY(-4px); }
.hero-product-thumb { display: grid; place-items: center; width: 50px; height: 58px; overflow: hidden; background: var(--surface); border-radius: 8px; }
.hero-product-thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.hero-product-copy { display: grid; gap: 4px; min-width: 0; }
.hero-product-copy > strong {
  display: -webkit-box;
  overflow: hidden;
  color: inherit;
  font-size: .67rem;
  line-height: 1.28;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.hero-product-price { display: flex; align-items: baseline; gap: 5px; min-width: 0; line-height: 1; }
.hero-product-price b { color: var(--primary); font-size: .78rem; font-weight: 850; white-space: nowrap; }
.hero-product-price del { color: var(--muted); font-size: .54rem; white-space: nowrap; }
.hero-product-arrow { display: grid; place-items: center; width: 27px; height: 27px; color: var(--accent); background: var(--accent-soft); border-radius: 50%; font-size: .57rem; transition: color .2s ease, background-color .2s ease; }
.hero-product-card:hover .hero-product-arrow { color: var(--white); background: var(--accent); }
.service-strip {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: -27px;
  padding: 18px 10px;
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(22,75,95,.1);
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(23,47,56,.12);
  backdrop-filter: blur(14px);
}
.service-strip > div { display: flex; justify-content: center; align-items: center; gap: 13px; padding: 4px 24px; border-right: 1px solid var(--line); }
.service-strip > div:last-child { border-right: 0; }
.service-strip i {
  display: grid;
  place-items: center;
  flex: none;
  width: 42px;
  height: 42px;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 50%;
  font-size: 1rem;
}
.service-strip span { display: flex; flex-direction: column; }
.service-strip strong { color: var(--ink); font-size: .82rem; }
.service-strip small { color: var(--muted); font-size: .72rem; }
.home-band-rooms {
  background:
    radial-gradient(circle at 88% 24%, rgba(230,214,196,.28), transparent 25%),
    #fbf7f1;
  border-top: 1px solid rgba(151,124,94,.09);
  border-bottom: 1px solid rgba(151,124,94,.09);
}
.home-band-rooms::before {
  top: 64px;
  right: -136px;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(217,86,28,.13);
  border-radius: 50%;
  box-shadow: inset 0 0 0 46px rgba(255,255,255,.12);
}
.home-band-rooms::after {
  bottom: 36px;
  left: 24px;
  width: 142px;
  height: 94px;
  background-image: radial-gradient(circle, rgba(22,75,95,.15) 0 1.4px, transparent 1.8px);
  background-size: 17px 17px;
}
.room-section { padding-top: 82px; padding-bottom: 84px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 26px; }
.section-heading h2 { margin: 0; }
.section-link { flex: none; padding-bottom: 5px; color: var(--primary); font-size: .83rem; font-weight: 750; }
.section-link span { display: inline-block; margin-left: 5px; transition: transform .2s ease; }
.section-link:hover span { transform: translateX(4px); }
.room-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.room-card { color: var(--ink); }
.room-image { aspect-ratio: 1.55; overflow: hidden; background: rgba(255,255,255,.74); border: 1px solid rgba(91,74,55,.08); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(65,48,30,.045); }
.room-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s ease; }
.room-card:hover img { transform: scale(1.045); }
.room-card > span { display: flex; justify-content: space-between; align-items: center; padding: 14px 2px 0; font-size: .94rem; font-weight: 750; }
.room-card > span i { color: var(--muted); font-size: .72rem; transition: transform .2s ease; }
.room-card:hover > span i { transform: translateX(4px); color: var(--accent); }
.home-band-products { padding: 78px 0 86px; }
.home-band-products::before { border-radius: 50%; }
.home-band-products::after {
  width: 132px;
  height: 84px;
  background-image: radial-gradient(circle, rgba(22,75,95,.13) 0 1.4px, transparent 1.8px);
  background-size: 16px 16px;
}
.home-band-featured { background: #fff; }
.home-band-featured::before {
  top: -152px;
  left: -118px;
  width: 300px;
  height: 300px;
  border: 1px solid rgba(22,75,95,.08);
  box-shadow: 0 0 0 36px rgba(22,75,95,.018);
}
.home-band-featured::after { right: 26px; bottom: 28px; }
.home-band-specials {
  background:
    radial-gradient(circle at 5% 90%, rgba(157,184,172,.18), transparent 25%),
    #f1f6f3;
  border-top: 1px solid rgba(22,75,95,.07);
  border-bottom: 1px solid rgba(22,75,95,.07);
}
.home-band-specials::before {
  top: 48px;
  right: -118px;
  width: 286px;
  height: 286px;
  border: 1px solid rgba(47,112,83,.12);
  box-shadow: inset 0 0 0 38px rgba(255,255,255,.18);
}
.home-band-specials::after { bottom: 32px; left: 24px; }
.home-band-latest {
  background:
    radial-gradient(circle at 94% 12%, rgba(231,208,193,.22), transparent 24%),
    #fbf8f4;
}
.home-band-latest::before {
  right: -132px;
  bottom: -166px;
  width: 338px;
  height: 338px;
  border: 1px solid rgba(217,86,28,.11);
  box-shadow: 0 0 0 44px rgba(217,86,28,.018);
}
.home-band-latest::after { top: 32px; left: 24px; }
.home-products { padding-top: 0; }
.home-products > div[id^="carousel-banner"],
.home-products > script { display: none; }
.product-section { margin: 72px 0 82px; }
.product-section + .product-section { padding-top: 72px; border-top: 1px solid var(--line); }
.home-band-products .product-section { margin: 0; }
.home-band-products .product-section + .product-section { padding-top: 0; border-top: 0; }

/* Product cards */
.product-grid { --bs-gutter-x: 22px; --bs-gutter-y: 22px; }
.product-grid > .col { display: flex; margin-bottom: 0; }
.product-thumb {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.product-thumb:hover { border-color: #c7d2d4; box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.product-media { position: relative; overflow: hidden; background: var(--surface); }
.product-image {
  display: grid;
  place-items: center;
  height: 255px;
  padding: 16px;
}
.product-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .3s ease; }
.product-thumb:hover .product-image img { transform: scale(1.035); }
.product-badge {
  position: absolute;
  z-index: 2;
  top: 13px;
  left: 13px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.product-badge-sale { color: var(--white); background: var(--accent); }
.product-badge-stock { top: auto; bottom: 12px; color: var(--success); background: rgba(255,255,255,.92); box-shadow: 0 2px 8px rgba(23,47,56,.08); }
.product-badge-sale + .product-badge-stock { top: auto; }
.product-quick-actions {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.product-quick-actions button {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: var(--ink);
  background: rgba(255,255,255,.94);
  border: 1px solid var(--line);
  border-radius: 50%;
  box-shadow: 0 3px 12px rgba(23,47,56,.08);
}
.product-quick-actions button:hover { color: var(--accent); border-color: var(--accent); }
.product-card-body { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: 18px; }
.product-card-body h3 { min-height: 45px; margin: 0 0 11px; font-size: .95rem; line-height: 1.42; letter-spacing: -.01em; overflow-wrap: anywhere; }
.product-card-body h3 a { color: var(--ink); overflow-wrap: anywhere; }
.product-card-body h3 a:hover { color: var(--accent); }
.product-card-body .price { display: flex; align-items: baseline; gap: 9px; min-height: 31px; margin: auto 0 14px; color: var(--ink); }
.product-card-body .price-new { color: var(--ink); font-size: 1.15rem; font-weight: 800; }
.product-card-body .price-old { color: var(--muted); font-size: .82rem; font-weight: 500; text-decoration: line-through; }
.product-card-body .price-tax { display: none; }
.product-card-form { margin-top: auto; }
.product-cart-button {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 44px;
  color: var(--primary);
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: var(--radius-sm);
  font-size: .8rem;
  font-weight: 800;
  transition: color .2s ease, background .2s ease;
}
.product-cart-button:hover { color: var(--white); background: var(--primary); }

/* Catalogue */
.catalogue-page { padding-bottom: 76px; }
.catalogue-heading { min-width: 0; margin: 10px 0 30px; }
.catalogue-heading h1 { margin: 0; overflow-wrap: anywhere; hyphens: auto; }
.subcategory-panel { margin-bottom: 32px; padding: 26px 28px 28px; background: var(--cream); border-radius: var(--radius); }
.subcategory-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 17px; }
.subcategory-heading h2 { margin: 0; font-size: 1.12rem; }
.subcategory-heading span { color: var(--muted); font-size: .73rem; }
.subcategory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 20px; }
.subcategory-grid a { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-width: 0; min-height: 42px; padding: 8px 10px; color: var(--ink); background: rgba(255,255,255,.55); border-radius: 7px; font-size: .8rem; font-weight: 650; overflow-wrap: anywhere; }
.subcategory-grid a:hover { color: var(--primary); background: var(--white); }
.subcategory-grid i { color: #a3abad; font-size: .65rem; }
.catalogue-toolbar {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(210px, 1.2fr) auto;
  gap: 14px;
  align-items: end;
  margin-bottom: 26px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.catalogue-filter label { display: block; margin: 0 0 6px; color: var(--ink-soft); font-size: .7rem; font-weight: 750; }
.catalogue-filter .form-select { min-height: 43px; font-size: .8rem; }
.compare-link { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 43px; padding: 9px 13px; color: var(--ink-soft); background: var(--white); border: 1px solid var(--line-dark); border-radius: var(--radius-sm); font-size: .73rem; font-weight: 700; white-space: nowrap; }
.compare-link:hover { color: var(--primary); border-color: var(--primary); }
.catalogue-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
#product-list.catalogue-product-grid > .col { width: auto; padding: 0; }
.category-infinite-scroll { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 58px; margin-top: 22px; color: var(--muted); text-align: center; }
.category-infinite-scroll p { margin: 0; font-size: .78rem; }
.category-infinite-spinner { width: 20px; height: 20px; border: 2px solid var(--line-dark); border-top-color: var(--primary); border-radius: 50%; animation: category-infinite-spin .7s linear infinite; }
.category-load-more { min-height: 40px; padding: 8px 16px; }
@keyframes category-infinite-spin { to { transform: rotate(360deg); } }
.catalogue-pagination { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 32px; }
.catalogue-pagination p { margin: 0; color: var(--muted); font-size: .78rem; }
.pagination { flex-wrap: wrap; gap: 5px; margin: 0; }
.pagination .page-link,
.pagination > li > a,
.pagination > li > span {
  display: grid;
  place-items: center;
  min-width: 38px;
  min-height: 38px;
  padding: 5px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 7px !important;
}
.pagination .active .page-link,
.pagination > .active > span { color: var(--white); background: var(--primary); border-color: var(--primary); }
.category-description { min-width: 0; max-width: 100%; margin-top: 46px; padding: 0 22px; border: 1px solid var(--line); border-radius: var(--radius); }
.category-description summary { min-width: 0; padding: 18px 0; color: var(--ink); cursor: pointer; font-weight: 750; overflow-wrap: anywhere; hyphens: auto; }
.category-description-content { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 26px; min-width: 0; padding: 0 0 24px; color: var(--ink-soft); overflow-wrap: anywhere; }
.category-description-content > * { min-width: 0; max-width: 100%; }
.category-description-content :where(img, video, iframe, table) { max-width: 100% !important; }
.category-description-content table { width: 100% !important; table-layout: fixed; }
.category-description-content :where(th, td) { overflow-wrap: anywhere; word-break: break-word; }
.category-description-content img { width: 180px; max-height: 150px; object-fit: contain; background: var(--surface); border-radius: var(--radius-sm); }
.category-description-content p:last-child { margin-bottom: 0; }
.empty-state { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 70px 20px; color: var(--muted); text-align: center; background: var(--surface); border-radius: var(--radius); }
.empty-state > i { color: var(--line-dark); font-size: 2.6rem; }
.empty-state h1,
.empty-state h2 { margin: 0; }

/* Search, sales and manufacturer listing */
#product-search,
#product-special,
#product-manufacturer { padding-bottom: 72px; }
#product-search #content > h1,
#product-special #content > h1,
#product-manufacturer #content > h1 { margin: 8px 0 28px; }
#product-search #display-control,
#product-special #display-control,
#product-manufacturer #display-control {
  align-items: center;
  margin: 0 0 26px;
  padding: 16px 6px 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
#product-list { --bs-gutter-x: 22px; --bs-gutter-y: 22px; }
#product-list > .col { display: flex; width: 25%; margin-bottom: 0 !important; }
.manufacturer-filter { max-width: 300px; margin: 0 0 24px; }
.manufacturer-filter label { margin-bottom: 6px; color: var(--ink-soft); font-size: .74rem; font-weight: 700; }
.brand-description { max-width: 850px; margin: -10px 0 28px; color: var(--ink-soft); }

/* Product page */
#product-info { padding-bottom: 78px; }
.product-main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(390px, .8fr); gap: clamp(32px, 4vw, 56px); align-items: start; margin-bottom: 84px; }
.product-gallery { min-width: 0; }
.product-gallery-inner { display: grid; gap: 14px; }
.product-main-image {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 620px;
  padding: 32px;
  overflow: hidden;
  background: linear-gradient(145deg, #fbfcfc 0%, var(--surface) 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  cursor: zoom-in;
}
.product-main-image img { position: relative; z-index: 1; width: 100%; max-height: 570px; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s ease; }
.product-main-image:hover img { transform: scale(1.018); }
.product-image-zoom {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 12px;
  color: var(--white);
  background: rgba(15,57,73,.9);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(23,47,56,.14);
  font-size: .7rem;
  font-weight: 750;
  backdrop-filter: blur(5px);
}
.product-thumbnails { display: flex; flex-wrap: wrap; gap: 10px; }
.product-thumbnails a { display: grid; place-items: center; width: 88px; height: 80px; padding: 7px; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-sm); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.product-thumbnails a:hover { border-color: var(--primary); box-shadow: 0 6px 16px rgba(23,47,56,.08); transform: translateY(-2px); }
.product-thumbnails img { width: 100%; height: 100%; object-fit: contain; }
.product-gallery-guide { display: flex; align-items: center; gap: 7px; margin: 11px 2px 0; color: var(--muted); font-size: .7rem; }
.product-gallery-guide i { color: var(--accent); }
.product-purchase { min-width: 0; }
.purchase-card {
  position: sticky;
  top: 22px;
  padding: clamp(25px, 2.5vw, 34px);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.purchase-card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.purchase-card-top .eyebrow { margin: 0; }
.stock-status { display: inline-flex; flex: none; align-items: center; gap: 6px; min-height: 29px; padding: 5px 9px; color: var(--success); background: #edf7f1; border: 1px solid #d7eadf; border-radius: 999px; font-size: .66rem; font-weight: 800; line-height: 1.2; }
.stock-status-order { color: #8a541d; background: #fff6e9; border-color: #f0ddbd; }
.purchase-card h1 { margin: 0 0 15px; font-size: clamp(2rem, 2.8vw, 2.65rem); overflow-wrap: anywhere; }
.product-meta { display: flex; flex-wrap: wrap; gap: 5px 16px; margin: 0 0 22px; color: var(--muted); font-size: .75rem; }
.product-meta li { position: relative; margin: 0; }
.product-meta li + li::before { position: absolute; top: .55em; left: -9px; width: 3px; height: 3px; background: var(--line-dark); border-radius: 50%; content: ""; }
.product-meta a { font-weight: 700; }
.product-price-label { margin: 0 0 1px; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.product-price { margin: 0 0 20px; }
.product-price li { margin: 0; }
.product-price h2 { margin: 0; }
.product-price .price-new { color: var(--ink); font-size: 2.25rem; font-weight: 850; letter-spacing: -.045em; }
.product-price .price-old { display: inline-block; margin-right: 8px; color: var(--muted); font-size: 1rem; text-decoration: line-through; }
.product-price li:not(:has(h2)):not(:first-child) { color: var(--muted); font-size: .7rem; }
.product-options-heading { padding-top: 20px; margin: 0 0 15px; border-top: 1px solid var(--line); }
.product-options-heading h2 { margin: 0 0 4px; font-size: 1rem; }
.product-options-heading p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.product-secondary-actions { padding-top: 14px; margin-top: 14px; border-top: 1px solid var(--line); }
.product-secondary-actions .btn-group { display: flex; gap: 8px; width: 100%; }
.product-secondary-actions .btn { display: inline-flex; flex: 1; justify-content: center; align-items: center; gap: 7px; min-height: 42px; padding: 8px 11px; font-size: .73rem; }
#product > form > hr { margin: 20px 0; border-color: var(--line); }
#product h3 { margin: 0 0 14px; font-size: 1rem; }
#product .form-label { margin-bottom: 6px; color: var(--ink); font-size: .75rem; font-weight: 750; }
#product .form-control,
#product .form-select { min-height: 48px; border-color: var(--line-dark); }
#product .form-check { margin-bottom: 8px; padding: 10px 12px 10px 34px; background: var(--surface); border-radius: var(--radius-sm); }
#product .form-check-label { width: 100%; font-size: .82rem; }
#product .form-check-label img { width: 42px; height: 42px; margin-right: 8px; object-fit: contain; }
.product-buy-block { margin-top: 22px; }
.product-buy-block > label { display: block; margin-bottom: 7px; color: var(--ink); font-size: .76rem; font-weight: 750; }
.product-buy-row { display: grid; grid-template-columns: 124px 1fr; gap: 10px; }
.quantity-control { display: grid; grid-template-columns: 38px 1fr 38px; overflow: hidden; border: 1px solid var(--line-dark); border-radius: var(--radius-sm); }
.quantity-button { min-width: 38px; color: var(--ink); background: var(--surface); border: 0; font-size: 1.2rem; }
.quantity-button:hover { color: var(--accent); }
.quantity-control .form-control { width: 100%; min-height: 50px; padding: 4px; border: 0; border-right: 1px solid var(--line); border-left: 1px solid var(--line); border-radius: 0; text-align: center; appearance: textfield; }
.quantity-control .form-control::-webkit-inner-spin-button { appearance: none; }
#button-cart { display: flex; justify-content: center; align-items: center; gap: 9px; min-height: 52px; font-size: .88rem; font-weight: 800; }
.product-sticky-bar {
  position: fixed;
  z-index: 1040;
  right: 0;
  bottom: 0;
  left: 0;
  color: var(--ink);
  background: rgba(255,255,255,.97);
  border-top: 1px solid rgba(23,47,56,.13);
  box-shadow: 0 -14px 38px rgba(23,47,56,.14);
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, calc(100% + 16px), 0);
  pointer-events: none;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  transition: opacity .22s ease, visibility .22s ease, transform .28s cubic-bezier(.2,.75,.25,1);
}
.product-sticky-bar.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}
.product-sticky-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(360px, 410px);
  align-items: center;
  gap: clamp(18px, 2.2vw, 34px);
  min-height: 88px;
  padding-top: 12px;
  padding-bottom: max(12px, env(safe-area-inset-bottom));
}
.product-sticky-summary { display: flex; min-width: 0; flex-direction: column; }
.product-sticky-kicker {
  margin-bottom: 2px;
  color: var(--accent);
  font-size: .61rem;
  font-weight: 850;
  letter-spacing: .11em;
  line-height: 1.35;
  text-transform: uppercase;
}
.product-sticky-summary strong {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ink);
  font-size: .94rem;
  font-weight: 780;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.product-sticky-price { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.product-sticky-price del { color: var(--muted); font-size: .72rem; }
.product-sticky-price strong { color: var(--ink); font-size: 1.32rem; font-weight: 850; letter-spacing: -.035em; }
.product-sticky-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; width: 100%; }
.product-sticky-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 9px 14px;
  font-size: .75rem;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}
.product-sticky-actions .btn i { flex: none; font-size: .76rem; }
.page-product-product .footer-bottom-shell { padding-bottom: 88px; }
.cookie-modal-open .product-sticky-bar { opacity: 0; visibility: hidden; transform: translate3d(0, calc(100% + 16px), 0); pointer-events: none; }
.artea-leasing-banner {
  display: block;
  margin-top: 16px;
  overflow: hidden;
  color: var(--white);
  background: #dceff7;
  border: 1px solid #c5dce6;
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 24px rgba(23,47,56,.08);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.artea-leasing-banner:hover {
  color: var(--white);
  border-color: #91b7c7;
  box-shadow: 0 12px 30px rgba(23,47,56,.13);
  transform: translateY(-2px);
}
.artea-leasing-banner > img { display: block; width: 100%; height: auto; aspect-ratio: 720 / 265; object-fit: cover; }
.artea-leasing-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 9px 13px; color: var(--white); background: #071a46; }
.artea-leasing-action > span { display: flex; min-width: 0; flex-direction: column; }
.artea-leasing-action strong { color: inherit; font-size: .74rem; line-height: 1.35; }
.artea-leasing-action small { color: rgba(255,255,255,.74); font-size: .63rem; line-height: 1.4; }
.artea-leasing-action > i { flex: none; font-size: .68rem; transition: transform .2s ease; }
.artea-leasing-banner:hover .artea-leasing-action > i { transform: translate(2px, -2px); }
.purchase-benefits { display: grid; gap: 14px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.purchase-benefits > div,
.purchase-benefits > a { display: flex; gap: 12px; align-items: center; color: var(--ink); }
.purchase-benefits > a:hover strong { color: var(--accent); }
.purchase-benefits > div > i,
.purchase-benefits > a > i:first-child { display: grid; place-items: center; flex: none; width: 34px; height: 34px; color: var(--accent); background: var(--accent-soft); border-radius: 50%; font-size: .8rem; }
.purchase-benefits span { display: flex; flex-direction: column; }
.purchase-benefits strong { color: var(--ink); font-size: .76rem; }
.purchase-benefits small { color: var(--muted); font-size: .69rem; line-height: 1.45; }
.purchase-benefits .purchase-benefit-arrow { width: auto; height: auto; margin-left: auto; color: var(--muted); background: transparent; font-size: .67rem; }
.product-details { margin: 0 0 78px; }
.product-details .section-heading { margin-bottom: 18px; }
.product-tabs { gap: 8px; padding: 0; border: 0; }
.product-tabs .nav-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 10px 17px; color: var(--ink-soft); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: .77rem; font-weight: 750; }
.product-tabs .nav-link:hover { color: var(--primary); border-color: var(--line-dark); }
.product-tabs .nav-link.active { color: var(--white); background: var(--primary); border-color: var(--primary); }
.product-tab-panels { padding: clamp(24px, 3.5vw, 46px); margin-top: 14px; color: var(--ink-soft); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 10px 32px rgba(23,47,56,.045); }
.product-tab-panels > .tab-pane:focus { outline: 0; }
#tab-description { font-size: .92rem; line-height: 1.8; }
.product-description-copy,
.ai-review { min-width: 0; overflow-wrap: anywhere; }
.product-description-header { display: flex; gap: 15px; align-items: center; max-width: 1120px; padding-bottom: 22px; margin-bottom: 25px; border-bottom: 1px solid var(--line); }
.product-description-header-icon { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; color: var(--accent); background: var(--accent-soft); border: 1px solid rgba(217,86,28,.14); border-radius: 13px; font-size: 1.05rem; }
.product-description-header > div { min-width: 0; }
.product-description-header .eyebrow { margin-bottom: 4px; }
.product-description-header h3 { margin: 0; color: var(--ink); font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.3; overflow-wrap: anywhere; }
.product-description-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; max-width: 1120px; }
.product-description-copy div:has(> .product-description-entry) { display: contents; }
.product-description-copy > .product-description-entry:only-child,
.product-description-copy > .product-description-entry:last-child:nth-child(odd),
.product-description-copy div:has(> .product-description-entry) > .product-description-entry:only-child,
.product-description-copy div:has(> .product-description-entry) > .product-description-entry:last-child:nth-child(odd) { grid-column: 1 / -1; }
.product-description-copy :where(p, div, span, font, ul, ol, li, strong, b, em, i, small) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; }
.product-description-copy :where(p, div, span, font, ul, ol, li, small) { color: inherit !important; }
.product-description-copy > :first-child { margin-top: 0 !important; }
.product-description-copy > :last-child { margin-bottom: 0 !important; }
.product-description-entry { position: relative; display: flex; align-items: center; min-width: 0; min-height: 62px; padding: 14px 16px 14px 49px !important; margin: 0 !important; color: var(--ink-soft) !important; background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: 11px; font-size: .83rem !important; line-height: 1.65 !important; text-align: left !important; }
.product-description-entry-content { display: block; min-width: 0; width: 100%; }
.product-description-entry::before { position: absolute; top: 50%; left: 16px; display: grid; place-items: center; width: 22px; height: 22px; color: var(--success); background: #e6f2eb; border-radius: 50%; content: "✓"; font-size: .67rem; font-weight: 850; line-height: 1; transform: translateY(-50%); }
.product-description-entry.is-dimensions::before { color: var(--primary); background: #e5f0f3; content: "↔"; font-size: .76rem; }
.product-description-entry.is-note::before { color: var(--accent); background: var(--accent-soft); content: "i"; font-family: Georgia, serif; font-size: .72rem; font-weight: 800; }
.product-description-entry.is-link { grid-column: 1 / -1; min-height: 0; background: #edf4f6 !important; border-color: #d8e5e9 !important; }
.product-description-entry.is-link::before { color: var(--primary); background: var(--white); content: "↗"; }
.product-description-entry.is-link a { color: var(--primary) !important; font-weight: 750; text-decoration: underline; text-decoration-color: rgba(27,83,101,.28); text-underline-offset: 3px; overflow-wrap: anywhere; }
.product-description-entry.is-lead { grid-column: 1 / -1; min-height: 0; padding: 18px 20px !important; color: var(--ink) !important; background: linear-gradient(110deg, var(--cream), #fbfaf7) !important; border: 0 !important; border-left: 3px solid var(--accent) !important; border-radius: 0 11px 11px 0; font-size: .98rem !important; font-weight: 610; line-height: 1.72 !important; }
.product-description-entry.is-lead::before,
.product-description-entry.is-heading::before { display: none; }
.product-description-entry.is-heading { grid-column: 1 / -1; min-height: 0; padding: 15px 0 2px !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-radius: 0; font-size: .8rem !important; font-weight: 850; letter-spacing: .055em; line-height: 1.4 !important; text-transform: uppercase; }
.product-description-copy > :where(h1, h2, h3, h4, h5, h6, ul, ol, table, blockquote, figure, img, div:not(.product-description-entry)) { grid-column: 1 / -1; }
.product-description-copy h1,
.product-description-copy h2,
.product-description-copy h3,
.product-description-copy h4 { margin: 28px 0 11px; font-family: inherit !important; font-size: 1.25rem !important; line-height: 1.3 !important; }
.product-description-copy > ul,
.product-description-copy > ol { display: grid; gap: 9px; padding: 18px 20px 18px 43px; margin: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }
.product-description-copy > :where(ul, ol) li { padding-left: 4px; color: var(--ink-soft) !important; }
.product-description-copy table { width: 100% !important; overflow: hidden; margin: 0; border-collapse: separate; border: 1px solid var(--line); border-spacing: 0; border-radius: 11px; }
.product-description-copy :where(th, td) { padding: 11px 13px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-description-copy tr:last-child :where(th, td) { border-bottom: 0; }
.product-description-copy :where(th, td):last-child { border-right: 0; }
.product-description-copy th { color: var(--ink); background: var(--surface); font-weight: 800; }
.product-description-copy blockquote { padding: 18px 20px; margin: 0; background: var(--cream); border-left: 3px solid var(--accent); border-radius: 0 11px 11px 0; }
.product-description-copy img { max-width: 100% !important; height: auto !important; border-radius: 11px; }
.product-category-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; max-width: 1120px; padding-top: 22px; margin-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }
.product-category-links strong { margin-right: 3px; color: var(--ink); }
.product-category-links a { padding: 7px 11px; color: var(--primary); background: #edf4f6; border: 1px solid #d8e5e9; border-radius: 999px; font-weight: 750; line-height: 1.2; }
.product-category-links a:hover { color: var(--white); background: var(--primary); border-color: var(--primary); }
.product-tags { padding-top: 18px; margin: 24px 0 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .74rem; }
.product-tags a { font-weight: 700; }
.ai-review-header { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 15px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.ai-review-icon { display: grid; place-items: center; width: 48px; height: 48px; color: var(--accent); background: var(--accent-soft); border: 1px solid rgba(217,86,28,.14); border-radius: 13px; font-size: 1.05rem; }
.ai-review-header .eyebrow { margin-bottom: 5px; }
.ai-review-header h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.ai-review-basis { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 5px 10px; color: var(--primary); background: #edf4f6; border: 1px solid #d8e5e9; border-radius: 999px; font-size: .65rem; font-weight: 800; white-space: nowrap; }
.ai-review-lead { max-width: 960px; margin: 24px 0 28px; color: var(--ink); font-size: 1.02rem; font-weight: 620; line-height: 1.72; }
.ai-review-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr); gap: clamp(24px, 4vw, 44px); align-items: stretch; }
.ai-review-highlights { padding: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.ai-review-highlights h4 { margin: 0 0 14px; font-size: .92rem; }
.ai-review-highlights ul { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; }
.ai-review-highlights li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; min-width: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.55; }
.ai-review-highlights li span { min-width: 0; overflow-wrap: anywhere; }
.ai-review-highlights li i { display: grid; place-items: center; width: 21px; height: 21px; margin-top: 1px; color: var(--success); background: #e6f2eb; border-radius: 50%; font-size: .55rem; }
.ai-review-verdict { min-width: 0; padding: clamp(21px, 2.5vw, 29px); margin: 0; background: var(--cream); border-left: 3px solid var(--accent); border-radius: 0 12px 12px 0; }
.ai-review-verdict .ai-review-label { display: flex; align-items: center; gap: 7px; margin: 0 0 14px; color: var(--accent); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.ai-review-opinion { display: grid; gap: 14px; }
.ai-review-opinion p { margin: 0; color: var(--ink); font-size: .84rem; line-height: 1.72; }
.ai-review-opinion p:first-child { font-size: .89rem; font-weight: 650; }
.ai-review-disclosure { display: flex; gap: 10px; align-items: flex-start; padding-top: 20px; margin: 28px 0 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .69rem; line-height: 1.55; }
.ai-review-disclosure > i { flex: none; margin-top: 3px; color: var(--primary); }
.ai-review-disclosure strong { color: var(--ink-soft); }
#tab-specification .table-responsive { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); }
#tab-specification .table { margin: 0; border: 0; }
#tab-specification th { padding: 12px 14px; color: var(--white); background: var(--primary); border-color: var(--primary); font-size: .78rem; }
#tab-specification td { padding: 11px 14px; border-color: var(--line); font-size: .78rem; }
#tab-specification tbody tr:last-child td { border-bottom: 0; }
.related-products { padding-top: 66px; border-top: 1px solid var(--line); }

/* Cart */
#checkout-cart { padding-bottom: 78px; }
.cart-heading { margin: 4px 0 30px; }
.cart-heading h1 { margin: 0 0 9px; }
.cart-heading h1 small { color: var(--muted); font-size: .85rem; }
.cart-heading p:last-child { margin: 0; }
.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
.cart-products { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.cart-product {
  position: relative;
  display: grid;
  grid-template-columns: 112px minmax(150px, 1fr) 84px 138px 86px 36px;
  gap: 18px;
  align-items: center;
  min-height: 150px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
}
.cart-product:last-child { border-bottom: 0; }
.cart-product-image { display: grid; place-items: center; width: 112px; height: 112px; padding: 8px; background: var(--surface); border-radius: var(--radius-sm); }
.cart-product-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.cart-product-info h2 { margin: 0 0 7px; font-size: .96rem; line-height: 1.4; }
.cart-product-info h2 a { color: var(--ink); }
.cart-product-info p { margin: 2px 0; color: var(--muted); font-size: .7rem; }
.cart-product-price,
.cart-product-total { display: flex; flex-direction: column; align-items: flex-end; }
.cart-product-price small,
.cart-product-total small { margin-bottom: 3px; color: var(--muted); font-size: .66rem; }
.cart-product-price span,
.cart-product-total strong { color: var(--ink); font-size: .88rem; }
.cart-quantity-form label { display: block; margin-bottom: 5px; color: var(--muted); font-size: .66rem; }
.cart-quantity-form .form-control { min-width: 56px; min-height: 42px; text-align: center; }
.cart-quantity-form .btn { min-width: 42px; min-height: 42px; padding: 8px; }
.cart-remove { display: grid; place-items: center; width: 36px; min-height: 36px; padding: 0; color: var(--muted); background: transparent; border: 0; }
.cart-remove:hover { color: var(--danger); background: #fff0ee; transform: none; }
.cart-summary { position: sticky; top: 22px; padding: 26px; background: var(--cream); border-radius: var(--radius); }
.cart-summary h2 { margin: 0 0 19px; font-size: 1.28rem; }
.cart-totals { padding: 10px 0; border-top: 1px solid #ded5c8; border-bottom: 1px solid #ded5c8; }
.cart-totals > div { display: flex; justify-content: space-between; gap: 20px; padding: 8px 0; font-size: .85rem; }
.cart-totals > div:last-child { color: var(--ink); font-size: 1.02rem; }
.cart-summary-note { display: flex; gap: 10px; margin: 18px 0; font-size: .75rem; line-height: 1.6; }
.cart-summary-note i { margin-top: 4px; color: var(--accent); }
.cart-checkout { display: flex; justify-content: center; align-items: center; width: 100%; min-height: 50px; }
.continue-shopping { display: block; margin-top: 14px; color: var(--ink-soft); font-size: .76rem; font-weight: 700; text-align: center; }
.cart-modules { margin-top: 28px; }
.cart-empty { margin-top: 20px; }
.page-checkout-cart .footer-intro,
.page-checkout-cart .footer-highlights { display: none; }
.page-checkout-cart .footer-grid { padding-top: 48px; }

/* Invoice checkout */
.checkout-assurance { display: flex; justify-content: flex-end; align-items: center; gap: 30px; grid-column: 2 / -1; color: var(--ink-soft); font-size: .8rem; }
.checkout-assurance span { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.checkout-assurance i { color: var(--success); }
.is-checkout .header-inner { grid-template-columns: 220px 1fr; min-height: 82px; }
.is-checkout .header-top { display: none; }
.invoice-page { max-width: 1220px; padding-top: 32px; padding-bottom: 86px; }
.back-link { display: inline-flex; gap: 7px; margin-bottom: 32px; color: var(--muted); font-size: .78rem; font-weight: 650; }
.checkout-heading { max-width: 720px; margin-bottom: 32px; }
.checkout-heading h1 { margin: 0 0 10px; }
.checkout-heading > p:last-child { margin: 0; font-size: 1rem; }
.invoice-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .8fr); gap: 28px; align-items: start; }
.invoice-panel { padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.checkout-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 30px; border-bottom: 1px solid var(--line); }
.checkout-steps span { display: flex; align-items: center; gap: 9px; padding: 0 0 16px; color: #98a2a5; font-size: .75rem; font-weight: 700; }
.checkout-steps span b { display: grid; place-items: center; width: 27px; height: 27px; background: var(--surface); border-radius: 50%; font-size: .7rem; }
.checkout-steps .active { color: var(--primary); border-bottom: 2px solid var(--primary); }
.checkout-steps .active b { color: var(--white); background: var(--primary); }
.form-intro { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 18px; }
.form-intro h2 { margin: 0; font-size: 1.2rem; }
.form-intro p { margin: 0; color: var(--muted); font-size: .7rem; }
.form-intro p span,
.form-group label > span { color: var(--accent); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 20px; }
.form-group { margin-bottom: 0; }
.form-group .form-control { width: 100%; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin: 22px 0; color: var(--ink-soft); font-size: .76rem; font-weight: 500; }
.consent input { flex: none; width: 17px; height: 17px; margin-top: 3px; accent-color: var(--primary); }
.invoice-next { min-width: 200px; min-height: 50px; }
.invoice-summary { position: sticky; top: 20px; padding: 27px; background: var(--cream); border-radius: var(--radius); }
.invoice-summary h2 { margin: 0 0 18px; font-size: 1.3rem; }
.summary-products { border-top: 1px solid #ded5c8; }
.summary-item { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px 0; border-bottom: 1px solid #ded5c8; }
.summary-image { display: grid; place-items: center; width: 68px; height: 64px; padding: 5px; background: var(--white); border-radius: 7px; }
.summary-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.summary-name { display: block; color: var(--ink); font-size: .78rem; font-weight: 750; line-height: 1.35; }
.summary-item small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.summary-item > strong { font-size: .8rem; white-space: nowrap; }
.summary-total { display: flex; justify-content: space-between; gap: 20px; padding: 20px 0; color: var(--ink); font-size: 1rem; }
.invoice-summary > p { display: flex; gap: 9px; margin: 0; font-size: .72rem; }
.invoice-summary > p i { margin-top: 4px; color: var(--success); }
#invoice-errors .alert { margin-bottom: 10px; }
.shipping-step .form-intro { display: block; }
.shipping-step .form-intro p { margin-top: 6px; }
.shipping-options { display: grid; gap: 10px; margin-bottom: 22px; }
.shipping-option { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 15px; cursor: pointer; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.shipping-option:has(input:checked) { background: #f0f7f4; border-color: var(--success); }
.shipping-option input { width: 17px; height: 17px; accent-color: var(--success); }
.shipping-option span { display: flex; flex-direction: column; }
.shipping-option strong { color: var(--ink); font-size: .82rem; }
.shipping-option small { color: var(--muted); font-size: .68rem; }
.shipping-option b { color: var(--ink); font-size: .8rem; }
.shipping-comment { margin-bottom: 20px; }
.shipping-comment label small { color: var(--muted); font-weight: 500; }
.invoice-submit { min-height: 50px; }
#invoice-back { margin-top: 12px; padding-left: 0; font-size: .76rem; }
.is-checkout .site-footer { margin-top: 0; }
.is-checkout .footer-content,
.is-checkout .footer-decoration { display: none; }
.is-checkout .footer-bottom-shell { background: var(--ink); border: 0; }
.is-checkout .footer-bottom { min-height: 62px; }

/* Contact and information pages */
.contact-page,
.information-page { padding-bottom: 82px; }
.contact-heading,
.information-heading { max-width: 760px; margin: 8px 0 34px; }
.contact-heading h1,
.information-heading h1 { margin: 5px 0 10px; }
.contact-heading > p { max-width: 650px; margin: 0; color: var(--muted); font-size: 1rem; }
.contact-layout { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); gap: 28px; align-items: start; }
.contact-details,
.contact-form-panel { padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.contact-details { background: var(--cream); border-color: transparent; }
.contact-details-header { display: flex; gap: 14px; align-items: center; margin-bottom: 24px; }
.contact-details-header .eyebrow { margin: 0 0 3px; }
.contact-details-header h2 { margin: 0; font-size: 1.2rem; }
.contact-icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; color: var(--white); background: var(--primary); border-radius: 50%; }
.contact-store-image { width: 100%; max-height: 220px; margin-bottom: 24px; object-fit: cover; border-radius: var(--radius-sm); }
.contact-methods { display: grid; gap: 18px; }
.contact-method { display: grid; grid-template-columns: 23px minmax(0, 1fr); gap: 11px; min-width: 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.6; }
.contact-method > i { margin-top: 3px; color: var(--accent); text-align: center; }
.contact-method strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: .7rem; letter-spacing: .02em; }
.contact-method > div { min-width: 0; }
.contact-method a { color: var(--ink-soft); overflow-wrap: anywhere; }
.contact-method address,
.contact-method address p,
.contact-method address span { margin: 0 !important; color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-style: normal !important; line-height: inherit !important; }
.contact-method .contact-address-link { color: var(--primary); font-weight: 750; text-decoration: underline; text-decoration-color: rgba(22,75,95,.28); text-underline-offset: 3px; }
.contact-method .contact-address-link:hover { color: var(--accent); text-decoration-color: currentColor; }
.contact-map-button { width: 100%; margin-top: 25px; }
.contact-note { margin-top: 18px; padding-top: 17px; color: var(--muted); border-top: 1px solid #ded5c8; font-size: .72rem; line-height: 1.6; }
.contact-form-panel .form-intro { margin-bottom: 25px; }
.contact-form-panel .form-intro h2 { margin-top: 3px; font-size: 1.45rem; }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-message { grid-column: 1 / -1; }
.contact-form-panel .form-label { color: var(--ink); font-size: .74rem; font-weight: 750; }
.contact-form-panel textarea.form-control { min-height: 175px; resize: vertical; }
.contact-recaptcha { min-width: 0; margin: 22px 0 0; padding: 0; border: 0; }
.contact-data-protection { display: flex; align-items: flex-start; gap: 13px; max-width: 680px; margin-bottom: 16px; padding: 15px 17px; color: var(--ink); background: linear-gradient(135deg, rgba(106, 119, 78, .11), rgba(106, 119, 78, .045)); border: 1px solid rgba(106, 119, 78, .24); border-left: 4px solid var(--primary); border-radius: 8px; }
.contact-data-protection-icon { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; color: #fff; background: var(--primary); border-radius: 50%; }
.contact-data-protection h3 { margin: 0 0 4px; color: var(--primary); font-size: .86rem; font-weight: 800; letter-spacing: .02em; }
.contact-data-protection p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.65; }
.contact-data-protection a { color: var(--ink); font-weight: 750; text-decoration: underline; text-decoration-color: rgba(106, 119, 78, .55); text-underline-offset: 2px; }
.contact-data-protection a:hover { color: var(--primary); }
.recaptcha-development { display: flex; align-items: center; justify-content: space-between; width: min(304px, 100%); min-height: 78px; margin: 0; padding: 13px 12px; color: #222; background: #fafafa; border: 1px solid #d6d6d6; border-radius: 3px; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); cursor: pointer; }
.recaptcha-development-control { display: flex; align-items: center; gap: 12px; font-size: .94rem; }
.recaptcha-development-control .form-check-input { width: 25px; height: 25px; margin: 0; border-color: #555; }
.recaptcha-development-brand { display: grid; justify-items: center; margin-left: 12px; color: #555; line-height: 1.05; }
.recaptcha-development-brand strong { font-size: .7rem; }
.recaptcha-development-brand small { margin-top: 5px; font-size: .58rem; text-transform: uppercase; letter-spacing: .04em; }
.contact-recaptcha.is-invalid .recaptcha-development { border-color: var(--bs-danger); }
.contact-submit { min-width: 190px; min-height: 50px; margin-top: 22px; }
.contact-locations { margin-top: 42px; }
.contact-locations > h2 { margin-bottom: 17px; font-size: 1.35rem; }

.information-page { padding-bottom: 0; overflow: clip; }
.information-breadcrumb-wrap { position: relative; z-index: 3; }
.information-breadcrumb-wrap .breadcrumb { margin-bottom: 0; }
.information-hero {
  position: relative;
  isolation: isolate;
  min-height: 290px;
  padding: 46px 0 62px;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 15%, rgba(217,86,28,.09) 0 78px, transparent 79px),
    linear-gradient(135deg, #fbf8f2 0%, #f5f8f8 54%, #eaf1f3 100%);
  border-bottom: 1px solid rgba(22,75,95,.09);
}
.information-hero-orb { position: absolute; z-index: -1; display: block; border: 1px solid rgba(22,75,95,.11); border-radius: 50%; pointer-events: none; }
.information-hero-orb-one { top: -185px; right: -70px; width: 430px; height: 430px; }
.information-hero-orb-two { right: 22%; bottom: -95px; width: 190px; height: 190px; }
.information-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: center; gap: clamp(45px, 8vw, 120px); }
.information-hero-copy { max-width: 780px; }
.information-hero-copy h1 { margin: 0 0 16px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 4.6vw, 4.7rem); font-weight: 400; letter-spacing: -.045em; }
.information-hero-copy > p:last-child { max-width: 690px; margin: 0; color: var(--ink-soft); font-size: clamp(.92rem, 1.15vw, 1.08rem); line-height: 1.75; }
.information-hero-mark { position: relative; display: grid; place-items: center; width: 175px; height: 175px; justify-self: end; }
.information-hero-mark::before,
.information-hero-mark::after { position: absolute; border-radius: 50%; content: ""; }
.information-hero-mark::before { inset: 0; background: rgba(255,255,255,.7); border: 1px solid rgba(22,75,95,.12); box-shadow: 0 24px 55px rgba(23,47,56,.11); }
.information-hero-mark::after { inset: 16px; border: 1px dashed rgba(22,75,95,.18); }
.information-hero-mark > span { position: relative; z-index: 1; display: grid; place-items: center; width: 86px; height: 86px; color: var(--white); background: var(--primary); border-radius: 50%; box-shadow: 0 15px 32px rgba(22,75,95,.24); font-size: 1.75rem; }

.information-body-section { padding: clamp(62px, 7vw, 94px) 0 clamp(80px, 9vw, 120px); background: var(--surface); }
.information-layout { display: grid; grid-template-columns: 265px minmax(0, 1fr); align-items: start; gap: clamp(28px, 4vw, 52px); }
.information-sidebar { position: sticky; top: 22px; display: grid; gap: 17px; min-width: 0; }
.information-section-nav,
.information-help-card,
.information-main-card { background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 35px rgba(23,47,56,.055); }
.information-section-nav { padding: 19px 12px 12px; }
.information-section-nav > p { padding: 0 9px 12px; margin: 0; color: var(--muted); border-bottom: 1px solid var(--line); font-size: .65rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.information-section-nav ul { padding: 8px 0 0; margin: 0; list-style: none; }
.information-section-nav li { margin: 0; }
.information-section-nav a { display: grid; grid-template-columns: 35px minmax(0, 1fr) 12px; align-items: center; gap: 10px; min-height: 52px; padding: 7px 10px; color: var(--ink-soft); border-radius: 10px; font-size: .75rem; font-weight: 750; line-height: 1.35; }
.information-section-nav a > span { display: grid; place-items: center; width: 34px; height: 34px; color: var(--primary); background: #eaf1f3; border-radius: 9px; font-size: .75rem; }
.information-section-nav a > i { color: #a3afb2; font-size: .56rem; }
.information-section-nav a:hover { color: var(--primary); background: var(--surface); }
.information-section-nav a.active { color: var(--white); background: var(--primary); }
.information-section-nav a.active > span { color: var(--white); background: rgba(255,255,255,.13); }
.information-section-nav a.active > i { color: #ffbc99; }
.information-help-card { position: relative; padding: 24px 21px 21px; overflow: hidden; color: rgba(255,255,255,.72); background: linear-gradient(145deg, var(--primary), #0f3949); border: 0; }
.information-help-card::after { position: absolute; top: -47px; right: -46px; width: 130px; height: 130px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.information-help-icon { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 24px; color: #ffd0b8; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.13); border-radius: 12px; }
.information-help-card .eyebrow { margin-bottom: 5px; color: #ffb38d; }
.information-help-card h2 { margin: 0 0 9px; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.information-help-card > p:not(.eyebrow) { margin: 0 0 18px; color: rgba(255,255,255,.66); font-size: .72rem; line-height: 1.6; }
.information-help-card .btn { width: 100%; min-height: 44px; color: var(--primary); background: var(--white); border-color: var(--white); font-size: .72rem; }
.information-help-card .btn:hover { color: var(--white); background: var(--accent); border-color: var(--accent); }
.information-help-phone { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 13px; color: rgba(255,255,255,.86); font-size: .7rem; font-weight: 750; }
.information-help-phone:hover { color: #ffd0b8; }
.information-quick-links { display: grid; gap: 4px; padding: 4px 8px; }
.information-quick-links a { display: flex; align-items: center; gap: 9px; min-height: 36px; color: var(--muted); font-size: .69rem; font-weight: 700; }
.information-quick-links a i { width: 16px; color: var(--accent); text-align: center; }
.information-quick-links a:hover { color: var(--primary); }

.information-content { min-width: 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.78; }
.information-main-card { padding: clamp(27px, 3.4vw, 46px); }
.information-main-card > :first-child { margin-top: 0 !important; }
.information-main-card > :last-child { margin-bottom: 0 !important; }
.information-content h2,
.information-content h3 { color: var(--ink); }
.information-content img { max-width: 100%; height: auto; }
.information-page-generic .information-content p,
.information-page-generic .information-content span,
.information-page-generic .information-content h4 { color: inherit !important; background: transparent !important; font-family: inherit !important; font-size: inherit !important; font-style: normal !important; line-height: inherit !important; }
.information-page-generic .information-content p { margin: 0 0 17px !important; }
.information-page-generic .information-content h2,
.information-page-generic .information-content h3 { margin: 32px 0 13px; font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.information-page-generic .information-content ul,
.information-page-generic .information-content ol { margin-bottom: 20px; }
.information-page .carousel { margin-top: 42px; overflow: hidden; border-radius: var(--radius); }
.information-section-heading { max-width: 720px; margin-bottom: 29px; }
.information-section-heading .eyebrow { margin-bottom: 7px; }
.information-section-heading h2 { margin: 0 0 11px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 2.7vw, 2.75rem); font-weight: 400; letter-spacing: -.035em; }
.information-section-heading > p:last-child { max-width: 650px; margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.7; }

.payment-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.payment-method-card { position: relative; display: grid; grid-template-columns: 47px minmax(0, 1fr); gap: 15px; min-height: 154px; padding: 22px 20px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.payment-method-card:hover { border-color: rgba(22,75,95,.28); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.payment-method-card > span { display: grid; place-items: center; width: 47px; height: 47px; color: var(--primary); background: #e6eff1; border-radius: 13px; font-size: 1rem; }
.payment-method-number { position: absolute; top: 13px; right: 15px; margin: 0 !important; color: rgba(22,75,95,.22) !important; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
.payment-method-card h3 { padding-right: 25px; margin: 3px 0 8px; font-size: .98rem; }
.payment-method-card div > p:last-child { margin: 0; color: var(--muted); font-size: .71rem; line-height: 1.6; }

.bank-details-panel { padding: clamp(25px, 3.2vw, 38px); margin-top: 30px; color: rgba(255,255,255,.76); background: linear-gradient(145deg, #153f4f, var(--primary)); border-radius: 17px; box-shadow: 0 20px 46px rgba(22,75,95,.16); }
.bank-details-header { display: flex; align-items: center; gap: 14px; padding-bottom: 23px; border-bottom: 1px solid rgba(255,255,255,.14); }
.bank-details-header > span { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; color: #ffd0b8; background: rgba(255,255,255,.1); border-radius: 13px; }
.bank-details-header .eyebrow { margin: 0 0 3px; color: #ffb38d; }
.bank-details-header h2 { margin: 0; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; font-weight: 400; }
.bank-details-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; }
.bank-details-list > div { min-width: 0; padding: 19px 18px 18px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.bank-details-list > div:nth-child(even) { padding-right: 0; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.12); }
.bank-details-list dt { margin-bottom: 4px; color: rgba(255,255,255,.52); font-size: .62rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.bank-details-list dd { margin: 0; overflow-wrap: anywhere; color: var(--white); font-size: .83rem; font-weight: 750; }
.bank-details-list .bank-detail-important dd { color: #ffd0b8; font-size: .93rem; letter-spacing: .025em; }
.payment-reference { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 11px; align-items: start; padding: 15px 16px; margin-top: 20px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 11px; }
.payment-reference > i { display: grid; place-items: center; width: 32px; height: 32px; color: #ffd0b8; }
.payment-reference p { margin: 0; color: rgba(255,255,255,.72); font-size: .71rem; line-height: 1.6; }
.payment-reference strong { display: block; color: var(--white); font-size: .72rem; }

.information-action-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 26px; margin-top: 20px; background: var(--cream); border: 1px solid #e8dfd2; border-radius: 14px; }
.information-action-strip .eyebrow { margin-bottom: 4px; }
.information-action-strip h2 { max-width: 560px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.information-action-strip .btn { flex: none; }

.delivery-options-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.delivery-option-card { display: flex; flex-direction: column; min-height: 415px; padding: 25px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.delivery-option-card > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 28px; }
.delivery-option-card > header > span { display: grid; place-items: center; width: 51px; height: 51px; color: var(--primary); background: #e4eef0; border-radius: 14px; font-size: 1.05rem; }
.delivery-option-card > header > p { padding: 6px 10px; margin: 0; color: var(--primary); background: var(--white); border: 1px solid var(--line); border-radius: 999px; font-size: .61rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.delivery-option-card h3 { margin: 0 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; font-weight: 400; }
.delivery-option-card > p { margin: 0 0 22px; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.delivery-contact-links { display: grid; gap: 8px; margin-top: auto; }
.delivery-contact-links a { display: flex; align-items: center; gap: 9px; min-height: 43px; padding: 9px 12px; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 9px; font-size: .69rem; font-weight: 750; overflow-wrap: anywhere; }
.delivery-contact-links a i { width: 17px; color: var(--accent); text-align: center; }
.delivery-contact-links a:hover { color: var(--primary); border-color: var(--primary); }
.delivery-option-pickup { background: linear-gradient(145deg, #f9f5ed, #f4f7f6); }
.delivery-option-pickup > header > p { color: var(--success); border-color: rgba(47,112,83,.22); }
.delivery-address { display: grid; grid-template-columns: 37px minmax(0, 1fr); gap: 11px; align-items: center; padding: 13px 14px; margin-top: auto; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 11px; }
.delivery-address > i { display: grid; place-items: center; width: 36px; height: 36px; color: var(--white); background: var(--accent); border-radius: 50%; }
.delivery-address strong,
.delivery-address small { display: block; }
.delivery-address strong { font-size: .72rem; line-height: 1.4; }
.delivery-address small { margin-top: 3px; color: var(--primary); font-size: .62rem; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.delivery-address:hover { color: var(--primary); border-color: var(--primary); }
.delivery-hours { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; padding: 13px 14px; margin-top: 9px; color: var(--muted); background: rgba(255,255,255,.55); border-radius: 10px; font-size: .66rem; }
.delivery-hours > i { margin-top: 3px; color: var(--accent); }
.delivery-hours strong,
.delivery-hours span { display: block; }
.delivery-hours strong { color: var(--ink); font-size: .67rem; }
.delivery-hours span { margin-top: 2px; }

.information-section-heading-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(250px, .9fr); align-items: end; gap: 36px; max-width: none; }
.information-section-heading-split > p:last-child { padding-bottom: 4px; }
.project-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; gap: 13px; }
.project-card { position: relative; aspect-ratio: 1.05; margin: 0; overflow: hidden; background: #dfe6e7; border-radius: 13px; }
.project-card-featured { grid-column: span 2; aspect-ratio: 2.15; }
.project-card::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(10,29,36,.82)); content: ""; pointer-events: none; }
.project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.project-card:hover img { transform: scale(1.035); }
.project-card figcaption { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; padding: 22px 19px 17px; color: var(--white); }
.project-card figcaption span,
.project-card figcaption strong { display: block; }
.project-card figcaption span { margin-bottom: 3px; color: rgba(255,255,255,.58); font-size: .55rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.project-card figcaption strong { color: var(--white); font-size: .86rem; line-height: 1.35; }
.projects-cta { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 28px; margin-top: 18px; color: rgba(255,255,255,.68); background: linear-gradient(135deg, #102f3b, var(--primary)); border-radius: 16px; }
.projects-cta > span { display: grid; place-items: center; width: 58px; height: 58px; color: #ffd0b8; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.13); border-radius: 15px; font-size: 1.15rem; }
.projects-cta .eyebrow { margin-bottom: 4px; color: #ffb38d; }
.projects-cta h2 { margin: 0 0 4px; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.projects-cta p:last-child { margin: 0; color: rgba(255,255,255,.62); font-size: .69rem; }
.projects-cta .btn { min-width: 160px; }

.funding-projects { display: grid; gap: 24px; }
.funding-project { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 17px; }
.funding-project-header { display: flex; align-items: start; justify-content: space-between; gap: 30px; padding: 31px 32px 24px; }
.funding-project-header .eyebrow { margin-bottom: 7px; }
.funding-project-header h2 { max-width: 720px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.75rem, 2.5vw, 2.45rem); font-weight: 400; line-height: 1.15; }
.funding-project-icon { display: grid; place-items: center; flex: 0 0 54px; width: 54px; height: 54px; color: var(--success); background: #e8f2ed; border-radius: 15px; font-size: 1.1rem; }
.funding-banner { padding: 17px; margin: 0 32px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.funding-banner img { display: block; width: 100%; border-radius: 5px; }
.funding-project-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding: 28px 32px 5px; }
.funding-project-copy p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.75; }
.funding-facts { display: grid; grid-template-columns: .7fr 1.45fr 1.1fr; margin: 27px 32px 32px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.funding-facts > div { min-width: 0; padding: 18px; }
.funding-facts > div + div { border-left: 1px solid var(--line); }
.funding-facts dt { overflow-wrap: anywhere; color: var(--primary); font-family: Georgia, "Times New Roman", serif; font-size: 1rem; font-weight: 400; line-height: 1.3; }
.funding-facts dd { margin: 5px 0 0; color: var(--muted); font-size: .6rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.funding-project-energy { display: grid; grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); }
.funding-energy-visual { position: relative; min-height: 650px; overflow: hidden; }
.funding-energy-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(12,42,53,.57)); content: ""; }
.funding-energy-visual > img { width: 100%; height: 100%; object-fit: cover; }
.funding-energy-visual > span { position: absolute; bottom: 22px; left: 22px; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; color: var(--white); background: rgba(12,42,53,.68); border: 1px solid rgba(255,255,255,.24); border-radius: 9px; backdrop-filter: blur(8px); font-size: .64rem; font-weight: 750; }
.funding-energy-content { padding: clamp(30px, 4vw, 48px); }
.funding-energy-content h2 { margin: 0 0 19px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.85rem, 2.6vw, 2.55rem); font-weight: 400; }
.funding-energy-content > p:not(.eyebrow) { margin: 0 0 15px; color: var(--muted); font-size: .75rem; line-height: 1.75; }
.funding-energy-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 25px 0 24px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 11px; }
.funding-energy-stats > div { padding: 15px; background: var(--surface); }
.funding-energy-stats dt { color: var(--primary); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; font-weight: 400; }
.funding-energy-stats dd { margin: 3px 0 0; color: var(--muted); font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.funding-programme-logo { display: block; width: 225px; max-height: 113px; object-fit: contain; object-position: left center; }

/* About */
.about-page { padding-bottom: 0; overflow: hidden; }
.about-breadcrumb-wrap { position: relative; z-index: 3; }
.about-breadcrumb-wrap .breadcrumb { margin-bottom: 0; }
.about-hero {
  position: relative;
  padding: 28px 0 94px;
  overflow: hidden;
  background:
    radial-gradient(circle at 7% 20%, rgba(217,86,28,.08) 0 92px, transparent 93px),
    linear-gradient(135deg, #fbf8f2 0%, #f4f7f7 58%, #edf3f4 100%);
}
.about-orb { position: absolute; display: block; border: 1px solid rgba(22,75,95,.1); border-radius: 50%; pointer-events: none; }
.about-orb-one { top: -180px; right: -120px; width: 430px; height: 430px; }
.about-orb-two { bottom: -110px; left: 43%; width: 210px; height: 210px; }
.about-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .88fr) minmax(490px, 1.12fr); align-items: center; gap: clamp(55px, 7vw, 105px); }
.about-hero-copy { max-width: 580px; }
.about-hero-copy h1 { margin: 0 0 20px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.2rem, 4.6vw, 4.85rem); font-weight: 400; letter-spacing: -.045em; }
.about-lead { margin: 0 0 15px; color: var(--ink); font-size: clamp(1.02rem, 1.25vw, 1.2rem); font-weight: 620; line-height: 1.68; }
.about-intro { max-width: 55ch; margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.75; }
.about-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin-top: 28px; }
.about-actions .btn { min-height: 50px; padding-inline: 20px; }
.about-map-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--primary); font-size: .77rem; font-weight: 800; }
.about-map-link i { color: var(--accent); }
.about-map-link:hover { color: var(--accent); }
.about-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding-top: 25px; margin: 30px 0 0; border-top: 1px solid rgba(22,75,95,.15); }
.about-facts > div { padding-right: 17px; }
.about-facts > div + div { padding-left: 17px; border-left: 1px solid rgba(22,75,95,.13); }
.about-facts dt { margin: 0; color: var(--primary); font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; font-weight: 400; line-height: 1.15; }
.about-facts dd { margin: 5px 0 0; color: var(--muted); font-size: .67rem; font-weight: 700; line-height: 1.4; }
.about-hero-visual { position: relative; min-height: 540px; }
.about-main-image { position: absolute; inset: 8px 62px 52px 0; margin: 0; overflow: hidden; background: #dfe8e9; border-radius: 30px 88px 30px 30px; box-shadow: 0 28px 75px rgba(23,47,56,.17); }
.about-main-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 50%, rgba(13,41,51,.16)); content: ""; }
.about-main-image img { width: 100%; height: 100%; object-fit: cover; }
.about-secondary-image { position: absolute; right: 0; bottom: 0; z-index: 2; width: clamp(205px, 19vw, 270px); padding: 9px 9px 11px; margin: 0; background: rgba(255,255,255,.95); border: 1px solid rgba(22,75,95,.12); border-radius: 17px; box-shadow: 0 20px 48px rgba(23,47,56,.2); transform: rotate(2deg); }
.about-secondary-image img { display: block; width: 100%; aspect-ratio: 1.55; object-fit: cover; border-radius: 11px; }
.about-secondary-image figcaption { padding: 9px 5px 1px; color: var(--ink); font-size: .66rem; font-weight: 750; text-align: center; }
.about-visual-note { position: absolute; top: 0; right: 2px; z-index: 3; display: grid; min-width: 126px; padding: 14px 16px; color: var(--muted); background: rgba(255,255,255,.94); border: 1px solid rgba(22,75,95,.11); border-radius: 13px; box-shadow: var(--shadow-sm); font-size: .64rem; line-height: 1.35; }
.about-visual-note strong { color: var(--primary); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; font-weight: 400; }

.about-story { position: relative; padding: clamp(78px, 8vw, 118px) 0; background: var(--white); }
.about-story::before { position: absolute; top: 0; left: 50%; width: min(calc(100% - 64px), 1320px); height: 1px; background: linear-gradient(90deg, transparent, var(--line) 14%, var(--line) 86%, transparent); content: ""; transform: translateX(-50%); }
.about-story-grid { display: grid; grid-template-columns: minmax(250px, .52fr) minmax(0, 1.48fr); align-items: start; gap: clamp(55px, 8vw, 118px); }
.about-story-heading { position: sticky; top: 24px; }
.about-story-heading h2 { max-width: 11ch; margin: 0 0 22px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 3.1vw, 3.35rem); font-weight: 400; }
.about-story-heading > span { display: block; width: 68px; height: 3px; background: var(--accent); border-radius: 99px; }
.about-story-copy { columns: 2; column-gap: clamp(35px, 4vw, 64px); column-rule: 1px solid var(--line); }
.about-story-copy p { break-inside: avoid; margin: 0 0 24px; color: var(--ink-soft); font-size: .92rem; line-height: 1.84; }
.about-story-copy p:first-child::first-letter { float: left; padding: .12em .12em 0 0; color: var(--accent); font-family: Georgia, "Times New Roman", serif; font-size: 4.2rem; line-height: .72; }

.about-directions { padding: clamp(78px, 8vw, 116px) 0; background: var(--cream); }
.about-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 35px; }
.about-section-heading h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 3vw, 3.25rem); font-weight: 400; }
.about-section-heading > p { max-width: 520px; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.7; }
.about-direction-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.about-direction-card { position: relative; min-height: 270px; padding: 29px; overflow: hidden; background: rgba(255,255,255,.8); border: 1px solid rgba(22,75,95,.1); border-radius: 18px; transition: transform .2s ease, box-shadow .2s ease; }
.about-direction-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.about-direction-card > span { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 36px; color: var(--primary); background: #e7eff1; border-radius: 13px; }
.about-direction-card > p:nth-of-type(1) { position: absolute; top: 27px; right: 27px; margin: 0; color: rgba(22,75,95,.27); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.about-direction-card h3 { margin: 0 0 10px; font-size: 1.1rem; }
.about-direction-card > p:last-child { margin: 0; color: var(--muted); font-size: .77rem; line-height: 1.7; }
.about-quality { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); min-height: 420px; margin-top: 65px; overflow: hidden; color: rgba(255,255,255,.72); background: var(--ink); border-radius: 24px; box-shadow: 0 24px 64px rgba(23,47,56,.17); }
.about-quality-image { position: relative; min-height: 420px; overflow: hidden; }
.about-quality-image::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 58%, rgba(23,47,56,.62)); content: ""; }
.about-quality-image img { width: 100%; height: 100%; object-fit: cover; }
.about-quality-copy { display: flex; justify-content: center; flex-direction: column; padding: clamp(35px, 5vw, 65px); }
.about-quality-copy .eyebrow { color: #ffb38d; }
.about-quality-copy h2 { margin: 0 0 17px; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 2.7vw, 2.9rem); font-weight: 400; }
.about-quality-copy > p:not(.eyebrow) { margin: 0; color: rgba(255,255,255,.68); font-size: .82rem; line-height: 1.78; }
.about-quality-copy > a { display: inline-flex; align-items: center; gap: 9px; align-self: flex-start; margin-top: 24px; color: var(--white); font-size: .75rem; font-weight: 800; }
.about-quality-copy > a:hover { color: #ffb38d; }

.about-visit { padding: clamp(78px, 8vw, 116px) 0; background: linear-gradient(135deg, var(--surface), #edf3f4); }
.about-visit-heading { max-width: 650px; margin: 0 auto 38px; text-align: center; }
.about-visit-heading h2 { margin: 0 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.3rem, 3.2vw, 3.5rem); font-weight: 400; }
.about-visit-heading > p:last-child { margin: 0; color: var(--muted); font-size: .9rem; }
.about-visit-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(390px, .96fr); gap: 22px; }
.about-contact-card,
.about-location-card { min-height: 420px; border: 1px solid rgba(22,75,95,.11); border-radius: 22px; box-shadow: var(--shadow-sm); }
.about-contact-card { padding: clamp(30px, 4vw, 48px); background: rgba(255,255,255,.94); }
.about-contact-card h3 { margin: 0 0 28px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.75rem, 2.2vw, 2.3rem); font-weight: 400; }
.about-contact-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 24px; padding: 0 0 28px; margin: 0 0 28px; border-bottom: 1px solid var(--line); list-style: none; }
.about-contact-list li { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 11px; min-width: 0; }
.about-contact-list li:last-child { grid-column: 1 / -1; }
.about-contact-list li > i { display: grid; place-items: center; width: 42px; height: 42px; color: var(--primary); background: #e7eff1; border-radius: 50%; }
.about-contact-list small,
.about-contact-list a { display: block; }
.about-contact-list small { margin-bottom: 2px; color: var(--muted); font-size: .64rem; font-weight: 700; }
.about-contact-list a { color: var(--ink); font-size: .73rem; font-weight: 750; line-height: 1.5; overflow-wrap: anywhere; }
.about-contact-list a:hover { color: var(--accent); }
.about-contact-card > .btn { min-height: 48px; }
.about-location-card { position: relative; display: flex; align-items: flex-end; overflow: hidden; padding: 30px; color: var(--ink); background-color: #dfe9eb; background-image: linear-gradient(23deg, transparent 47%, rgba(255,255,255,.72) 48%, rgba(255,255,255,.72) 52%, transparent 53%), linear-gradient(112deg, transparent 44%, rgba(255,255,255,.55) 45%, rgba(255,255,255,.55) 49%, transparent 50%), radial-gradient(circle at 76% 17%, rgba(217,86,28,.16), transparent 28%); }
.about-location-card:hover { color: var(--ink); }
.about-location-card::before,
.about-location-card::after { position: absolute; border: 2px solid rgba(22,75,95,.09); border-radius: 50%; content: ""; }
.about-location-card::before { top: -75px; left: -80px; width: 240px; height: 240px; }
.about-location-card::after { top: -34px; left: -40px; width: 158px; height: 158px; }
.about-map-route { position: absolute; display: block; height: 12px; border-block: 1px solid rgba(22,75,95,.11); transform: rotate(-18deg); }
.about-map-route-one { top: 43%; left: -10%; width: 80%; }
.about-map-route-two { top: 24%; right: -12%; width: 68%; transform: rotate(35deg); }
.about-map-pin { position: absolute; top: 24%; left: 61%; display: grid; place-items: center; width: 68px; height: 68px; color: var(--white); background: var(--accent); border: 8px solid rgba(255,255,255,.7); border-radius: 50%; box-shadow: 0 14px 32px rgba(217,86,28,.25); transition: transform .2s ease; }
.about-location-card:hover .about-map-pin { transform: translateY(-6px); }
.about-location-label { position: relative; z-index: 2; display: block; width: min(100%, 390px); padding: 20px 22px; background: rgba(255,255,255,.92); border: 1px solid rgba(22,75,95,.11); border-radius: 15px; box-shadow: 0 14px 35px rgba(23,47,56,.1); backdrop-filter: blur(10px); }
.about-location-label small,
.about-location-label strong,
.about-location-label > span { display: block; }
.about-location-label small { color: var(--accent); font-size: .64rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.about-location-label strong { margin-top: 3px; color: var(--ink); font-size: 1.05rem; line-height: 1.4; }
.about-location-label > span { margin-top: 11px; color: var(--primary); font-size: .72rem; font-weight: 800; }
.about-hours { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(0, 1.4fr); align-items: center; gap: 25px; min-height: 112px; padding: 22px 28px; margin-top: 22px; color: var(--white); background: var(--primary); border-radius: 18px; box-shadow: var(--shadow-sm); }
.about-hours-title { display: flex; align-items: center; gap: 13px; }
.about-hours-title > i { display: grid; place-items: center; width: 42px; height: 42px; background: rgba(255,255,255,.1); border-radius: 50%; }
.about-hours-title small,
.about-hours-title strong { display: block; }
.about-hours-title small { color: rgba(255,255,255,.6); font-size: .63rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.about-hours-title strong { color: var(--white); font-size: 1.02rem; }
.about-hours ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; margin: 0; list-style: none; }
.about-hours li { padding: 7px 18px; color: rgba(255,255,255,.84); border-left: 1px solid rgba(255,255,255,.16); font-size: .72rem; font-weight: 700; text-align: center; }
.about-page + .site-footer { margin-top: 0; }

#account-login .card,
#account-account .list-group { overflow: hidden; border-color: var(--line); border-radius: var(--radius); box-shadow: none; }
.list-group-item { padding: 11px 15px; color: var(--ink-soft); border-color: var(--line); font-size: .78rem; }
.list-group-item:hover { color: var(--primary); background: var(--surface); }

@media (max-width: 991px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
  .contact-details-header,
  .contact-store-image,
  .contact-map-button,
  .contact-note { grid-column: 1 / -1; }
  .about-hero { padding-bottom: 76px; }
  .about-hero-grid,
  .about-story-grid,
  .about-quality,
  .about-visit-grid { grid-template-columns: 1fr; }
  .about-hero-grid { gap: 50px; }
  .about-hero-copy { max-width: 680px; }
  .about-hero-visual { min-height: 500px; }
  .about-story-grid { gap: 38px; }
  .about-story-heading { position: static; }
  .about-story-heading h2 { max-width: 15ch; }
  .about-quality-image { min-height: 360px; }
  .about-quality-image::after { background: linear-gradient(180deg, transparent 64%, rgba(23,47,56,.35)); }
  .about-visit-grid { gap: 17px; }
  .about-contact-card,
  .about-location-card { min-height: 390px; }
  .about-hours { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 767px) {
  .contact-page,
  .information-page { padding-bottom: 56px; }
  .contact-heading,
  .information-heading { margin-bottom: 24px; }
  .contact-heading > p { font-size: .86rem; }
  .contact-details,
  .contact-form-panel { padding: 21px 17px; }
  .contact-details { display: block; }
  .contact-store-image { max-height: 180px; }
  .contact-form-grid { grid-template-columns: 1fr; }
  .contact-message { grid-column: auto; }
  .contact-submit { width: 100%; }
  .information-content { font-size: .86rem; }
  .information-content h2 { font-size: 1.55rem !important; }
  .about-hero { padding: 12px 0 60px; }
  .about-hero-grid { gap: 38px; }
  .about-hero-copy h1 { margin-bottom: 15px; font-size: clamp(2.75rem, 13vw, 3.65rem); }
  .about-lead { font-size: .96rem; line-height: 1.62; }
  .about-intro { font-size: .82rem; }
  .about-actions { display: grid; align-items: stretch; gap: 13px; width: 100%; margin-top: 23px; }
  .about-actions .btn { width: 100%; }
  .about-map-link { justify-content: center; }
  .about-facts { padding-top: 20px; margin-top: 23px; }
  .about-facts > div { padding-right: 9px; }
  .about-facts > div + div { padding-left: 9px; }
  .about-facts dt { font-size: 1.22rem; }
  .about-facts dd { font-size: .59rem; }
  .about-hero-visual { min-height: 365px; }
  .about-main-image { inset: 0 28px 42px 0; border-radius: 20px 56px 20px 20px; }
  .about-secondary-image { width: 164px; padding: 6px 6px 8px; }
  .about-secondary-image figcaption { padding-top: 7px; font-size: .57rem; }
  .about-visual-note { right: 0; min-width: 105px; padding: 10px 12px; font-size: .56rem; }
  .about-visual-note strong { font-size: 1.42rem; }
  .about-story,
  .about-directions,
  .about-visit { padding: 62px 0; }
  .about-story::before { width: calc(100% - 30px); }
  .about-story-grid { gap: 28px; }
  .about-story-heading h2 { max-width: none; font-size: 2.15rem; }
  .about-story-copy { columns: 1; column-rule: 0; }
  .about-story-copy p { font-size: .84rem; line-height: 1.78; }
  .about-story-copy p:first-child::first-letter { font-size: 3.7rem; }
  .about-section-heading { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 25px; }
  .about-section-heading h2 { font-size: 2.1rem; }
  .about-section-heading > p { font-size: .79rem; }
  .about-direction-grid { grid-template-columns: 1fr; gap: 11px; }
  .about-direction-card { min-height: 220px; padding: 24px; }
  .about-direction-card > span { margin-bottom: 27px; }
  .about-quality { min-height: 0; margin-top: 38px; border-radius: 18px; }
  .about-quality-image { min-height: 240px; }
  .about-quality-copy { padding: 31px 24px 35px; }
  .about-quality-copy h2 { font-size: 2rem; }
  .about-visit-heading { margin-bottom: 27px; text-align: left; }
  .about-visit-heading h2 { font-size: 2.2rem; }
  .about-contact-card,
  .about-location-card { min-height: 0; border-radius: 17px; }
  .about-contact-card { padding: 27px 20px; }
  .about-contact-card h3 { margin-bottom: 23px; font-size: 1.75rem; }
  .about-contact-list { grid-template-columns: 1fr; gap: 17px; }
  .about-contact-list li:last-child { grid-column: auto; }
  .about-contact-card > .btn { width: 100%; }
  .about-location-card { min-height: 340px; padding: 20px; }
  .about-map-pin { top: 20%; width: 59px; height: 59px; border-width: 6px; }
  .about-location-label { padding: 17px 18px; }
  .about-location-label strong { font-size: .92rem; }
  .about-hours { padding: 21px 20px; }
  .about-hours ul { grid-template-columns: 1fr; }
  .about-hours li { padding: 9px 0; border-top: 1px solid rgba(255,255,255,.16); border-left: 0; text-align: left; }
}

/* Footer */
.site-footer {
  position: relative;
  isolation: isolate;
  width: 100%;
  margin: 30px 0 0;
  overflow: hidden;
  color: rgba(255,255,255,.76);
  background:
    radial-gradient(circle at 88% 10%, rgba(217,86,28,.2), transparent 24%),
    linear-gradient(135deg, #0d2933 0%, #164b5f 56%, #0c303e 100%);
  border: 0;
}
.footer-content { position: relative; z-index: 1; }
.footer-decoration { position: absolute; z-index: -1; display: block; pointer-events: none; }
.footer-decoration-ring { top: -265px; right: -160px; width: 500px; height: 500px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.footer-decoration-dots {
  bottom: 88px;
  left: -25px;
  width: 205px;
  height: 125px;
  background-image: radial-gradient(circle, rgba(255,176,133,.28) 0 1.2px, transparent 1.5px);
  background-size: 18px 18px;
  opacity: .62;
}
.footer-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 45px;
  padding: 72px 0 46px;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.footer-intro-copy { max-width: 770px; }
.footer-eyebrow { margin: 0 0 11px; color: #ffb38d; font-size: .69rem; font-weight: 850; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.footer-intro h2 { margin: 0; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.45rem, 4vw, 4.15rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.01; }
.footer-intro-copy > p:last-child { max-width: 640px; margin: 17px 0 0; color: rgba(255,255,255,.68); font-size: .86rem; line-height: 1.7; }
.footer-intro-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.footer-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 49px;
  padding: 11px 17px;
  color: var(--white) !important;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 9px;
  font-size: .74rem !important;
  font-weight: 800;
  line-height: 1.2 !important;
  white-space: nowrap;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.footer-button-primary { color: var(--primary) !important; background: var(--white); border-color: var(--white); }
.footer-button:hover,
.footer-button:focus-visible { color: var(--primary) !important; background: var(--white); border-color: var(--white); transform: translateY(-1px); }
.footer-button-primary:hover,
.footer-button-primary:focus-visible { color: var(--white) !important; background: var(--accent); border-color: var(--accent); }
.footer-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding: 23px 0 0;
  margin: 0;
  list-style: none;
}
.footer-highlights li {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 84px;
  padding: 15px 17px;
  margin: 0;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  backdrop-filter: blur(8px);
}
.footer-highlight-icon {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  color: #ffd0b8;
  background: rgba(217,86,28,.16);
  border: 1px solid rgba(255,179,141,.3);
  border-radius: 50%;
}
.footer-highlights strong,
.footer-highlights small { display: block; }
.footer-highlights strong { color: var(--white); font-size: .82rem; line-height: 1.35; }
.footer-highlights small { margin-top: 2px; color: rgba(255,255,255,.58); font-size: .69rem; line-height: 1.45; }
.footer-grid {
  display: grid;
  grid-template-columns: minmax(230px, 1.05fr) minmax(390px, 1.45fr) minmax(255px, .95fr);
  gap: clamp(42px, 5vw, 74px);
  padding: 57px 0 64px;
}
.footer-logo {
  display: inline-flex;
  align-items: center;
  min-height: 64px;
  padding: 10px 14px;
  margin-bottom: 19px;
  color: var(--ink) !important;
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 12px;
  box-shadow: 0 14px 32px rgba(5,28,36,.16);
}
.footer-logo img { display: block; width: 178px; height: auto; }
.footer-logo strong { color: var(--primary); font-size: 1.15rem; font-weight: 850; letter-spacing: .12em; }
.footer-about-copy { max-width: 315px; margin: 0 0 19px; color: rgba(255,255,255,.65); font-size: .76rem; line-height: 1.7; }
.footer-company-meta { display: grid; gap: 2px; color: rgba(255,255,255,.56); font-size: .67rem; line-height: 1.55; }
.footer-company-meta strong { color: var(--white); font-size: .72rem; }
.footer-energy { display: inline-flex; align-items: center; margin-top: 20px; padding: 7px 10px; background: rgba(255,255,255,.95); border-radius: 9px; }
.footer-energy img { display: block; width: 128px; height: auto; }
.footer-link-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.footer-section { min-width: 0; }
.footer-heading {
  display: block;
  margin: 0 0 20px;
  color: var(--white);
  cursor: default;
  font-size: .69rem;
  font-weight: 850;
  letter-spacing: .13em;
  line-height: 1.35;
  list-style: none;
  text-transform: uppercase;
}
.footer-heading::-webkit-details-marker { display: none; }
.footer-menu { padding: 0; margin: 0; list-style: none; }
.footer-menu li { margin: 0 0 8px; }
.footer-menu a { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 2px 0; color: rgba(255,255,255,.68); font-size: .74rem; line-height: 1.45; }
.footer-link-arrow { color: #ffb38d; opacity: 0; transform: translateX(-5px); transition: opacity .18s ease, transform .18s ease; }
.footer-menu a:hover,
.footer-menu a:focus-visible { color: var(--white); }
.footer-menu a:hover .footer-link-arrow,
.footer-menu a:focus-visible .footer-link-arrow { opacity: 1; transform: translateX(0); }
.footer-contact { display: grid; gap: 15px; margin: 0; font-style: normal; }
.footer-contact-item { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: start; gap: 11px; color: rgba(255,255,255,.7); font-size: .72rem; }
a.footer-contact-item:hover,
a.footer-contact-item:focus-visible { color: var(--white); }
.footer-contact-item > i { display: grid; place-items: center; width: 36px; height: 36px; color: #ffd0b8; background: rgba(255,255,255,.075); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; }
.footer-contact-item strong,
.footer-contact-item small { display: block; overflow-wrap: anywhere; }
.footer-contact-item strong { color: var(--white); font-size: .72rem; font-weight: 750; line-height: 1.45; }
.footer-contact-item small { margin-top: 2px; color: rgba(255,255,255,.55); font-size: .65rem; line-height: 1.5; }
.footer-bottom-shell { position: relative; z-index: 1; background: rgba(5,25,33,.22); border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 68px; color: rgba(255,255,255,.48); font-size: .65rem; }
.footer-legal { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px 18px; }
.footer-legal a,
.footer-legal button { color: rgba(255,255,255,.68); font-size: .68rem; text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); text-underline-offset: 3px; }
.footer-legal button { min-height: 34px; padding: 5px 10px; background: transparent; border: 1px solid rgba(255,255,255,.28); border-radius: 7px; }
.footer-legal button i { margin-right: 5px; }
.footer-legal a:hover,
.footer-legal button:hover { color: var(--white); border-color: rgba(255,255,255,.7); }

/* Cookie preferences */
.cookie-banner {
  position: fixed;
  z-index: 10050;
  right: 50%;
  bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: min(980px, calc(100vw - 36px));
  padding: 20px 22px;
  color: var(--ink);
  background: rgba(255,255,255,.98);
  border: 1px solid var(--line-dark);
  border-radius: 18px;
  box-shadow: 0 22px 70px rgba(12,35,43,.25);
  transform: translateX(50%);
}
.cookie-banner-copy { display: flex; align-items: flex-start; gap: 15px; min-width: 0; }
.cookie-banner-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; color: var(--primary); background: #eaf1f3; border-radius: 12px; font-size: 1rem; }
.cookie-banner h2 { margin: 0 0 5px; font-size: 1rem; letter-spacing: -.01em; }
.cookie-banner p { max-width: 600px; margin: 0 0 5px; color: var(--ink-soft); font-size: .75rem; line-height: 1.5; }
.cookie-banner a { font-size: .73rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner-actions,
.cookie-modal-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.cookie-banner-actions { flex: 0 0 auto; justify-content: flex-end; }
.cookie-button { min-height: 42px; padding: 8px 13px; color: var(--primary); background: var(--white); border: 1px solid var(--primary); border-radius: 8px; font-size: .72rem; font-weight: 800; line-height: 1.2; }
.cookie-button-choice:hover,
.cookie-button-choice:focus-visible { color: var(--white); background: var(--primary); }
.cookie-button-settings { color: var(--ink-soft); border-color: var(--line-dark); }
.cookie-button-settings:hover,
.cookie-button-settings:focus-visible { color: var(--primary); background: var(--surface); border-color: var(--primary); }
.cookie-button:disabled { cursor: wait; opacity: .55; }
.cookie-overlay { position: fixed; z-index: 10055; inset: 0; background: rgba(10,28,34,.62); backdrop-filter: blur(3px); }
.cookie-modal {
  position: fixed;
  z-index: 10060;
  top: 50%;
  left: 50%;
  width: min(640px, calc(100vw - 36px));
  max-height: calc(100vh - 36px);
  padding: 28px;
  overflow-y: auto;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 28px 90px rgba(10,28,34,.35);
  transform: translate(-50%, -50%);
}
.cookie-modal-header,
.a11y-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.cookie-modal-eyebrow,
.a11y-panel-eyebrow { margin: 0 0 4px; color: var(--accent); font-size: .66rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.cookie-modal h2,
.a11y-panel h2 { margin: 0; font-size: 1.35rem; }
.cookie-modal > p { margin-bottom: 15px; color: var(--ink-soft); font-size: .79rem; }
.cookie-modal-close,
.a11y-panel-close { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 50%; }
.cookie-modal-close:hover,
.a11y-panel-close:hover { color: var(--white); background: var(--primary); border-color: var(--primary); }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px; margin-top: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.cookie-category h3,
.cookie-category p { margin: 0; }
.cookie-category h3,
.cookie-category strong { display: block; color: var(--ink); font-size: .82rem; font-weight: 800; }
.cookie-category p,
.cookie-category small { display: block; margin-top: 2px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.cookie-category-required { flex: 0 0 auto; color: var(--success); font-size: .68rem; font-weight: 800; }
.cookie-category-toggle { cursor: pointer; }
.cookie-category-toggle.is-disabled { cursor: default; opacity: .72; }
.cookie-switch { position: relative; flex: 0 0 48px; width: 48px; height: 28px; }
.cookie-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cookie-switch span { position: absolute; inset: 0; background: #cdd5d7; border: 1px solid #b6c1c4; border-radius: 999px; transition: background .2s ease, border-color .2s ease; }
.cookie-switch span::after { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: var(--white); border-radius: 50%; box-shadow: 0 2px 5px rgba(20,36,42,.23); content: ""; transition: transform .2s ease; }
.cookie-switch input:checked + span { background: var(--primary); border-color: var(--primary); }
.cookie-switch input:checked + span::after { transform: translateX(20px); }
.cookie-switch input:focus-visible + span { outline: 3px solid rgba(217,86,28,.32); outline-offset: 3px; }
.cookie-modal .cookie-modal-note { padding: 10px 12px; margin-top: 12px; color: var(--ink-soft); background: var(--accent-soft); border-radius: 9px; }
.cookie-modal-actions { padding-top: 7px; }
.cookie-modal-open { overflow: hidden; }

/* Accessibility controls */
.a11y-panel {
  position: fixed;
  z-index: 10045;
  top: 54px;
  right: max(18px, calc((100vw - 1320px) / 2));
  width: min(390px, calc(100vw - 30px));
  max-height: calc(100vh - 72px);
  padding: 23px;
  overflow-y: auto;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line-dark);
  border-radius: 16px;
  box-shadow: 0 22px 70px rgba(12,35,43,.28);
}
.a11y-control { padding: 14px; margin: 16px 0 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }
.a11y-control-label { display: block; margin-bottom: 9px; color: var(--ink); font-size: .76rem; font-weight: 800; }
.a11y-size { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; overflow: hidden; background: var(--white); border: 1px solid var(--line-dark); border-radius: 9px; }
.a11y-size button { min-height: 42px; padding: 0; color: var(--primary); background: var(--white); border: 0; font-size: .82rem; font-weight: 850; }
.a11y-size button:hover { color: var(--white); background: var(--primary); }
.a11y-size button:disabled { color: var(--muted); background: var(--surface); opacity: .65; }
.a11y-size output { color: var(--ink); font-size: .76rem; font-weight: 800; text-align: center; }
.a11y-option { display: grid; grid-template-columns: 44px 1fr; align-items: center; gap: 12px; width: 100%; min-height: 66px; padding: 10px 12px; margin-top: 9px; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 11px; text-align: left; }
.a11y-option:hover,
.a11y-option[aria-pressed="true"] { background: var(--surface); border-color: var(--primary); }
.a11y-option[aria-pressed="true"]::after { position: absolute; }
.a11y-option-sample { display: grid; place-items: center; width: 42px; height: 42px; color: var(--primary); background: #eaf1f3; border-radius: 9px; font-weight: 850; }
.a11y-option-sample-contrast { color: #fff; background: #111; }
.a11y-option strong,
.a11y-option small { display: block; }
.a11y-option strong { color: var(--ink); font-size: .77rem; }
.a11y-option small { margin-top: 2px; color: var(--muted); font-size: .67rem; line-height: 1.4; }
.a11y-panel-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-top: 16px; margin-top: 16px; border-top: 1px solid var(--line); }
.a11y-reset { padding: 0; color: var(--primary); background: transparent; border: 0; font-size: .7rem; font-weight: 800; }
.a11y-reset i { margin-right: 5px; }
.a11y-panel-footer a { font-size: .68rem; text-decoration: underline; text-underline-offset: 3px; }

/* Policy pages */
.policy-page { color: var(--ink-soft); }
.policy-intro { padding: clamp(20px, 3vw, 32px); margin-bottom: 28px; background: linear-gradient(135deg, var(--surface), var(--accent-soft)); border: 1px solid var(--line); border-radius: var(--radius); }
.policy-intro p:last-child { margin-bottom: 0; }
.policy-updated { color: var(--accent); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.policy-toc { padding: 19px 22px; margin: 0 0 30px; background: var(--surface); border-left: 4px solid var(--primary); border-radius: 0 10px 10px 0; }
.policy-toc strong { display: block; margin-bottom: 7px; color: var(--ink); }
.policy-toc ol { margin: 0; columns: 2; column-gap: 34px; }
.policy-toc li { break-inside: avoid; margin-bottom: 4px; }
.policy-section { padding-top: 5px; scroll-margin-top: 24px; }
.information-content .policy-section h2 { padding-bottom: 8px; margin-top: 34px; border-bottom: 1px solid var(--line); font-size: 1.6rem !important; }
.information-content .policy-section h3 { margin-top: 22px; font-size: 1rem !important; }
.policy-note { padding: 15px 17px; background: var(--accent-soft); border: 1px solid rgba(217,86,28,.17); border-radius: 10px; }
.policy-table-wrap { max-width: 100%; margin: 15px 0 24px; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.policy-page table { width: 100%; min-width: 720px; margin: 0; border-collapse: collapse; font-size: .76rem; }
.policy-page th,
.policy-page td { padding: 11px 13px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.policy-page th { color: var(--white); background: var(--primary); font-weight: 800; }
.policy-page tbody tr:nth-child(even) { background: var(--surface); }
.policy-page tbody tr:last-child td { border-bottom: 0; }
.policy-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.policy-button { display: inline-flex; align-items: center; justify-content: center; min-height: 43px; padding: 8px 15px; color: var(--primary); background: var(--white); border: 1px solid var(--primary); border-radius: 8px; font-size: .76rem; font-weight: 800; }
.policy-button:hover,
.policy-button:focus-visible { color: var(--white); background: var(--primary); }

/* User-selected clearer presentation */
html.a11y-readable body,
html.a11y-readable button,
html.a11y-readable input,
html.a11y-readable select,
html.a11y-readable textarea,
html.a11y-readable h1,
html.a11y-readable h2,
html.a11y-readable h3,
html.a11y-readable h4,
html.a11y-readable h5,
html.a11y-readable h6 { font-family: Arial, Helvetica, sans-serif !important; }
html.a11y-readable body { line-height: 1.82; letter-spacing: .015em; word-spacing: .04em; }
html.a11y-readable h1,
html.a11y-readable h2,
html.a11y-readable h3,
html.a11y-readable h4,
html.a11y-readable h5,
html.a11y-readable h6 { line-height: 1.3; letter-spacing: 0; }
html.a11y-readable a:not(.btn):not(.brand):not(.room-card):not(.product-card-image) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px; }
html.a11y-readable *,
html.a11y-readable *::before,
html.a11y-readable *::after { text-shadow: none !important; animation: none !important; transition: none !important; }
html.a11y-readable .hero-photo::after,
html.a11y-readable .mega-menu-intro::after { display: none !important; }

/* User-selected high contrast */
html.a11y-high-contrast { --ink: #fff; --ink-soft: #fff; --muted: #e8e8e8; --primary: #ffe45c; --primary-dark: #ffe45c; --accent: #7de7ff; --accent-soft: #111; --cream: #000; --surface: #090909; --line: #fff; --line-dark: #fff; --success: #8dffb7; --danger: #ff9a93; --shadow-sm: none; --shadow-md: none; }
html.a11y-high-contrast body,
html.a11y-high-contrast .announcement,
html.a11y-high-contrast .site-header,
html.a11y-high-contrast .navigation-shell,
html.a11y-high-contrast .mega-menu,
html.a11y-high-contrast .mega-menu-intro,
html.a11y-high-contrast .help-strip,
html.a11y-high-contrast .home-band,
html.a11y-high-contrast .home-hero,
html.a11y-high-contrast .service-strip,
html.a11y-high-contrast .hero-photo-label,
html.a11y-high-contrast .site-footer,
html.a11y-high-contrast .cookie-banner,
html.a11y-high-contrast .cookie-modal,
html.a11y-high-contrast .a11y-panel,
html.a11y-high-contrast [class*="-card"],
html.a11y-high-contrast [class*="-panel"],
html.a11y-high-contrast [class*="-summary"],
html.a11y-high-contrast .policy-intro,
html.a11y-high-contrast .policy-toc,
html.a11y-high-contrast .breadcrumb,
html.a11y-high-contrast .about-hero,
html.a11y-high-contrast .about-story,
html.a11y-high-contrast .about-directions,
html.a11y-high-contrast .about-quality,
html.a11y-high-contrast .about-visit,
html.a11y-high-contrast .about-hours,
html.a11y-high-contrast .about-secondary-image,
html.a11y-high-contrast .about-visual-note,
html.a11y-high-contrast .about-location-label,
html.a11y-high-contrast .policy-page tbody tr { color: #fff !important; background: #000 !important; background-image: none !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast h1,
html.a11y-high-contrast h2,
html.a11y-high-contrast h3,
html.a11y-high-contrast h4,
html.a11y-high-contrast h5,
html.a11y-high-contrast h6,
html.a11y-high-contrast p,
html.a11y-high-contrast li,
html.a11y-high-contrast label,
html.a11y-high-contrast small,
html.a11y-high-contrast strong,
html.a11y-high-contrast output { color: #fff !important; }
html.a11y-high-contrast a { color: #ffe45c !important; text-decoration: underline; text-underline-offset: 3px; }
html.a11y-high-contrast input,
html.a11y-high-contrast select,
html.a11y-high-contrast textarea { color: #fff !important; background: #000 !important; border: 2px solid #fff !important; }
html.a11y-high-contrast input::placeholder,
html.a11y-high-contrast textarea::placeholder { color: #ddd !important; opacity: 1; }
html.a11y-high-contrast button,
html.a11y-high-contrast .btn,
html.a11y-high-contrast .policy-button { color: #ffe45c !important; background: #000 !important; border: 2px solid #ffe45c !important; }
html.a11y-high-contrast button:hover,
html.a11y-high-contrast .btn:hover,
html.a11y-high-contrast .policy-button:hover { color: #000 !important; background: #ffe45c !important; }
html.a11y-high-contrast a:focus-visible,
html.a11y-high-contrast button:focus-visible,
html.a11y-high-contrast input:focus-visible,
html.a11y-high-contrast select:focus-visible,
html.a11y-high-contrast textarea:focus-visible { outline: 4px solid #7de7ff !important; outline-offset: 3px; }
html.a11y-high-contrast .brand img { filter: brightness(0) invert(1); }
html.a11y-high-contrast .product-badge,
html.a11y-high-contrast .cart-count { color: #000 !important; background: #ffe45c !important; border-color: #ffe45c !important; }
html.a11y-high-contrast .search-suggestions,
html.a11y-high-contrast .search-suggestions-head,
html.a11y-high-contrast .search-suggestion,
html.a11y-high-contrast .search-suggestions-state { color: #fff !important; background: #000 !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .search-suggestion:hover,
html.a11y-high-contrast .search-suggestion:focus-visible,
html.a11y-high-contrast .search-suggestion.is-active { background: #161616 !important; }
html.a11y-high-contrast .search-suggestion-image { background: #fff !important; border-color: #fff !important; }
html.a11y-high-contrast .search-suggestions-head span:not(:empty),
html.a11y-high-contrast .search-suggestions-all { color: #000 !important; background: #ffe45c !important; border-color: #fff !important; }
html.a11y-high-contrast .cookie-overlay { background: rgba(255,255,255,.35); }
html.a11y-high-contrast .policy-page th { color: #000 !important; background: #ffe45c !important; }
html.a11y-high-contrast .breadcrumb::before { background: #000 !important; border-color: #fff !important; box-shadow: 0 0 0 100vmax #000 !important; }
html.a11y-high-contrast .breadcrumb > li.breadcrumb-item + li::before { border-color: #ffe45c !important; }
html.a11y-high-contrast .breadcrumb a[aria-current="page"] { color: #fff !important; background: transparent !important; }
html.a11y-high-contrast .about-main-image,
html.a11y-high-contrast .about-secondary-image,
html.a11y-high-contrast .about-quality-image { border: 2px solid #fff !important; }
html.a11y-high-contrast .about-map-pin { color: #000 !important; background: #ffe45c !important; border-color: #fff !important; }
html.a11y-high-contrast .hero-photo { border: 2px solid #fff !important; }
html.a11y-high-contrast .hero-photo::after { background: linear-gradient(transparent 25%, #000) !important; }
html.a11y-high-contrast .hero-eyebrow { color: #ffe45c !important; border-color: #fff !important; }
html.a11y-high-contrast .hero-photo-label > span,
html.a11y-high-contrast .hero-eyebrow > span { background: #ffe45c !important; box-shadow: none !important; }
html.a11y-high-contrast .about-direction-card > span,
html.a11y-high-contrast .about-contact-list li > i { color: #ffe45c !important; background: #000 !important; border: 1px solid #fff; }
html.a11y-high-contrast .product-main-image,
html.a11y-high-contrast .product-thumbnails a,
html.a11y-high-contrast .product-tab-panels,
html.a11y-high-contrast .product-description-entry,
html.a11y-high-contrast .product-description-copy > :where(ul, ol, table, blockquote),
html.a11y-high-contrast .ai-review-highlights,
html.a11y-high-contrast .ai-review-verdict,
html.a11y-high-contrast .ai-review-disclosure,
html.a11y-high-contrast .stock-status { color: #fff !important; background: #000 !important; background-image: none !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .product-image-zoom,
html.a11y-high-contrast .product-description-header-icon,
html.a11y-high-contrast .product-description-entry::before,
html.a11y-high-contrast .ai-review-icon,
html.a11y-high-contrast .ai-review-highlights li i { color: #000 !important; background: #ffe45c !important; border-color: #fff !important; }
html.a11y-high-contrast .product-description-entry.is-heading { color: #fff !important; background: transparent !important; }
html.a11y-high-contrast .product-description-entry.is-link a { color: #7de7ff !important; text-decoration-color: #7de7ff; }
html.a11y-high-contrast .ai-review-basis { color: #ffe45c !important; background: #000 !important; border-color: #fff !important; }
html.a11y-high-contrast #tab-specification th { color: #000 !important; background: #ffe45c !important; border-color: #fff !important; }
html.a11y-high-contrast .artea-leasing-banner { color: #ffe45c !important; background: #000 !important; border: 2px solid #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .artea-leasing-action { color: #ffe45c !important; background: #000 !important; border-top: 2px solid #fff; }
html.a11y-high-contrast .artea-leasing-action strong,
html.a11y-high-contrast .artea-leasing-action small { color: #ffe45c !important; }
html.a11y-high-contrast .product-sticky-bar { color: #fff !important; background: #000 !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .product-sticky-kicker { color: #ffe45c !important; }

html.a11y-enlarged .utility-links { display: none; }
html.a11y-enlarged .header-inner { grid-template-columns: 190px minmax(240px, 1fr) auto; }
html.a11y-enlarged .green-energy { display: none; }
html.a11y-enlarged .footer-intro,
html.a11y-enlarged .footer-grid { grid-template-columns: 1fr; }
html.a11y-enlarged .footer-intro { align-items: start; }
html.a11y-enlarged .footer-intro-actions { justify-content: flex-start; }
html.a11y-enlarged .footer-link-groups { grid-template-columns: 1fr; }
html.a11y-enlarged .about-hero-grid,
html.a11y-enlarged .about-story-grid,
html.a11y-enlarged .about-direction-grid,
html.a11y-enlarged .about-quality,
html.a11y-enlarged .about-visit-grid,
html.a11y-enlarged .home-hero,
html.a11y-enlarged .service-strip,
html.a11y-enlarged .hero-product-links,
html.a11y-enlarged .product-description-copy,
html.a11y-enlarged .about-contact-list,
html.a11y-enlarged .about-hours { grid-template-columns: 1fr; }
html.a11y-enlarged .hero-photo { min-height: 440px; margin-left: 18px; }
html.a11y-enlarged .hero-product-thumb { display: none; }
html.a11y-enlarged .hero-product-card { grid-template-columns: minmax(0, 1fr) auto; }
html.a11y-enlarged .about-story-heading { position: static; }
html.a11y-enlarged .about-story-copy { columns: 1; column-rule: 0; }
html.a11y-enlarged .about-facts { grid-template-columns: 1fr; }
html.a11y-enlarged .about-facts > div { padding: 12px 0; }
html.a11y-enlarged .about-facts > div + div { padding-left: 0; border-top: 1px solid rgba(22,75,95,.13); border-left: 0; }
html.a11y-enlarged .about-hours ul { grid-template-columns: 1fr; }
html.a11y-enlarged .about-hours li { border-top: 1px solid rgba(255,255,255,.16); border-left: 0; text-align: left; }
html.a11y-enlarged .product-main,
html.a11y-enlarged .ai-review-layout { grid-template-columns: 1fr; }
html.a11y-enlarged #product-info > .row { --bs-gutter-x: 0; margin-right: 0; margin-left: 0; }
html.a11y-enlarged #product-info > .row > #content { padding-right: 0; padding-left: 0; }
html.a11y-enlarged .purchase-card { position: static; }
html.a11y-enlarged .product-buy-row { grid-template-columns: 1fr; }
html.a11y-enlarged .artea-leasing-action { align-items: flex-start; }
html.a11y-enlarged .product-secondary-actions .btn-group { flex-direction: column; }
html.a11y-enlarged .product-secondary-actions .btn { flex: none; width: 100%; }
html.a11y-enlarged .product-sticky-inner { grid-template-columns: minmax(0, 1fr) auto; row-gap: 8px; }
html.a11y-enlarged .product-sticky-actions { grid-column: 1 / -1; }
html.a11y-enlarged body.page-product-product .footer-bottom-shell { padding-bottom: 150px; }
html.a11y-enlarged .ai-review-header { grid-template-columns: 48px minmax(0, 1fr); }
html.a11y-enlarged .ai-review-basis { grid-column: 1 / -1; justify-self: start; white-space: normal; }

/* Responsive */
@media (min-width: 992px) {
  .navigation-shell:has(.menu-category.is-open) { box-shadow: 0 10px 28px rgba(23,47,56,.08); }
}

@media (max-width: 900px) {
  .product-sticky-inner { grid-template-columns: minmax(0, 1fr) auto; row-gap: 8px; min-height: 0; padding-top: 10px; }
  .product-sticky-actions { grid-column: 1 / -1; }
  .page-product-product .footer-bottom-shell { padding-bottom: 132px; }
}

@media (max-width: 1199px) {
  .container { width: calc(100% - 44px); }
  .header-inner { grid-template-columns: 180px minmax(260px, 1fr) auto; gap: 25px; }
  .is-checkout .header-inner { grid-template-columns: 180px 1fr; }
  .green-energy { display: none; }
  .brand img { width: 165px; }
  .header-actions { gap: 14px; }
  .header-cart { min-width: 150px; }
  .utility-links a { padding-right: 8px; margin-right: 8px; font-size: .66rem; }
  .utility-actions { gap: 9px; }
  .utility-phone { font-size: .66rem; }
  #menu .nav-link { padding-right: 10px; padding-left: 10px; font-size: .78rem; }
  .mega-menu-shell { grid-template-columns: 235px minmax(0, 1fr); }
  .mega-menu-intro { padding: 27px 23px; }
  .mega-menu-content { padding: 22px; }
  .home-hero { min-height: 480px; }
  .hero-copy { padding: 44px 34px 50px; }
  .hero-photo { min-height: 448px; }
  .hero-product-card { grid-template-columns: minmax(0, 1fr) auto; }
  .hero-product-thumb { display: none; }
  .product-main { grid-template-columns: minmax(0, 1fr) minmax(365px, .72fr); gap: 30px; }
  .product-main-image { min-height: 540px; }
  .cart-product { grid-template-columns: 95px minmax(140px, 1fr) 74px 125px 75px 34px; gap: 12px; }
  .cart-product-image { width: 95px; height: 95px; }
}

@media (max-width: 991px) {
  .utility-links,
  .utility-checkout { display: none; }
  .utility-mobile { display: block; }
  .utility-mobile summary {
    display: flex;
    align-items: center;
    min-height: 40px;
    color: var(--white);
    cursor: pointer;
    font-size: .7rem;
    font-weight: 750;
    list-style: none;
  }
  .utility-mobile summary::-webkit-details-marker { display: none; }
  .utility-mobile[open] summary { color: #ffd1b9; }
  .utility-mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    display: grid;
    width: min(330px, 100%);
    padding: 10px;
    background: var(--white);
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    box-shadow: var(--shadow-md);
  }
  .utility-mobile-menu a { padding: 9px 11px; color: var(--ink); border-radius: 6px; font-size: .76rem; font-weight: 650; }
  .utility-mobile-menu a:hover { color: var(--primary); background: var(--surface); }
  .utility-mobile-menu .utility-mobile-checkout { margin-top: 5px; color: var(--white); background: var(--accent); }
  .utility-mobile-menu .utility-mobile-checkout:hover { color: var(--white); background: #bf4512; }
  .utility-mobile-menu .utility-mobile-checkout i { color: var(--white); }
  .header-inner { grid-template-columns: 180px 1fr; gap: 16px 24px; padding: 18px 0; }
  .header-search { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  .header-actions { justify-self: end; }
  .navigation-shell { background: var(--white); backdrop-filter: none; }
  #menu { display: flex; justify-content: space-between; min-height: 62px; }
  #menu #category { display: flex; align-items: center; padding: 0 3px; }
  #menu .navbar-toggler { margin: 11px 0; width: 40px; height: 40px; padding: 0; border-radius: 10px; }
  #menu .navbar-collapse {
    position: absolute;
    top: 62px;
    left: 50%;
    z-index: 50;
    width: 100vw;
    max-height: calc(100vh - 102px);
    overflow-y: auto;
    background: var(--white);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 50px rgba(23,47,56,.16);
    transform: translateX(-50%);
  }
  #menu .navbar-nav { display: block; padding: 10px 15px 18px; }
  #menu .nav-item { display: block; border-bottom: 1px solid var(--line); }
  #menu .nav-item-row { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; }
  #menu .nav-item:not(.menu-category) .nav-item-row { grid-template-columns: 1fr; }
  #menu .nav-link { justify-content: flex-start; min-height: 56px; padding: 9px 7px; border-radius: 8px; font-size: .84rem; }
  #menu .nav-link::before,
  #menu .menu-category > .nav-item-row > .nav-link::after { display: none; }
  #menu .nav-item.active > .nav-item-row > .nav-link,
  #menu .menu-category.is-open > .nav-item-row > .nav-link { color: var(--primary); background: var(--surface); }
  .nav-category-icon { display: grid; place-items: center; flex: none; width: 34px; height: 34px; margin-right: 11px; color: var(--primary); background: #eaf1f3; border-radius: 9px; font-size: .78rem; }
  .mobile-submenu-toggle {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: var(--primary);
    background: var(--white);
    border: 1px solid var(--line-dark);
    border-radius: 9px;
  }
  .mobile-submenu-toggle:hover,
  .mobile-submenu-toggle:focus-visible,
  .mobile-submenu-toggle[aria-expanded="true"] { color: var(--white); background: var(--primary); border-color: var(--primary); }
  .mobile-submenu-toggle i { font-size: .67rem; transition: transform .18s ease; }
  .mobile-submenu-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
  #menu .nav-sale .nav-link small { margin-left: auto; }
  .mega-menu {
    position: static;
    display: none;
    width: 100%;
    max-height: none;
    overflow: visible;
    background: var(--surface);
    border: 0;
    border-radius: 10px;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
    transition: none;
  }
  #menu .menu-category.is-open > .mega-menu { display: block; transform: none; }
  .mega-menu-shell { display: block; min-height: 0; }
  .mega-menu-intro { padding: 13px 14px; background: var(--cream); border: 0; border-radius: 10px 10px 0 0; }
  .mega-menu-intro::after,
  .mega-menu-icon,
  .mega-menu-intro .eyebrow,
  .mega-menu-intro h2,
  .mega-menu-intro > p:not(.eyebrow) { display: none; }
  .mega-menu-all { width: 100%; justify-content: space-between; font-size: .75rem; }
  .mega-menu-content { padding: 8px 8px 12px; }
  .mega-menu-heading { display: none; }
  .mega-menu-links,
  .mega-menu-links-wide,
  .mega-menu-links-compact { grid-template-columns: 1fr; gap: 3px; }
  .mega-menu-links a { min-height: 43px; padding: 8px 10px 8px 13px; background: var(--white); border-radius: 7px; font-size: .76rem; }
  .home-hero { grid-template-columns: 1fr 1.12fr; min-height: 450px; }
  .hero-copy { padding: 38px 28px 42px; }
  .hero-copy h1 { font-size: 2.75rem; }
  .hero-lead { font-size: .9rem; }
  .hero-actions { align-items: stretch; }
  .hero-actions .btn { width: 100%; }
  .hero-photo { min-height: 418px; }
  .hero-photo-label { top: 15px; right: 15px; }
  .hero-product-links { right: 11px; bottom: 11px; left: 11px; gap: 6px; }
  .hero-product-card { min-height: 72px; padding: 7px 8px; }
  .hero-product-arrow { display: none; }
  .hero-product-copy > strong { font-size: .62rem; }
  .hero-product-price b { font-size: .72rem; }
  .room-grid { gap: 16px; }
  .product-image { height: 220px; }
  .subcategory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalogue-toolbar { grid-template-columns: 1fr 1.2fr 110px; }
  .catalogue-toolbar .compare-link { grid-column: 1 / -1; width: max-content; }
  .catalogue-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #product-list > .col { width: 33.3333%; }
  .product-main { grid-template-columns: 1fr; gap: 34px; margin-bottom: 66px; }
  .product-main-image { min-height: 560px; }
  .purchase-card { position: static; }
  .cart-layout { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
  .invoice-grid { grid-template-columns: 1fr; }
  .invoice-summary { position: static; }
  .footer-intro { align-items: center; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px; }
  .footer-about { grid-column: 1 / -1; max-width: 620px; }
  .footer-link-groups { gap: 42px; }
}

@media (max-width: 767px) {
  body { font-size: .875rem; }
  .container { width: calc(100% - 30px); }
  main, #content { padding-bottom: 42px; }
  .announcement-inner { justify-content: space-between; min-height: 38px; }
  .announcement { font-size: .7rem; }
  .utility-actions { margin-left: 0; }
  .a11y-trigger { width: 34px; min-height: 34px; padding: 0; justify-content: center; }
  .a11y-trigger span { display: none; }
  .utility-phone span { display: none; }
  .utility-phone { display: grid; place-items: center; width: 34px; min-height: 34px; }
  .utility-phone i { margin: 0; }
  .header-inner { grid-template-columns: 145px 1fr; gap: 14px; padding: 15px 0; }
  .brand img { width: 142px; }
  .header-actions { gap: 14px; }
  .header-action span { display: none; }
  .header-action i { font-size: 1.15rem; }
  .header-cart { min-width: 0; }
  .cart-trigger { gap: 6px; }
  .cart-icon { width: 35px; height: 35px; }
  .cart-copy small { display: none; }
  .cart-copy strong { max-width: 90px; font-size: .69rem; }
  .site-search .form-control { height: 46px; padding-left: 16px; font-size: .84rem; }
  .site-search .btn { min-width: 48px; width: 48px; padding: 0; }
  .site-search .btn span { display: none; }
  .search-suggestions { top: calc(100% + 8px); border-radius: 12px; }
  .search-suggestions-list { max-height: max(190px, calc(100vh - 275px)); }
  .search-suggestions-head { min-height: 42px; padding-right: 12px; padding-left: 13px; }
  .search-suggestion {
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 11px;
    min-height: 84px;
    padding: 10px 12px;
  }
  .search-suggestion-image { width: 62px; height: 62px; }
  .search-suggestion-content { display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 4px; min-height: 62px; }
  .search-suggestion-details { gap: 3px; }
  .search-suggestion-name { font-size: .76rem; }
  .search-suggestion-model { font-size: .6rem; }
  .search-suggestion-price { align-items: flex-start; flex-direction: row; gap: 7px; }
  .search-suggestion-price strong { font-size: .74rem; }
  .search-suggestions-state { min-height: 116px; padding: 20px 16px; }
  .search-suggestions-all { min-height: 49px; padding: 10px 14px; }
  .cart-dropdown { position: fixed !important; top: 110px !important; right: 15px !important; left: 15px !important; width: auto; transform: none !important; }
  #menu .dropdown-inner { grid-template-columns: 1fr; }
  .breadcrumb { min-height: 52px; padding: .68rem 0; margin: 0 0 24px; font-size: .67rem; }
  .breadcrumb a { min-height: 0; padding: 0; }
  .breadcrumb > li.breadcrumb-item + li::before { margin-right: .58rem; margin-left: .5rem; }
  .home-band-intro::before { top: 34px; right: -145px; width: 240px; height: 240px; }
  .home-band-intro::after { display: none; }
  .hero-wrap { padding-top: 15px; }
  .home-hero { grid-template-columns: 1fr; min-height: 0; border-radius: var(--radius); }
  .hero-copy { padding: 28px 22px 26px; }
  .hero-eyebrow { margin-bottom: 14px; font-size: .58rem; }
  .hero-copy h1 { margin-bottom: 15px; font-size: 2.35rem; }
  .hero-lead { margin-bottom: 18px; font-size: .84rem; line-height: 1.55; }
  .hero-actions { align-items: stretch; width: 100%; }
  .hero-actions .btn { flex: 1; width: auto; }
  .hero-photo { min-height: 250px; margin: 0 12px 12px; border-radius: 12px; }
  .hero-photo-label { top: 12px; right: 12px; padding: 7px 9px; font-size: .58rem; }
  .hero-product-links { right: 8px; bottom: 8px; left: 8px; gap: 5px; }
  .hero-product-card { display: block; min-height: 68px; padding: 8px; border-radius: 9px; }
  .hero-product-copy { align-content: space-between; height: 100%; }
  .hero-product-copy > strong { font-size: .59rem; line-height: 1.25; }
  .hero-product-price b { font-size: .69rem; }
  .hero-product-price del { display: none; }
  .service-strip { grid-template-columns: 1fr; margin-top: -16px; padding: 5px 12px; border-radius: 13px; }
  .service-strip > div { justify-content: flex-start; padding: 13px 8px; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-strip > div:last-child { border-bottom: 0; }
  .home-band-rooms::before { top: 54px; right: -180px; width: 280px; height: 280px; }
  .home-band-rooms::after { display: none; }
  .room-section { padding-top: 58px; padding-bottom: 60px; }
  .section-heading { align-items: flex-end; margin-bottom: 20px; }
  .section-heading h2 { font-size: 1.75rem; }
  .section-link { font-size: .72rem; }
  .room-grid { grid-template-columns: repeat(2, 1fr); gap: 18px 10px; }
  .room-image { aspect-ratio: 1.18; }
  .room-card > span { padding-top: 10px; font-size: .78rem; }
  .home-band-products { padding: 56px 0 62px; }
  .home-band-products::before { opacity: .68; }
  .home-band-products::after { display: none; }
  .product-section { margin: 52px 0 58px; }
  .product-section + .product-section { padding-top: 52px; }
  .product-grid,
  #product-list { --bs-gutter-x: 10px; --bs-gutter-y: 12px; }
  .product-image { height: 155px; padding: 8px; }
  .product-badge { top: 8px; left: 8px; padding: 4px 7px; font-size: .54rem; }
  .product-badge-stock { top: auto; bottom: 7px; }
  .product-quick-actions { top: 7px; right: 7px; gap: 5px; }
  .product-quick-actions button { width: 31px; height: 31px; font-size: .72rem; }
  .product-card-body { padding: 12px; }
  .product-card-body h3 { min-height: 40px; margin-bottom: 8px; font-size: .78rem; line-height: 1.38; }
  .product-card-body .price { margin-bottom: 10px; }
  .product-card-body .price-new { font-size: 1rem; }
  .product-card-body .price-old { font-size: .7rem; }
  .product-cart-button { min-height: 40px; gap: 6px; font-size: .7rem; }
  .catalogue-page { padding-bottom: 52px; }
  .catalogue-heading { margin-bottom: 22px; }
  .subcategory-panel { margin-bottom: 22px; padding: 19px 16px; }
  .subcategory-heading { margin-bottom: 12px; }
  .subcategory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .subcategory-grid a { min-height: 40px; padding: 7px 9px; font-size: .69rem; }
  .catalogue-toolbar { grid-template-columns: 1fr 1fr; gap: 11px; padding: 14px; }
  .catalogue-filter { grid-column: 1 / -1; }
  .catalogue-toolbar .compare-link { grid-column: 1 / -1; width: 100%; }
  .catalogue-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .category-infinite-scroll { flex-wrap: wrap; min-height: 52px; margin-top: 16px; }
  .catalogue-pagination { align-items: flex-start; flex-direction: column; gap: 14px; }
  .catalogue-pagination p { align-self: stretch; text-align: left !important; }
  .category-description { margin-top: 34px; padding: 0 16px; }
  .category-description-content { grid-template-columns: 1fr; }
  #product-list > .col { width: 50%; }
  #product-search #display-control,
  #product-special #display-control,
  #product-manufacturer #display-control { padding: 12px 4px 0; }
  .manufacturer-filter { max-width: none; }
  #product-info { padding-bottom: 52px; }
  .product-sticky-inner { width: calc(100% - 30px); column-gap: 14px; }
  .product-sticky-kicker { display: none; }
  .product-sticky-summary strong { font-size: .78rem; line-height: 1.25; }
  .product-sticky-price { gap: 6px; }
  .product-sticky-price strong { font-size: 1.08rem; }
  .product-sticky-actions { gap: 8px; }
  .product-sticky-actions .btn { min-height: 46px; padding: 8px 10px; font-size: .71rem; }
  .product-main { gap: 25px; margin-bottom: 52px; }
  .product-main-image { min-height: 360px; padding: 18px; }
  .product-main-image img { max-height: 330px; }
  .product-image-zoom { right: 12px; bottom: 12px; min-height: 34px; padding: 6px 10px; font-size: .65rem; }
  .product-thumbnails { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .product-thumbnails a { flex: 0 0 76px; width: 76px; height: 70px; }
  .product-gallery-guide { margin-top: 8px; }
  .purchase-card { padding: 22px 18px; }
  .purchase-card-top { align-items: flex-start; flex-wrap: wrap; }
  .purchase-card h1 { font-size: 1.9rem; }
  .product-meta { gap: 4px 14px; }
  .product-price .price-new { font-size: 1.75rem; }
  .product-secondary-actions .btn span { display: inline; }
  .product-buy-row { grid-template-columns: 112px 1fr; }
  .product-details { margin-bottom: 52px; }
  .product-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; }
  .product-tabs .nav-link { white-space: nowrap; }
  .product-tab-panels { padding: 22px 17px; margin-top: 10px; }
  .product-description-header { gap: 12px; padding-bottom: 18px; margin-bottom: 20px; }
  .product-description-header-icon { flex-basis: 42px; width: 42px; height: 42px; border-radius: 11px; }
  .product-description-header h3 { font-size: 1.16rem; }
  .product-description-copy { grid-template-columns: 1fr; gap: 10px; }
  .product-description-entry.is-link,
  .product-description-entry.is-lead,
  .product-description-entry.is-heading { grid-column: auto; }
  .product-description-entry { padding: 13px 14px 13px 45px !important; }
  .product-description-entry::before { top: 50%; left: 14px; }
  .product-description-entry.is-lead { padding: 16px !important; font-size: .91rem !important; }
  .ai-review-header { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; padding-bottom: 18px; }
  .ai-review-icon { width: 42px; height: 42px; border-radius: 11px; }
  .ai-review-basis { grid-column: 1 / -1; justify-self: start; white-space: normal; }
  .ai-review-lead { margin: 20px 0 23px; font-size: .91rem; }
  .ai-review-layout { grid-template-columns: 1fr; gap: 22px; }
  .ai-review-highlights { padding: 18px 16px; }
  .ai-review-verdict { padding: 16px; }
  .ai-review-disclosure { margin-top: 22px; }
  .related-products { padding-top: 48px; }
  .cart-heading { margin-bottom: 22px; }
  .cart-product {
    grid-template-columns: 92px minmax(0, 1fr) 34px;
    grid-template-areas:
      "image info remove"
      "image total total"
      "quantity quantity price";
    gap: 10px 12px;
    min-height: 0;
    padding: 14px;
  }
  .cart-product-image { grid-area: image; width: 92px; height: 96px; }
  .cart-product-info { grid-area: info; align-self: start; }
  .cart-product-info h2 { font-size: .83rem; }
  .cart-product-price { grid-area: price; align-items: flex-end; }
  .cart-product-total { grid-area: total; align-items: flex-start; }
  .cart-quantity-form { grid-area: quantity; }
  .cart-quantity-form .input-group { max-width: 130px; }
  .cart-remove { grid-area: remove; align-self: start; }
  .cart-summary { padding: 22px; }
  .is-checkout .announcement { display: none; }
  .is-checkout .header-inner { grid-template-columns: 135px 1fr; min-height: 72px; padding: 12px 0; }
  .checkout-assurance { grid-column: 2; display: block; font-size: .68rem; text-align: right; }
  .checkout-assurance span { justify-content: flex-end; }
  .checkout-assurance a { display: none; }
  .invoice-page { padding-top: 22px; padding-bottom: 56px; }
  .back-link { margin-bottom: 22px; }
  .checkout-heading { margin-bottom: 24px; }
  .checkout-heading h1 { font-size: 2.2rem; }
  .checkout-heading > p:last-child { font-size: .86rem; }
  .invoice-panel { padding: 20px 16px; }
  .checkout-steps span { align-items: flex-start; padding-right: 8px; font-size: .66rem; line-height: 1.35; }
  .form-intro { display: block; }
  .form-intro p { margin-top: 5px; }
  .form-grid { grid-template-columns: 1fr; gap: 14px; }
  .invoice-next,
  .invoice-submit { width: 100%; }
  .invoice-summary { padding: 20px 16px; }
  .summary-item { grid-template-columns: 58px minmax(0, 1fr) auto; gap: 9px; }
  .summary-image { width: 58px; height: 56px; }
  .shipping-option { grid-template-columns: auto 1fr; }
  .shipping-option b { grid-column: 2; }
  .site-footer { margin-top: 18px; }
  .footer-intro { grid-template-columns: 1fr; align-items: start; gap: 24px; padding: 50px 0 33px; }
  .footer-intro h2 { font-size: clamp(2.35rem, 11.5vw, 3.2rem); }
  .footer-intro-copy > p:last-child { font-size: .79rem; }
  .footer-intro-actions { justify-content: flex-start; width: 100%; }
  .footer-button { flex: 1 1 180px; }
  .footer-highlights { grid-template-columns: 1fr; gap: 9px; padding-top: 17px; }
  .footer-highlights li { min-height: 74px; padding: 12px 14px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; padding: 38px 0 46px; }
  .footer-about { grid-column: auto; }
  .footer-about-copy { max-width: 360px; }
  .footer-link-groups { display: block; }
  .footer-section { border-top: 1px solid rgba(255,255,255,.14); }
  .footer-heading { position: relative; padding: 17px 38px 17px 0; margin: 0; cursor: pointer; }
  .footer-heading::after { position: absolute; top: 14px; right: 4px; color: #ffb38d; content: "+"; font-size: 1.25rem; font-weight: 500; line-height: 1; }
  .footer-section[open] > .footer-heading::after { content: "−"; }
  .footer-collapsible { padding: 0 0 18px; }
  .footer-menu li { margin-bottom: 5px; }
  .footer-menu a { display: flex; min-height: 36px; font-size: .75rem; }
  .footer-contact-section { margin-top: -10px; }
  .footer-contact { padding-top: 2px; }
  .footer-bottom { min-height: 0; padding: 18px 0; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .footer-legal { justify-content: flex-start; }
}

@media (max-width: 420px) {
  .header-inner { grid-template-columns: 125px minmax(0, 1fr); }
  .brand img { width: 122px; }
  .header-actions { gap: 10px; }
  .cart-copy strong { max-width: 76px; }
  .hero-actions { display: grid; }
  .hero-actions .btn { width: 100%; }
  .hero-photo-label { display: none; }
  .hero-product-card { padding-right: 7px; padding-left: 7px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .room-grid { gap-right: 8px; }
  .product-card-body { padding: 10px; }
  .product-quick-actions button { width: 29px; height: 29px; }
  .product-cart-button i { display: none; }
  .product-buy-row { grid-template-columns: 104px 1fr; }
  #button-cart { padding: 8px 10px; font-size: .8rem; }
}

@media (max-width: 340px) {
  .header-inner { grid-template-columns: 125px minmax(0, 1fr); gap: 8px; }
  .header-actions { min-width: 0; gap: 7px; }
  .header-cart,
  #cart { min-width: 0; }
  .cart-copy { display: none; }
  .subcategory-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media (max-width: 840px) {
  .cookie-banner { align-items: stretch; flex-direction: column; gap: 14px; bottom: 14px; padding: 18px; }
  .cookie-banner-actions { justify-content: flex-start; }
  .cookie-banner-actions .cookie-button { flex: 1 1 145px; }
  .policy-toc ol { columns: 1; }
  html.a11y-enlarged .header-inner { grid-template-columns: 145px 1fr; }
  html.a11y-enlarged h1,
  html.a11y-enlarged h2,
  html.a11y-enlarged h3 { overflow-wrap: anywhere; hyphens: auto; }
  html.a11y-enlarged .section-heading { align-items: flex-start; flex-direction: column; }
  html.a11y-enlarged .section-heading > div { width: 100%; min-width: 0; }
  html.a11y-enlarged .room-grid,
  html.a11y-enlarged .footer-grid { grid-template-columns: 1fr; }
  html.a11y-enlarged .footer-intro { grid-template-columns: minmax(0, 1fr); }
  html.a11y-enlarged .footer-intro-copy,
  html.a11y-enlarged .footer-intro-actions { min-width: 0; }
  html.a11y-enlarged .footer-button { max-width: 100%; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  html.a11y-enlarged .container > .row { --bs-gutter-x: 30px; }
  html.a11y-enlarged .subcategory-grid { grid-template-columns: minmax(0, 1fr); }
  html.a11y-enlarged .subcategory-grid a { min-width: 0; overflow-wrap: anywhere; }
  html.a11y-enlarged .catalogue-toolbar { grid-template-columns: minmax(0, 1fr); }
  html.a11y-enlarged .catalogue-filter,
  html.a11y-enlarged .catalogue-toolbar .compare-link { grid-column: 1; width: 100%; min-width: 0; }
  html.a11y-enlarged .catalogue-toolbar .form-select,
  html.a11y-enlarged .catalogue-toolbar .compare-link { white-space: normal; }
  html.a11y-enlarged #product-list.catalogue-product-grid { grid-template-columns: minmax(0, 1fr); }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    --bs-gutter-x: 0;
    margin-right: 0;
    margin-left: 0;
    padding: 12px;
  }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control > [class*="col"] {
    grid-column: 1;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-left: 0;
  }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control > .d-md-block { display: none !important; }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control .mb-3 { margin-bottom: 0 !important; }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control .input-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    min-width: 0;
  }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #display-control :is(.input-group-text, .form-select) {
    width: 100%;
    min-width: 0;
    border-radius: var(--radius-sm);
  }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #product-list + .row {
    --bs-gutter-x: 0;
    margin-right: 0;
    margin-left: 0;
  }
  html.a11y-enlarged :is(#product-search, #product-special, #product-manufacturer) #product-list + .row > [class*="col"] {
    width: 100%;
    padding-right: 0;
    padding-left: 0;
    text-align: left !important;
  }
  html.a11y-enlarged .product-grid > .col,
  html.a11y-enlarged #product-list > .col { flex: 0 0 100%; width: 100%; }
  html.a11y-enlarged .cart-copy { display: none; }
}

@media (max-width: 520px) {
  .cookie-banner { width: calc(100vw - 20px); bottom: 10px; }
  .cookie-banner-icon { display: none; }
  .cookie-banner-actions { display: grid; grid-template-columns: 1fr; }
  .cookie-modal { width: calc(100vw - 20px); max-height: calc(100vh - 20px); padding: 20px 16px; }
  .cookie-category { align-items: flex-start; }
  .cookie-category-required { max-width: 90px; text-align: right; }
  .cookie-modal-actions { display: grid; grid-template-columns: 1fr; }
  .a11y-panel { top: 46px; right: 10px; width: calc(100vw - 20px); max-height: calc(100vh - 58px); padding: 19px 16px; }
  .policy-table-wrap { margin-right: -2px; }
}

/* Information pages responsiveness and accessibility */
.information-page + .site-footer { margin-top: 0; }

html.a11y-enlarged .information-hero-grid,
html.a11y-enlarged .information-layout,
html.a11y-enlarged .payment-method-grid,
html.a11y-enlarged .delivery-options-grid,
html.a11y-enlarged .information-section-heading-split,
html.a11y-enlarged .funding-project-copy,
html.a11y-enlarged .funding-project-energy { grid-template-columns: 1fr; }
html.a11y-enlarged .information-sidebar { position: static; }
html.a11y-enlarged .information-hero-mark { display: none; }
html.a11y-enlarged .information-section-nav a { grid-template-columns: 42px minmax(0, 1fr) 18px; }
html.a11y-enlarged .project-gallery { grid-template-columns: 1fr; }
html.a11y-enlarged .project-card-featured { grid-column: auto; aspect-ratio: 1.15; }
html.a11y-enlarged .bank-details-list,
html.a11y-enlarged .funding-facts,
html.a11y-enlarged .funding-energy-stats { grid-template-columns: 1fr; }
html.a11y-enlarged .bank-details-list > div:nth-child(even),
html.a11y-enlarged .funding-facts > div + div { padding-left: 0; border-left: 0; }
html.a11y-enlarged .projects-cta,
html.a11y-enlarged .information-action-strip { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
html.a11y-enlarged .projects-cta .btn,
html.a11y-enlarged .information-action-strip .btn { width: 100%; }

html.a11y-high-contrast .information-hero,
html.a11y-high-contrast .information-body-section,
html.a11y-high-contrast .information-section-nav,
html.a11y-high-contrast .funding-project,
html.a11y-high-contrast .funding-facts,
html.a11y-high-contrast .funding-facts > div,
html.a11y-high-contrast .funding-energy-stats,
html.a11y-high-contrast .funding-energy-stats > div,
html.a11y-high-contrast .information-action-strip,
html.a11y-high-contrast .delivery-hours { color: #fff !important; background: #000 !important; background-image: none !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .information-hero-mark::before,
html.a11y-high-contrast .information-hero-mark::after,
html.a11y-high-contrast .information-hero-orb { border-color: #fff !important; }
html.a11y-high-contrast .information-hero-mark > span,
html.a11y-high-contrast .information-section-nav a.active { color: #000 !important; background: #ffe45c !important; }

@media (max-width: 1199px) {
  .information-layout { grid-template-columns: 235px minmax(0, 1fr); gap: 28px; }
  .information-main-card { padding: 31px; }
  .information-section-heading-split { grid-template-columns: minmax(0, 1fr) 270px; gap: 25px; }
  .funding-project-energy { grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); }
}

@media (max-width: 991px) {
  .information-hero { min-height: 260px; padding: 38px 0 52px; }
  .information-hero-grid { grid-template-columns: minmax(0, 1fr) 145px; gap: 45px; }
  .information-hero-mark { width: 140px; height: 140px; }
  .information-hero-mark > span { width: 72px; height: 72px; font-size: 1.4rem; }
  .information-layout { grid-template-columns: 1fr; }
  .information-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .information-section-nav,
  .information-help-card { height: 100%; }
  .information-quick-links { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 2px 0; }
  .information-quick-links a { justify-content: center; }
  .information-main-card { padding: 37px; }
  .project-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .projects-cta { grid-template-columns: 56px minmax(0, 1fr); }
  .projects-cta .btn { grid-column: 2; justify-self: start; }
  .funding-project-energy { grid-template-columns: 1fr; }
  .funding-energy-visual { min-height: 360px; }
}

@media (max-width: 767px) {
  .information-page { padding-bottom: 0; }
  .information-hero { min-height: 0; padding: 24px 0 38px; }
  .information-hero-grid { grid-template-columns: 1fr; }
  .information-hero-copy h1 { margin-bottom: 12px; font-size: clamp(2.55rem, 12vw, 3.35rem); }
  .information-hero-copy > p:last-child { font-size: .84rem; line-height: 1.65; }
  .information-hero-mark { display: none; }
  .information-body-section { padding: 46px 0 70px; }
  .information-sidebar { display: block; }
  .information-section-nav { padding: 15px 10px 10px; }
  .information-section-nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .information-section-nav a { grid-template-columns: 31px minmax(0, 1fr); gap: 8px; min-height: 51px; padding: 7px 8px; font-size: .68rem; }
  .information-section-nav a > span { width: 30px; height: 30px; font-size: .68rem; }
  .information-section-nav a > i { display: none; }
  .information-help-card { padding: 22px 20px; margin-top: 12px; }
  .information-help-icon { margin-bottom: 18px; }
  .information-help-card h2 { font-size: 1.35rem; }
  .information-quick-links { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 10px 3px 0; }
  .information-quick-links a { justify-content: flex-start; padding: 4px; font-size: .64rem; }
  .information-main-card { padding: 22px 18px; border-radius: 15px; }
  .information-content { font-size: .84rem; }
  .information-section-heading { margin-bottom: 23px; }
  .information-section-heading h2 { font-size: 1.95rem; }
  .payment-method-grid,
  .delivery-options-grid,
  .information-section-heading-split,
  .funding-project-copy { grid-template-columns: 1fr; }
  .payment-method-card { min-height: 0; padding: 19px 17px; }
  .bank-details-panel { padding: 23px 18px; margin-top: 20px; }
  .bank-details-header { padding-bottom: 18px; }
  .bank-details-header h2 { font-size: 1.5rem; }
  .bank-details-list { grid-template-columns: 1fr; }
  .bank-details-list > div,
  .bank-details-list > div:nth-child(even) { padding: 14px 0; border-left: 0; }
  .information-action-strip { align-items: stretch; flex-direction: column; padding: 21px 18px; }
  .information-action-strip .btn { width: 100%; }
  .delivery-option-card { min-height: 0; padding: 21px 18px; }
  .delivery-option-card > header { margin-bottom: 22px; }
  .information-section-heading-split { gap: 7px; }
  .project-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .project-card { border-radius: 9px; }
  .project-card-featured { aspect-ratio: 2.05; }
  .project-card figcaption { padding: 18px 12px 11px; }
  .project-card figcaption strong { font-size: .72rem; }
  .projects-cta { grid-template-columns: 46px minmax(0, 1fr); gap: 14px; padding: 21px 18px; }
  .projects-cta > span { width: 45px; height: 45px; border-radius: 12px; }
  .projects-cta h2 { font-size: 1.25rem; }
  .projects-cta .btn { grid-column: 1 / -1; width: 100%; }
  .funding-project-header { gap: 16px; padding: 24px 20px 19px; }
  .funding-project-header h2 { font-size: 1.65rem; }
  .funding-project-icon { flex-basis: 45px; width: 45px; height: 45px; }
  .funding-banner { padding: 8px; margin: 0 20px; }
  .funding-project-copy { gap: 13px; padding: 22px 20px 3px; }
  .funding-facts { grid-template-columns: 1fr; margin: 22px 20px 24px; }
  .funding-facts > div { padding: 14px 16px; }
  .funding-facts > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .funding-energy-visual { min-height: 255px; }
  .funding-energy-content { padding: 25px 20px; }
  .funding-energy-content h2 { font-size: 1.75rem; }
  .funding-energy-stats { margin-top: 20px; }
  .funding-programme-logo { width: 190px; }
  .information-page-policy .information-main-card { padding: 19px 16px; }
}

@media (max-width: 420px) {
  .information-section-nav a { font-size: .64rem; }
  .information-quick-links { grid-template-columns: 1fr; }
  .project-card figcaption span { display: none; }
  .funding-energy-stats { grid-template-columns: 1fr; }
}

@media (max-width: 340px) {
  html.a11y-enlarged .header-inner { grid-template-columns: 105px minmax(0, 1fr); gap: 6px; }
  html.a11y-enlarged .brand img { width: 102px; }
  html.a11y-enlarged .header-actions { gap: 7px; }
  html.a11y-enlarged .header-action i { font-size: .9rem; }
  html.a11y-enlarged .cart-icon { width: 32px; height: 32px; }
}

/* Standalone 404 page */
.error-page {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-bottom: 84px;
  background:
    radial-gradient(circle at 8% 16%, rgba(217, 86, 28, .08), transparent 25%),
    radial-gradient(circle at 93% 88%, rgba(22, 75, 95, .1), transparent 28%),
    var(--surface);
}
.error-page::before {
  position: absolute;
  z-index: -1;
  top: 108px;
  left: -125px;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(217, 86, 28, .13);
  border-radius: 50%;
  content: "";
}
.error-breadcrumb { padding: 0px 0 18px; }
.error-breadcrumb .breadcrumb { margin: 0; }
.error-breadcrumb .breadcrumb-item span { color: var(--muted); }
.error-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(330px, .86fr);
  min-height: 500px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--white);
  box-shadow: 0 26px 75px rgba(23, 47, 56, .13);
}
.error-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(46px, 6vw, 84px);
}
.error-copy > .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.error-code {
  margin: 32px 0 19px;
  color: var(--accent);
  font-size: clamp(7rem, 12vw, 10.5rem);
  font-weight: 900;
  letter-spacing: -.09em;
  line-height: .68;
  text-shadow: 0 10px 26px rgba(217, 86, 28, .15);
}
.error-copy h1 {
  max-width: 570px;
  margin: 0 0 16px;
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  line-height: 1.05;
}
.error-message {
  max-width: 610px;
  margin: 0;
  font-size: .98rem;
  line-height: 1.75;
}
.error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 31px;
}
.error-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 11px 20px;
}
.error-visual {
  position: relative;
  min-height: 500px;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(217, 86, 28, .35), transparent 28%),
    linear-gradient(145deg, #0d303d 0%, #164b5f 63%, #0f3949 100%);
}
.error-visual::before {
  position: absolute;
  inset: 14%;
  border: 1px dashed rgba(255, 255, 255, .2);
  border-radius: 50%;
  content: "";
  transform: rotate(-13deg);
}
.error-visual-number {
  position: absolute;
  right: -36px;
  bottom: -30px;
  color: rgba(255, 255, 255, .055);
  font-size: clamp(10rem, 19vw, 17rem);
  font-weight: 900;
  letter-spacing: -.11em;
  line-height: .8;
}
.error-orbit {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 50%;
}
.error-orbit-one { top: -72px; right: -50px; width: 220px; height: 220px; }
.error-orbit-two { right: 16%; bottom: -120px; width: 310px; height: 310px; }
.error-visual-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 142px;
  height: 142px;
  color: var(--primary);
  background: var(--white);
  border: 10px solid rgba(255, 255, 255, .2);
  border-radius: 38px;
  box-shadow: 0 26px 55px rgba(4, 21, 28, .27);
  font-size: 3.6rem;
  transform: translate(-50%, -58%) rotate(-5deg);
}
.error-visual-mark::after {
  position: absolute;
  top: -17px;
  right: -17px;
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  color: var(--white);
  background: var(--accent);
  border: 5px solid var(--primary);
  border-radius: 50%;
  content: "!";
  font-size: 1rem;
  font-weight: 900;
}
.error-visual-label {
  position: absolute;
  left: 50%;
  bottom: 17%;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  color: var(--white);
  background: rgba(5, 27, 35, .36);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  font-size: .72rem;
  font-weight: 750;
  transform: translateX(-50%);
  white-space: nowrap;
}
.error-quick-links { margin-top: 22px; }
.error-quick-links > p {
  margin: 0 0 10px 4px;
  color: var(--muted);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.error-quick-links > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}
.error-quick-links a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 12px 16px;
  color: var(--ink);
  background: rgba(255, 255, 255, .86);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.error-quick-links a > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: var(--primary);
  background: #eaf1f3;
  border-radius: 12px;
}
.error-quick-links a > i { color: var(--accent); font-size: .72rem; transition: transform .2s ease; }
.error-quick-links a:hover { color: var(--primary); border-color: var(--line-dark); transform: translateY(-2px); }
.error-quick-links a:hover > i { transform: translateX(3px); }
.error-page + .site-footer { margin-top: 0; }

html.a11y-high-contrast .error-page,
html.a11y-high-contrast .error-card,
html.a11y-high-contrast .error-visual,
html.a11y-high-contrast .error-quick-links a { color: #fff !important; background: #000 !important; background-image: none !important; border-color: #fff !important; box-shadow: none !important; }
html.a11y-high-contrast .error-code,
html.a11y-high-contrast .error-quick-links a > i { color: #ffe45c !important; }
html.a11y-enlarged .error-card { grid-template-columns: 1fr; }
html.a11y-enlarged .error-visual { min-height: 300px; }
html.a11y-enlarged .error-quick-links > div { grid-template-columns: 1fr; }

@media (max-width: 991px) {
  .error-card { grid-template-columns: minmax(0, 1fr) 290px; min-height: 450px; }
  .error-copy { padding: 48px 42px; }
  .error-visual { min-height: 450px; }
  .error-visual-mark { width: 120px; height: 120px; border-radius: 32px; font-size: 3rem; }
}

@media (max-width: 767px) {
  .error-page { padding-bottom: 60px; }
  .error-card { grid-template-columns: 1fr; border-radius: 21px; }
  .error-copy { padding: 39px 27px 42px; }
  .error-code { margin-top: 27px; }
  .error-message { font-size: .87rem; }
  .error-visual { min-height: 240px; }
  .error-visual-mark { width: 104px; height: 104px; border-width: 7px; border-radius: 28px; font-size: 2.55rem; transform: translate(-50%, -62%) rotate(-5deg); }
  .error-visual-label { bottom: 13%; }
  .error-quick-links > div { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .error-copy { padding: 34px 21px 37px; }
  .error-copy h1 { font-size: 2rem; }
  .error-actions { display: grid; width: 100%; }
  .error-actions .btn { width: 100%; }
  .error-visual { min-height: 215px; }
}
