/* Frecon visual styles. Change the variables in :root to adjust the colour palette. */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/0569c822cab6c510.woff2) format("truetype");
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/9bd8ba39c9d55e06.woff2) format("truetype");
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/18e69125ce1f964e.woff2) format("truetype");
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/8257aa2626c379cb.woff2) format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/755fa076675e6f61.woff2) format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/e6fa40b6715a310a.woff2) format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/900670474e93d412.woff2) format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/e7e0cf40cb44208e.woff2) format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/0404e9f6404a474c.woff2) format("truetype");
}

/* Theme variables */
:root {
  --ink: #172a24;
  --green: #325b47;
  --muted: #7a837e;
  --line: #e3e7e2;
  --paper: #f7f8f5;
  --lime: #dcebc9;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: "DM Sans", Arial, sans-serif;
  color: var(--ink);
  background: #fff;
  font-size: 14px;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  color: inherit;
  border: 0;
  background: none;
}
a {
  color: inherit;
  text-decoration: none;
}
button:disabled {
  opacity: 0.5;
  cursor: wait;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #8ea983;
  outline-offset: 4px;
}
button {
  transition:
    background 0.18s,
    transform 0.18s;
}
p {
  line-height: 1.65;
  color: #6f7b73;
}
h1,
h2,
h3,
h4,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-family: "Manrope", Arial, sans-serif;
}
h1,
h2 {
  letter-spacing: -2.3px;
  font-weight: 500;
}
h3 {
  letter-spacing: -0.55px;
}
svg {
  flex-shrink: 0;
}
input,
textarea,
select {
  min-width: 0;
  max-width: 100%;
  color: var(--ink);
  background: #fff;
  border: 1px solid #dce2db;
  border-radius: 7px;
  padding: 12px 13px;
}
textarea {
  resize: vertical;
}
select {
  cursor: pointer;
}
label {
  display: block;
  font-size: 13px;
  font-weight: 500;
}
label > input:not([type="checkbox"]):not([type="file"]),
label > textarea,
label > select {
  display: block;
  width: 100%;
  margin-top: 8px;
}
input[type="checkbox"] {
  accent-color: var(--green);
}
.announcement {
  background: #233d30;
  color: #edf1e7;
  text-align: center;
  padding: 11px 18px;
  font-size: 11px;
  letter-spacing: 0.15px;
}
.announcement button {
  color: #f3f5ee;
  font-size: 11px;
  text-decoration: underline;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-left: 12px;
}
/* Public storefront navigation */
.site-header {
  height: 94px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5.5%;
  background: #fff;
}
.brand {
  font-family: Arial, sans-serif;
  font-size: 32px;
  letter-spacing: -1.8px;
  font-weight: 900;
  text-align: left;
  color: #bf2830;
  line-height: 1;
}
.brand span {
  display: block;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: 2px;
  margin-top: 8px;
  color: #526258;
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: 13px;
}
.site-header nav button {
  padding: 16px 0;
}
.site-header nav .active {
  color: #325b47;
}
.header-actions {
  display: flex;
  gap: 25px;
  align-items: center;
}
.contact-btn {
  display: flex;
  gap: 20px;
  align-items: center;
  background: #f0f3ed;
  padding: 13px 19px;
  border-radius: 4px;
  font-size: 12px;
}
/* Two-picture homepage slideshow */
.hero {
  height: 620px;
  position: relative;
  overflow: hidden;
  background: #1e352a;
  color: white;
  margin: 0 20px;
  border-radius: 8px;
}
.hero-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.025);
  transition:
    opacity 1s,
    transform 7s;
}
.hero-image.show {
  opacity: 1;
  transform: scale(1);
}
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(9, 28, 22, 0.81), rgba(9, 28, 22, 0.23) 70%),
    linear-gradient(0deg, #0b211b77, transparent 30%);
}
.hero-content {
  position: relative;
  max-width: 660px;
  padding: 94px 0 0 6.5%;
}
.eyebrow {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2.2px;
  display: flex;
  align-items: center;
  gap: 9px;
}
.eyebrow span {
  width: 5px;
  height: 5px;
  background: #d8ecba;
  border-radius: 50%;
}
.green {
  color: #5c785e;
}
.hero h1 {
  font-size: 65px;
  line-height: 1.08;
  white-space: pre-line;
  letter-spacing: -3.4px;
  margin: 25px 0 22px;
  color: #fff;
}
.hero p {
  color: #e0e6df;
  font-size: 14px;
  max-width: 380px;
  margin-bottom: 31px;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  padding: 15px 22px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 500;
  min-height: 46px;
}
.white {
  background: #fff;
  color: #253c2e;
}
.dark {
  background: #294a39;
  color: white;
}
.btn:hover {
  transform: translateY(-2px);
}
.hero-bottom {
  position: absolute;
  bottom: 33px;
  left: 6.5%;
  right: 4%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hero-bottom > span {
  font-size: 8px;
  letter-spacing: 2px;
  color: #dbe4d9;
}
.slide-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.slide-controls > span {
  font-size: 12px;
  margin-right: 16px;
}
.slide-controls i {
  font-style: normal;
  color: #b9c2b6;
  margin-left: 5px;
}
.slide-controls button {
  color: white;
}
.slide-dot {
  height: 4px;
  width: 22px;
  border-radius: 3px;
  background: #ffffff40;
  padding: 0;
}
.slide-dot.current {
  width: 38px;
  background: #e2efcd;
}
.category-strip {
  display: flex;
  justify-content: center;
  padding: 38px 4%;
  gap: 26px;
  border-bottom: 1px solid var(--line);
}
.category-strip button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  min-width: 105px;
  font-size: 11px;
}
.category-strip button:hover {
  color: #678855;
  transform: translateY(-3px);
}
.section {
  padding: 78px 7%;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 35px;
}
.section-heading h2,
.solutions h2 {
  font-size: 43px;
  line-height: 1.18;
  margin: 16px 0 0;
}
.section-heading > div:last-child {
  max-width: 290px;
}
.section-heading p {
  font-size: 13px;
  margin-bottom: 14px;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
}
/* Product cards and catalogue */
.product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.product-card {
  text-align: left;
  padding: 0;
}
.product-visual {
  height: 310px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 7px;
  background: #f4f5f1;
}
.product-visual img {
  height: 77%;
  width: 75%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform 0.4s;
}
.product-card:hover img {
  transform: scale(1.06);
}
.product-tag {
  position: absolute;
  z-index: 1;
  top: 19px;
  left: 19px;
  font-size: 9px;
  background: white;
  padding: 6px 9px;
  border-radius: 4px;
  color: #5e7059;
}
.circle-arrow {
  position: absolute;
  bottom: 17px;
  right: 17px;
  background: white;
  border-radius: 50%;
  width: 33px;
  height: 33px;
  display: grid;
  place-items: center;
}
.product-meta {
  padding: 20px 3px;
}
.product-meta > span {
  font-size: 10px;
  color: #87907f;
}
.product-meta h3 {
  font-size: 17px;
  font-weight: 600;
  margin: 8px 0 12px;
}
.product-meta p {
  font-size: 14px;
  color: #2b3c31;
  margin: 0;
}
.product-meta small,
.detail-price small {
  font-size: 9px;
  color: #849081;
  margin-left: 4px;
}
.price-note {
  font-size: 10px;
  color: #8a9187;
  margin-top: 20px;
}
.placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  color: #70816a;
}
.placeholder small {
  font-size: 9px;
  color: #9aa493;
}
.image-failed:after {
  content: "Image unavailable";
  color: #81907b;
  font-size: 11px;
}
.solutions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 22px;
  background: #f8f9f6;
}
.solution-intro {
  padding-top: 24px;
  padding-right: 35px;
}
.solution-intro p {
  margin-top: 25px;
  font-size: 13px;
}
.solution-card {
  border-radius: 8px;
  text-align: left;
  min-height: 345px;
  padding: 30px;
  position: relative;
  overflow: hidden;
}
.home-solution {
  color: #eff3e8;
  background:
    linear-gradient(35deg, #152e24f0, #25432b70),
    url("images/asset-3ea6f40a9253e87db159.jpg") center/cover;
}
.work-solution {
  background:
    linear-gradient(35deg, #182c20eb, #203b2280),
    url("images/asset-02aec842ffa7e8953dd9.jpg") center/cover;
  color: #fff;
}
.solution-card > span {
  font-size: 8px;
  letter-spacing: 1.5px;
}
.solution-card h3 {
  font-size: 35px;
  line-height: 1.2;
  font-weight: 400;
  margin-top: 70px;
}
.solution-card p {
  color: inherit;
  display: flex;
  gap: 18px;
  align-items: center;
  font-size: 11px;
  margin: 0;
}
.consult {
  position: relative;
  overflow: hidden;
  background: #e6eddd;
  margin: 28px 20px;
  border-radius: 7px;
}
.consult h2 {
  font-size: 44px;
  margin: 18px 0;
}
.consult p {
  font-size: 13px;
  max-width: 380px;
}
.consult .btn {
  margin-top: 12px;
}
.consult-sun {
  position: absolute;
  width: 330px;
  height: 330px;
  right: 10%;
  top: 50px;
  color: #bccbad;
}
footer {
  padding: 52px 7% 22px;
}
.footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 50px;
  padding-bottom: 48px;
}
.footer-top p {
  font-size: 11px;
  margin-top: 16px;
}
.footer-top h4 {
  font-size: 11px;
  margin-bottom: 20px;
}
.footer-top a,
.footer-top button {
  display: block;
  margin-bottom: 13px;
  font-size: 11px;
  color: #7a847a;
  padding: 0;
}
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: 22px;
  font-size: 9px;
  color: #8b938a;
}
.footer-bottom button {
  display: flex;
  gap: 8px;
  font-size: 10px;
  align-items: center;
}
.catalogue-page h1,
.stores h1 {
  font-size: 58px;
  margin: 20px 0 12px;
}
.catalogue-tools {
  display: flex;
  gap: 18px;
  margin-top: 35px;
  justify-content: space-between;
}
.search {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 0 15px;
  background: #fff;
  min-width: 280px;
  flex: 1;
}
.search input {
  border: 0;
  width: 100%;
  margin: 0 !important;
  padding: 14px 0;
  font-size: 12px;
  outline: none;
}
.filter-chips {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin: 25px 0;
}
.filter-chips button {
  padding: 10px 17px;
  border-radius: 22px;
  border: 1px solid var(--line);
  font-size: 11px;
}
.filter-chips .selected {
  background: #2b4d3b;
  color: white;
  border-color: #2b4d3b;
}
.result-label {
  font-size: 11px;
  color: #899184;
  margin: 25px 0 18px;
}
.store-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 40px 0;
}
.store-grid article {
  background: #f4f6f0;
  border-radius: 8px;
  padding: 30px;
}
.store-grid h3 {
  margin-top: 24px;
}
.store-grid p {
  min-height: 50px;
  font-size: 12px;
}
.store-grid a {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 12px;
}
/* Management dashboard */
.admin-layout {
  display: flex;
  background: #f7f8f5;
  min-height: 100vh;
}
.sidebar {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 235px;
  background: white;
  border-right: 1px solid var(--line);
  padding: 33px 20px;
  display: flex;
  flex-direction: column;
}
.sidebar .brand {
  margin: 0 14px 34px;
  font-size: 28px;
}
.sidebar .brand span {
  font-size: 7px;
  letter-spacing: 1.5px;
}
.workspace {
  display: flex;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 12px 10px;
  font-size: 11px;
  font-weight: 600;
}
.workspace-icon {
  background: #eaf0e1;
  padding: 8px 11px;
  border-radius: 6px;
  font-size: 16px;
}
.workspace small {
  display: block;
  font-size: 9px;
  color: #98a08f;
  margin-top: 4px;
  font-weight: 400;
}
.status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #87a36b;
  border-radius: 50%;
  margin-right: 5px;
}
.workspace .status-dot {
  margin-left: auto;
}
.nav-caption {
  font-size: 8px;
  letter-spacing: 1.8px;
  margin: 34px 15px 13px;
  color: #9da497;
}
.sidebar-link {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 14px 15px;
  text-align: left;
  font-size: 12px;
  color: #7a8577;
  border-radius: 6px;
  margin-bottom: 4px;
}
.sidebar-link.active {
  background: #ebf1e5;
  color: #31543d;
  font-weight: 600;
}
.sidebar-link small {
  margin-left: auto;
  font-weight: 400;
}
.sidebar-bottom {
  margin-top: auto;
}
.private-note {
  background: #f6f8f2;
  padding: 15px;
  border-radius: 6px;
  font-size: 10px;
  margin-bottom: 18px;
}
.private-note p {
  font-size: 10px;
  margin: 9px 0 0;
}
.sidebar-bottom > button {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 11px;
  padding: 12px;
}
.admin-main {
  margin-left: 235px;
  min-width: 0;
  flex: 1;
}
.admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 75px;
  padding: 0 40px;
  background: #ffffffba;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}
.admin-header > div,
.admin-header button {
  display: flex;
  align-items: center;
  gap: 13px;
  color: #879080;
}
.admin-header strong {
  color: #4d5e49;
  font-weight: 500;
}
.admin-header button {
  font-size: 10px;
  color: #3f583b;
}
.admin-content {
  padding: 40px;
  max-width: 1500px;
  margin: auto;
}
.admin-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin: 3px 0 31px;
}
.admin-title h1 {
  font-size: 30px;
  letter-spacing: -1.1px;
  margin: 13px 0 11px;
  font-weight: 500;
}
.admin-title p {
  font-size: 12px;
  margin: 0;
}
.admin-title .eyebrow {
  font-size: 8px;
  letter-spacing: 1.7px;
}
.dashboard-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  font-size: 10px;
  color: #7a8771;
}
.dashboard-toolbar select {
  font-size: 10px;
  padding: 9px 12px;
}
.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.metric {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
}
.metric > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  color: #6f7c68;
}
.metric svg {
  color: #a2ad97;
}
.metric strong {
  font-size: 34px;
  font-weight: 500;
  display: block;
  letter-spacing: -1.4px;
  margin: 16px 0 12px;
}
.metric small {
  font-size: 8px;
  color: #9aa291;
}
.panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.analytics-columns {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 22px;
  margin-bottom: 24px;
}
.panel-heading {
  padding: 23px 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.panel h3 {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 7px;
}
.panel-heading p {
  font-size: 10px;
  margin: 0;
}
.panel-heading > span {
  font-size: 9px;
  color: #8a9381;
}
.empty {
  padding: 65px 20px;
  text-align: center;
  color: #91a088;
}
.empty svg {
  margin-bottom: 15px;
}
.empty h3 {
  font-size: 17px;
  margin-bottom: 10px;
  color: #3a5333;
}
.empty p {
  font-size: 12px;
}
.empty.compact {
  padding: 35px 15px;
}
.compact h3 {
  font-size: 13px;
}
.compact p {
  font-size: 10px;
}
.compact .text-link {
  font-size: 10px;
  margin-top: 8px;
}
.quick-panel {
  padding: 25px;
  background: #eef3e7;
}
.quick-panel > .eyebrow {
  font-size: 8px;
}
.quick-panel > h3 {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
  margin: 19px 0 23px;
  letter-spacing: -1px;
}
.quick-panel > button {
  display: flex;
  align-items: center;
  gap: 13px;
  border-top: 1px solid #dce4d4;
  width: 100%;
  padding: 17px 0;
  text-align: left;
}
.quick-panel button > span {
  font-size: 11px;
  flex: 1;
}
.quick-panel small {
  display: block;
  font-size: 9px;
  color: #8b9780;
  margin-top: 6px;
}
.table-wrap {
  overflow-x: auto;
}
table {
  border-collapse: collapse;
  width: 100%;
  text-align: left;
  white-space: nowrap;
  font-size: 11px;
}
th {
  background: #f9faf7;
  color: #8a9481;
  font-weight: 400;
  font-size: 9px;
  padding: 13px 24px;
  border-top: 1px solid #edf0e8;
  border-bottom: 1px solid #edf0e8;
}
td {
  padding: 17px 24px;
  border-bottom: 1px solid #edf0e8;
}
tr:last-child td {
  border-bottom: 0;
}
.table-empty {
  text-align: center;
  padding: 30px;
  font-size: 11px;
}
.analytics-note {
  font-size: 9px;
  color: #9aa18f;
  padding: 18px 24px;
  border-top: 1px solid var(--line);
  margin: 0;
  line-height: 1.8;
}
.subtle-btn {
  border: 1px solid var(--line);
  padding: 8px 11px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 5px;
  font-size: 9px;
}
.chart {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 15px 25px 30px;
  overflow: auto;
  min-height: 210px;
}
.chart > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  min-width: 22px;
  gap: 8px;
}
.chart i {
  display: block;
  background: #91ac7a;
  width: 100%;
  max-width: 35px;
  border-radius: 4px 4px 0 0;
}
.chart span,
.chart small {
  font-size: 9px;
  color: #86977a;
}
.product-toolbar {
  display: flex;
  gap: 15px;
  align-items: center;
  padding: 20px 24px;
}
.product-toolbar .search {
  min-width: 200px;
}
.product-toolbar select {
  font-size: 11px;
}
.product-toolbar > span {
  font-size: 10px;
  color: #92a083;
}
.table-product {
  display: flex;
  align-items: center;
  gap: 13px;
  text-align: left;
  padding: 0;
  font-size: 11px;
}
.table-product small {
  display: block;
  margin-top: 6px;
  color: #9aa28f;
  font-size: 9px;
}
.table-thumbnail {
  height: 45px;
  width: 45px;
  background: #f6f7f2;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.table-thumbnail img {
  height: 35px;
  width: 35px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.table-thumbnail .placeholder svg {
  width: 22px;
  height: 22px;
}
.table-thumbnail small {
  display: none;
}
.tags {
  display: flex;
  gap: 4px;
}
.tags span {
  font-size: 9px;
  background: #f2f5ed;
  padding: 5px 7px;
  border-radius: 4px;
}
.badge {
  font-size: 9px;
  padding: 5px 9px;
  border-radius: 15px;
  background: #f5f2e9;
  color: #9d8960;
}
.badge.published {
  background: #edf4e5;
  color: #618142;
}
.actions {
  display: flex;
  align-items: center;
  gap: 13px;
}
.actions button {
  font-size: 10px;
  color: #799067;
}
.category-admin-top {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  margin-bottom: 20px;
}
.category-form {
  padding: 26px;
}
.category-form p {
  font-size: 11px;
}
.category-form label {
  margin: 23px 0 18px;
}
.category-help {
  padding: 25px;
  color: #8b9b7e;
}
.category-help h3 {
  font-size: 24px;
  font-weight: 500;
  color: #45613c;
  line-height: 1.4;
  margin-top: 16px;
}
.category-help p {
  font-size: 12px;
  max-width: 350px;
}
.category-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 17px;
}
.category-tile {
  padding: 24px;
}
.category-tile > svg {
  color: #829973;
  margin-bottom: 19px;
}
.category-tile h3 {
  font-size: 15px;
}
.category-tile p {
  font-size: 11px;
}
.category-tile > div {
  border-top: 1px solid var(--line);
  padding-top: 17px;
  display: flex;
  justify-content: space-between;
  gap: 9px;
  align-items: center;
}
.category-tile button {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  padding: 0;
}
.slides-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.slide-editor {
  overflow: hidden;
}
.slide-preview {
  height: 215px;
  background-size: cover;
  background-position: center;
  color: white;
  padding: 27px;
}
.slide-preview > span {
  font-size: 8px;
  letter-spacing: 1.7px;
}
.slide-preview h3 {
  font-size: 29px;
  white-space: pre-line;
  line-height: 1.25;
  font-weight: 400;
  margin-top: 35px;
}
.slide-fields {
  padding: 23px;
}
.slide-fields > small {
  display: block;
  font-size: 9px;
  margin: 10px 0 22px;
  color: #9ca48e;
}
.slide-fields > label:not(.upload-btn) {
  margin-top: 20px;
  font-size: 11px;
}
.upload-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px;
  border: 1px dashed #b9c4ab;
  border-radius: 5px;
  cursor: pointer;
  font-size: 11px;
  color: #607e4e;
}
.upload-btn input {
  display: none;
}
.timing {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px;
  margin-top: 22px;
}
.timing p {
  font-size: 11px;
  margin: 0;
}
.timing label {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  font-size: 11px;
}
.timing input {
  width: 70px !important;
  margin: 0 !important;
}
.save-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
  gap: 15px;
}
.save-bar > span {
  font-size: 11px;
  color: #939e88;
}
.admin-footer {
  display: flex;
  justify-content: space-between;
  margin: 20px 40px 25px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 8px;
  letter-spacing: 1px;
  color: #9da58f;
}
.admin-footer span {
  letter-spacing: 0;
}
/* Product detail and edit dialogs */
.modal-backdrop {
  position: fixed;
  z-index: 100;
  inset: 0;
  background: #14261dcc;
  backdrop-filter: blur(7px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px;
  overflow: auto;
}
.product-detail {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: white;
  width: 900px;
  max-width: 100%;
  max-height: 90vh;
  overflow: auto;
  border-radius: 12px;
}
.close {
  position: absolute;
  right: 17px;
  top: 17px;
  z-index: 1;
  background: white;
  border-radius: 50%;
  padding: 6px;
}
.detail-image {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f6f0;
  min-height: 480px;
  padding: 45px;
}
.detail-image img {
  max-width: 100%;
  max-height: 370px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.detail-copy {
  padding: 58px 38px;
}
.detail-copy h2 {
  font-size: 32px;
  line-height: 1.3;
  letter-spacing: -1px;
  margin: 17px 0;
}
.detail-price {
  font-size: 22px;
  margin-bottom: 24px;
}
.detail-copy p {
  font-size: 12px;
}
.detail-copy h4 {
  font-size: 11px;
  margin-top: 24px;
}
.specs {
  white-space: pre-line;
  font-size: 12px;
  line-height: 2;
  color: #718064;
  margin-bottom: 26px;
}
.detail-copy > small {
  display: block;
  font-size: 9px;
  color: #9ca28e;
  margin-top: 13px;
}
.editor {
  background: white;
  border-radius: 10px;
  padding: 30px;
  width: 850px;
  max-height: 92vh;
  overflow: auto;
  max-width: 100%;
}
.editor-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  margin-bottom: 23px;
}
.editor-heading h2 {
  font-size: 25px;
  letter-spacing: -0.8px;
  margin: 12px 0 0;
}
.editor-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 30px;
}
.editor-grid label:not(.upload-btn) {
  margin-bottom: 18px;
  font-size: 11px;
}
.form-row {
  display: flex;
  gap: 15px;
}
.form-row > * {
  flex: 1;
}
.editor-image {
  height: 135px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f6f7f2;
  border-radius: 6px;
  margin-bottom: 12px;
}
.editor-image img {
  max-height: 115px;
  max-width: 90%;
  object-fit: contain;
}
.editor-image .placeholder svg {
  width: 36px;
  height: 36px;
}
.editor-grid .upload-btn {
  margin-bottom: 23px;
}
.category-checkboxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  max-height: 170px;
  overflow: auto;
}
.category-checkboxes label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px !important;
  margin-bottom: 3px !important;
}
.check-label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 20px;
}
.editor-grid small {
  font-size: 9px;
  color: #909a84;
}
.editor .save-bar {
  border-top: 1px solid var(--line);
  margin-top: 20px;
  padding-bottom: 0;
}
.confirm {
  background: white;
  max-width: 440px;
  padding: 35px;
  border-radius: 10px;
}
.confirm h2 {
  font-size: 26px;
  letter-spacing: -1px;
  margin-top: 20px;
}
.confirm p {
  font-size: 13px;
}
.confirm > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 25px;
}
.danger {
  background: #ae3b36;
  color: white;
}
.toast {
  position: fixed;
  z-index: 200;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 90vw;
  border: 1px solid #d6e0ca;
  background: #fff;
  padding: 15px 20px;
  border-radius: 8px;
  box-shadow: 0 10px 35px #192b2326;
  font-size: 12px;
}
.toast button {
  display: flex;
  padding: 0;
}
@media (min-width: 1600px) {
  .hero {
    height: 720px;
  }
  .hero-content {
    padding-top: 140px;
  }
  .hero h1 {
    font-size: 76px;
  }
  .section {
    padding-left: 12%;
    padding-right: 12%;
  }
}
@media (max-width: 1100px) {
  .site-header nav {
    gap: 20px;
  }
  .hero h1 {
    font-size: 55px;
  }
  .category-strip {
    gap: 12px;
    overflow: auto;
    justify-content: flex-start;
  }
  .section {
    padding: 60px 5%;
  }
  .solutions {
    grid-template-columns: 1fr 1fr;
  }
  .solution-intro {
    grid-column: 1/-1;
    max-width: 500px;
  }
  .sidebar {
    width: 200px;
    padding: 28px 13px;
  }
  .admin-main {
    margin-left: 200px;
  }
  .admin-content {
    padding: 28px;
  }
  .admin-header {
    padding: 0 28px;
  }
  .metric {
    padding: 17px;
  }
  .metric > div {
    font-size: 9px;
  }
  .category-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .analytics-columns {
    grid-template-columns: 1.4fr 1fr;
  }
  .quick-panel {
    padding: 20px;
  }
  .admin-title h1 {
    font-size: 25px;
  }
  .product-visual {
    height: 270px;
  }
}
/* Phone and small-screen layouts */
@media (max-width: 760px) {
  .announcement {
    font-size: 9px;
  }
  .announcement button {
    font-size: 9px;
    margin-left: 3px;
  }
  .site-header {
    height: 100px;
    padding: 17px 5%;
    flex-wrap: wrap;
    position: relative;
    align-content: space-between;
  }
  .site-header .brand {
    font-size: 26px;
  }
  .site-header .brand span {
    font-size: 5px;
  }
  .site-header nav {
    order: 3;
    justify-content: center;
    gap: 28px;
    width: 100%;
    font-size: 10px;
    margin-top: 10px;
  }
  .site-header nav button {
    padding: 0;
  }
  .header-actions {
    gap: 14px;
  }
  .contact-btn {
    padding: 8px 12px;
    font-size: 10px;
    gap: 8px;
  }
  .hero {
    height: 560px;
    margin: 8px;
    border-radius: 6px;
  }
  .hero-content {
    padding: 90px 7% 0;
  }
  .hero h1 {
    font-size: 47px;
    letter-spacing: -2.8px;
    line-height: 1.14;
  }
  .hero p {
    font-size: 13px;
    max-width: 290px;
  }
  .hero .eyebrow {
    font-size: 7px;
    letter-spacing: 1.7px;
  }
  .hero-bottom > span {
    font-size: 6px;
    max-width: 130px;
    line-height: 1.7;
  }
  .slide-controls > span {
    font-size: 10px;
    margin-right: 3px;
  }
  .slide-controls {
    gap: 7px;
  }
  .category-strip {
    padding: 27px 15px;
    gap: 15px;
  }
  .category-strip button {
    min-width: 88px;
    font-size: 9px;
  }
  .section {
    padding: 47px 6%;
  }
  .section-heading {
    display: block;
  }
  .section-heading h2,
  .solutions h2 {
    font-size: 35px;
  }
  .section-heading > div:last-child {
    max-width: none;
    margin-top: 20px;
  }
  .section-heading p {
    margin-bottom: 10px;
  }
  .product-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
  }
  .products-section .product-grid {
    grid-template-columns: 1fr;
  }
  .products-section .product-visual {
    height: 290px;
  }
  .product-visual {
    height: 200px;
  }
  .product-tag {
    font-size: 8px;
    top: 12px;
    left: 12px;
  }
  .product-meta h3 {
    font-size: 13px;
    line-height: 1.5;
  }
  .product-meta > span {
    font-size: 9px;
  }
  .product-meta p {
    font-size: 12px;
  }
  .product-meta {
    padding: 13px 0;
  }
  .placeholder svg {
    width: 42px;
    height: 42px;
  }
  .placeholder small {
    font-size: 7px;
  }
  .solutions {
    grid-template-columns: 1fr;
  }
  .solution-intro {
    grid-column: auto;
    padding-top: 0;
  }
  .solution-card {
    min-height: 315px;
  }
  .consult {
    margin: 12px 8px;
  }
  .consult h2 {
    font-size: 34px;
    position: relative;
    z-index: 1;
  }
  .consult-sun {
    opacity: 0.3;
    width: 210px;
    right: -60px;
    top: 70px;
  }
  .consult p {
    max-width: 260px;
    position: relative;
    z-index: 1;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 22px;
  }
  .footer-top > div:first-child {
    grid-column: 1/-1;
  }
  .footer-bottom {
    gap: 20px;
    flex-wrap: wrap;
    line-height: 1.6;
  }
  .footer-bottom > span:nth-child(2) {
    display: none;
  }
  .catalogue-page h1,
  .stores h1 {
    font-size: 42px;
    letter-spacing: -2px;
  }
  .catalogue-tools {
    flex-wrap: wrap;
  }
  .catalogue-tools .search {
    min-width: 100%;
  }
  .catalogue-tools select {
    width: 100%;
    font-size: 11px;
  }
  .filter-chips {
    gap: 7px;
  }
  .filter-chips button {
    font-size: 10px;
    padding: 9px 11px;
  }
  .store-grid {
    grid-template-columns: 1fr;
  }
  .store-grid p {
    min-height: 0;
  }
  .sidebar {
    position: static;
    width: auto;
    padding: 18px 16px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    border: 0;
    gap: 4px;
  }
  .sidebar .brand {
    font-size: 23px;
    margin: 0 0 17px;
    width: 100%;
  }
  .sidebar .brand span {
    font-size: 6px;
  }
  .workspace,
  .nav-caption,
  .sidebar-bottom {
    display: none;
  }
  .sidebar-link {
    font-size: 10px;
    padding: 10px 9px;
    gap: 6px;
    flex: 1;
    justify-content: center;
    margin: 0;
  }
  .sidebar-link svg {
    width: 15px;
  }
  .sidebar-link small {
    display: none;
  }
  .admin-layout {
    display: block;
  }
  .admin-main {
    margin: 0;
  }
  .admin-header {
    height: 55px;
    padding: 0 20px;
    font-size: 10px;
  }
  .admin-content {
    padding: 27px 18px;
  }
  .admin-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    margin-bottom: 24px;
  }
  .admin-title h1 {
    font-size: 26px;
    line-height: 1.3;
  }
  .admin-title p {
    font-size: 11px;
  }
  .metric-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .metric {
    padding: 17px;
  }
  .metric strong {
    font-size: 29px;
    margin: 12px 0;
  }
  .metric small {
    font-size: 7px;
  }
  .analytics-columns {
    grid-template-columns: 1fr;
  }
  .panel-heading {
    padding: 20px 17px;
  }
  .panel-heading h3 {
    font-size: 12px;
  }
  .panel-heading p {
    font-size: 9px;
  }
  .panel-heading > span {
    font-size: 8px;
  }
  .quick-panel > h3 {
    font-size: 22px;
  }
  .product-toolbar {
    flex-wrap: wrap;
    padding: 15px;
  }
  .product-toolbar .search {
    min-width: 100%;
  }
  .product-toolbar select {
    flex: 1;
  }
  .category-admin-top {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .category-help {
    padding: 15px;
  }
  .category-help h3 {
    font-size: 22px;
  }
  .category-grid {
    grid-template-columns: 1fr;
  }
  .slides-grid {
    grid-template-columns: 1fr;
  }
  .timing {
    flex-direction: column;
    align-items: flex-start;
  }
  .save-bar > span {
    max-width: 160px;
    font-size: 10px;
  }
  .admin-footer {
    margin: 10px 18px 20px;
    font-size: 6px;
    gap: 15px;
  }
  .product-detail {
    grid-template-columns: 1fr;
    max-height: 91vh;
  }
  .modal-backdrop {
    padding: 12px;
  }
  .detail-image {
    min-height: 240px;
    padding: 25px;
  }
  .detail-image img {
    max-height: 210px;
  }
  .detail-copy {
    padding: 30px;
  }
  .detail-copy h2 {
    font-size: 27px;
  }
  .editor {
    padding: 22px;
  }
  .editor-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .editor-heading h2 {
    font-size: 23px;
  }
  .editor-grid label:not(.upload-btn) {
    font-size: 12px;
  }
  .confirm {
    padding: 28px;
  }
  .btn {
    font-size: 11px;
    padding: 13px 17px;
    gap: 16px;
  }
  .category-checkboxes label {
    font-size: 11px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
  .hero-image {
    transform: none !important;
  }
}

/* Shared identity. Reserve bottom space for the persistent customer-support bar. */
body {
  padding-bottom:85px;
}
.brand-home {
  text-align:left;
  flex-shrink:0;
}
.global-brand {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.global-brand img {
  width:52px;
  height:52px;
  object-fit:contain;
  flex-shrink:0;
}
.brand-copy {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.brand-copy strong {
  font-size:25px;
  letter-spacing:-1px;
  line-height:1.1;
  overflow-wrap:anywhere;
}
.brand-copy small {
  font-size:8px;
  letter-spacing:1.3px;
  font-weight:600;
  line-height:1.4;
}
.support-bar {
  position:fixed;
  z-index:80;
  bottom:0;
  left:0;
  right:0;
  min-height:78px;
  display:flex;
  align-items:stretch;
  justify-content:center;
  background:rgba(246,249,244,.97);
  border-top:1px solid #d8e3d6;
  box-shadow:0 -5px 30px #102b1710;
  backdrop-filter:blur(16px);
  padding:12px 20px calc(12px + env(safe-area-inset-bottom));
  gap:0;
}
.support-bar a {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  padding:0 38px;
  color:#173b2c;
  text-decoration:none;
}
.support-bar a+a {
  border-left:1px solid #d1decb;
}
.support-bar span {
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:10px;
  letter-spacing:.3px;
}
.support-bar strong {
  font-size:15px;
  letter-spacing:.5px;
}
.support-bar a:hover {
  color:#58842a;
}
.sidebar {
  bottom:85px;
  overflow-y:auto;
}
.site-header nav {
  gap:25px;
}
.site-header nav a.active {
  color:#537a36;
}
/* Public branches and showcases keep written details separate from background photography. */
.branches-page,.showcases-page {
  min-height:65vh;
}
.branches-page>p,.showcases-page>p {
  max-width:630px;
  color:#647061;
  line-height:1.7;
}
.branch-search {
  max-width:470px;
  margin:30px 0;
}
.branch-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.branch-card,.showcase-card {
  border:1px solid #e0e6dc;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 8px 35px #143f1910;
}
.branch-cover {
  min-height:200px;
  background-size:cover;
  background-position:center;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  padding:28px;
  color:white;
  gap:16px;
}
.branch-cover.no-photo {
  background:linear-gradient(135deg,#244637,#153027);
}
.branch-cover h2 {
  font-size:24px;
  margin:0;
  letter-spacing:-.6px;
}
.branch-details {
  padding:27px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:15px;
}
.detail-label {
  color:#73816b;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.5px;
}
.branch-address {
  white-space:pre-line;
  line-height:1.65;
  font-size:16px;
  margin:0;
}
.branch-details a {
  overflow-wrap:anywhere;
}
.branch-details p {
  margin:0;
}
.branch-phone {
  display:flex;
  gap:10px;
  align-items:center;
  font-weight:600;
}
.branch-details small {
  color:#647061;
  font-size:11px;
}
.directions {
  margin-top:10px;
  font-size:12px;
}
.showcase-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.showcase-card>img {
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  display:block;
}
.showcase-card>div {
  padding:30px;
}
.showcase-card h2 {
  margin:16px 0;
  font-size:28px;
  letter-spacing:-1px;
}
.showcase-card p {
  white-space:pre-line;
  line-height:1.75;
  color:#5a6659;
}
/* Management forms share a small set of layout rules for straightforward maintenance. */
.settings-grid,.content-editors {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.settings-panel {
  padding:28px;
  min-width:0;
}
.settings-panel h2 {
  font-size:23px;
  margin:18px 0 12px;
  letter-spacing:-.7px;
}
.settings-panel p,.editor-tip {
  font-size:13px;
  line-height:1.7;
  color:#697365;
}
.settings-panel label {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin:20px 0;
  font-size:12px;
  font-weight:600;
}
.settings-panel input:not([type=checkbox]):not([type=file]),.settings-panel textarea {
  width:100%;
  padding:12px;
  border:1px solid #dce3d7;
  background:#fff;
  border-radius:7px;
  min-width:0;
  font:inherit;
  font-weight:400;
}
.settings-panel textarea {
  resize:vertical;
}
.settings-panel small {
  font-size:11px;
  line-height:1.6;
  color:#737d6b;
}
.managed-image {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin:22px 0;
}
.managed-image>img {
  width:100%;
  height:180px;
  object-fit:contain;
  background:#f3f6f0;
  border-radius:9px;
}
.managed-image label.upload-btn {
  margin:0;
  display:flex;
  flex-direction:row;
}
.brand-preview {
  padding:25px;
  background:#f2f6ef;
  border-radius:10px;
}
.navigation-control {
  display:flex;
  gap:12px;
  align-items:center;
  border-top:1px solid #e6ebdf;
  padding:15px 0;
}
.navigation-control>label {
  display:flex;
  flex-direction:row;
  margin:0;
  flex-shrink:0;
  align-items:center;
}
.navigation-control>div {
  display:flex;
}
.navigation-control button {
  padding:9px;
  border:1px solid #e1e7dc;
  border-radius:4px;
}
.navigation-control input[type=checkbox],.check-label input {
  accent-color:#426e32;
}
.record-heading {
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
}
.record-heading h3 {
  margin:0;
  font-size:18px;
}
.settings-panel .form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.settings-panel .check-label {
  flex-direction:row;
  align-items:center;
}
.record-order {
  display:flex;
  gap:15px;
  font-size:12px;
}
.record-order button,.pagination button,.blocked-list button {
  border:1px solid #dce3d7;
  border-radius:6px;
  padding:9px 12px;
}
.pagination {
  display:flex;
  gap:16px;
  justify-content:center;
  align-items:center;
  padding:25px 12px;
  font-size:12px;
  flex-wrap:wrap;
}
button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.content-save {
  margin-top:26px;
}
.notice {
  padding:18px 22px;
  border:1px solid #d6e3ca;
  background:#f1f6eb;
  border-radius:10px;
  margin:20px 0;
  line-height:1.7;
}
.notice a {
  text-decoration:underline;
}
.security-panel>.panel {
  margin-top:24px;
}
.blocked-list>div {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:16px 0;
  border-top:1px solid #e2e8dc;
}
.blocked-list {
  margin-top:25px;
}
.blocked-list small {
  display:block;
}
.private-url {
  overflow-wrap:anywhere;
  padding:15px;
  background:#f0f5eb;
  border-radius:7px;
}
.security-panel td {
  max-width:280px;
  overflow-wrap:anywhere;
  white-space:normal;
}
.table-empty {
  padding:25px;
  color:#737d6b;
}
:focus-visible {
  outline:3px solid #759c4d;
  outline-offset:3px;
}
@media(max-width:1150px) {
  .site-header {
    gap:20px;
    flex-wrap:wrap;
  }
  .site-header nav {
    gap:20px;
  }
  .branch-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .settings-grid,.content-editors {
    grid-template-columns:1fr;
  }
  .support-bar a {
    padding:0 24px;
  }
}
@media(max-width:760px) {
  .site-header nav {
    display:flex;
    order:3;
    width:100%;
    overflow-x:auto;
    padding:12px 0 0;
    white-space:nowrap;
  }
  .site-header {
    padding-bottom:14px;
  }
  .header-actions {
    margin-left:auto;
  }
  .brand-copy strong {
    font-size:23px;
  }
  .global-brand img {
    width:40px;
    height:40px;
  }
  .branch-grid,.showcase-grid {
    grid-template-columns:1fr;
  }
  .support-bar {
    padding:10px 4px calc(10px + env(safe-area-inset-bottom));
    min-height:78px;
  }
  .support-bar a {
    padding:0 8px;
    flex:1;
    gap:5px;
  }
  .support-bar svg {
    width:14px;
  }
  .support-bar strong {
    font-size:11px;
    letter-spacing:0;
  }
  .support-bar span {
    font-size:8px;
  }
  .sidebar {
    bottom:auto;
  }
  .settings-panel {
    padding:20px;
  }
  .navigation-control {
    gap:8px;
  }
  .navigation-control button {
    padding:7px;
  }
  .settings-panel .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .content-save {
    gap:15px;
    flex-wrap:wrap;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
}

/* v1.2: contact details are part of normal page flow, never an overlay. */
body { padding-bottom: 0; }
.sidebar { bottom: 0; }
.support-footer {
    position: relative;
    background: #132e24;
    color: #f4f8ec;
    padding: 64px max(6vw, 20px);
    border-top: 5px solid #b6d986;
}
.support-intro { max-width: 750px; margin: 0 auto 32px; text-align: center; }
.support-intro > p:first-child { font-size: 10px; letter-spacing: 2px; color: #bfdb9c; }
.support-intro h2 { font-size: clamp(28px, 4vw, 44px); line-height: 1.15; letter-spacing: -1.3px; margin: 15px 0; }
.support-intro p { color: #c8d6cb; font-size: 14px; line-height: 1.6; }
.support-footer .support-bar {
    position: static;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 1100px;
    margin: auto;
    padding: 0;
    gap: 16px;
    background: none;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
}
.support-footer .support-bar a {
    background: #214235;
    border: 1px solid #49614e;
    border-radius: 14px;
    padding: 24px 16px;
    color: #f5faef;
    gap: 14px;
    transition: background .2s;
}
.support-footer .support-bar a:hover { background: #335744; }
.support-footer .support-bar span { font-size: 11px; gap: 7px; }
.support-footer .support-bar strong { font-size: 19px; }
.support-footer .support-bar svg { width: 20px; flex-shrink: 0; }

/* Each copy is at least one viewport wide. -50% to 0 moves logos left to right. */
.brand-band { overflow: hidden; background: #f4f6f0; padding: 40px 0; border-block: 1px solid #e3e8dc; }
.brand-band-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 6vw 24px; }
.brand-band h2 { font-size: clamp(23px, 3vw, 32px); letter-spacing: -1px; margin: 10px 0 0; }
.brand-window { overflow: hidden; }
.brand-track { display: flex; width: max-content; animation: brands-left-to-right 35s linear infinite; }
.brand-group { display: flex; justify-content: space-around; align-items: center; flex-shrink: 0; min-width: 100vw; }
.brand-tile { flex: 0 0 190px; height: 105px; padding: 18px 28px; }
.brand-tile img { width: 100%; height: 100%; object-fit: contain; }
.brand-window:hover .brand-track, .brand-window.is-paused .brand-track { animation-play-state: paused; }
@keyframes brands-left-to-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.product-pick-list { max-height: 520px; overflow-y: auto; margin-top: 20px; }
.settings-panel label.product-pick { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 12px 0; margin: 0; border-bottom: 1px solid #e4eadf; }
.product-pick img { width: 45px; height: 45px; object-fit: contain; }
.product-pick small { display: block; margin-top: 5px; }
.selection-row { display: flex; align-items: center; gap: 8px; padding: 14px 0; border-bottom: 1px solid #e4eadf; font-size: 12px; }
.selection-row span { flex: 1; }
.selection-row button { padding: 6px; border: 1px solid #d9e2d2; border-radius: 5px; }
@media (max-width: 800px) {
    .support-footer .support-bar { grid-template-columns: 1fr; max-width: 480px; }
    .support-footer .support-bar a { justify-content: flex-start; padding: 22px; }
    .support-footer .support-bar a > svg:last-child { margin-left: auto; }
    .brand-band-heading { align-items: flex-start; flex-direction: column; }
    .brand-tile { flex-basis: 150px; padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .brand-track { animation: none; transform: none; width: auto; }
    .brand-group { min-width: 0; width: 100%; flex-wrap: wrap; }
    .brand-group[aria-hidden="true"] { display: none; }
}

/* v1.3 semantic theme tokens. All themes use the same layout and content. */
:root, [data-theme="signature"] {
    --page: #ffffff; --surface: #f4f6ef; --text: #182c22; --muted: #546451;
    --accent: #315e35; --accent-text: #ffffff; --line: #dce5d7;
    --deep: #132e24; --deep-text: #f4f8ec; --highlight: #c4e59e;
    --ink: var(--text);
}
[data-theme="porcelain"] {
    --page: #ffffff; --surface: #f1f3f7; --text: #20242d; --muted: #556072;
    --accent: #275dcc; --accent-text: #ffffff; --line: #dce1e9;
    --deep: #171e2c; --deep-text: #f5f7ff; --highlight: #bfd2ff; --ink: var(--text);
}
[data-theme="midnight"] {
    --page: #101a18; --surface: #1c2c26; --text: #edf5f0; --muted: #b4c8bb;
    --accent: #9cdbb8; --accent-text: #11291c; --line: #3d5448;
    --deep: #09110e; --deep-text: #f0f8f3; --highlight: #9cdbb8; --ink: var(--text);
}
[data-theme="sandstone"] {
    --page: #faf3e8; --surface: #f0e4d3; --text: #51392b; --muted: #715c4e;
    --accent: #914625; --accent-text: #ffffff; --line: #dbcab4;
    --deep: #39291f; --deep-text: #fff4e5; --highlight: #efc296; --ink: var(--text);
}
html[data-theme] body, html[data-theme] .auth-box { background: var(--page); color: var(--text); }
[data-theme] .site-header, [data-theme] .category-strip, [data-theme] .branch-card,
[data-theme] .showcase-card, [data-theme] .panel, [data-theme] .sidebar,
[data-theme] .admin-header, [data-theme] .product-detail { background: var(--page); color: var(--text); border-color: var(--line); }
[data-theme] .solutions, [data-theme] .brand-band, [data-theme] .admin-main,
[data-theme] .brand-preview, [data-theme] .notice { background: var(--surface); color: var(--text); border-color: var(--line); }
[data-theme] .product-visual { background: #f4f5f1; }
[data-theme] .eyebrow.green, [data-theme] .text-link, [data-theme] .site-header nav a.active { color: var(--accent); }
[data-theme] .section-heading p, [data-theme] .price-note, [data-theme] .settings-panel p,
[data-theme] .settings-panel small, [data-theme] .branch-details small,
[data-theme] .branches-page > p, [data-theme] .showcases-page > p,
[data-theme] .showcase-card p { color: var(--muted); }
[data-theme] .btn.dark { background: var(--accent); color: var(--accent-text); }
[data-theme] input:not([type=checkbox]):not([type=file]), [data-theme] select,
[data-theme] textarea { background: var(--page); color: var(--text); border-color: var(--line); }
[data-theme] footer, [data-theme] .support-footer, [data-theme] .announcement {
    background: var(--deep); color: var(--deep-text); border-color: var(--highlight);
}
[data-theme] .support-intro p, [data-theme] .support-intro > p:first-child { color: var(--highlight); }
[data-theme] .support-footer .support-bar a { background: var(--deep); color: var(--deep-text); border-color: var(--highlight); }
[data-theme] .support-footer .support-bar a:hover { outline: 2px solid var(--highlight); }
/* Promotions remain in document flow. No pop-ups, forced countdowns or obstructing overlays. */
.promotion-banner { display: grid; grid-template-columns: 1fr 1fr; margin: 36px 6vw; border-radius: 22px; overflow: hidden; background: var(--deep); color: var(--deep-text); }
.promotion-copy { padding: clamp(28px, 5vw, 72px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.promotion-label { display: inline-block; border: 1px solid var(--highlight); color: var(--highlight); padding: 8px 13px; border-radius: 30px; font-size: 10px; letter-spacing: 1.6px; }
.promotion-copy h2 { font-size: clamp(32px, 4.8vw, 66px); line-height: 1.04; letter-spacing: -2px; margin: 24px 0 18px; overflow-wrap: anywhere; }
.promotion-copy p { font-size: 16px; line-height: 1.75; white-space: pre-line; margin: 0 0 28px; }
.promotion-cta { display: inline-flex; align-items: center; gap: 20px; padding: 16px 22px; background: var(--highlight); color: var(--deep); border-radius: 50px; font-weight: 600; }
.promotion-picture { min-height: 380px; }
.promotion-picture img { width: 100%; height: 100%; object-fit: cover; display: block; }
.promotion-text-only { grid-template-columns: 1fr; }
.promotion-text-only .promotion-copy { max-width: 1000px; }
.theme-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 24px; }
.theme-option { padding: 18px; border: 2px solid var(--line); border-radius: 12px; text-align: left; display: flex; flex-direction: column; gap: 12px; }
.theme-option.selected { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.theme-swatches { display: flex; gap: 5px; }
.theme-swatches i { width: 30px; height: 30px; border: 1px solid #88998a; border-radius: 50%; }
.presentation-editor > .panel { margin-bottom: 24px; }
.promotion-preview .promotion-banner { margin: 0; grid-template-columns: 1fr; border-radius: 12px; }
.promotion-preview .promotion-copy { padding: 28px; }
.promotion-preview .promotion-copy h2 { font-size: 34px; }
.promotion-preview .promotion-picture { min-height: 0; height: 260px; }
@media(max-width: 1000px) { .theme-options { grid-template-columns: 1fr 1fr; } }
@media(max-width: 650px) {
    .promotion-banner { grid-template-columns: 1fr; margin: 24px 20px; }
    .promotion-picture { min-height: 0; height: 280px; }
    .promotion-copy h2 { letter-spacing: -1px; }
    .theme-options { grid-template-columns: 1fr; }
}
/* Keep operational screens neutral while storefront themes change. */
.admin-layout { --page:#fff; --surface:#f4f6ef; --text:#182c22; --muted:#546451; --accent:#315e35; --accent-text:#fff; --line:#dce5d7; --deep:#132e24; --deep-text:#f4f8ec; --highlight:#c4e59e; --ink:var(--text); }
[data-theme] { --green:var(--accent); --paper:var(--surface); --lime:var(--highlight); }
[data-theme] .product-meta p { color:var(--text); }
[data-theme] .product-meta > span, [data-theme] .product-meta small, [data-theme] .result-label,
[data-theme] .solution-intro p, [data-theme] .catalogue-page > p,
[data-theme] .detail-copy > p { color:var(--muted); }
[data-theme] .consult, [data-theme] .search, [data-theme] .store-grid article { background:var(--surface); color:var(--text); }
[data-theme] .filter-chips .selected, [data-theme] .contact-btn { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }
[data-theme] footer p, [data-theme] .footer-bottom { color:var(--highlight); }
.promotion-copy p, .promotion-preview .promotion-copy p { color:var(--deep-text); }

/* Product promotions are independent of homepage selection and the Featured badge. */
.product-card.promoted-product { border:2px solid var(--accent); border-radius:14px; padding:12px; background:var(--surface); box-shadow:0 10px 28px #122b1714; }
.promoted-product .product-visual { border-radius:9px; }
.product-tag.promotion-product-tag { background:var(--accent); color:var(--accent-text); font-weight:700; letter-spacing:.4px; max-width:85%; overflow-wrap:anywhere; }
.sale-pricing { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 12px; }
.sale-pricing .was-price { color:var(--muted); font-size:12px; }
.sale-pricing strong { color:var(--accent); font-size:1.08em; }
.card-availability { display:block; color:var(--muted); font-size:10px; margin-top:12px; }
.availability { border:1px solid var(--line); border-radius:8px; padding:12px; color:var(--text)!important; background:var(--surface); }
.product-spec-table { overflow-x:auto; margin:25px 0; }
.product-spec-table table { width:100%; border-collapse:collapse; }
.product-spec-table th, .product-spec-table td { padding:12px 10px; text-align:left; font-size:12px; border-bottom:1px solid var(--line); white-space:normal; overflow-wrap:anywhere; }
.product-spec-table thead { background:var(--surface); }
.product-manuals { margin:25px 0; }
.product-manuals a { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:14px; border:1px solid var(--line); border-radius:8px; margin:8px 0; font-size:13px; }
.product-manuals a:hover { border-color:var(--accent); }
.product-manuals small { white-space:nowrap; color:var(--muted); }
.product-features-editor { padding:25px 35px; border-top:1px solid var(--line); }
.product-features-editor h3 { margin:25px 0 15px; }
.product-features-editor p { color:#556451; font-size:12px; line-height:1.7; }
.product-features-editor .form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.spec-editor-row { display:grid; grid-template-columns:1.1fr 1.5fr .6fr auto auto; gap:10px; align-items:center; }
.spec-editor-row input, .manual-editor-row input { min-width:0; width:100%; }
.manual-editor-row { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; }
.spec-editor-row button, .manual-editor-row button { padding:8px; border:1px solid #dae3d5; border-radius:5px; font-size:11px; }
.telemetry-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:22px 0; }
.telemetry-metrics > div { padding:24px; display:flex; flex-direction:column; gap:18px; }
.telemetry-metrics span { font-size:12px; color:var(--muted); }
.telemetry-metrics strong { font-size:34px; }
.telemetry-report > section { margin-bottom:24px; }
.telemetry-report .product-toolbar { flex-wrap:wrap; }
.funnel-row { margin:22px 0; }
.funnel-row > div { display:flex; justify-content:space-between; gap:15px; font-size:13px; margin-bottom:9px; }
.funnel-row progress { width:100%; height:16px; accent-color:var(--accent); }
@media(max-width:800px) {
    .telemetry-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .product-features-editor { padding:20px; }
    .spec-editor-row { grid-template-columns:1fr 1fr; padding-bottom:20px; border-bottom:1px solid #dce3d8; }
    .product-features-editor .form-row { grid-template-columns:1fr; gap:0; }
}

/* v1.5: scoped appearance controls, compact announcement and optional loader. */
[data-theme="custom"] { --ink:var(--text); --green:var(--accent); --paper:var(--surface); --lime:var(--highlight); }
.announcement-bar { display:flex; align-items:center; justify-content:center; gap:14px; padding:10px 5vw; font-size:13px; line-height:1.5; min-height:44px; overflow-wrap:anywhere; }
.announcement-bar img { width:32px; height:32px; object-fit:contain; flex-shrink:0; }
.announcement-bar a, .announcement-link { color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.announcement-bar button { color:inherit; background:transparent; border:0; font-size:24px; min-width:44px; min-height:44px; padding:0; }
.announcement-bar a:focus-visible, .announcement-bar button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.color-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin:20px 0; }
.settings-panel .color-field { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.settings-panel .color-field input[type=color] { width:48px; height:36px; padding:2px; }
.color-field code { font-size:12px; }
.appearance-preview { margin:24px auto 12px; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--page); color:var(--text); }
.appearance-preview.mobile { max-width:375px; }
.preview-content { padding:32px; }
.preview-content h2 { color:var(--text); }
.preview-content p { color:var(--muted); }
.preview-card { background:var(--surface); border:1px solid var(--line); padding:24px; border-radius:12px; margin-top:24px; }
.preview-card strong { display:block; margin-top:14px; }
.preview-footer { padding:30px; background:var(--deep); color:var(--deep-text); }
#page-loader { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; }
#page-loader[hidden] { display:none !important; }
.loader-content { text-align:center; padding:24px; }
.loader-content p { color:inherit !important; }
.loader-mark { display:block; width:64px; height:64px; object-fit:contain; margin:0 auto 20px; }
.loader-shape { border:3px solid currentColor; border-right-color:transparent; border-radius:50%; }
.loader-mark.spin { animation:loader-spin 1.3s linear infinite; }
.loader-mark.pulse { animation:loader-pulse 1.3s ease-in-out infinite; }
.loader-preview { display:grid; place-items:center; min-height:220px; border:1px solid var(--line); border-radius:16px; }
@keyframes loader-spin { to { transform:rotate(360deg); } }
@keyframes loader-pulse { 50% { opacity:.35; transform:scale(.92); } }
@media(max-width:600px) { .announcement-bar { flex-wrap:wrap; gap:6px 12px; padding:8px 16px; } .announcement-bar > span { flex:1; } .appearance-preview .preview-content { padding:22px; } }
@media(prefers-reduced-motion:reduce) { .loader-mark.spin,.loader-mark.pulse { animation:none; } }

/* v1.6: independent sale badges and plain-text, moderated guest reviews. */
.product-visual,.detail-image { position:relative; }
.discount-badge { position:absolute; z-index:2; top:14px; left:14px; width:66px; height:66px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1; box-shadow:0 3px 10px #0002; }
.discount-badge strong { font-size:21px; }
.discount-badge small { font-size:10px; letter-spacing:1px; margin-top:4px; color:inherit; }
.discount-badge ~ .product-tag { top:90px; max-width:calc(100% - 28px); }
.rating-summary { display:inline-flex; gap:5px; align-items:center; color:var(--text); font-size:13px; margin:8px 0; }
.rating-summary > span { color:var(--accent); }
.rating-summary small { color:var(--muted); }
.product-reviews { margin:28px 0; padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; }
.reviews-heading { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.reviews-heading h3 { margin:0; }
.review-entry,.moderation-review { padding:20px 0; border-bottom:1px solid var(--line); }
.review-byline { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:12px 0; }
.review-byline > span { color:var(--accent); letter-spacing:2px; }
.review-body { white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text); font-size:14px; line-height:1.65; }
.review-pagination,.review-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:18px 0; }
.review-pagination button,.review-actions button:not(.btn),.review-filters > button { border:1px solid var(--line); padding:10px 16px; border-radius:8px; background:var(--surface); color:var(--text); }
.guest-review-form { margin-top:20px; padding:20px; background:var(--surface); border-radius:12px; }
.guest-review-form label { display:block; }
.guest-review-form textarea { width:100%; margin-top:8px; padding:12px; border:1px solid var(--line); border-radius:8px; resize:vertical; font:inherit; }
.review-stars { border:0; padding:0; margin:0 0 18px; display:flex; gap:6px; }
.review-stars legend { margin-bottom:8px; font-size:14px; }
.review-stars label { position:relative; cursor:pointer; padding:6px; min-width:40px; min-height:44px; font-size:30px; color:var(--muted); }
.review-stars label.selected { color:var(--accent); }
.review-stars input { position:absolute; width:1px; height:1px; opacity:0; }
.review-stars label:focus-within { outline:2px solid var(--accent); outline-offset:2px; border-radius:6px; }
.review-sr-only,.review-honeypot { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.review-notice { padding:14px; border:1px solid var(--line); border-radius:8px; color:var(--text); background:var(--surface); }
.review-filters { display:flex; gap:16px; align-items:end; flex-wrap:wrap; }
.review-filters label { flex:1; min-width:180px; }
.review-product-controls { max-height:280px; overflow:auto; }
.review-badge-settings { display:flex; gap:24px; align-items:center; }
.discount-badge.badge-preview { position:static; flex-shrink:0; }
.review-audit { max-height:300px; overflow:auto; font-size:12px; }
.review-manager details { margin:20px 0; }
.review-manager summary { cursor:pointer; padding:10px 0; }
.product-reviews button:disabled,.review-manager button:disabled { opacity:.5; cursor:not-allowed; }
@media(max-width:600px) { .discount-badge { width:56px; height:56px; top:10px; left:10px; } .discount-badge strong { font-size:18px; } .discount-badge ~ .product-tag { top:76px; } .guest-review-form { padding:14px; } }

/* v1.7: eight independent palettes. These are editable presets, not official colour specifications. */
[data-theme="indigo"] {--page:#fffaf5;--surface:#f1effb;--text:#24213b;--muted:#625873;--accent:#37308c;--accent-text:#ffffff;--line:#ded8ef;--deep:#242052;--deep-text:#fffaf5;--highlight:#fdba74;--ink:var(--text)}
[data-theme="ember"] {--page:#fff7ed;--surface:#ffedd5;--text:#292343;--muted:#705747;--accent:#9a3412;--accent-text:#ffffff;--line:#e9d2bd;--deep:#262450;--deep-text:#fff7ed;--highlight:#fdba74;--ink:var(--text)}
[data-theme="dusk"] {--page:#191632;--surface:#272143;--text:#eeeaff;--muted:#c0b6d5;--accent:#fdba74;--accent-text:#281b0f;--line:#494060;--deep:#100d24;--deep-text:#eeeaff;--highlight:#fdba74;--ink:var(--text)}
[data-theme="cloud"] {--page:#f7f7ff;--surface:#eeecff;--text:#272345;--muted:#615a79;--accent:#4338ca;--accent-text:#ffffff;--line:#dcd7ef;--deep:#30285e;--deep-text:#ffffff;--highlight:#ffbb89;--ink:var(--text)}
/* Raise the reading scale without enlarging decorative headlines disproportionately. */
body {font-size:16px;line-height:1.55}
.site-header nav a {font-size:15px;font-weight:650;line-height:1.4}
.header-actions button {font-size:14px}
.product-meta h3 {font-size:18px;line-height:1.4}
.product-meta p,.detail-copy p,.settings-panel p,.settings-panel label,.slide-fields label,.editor label {font-size:15px;line-height:1.6}
.detail-copy small,.settings-panel small,.product-meta small {font-size:13px;line-height:1.5}
.sidebar-link {font-size:14px;min-height:44px}
.btn {min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:10px;line-height:1.3}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select {min-height:44px;font-size:15px}
textarea {font-size:15px;line-height:1.5;min-height:90px}
.settings-panel label,.editor label,.slide-fields label {margin:16px 0;gap:8px}
.settings-panel .check-label {display:flex;align-items:center;gap:12px;min-height:36px}
input[type=checkbox],input[type=radio] {flex-shrink:0}
.form-row {align-items:start;gap:20px}
.record-order,.review-actions,.save-bar {gap:14px;flex-wrap:wrap}
.save-bar {margin-top:26px;padding:20px 0}
.theme-options {grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.discount-badge small {color:inherit!important;font-size:10px!important;line-height:1!important}
.review-stars label.selected {color:var(--accent)!important;background:transparent}
.review-stars label {font-size:32px!important}
/* Desktop modal: image panel is stable, only the right column scrolls. */
.product-detail {height:min(820px,90vh);overflow:hidden;align-items:stretch}
.product-detail .detail-image {height:100%;min-height:0;overflow:hidden;align-self:stretch}
.product-detail .detail-copy {min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:58px 34px 32px}
.product-detail .close {z-index:5}
.product-detail .detail-image img {max-height:75%;max-width:100%}
.slide-controls[hidden] {display:none!important}
/* Natural-width single track is the source of truth for overflow measurement. */
.brand-window {width:100%;overflow:hidden}
.brand-track {width:max-content;animation:none}
.brand-group {min-width:0;width:max-content;justify-content:flex-start;flex-wrap:nowrap}
.brand-tile {width:190px;flex:0 0 190px;height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 25px}
.brand-tile img {width:140px;height:70px;object-fit:contain}
.brand-tile strong {color:var(--text);font-size:14px;text-align:center;line-height:1.3}
.brand-window.static .brand-track {margin:0 auto}
.brand-window.overflowing .brand-track {animation:brands-left-to-right 35s linear infinite}
.brand-window:hover .brand-track,.brand-window.is-paused .brand-track {animation-play-state:paused}
.brand-band {background:var(--surface);color:var(--text)}
.icon-picker {border:1px solid var(--line);padding:16px;margin:20px 0;border-radius:12px}
.icon-picker > div {display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));max-height:250px;overflow:auto;gap:8px;margin-top:14px}
.icon-picker button {padding:10px;display:flex;align-items:center;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--page);color:var(--text)}
.icon-picker button.selected {border:2px solid var(--accent);background:var(--surface)}
.icon-picker span {font-size:12px}
.hero-draft {min-height:260px;padding:35px;background-size:cover;border-radius:12px;color:white}
.hero-draft.mobile {max-width:375px;min-height:450px;margin:auto}
.hero-draft h2,.hero-draft p {color:white!important}
.hero-draft h2 {font-size:32px;line-height:1.2}
.footer-five {display:grid;grid-template-columns:1.2fr repeat(4,minmax(0,1fr));gap:40px}
.site-footer-v17 {padding:64px 6vw 28px}
.site-footer-v17 a {display:block;margin:12px 0;color:inherit;line-height:1.5;font-size:14px;text-decoration:none}
.site-footer-v17 a:hover {text-decoration:underline;text-underline-offset:4px}
.site-footer-v17 .brand,.site-footer-v17 .brand strong {color:inherit}
.site-footer-v17 p {font-size:14px;line-height:1.7}
.site-footer-v17 small {display:block;color:var(--highlight)}
.site-footer-v17 h4 {font-size:16px;margin:0 0 20px}
.site-footer-v17 .brand {margin-bottom:22px}
.written-lines {white-space:pre-line}
.social-links {display:flex;gap:0 14px;flex-wrap:wrap;margin-bottom:20px}
.footer-preview {margin:30px 0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.footer-preview.mobile {max-width:375px;margin:30px auto}
.footer-preview.mobile .footer-five {grid-template-columns:1fr}
.footer-preview .site-footer-v17 {padding:30px}
.users-list {margin:24px 0}
.user-row {display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.user-row > span {flex:1}
.user-row small,.activity-row small {display:block}
.activity-row {padding:20px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.studio-discard {display:flex;justify-content:flex-end;margin:24px 0}
.notification-stack {position:fixed;right:24px;top:24px;z-index:20000;display:flex;flex-direction:column;gap:12px;width:min(430px,calc(100vw - 32px));pointer-events:none}
.notification {display:flex;align-items:start;gap:14px;padding:20px;border-radius:16px;border:1px solid #dcd9e7;background:#fff;color:#24213b;box-shadow:0 12px 36px #15112c25;pointer-events:auto}
.notification p {margin:4px 0 0;font-size:14px;line-height:1.5}
.notification strong {font-size:15px}
.notification > button {margin-left:auto;border:0;background:transparent;color:inherit;font-size:22px;min-width:30px}
.notification-icon {border-radius:50%;width:28px;height:28px;display:grid;place-items:center;background:#eeecff;color:#37308c;flex-shrink:0}
.notification.error {border-color:#c55538}.notification.error .notification-icon {background:#ffede8;color:#9a3412}
.confirmation-overlay {position:fixed;inset:0;z-index:21000;background:#15112c99;display:grid;place-items:center;padding:20px}
.confirmation-card {width:min(460px,100%);background:#fff;color:#24213b;border-radius:20px;padding:32px;box-shadow:0 24px 80px #0004}
.confirmation-card h2 {font-size:25px;margin:0 0 16px}
.confirmation-card .btn {background:#37308c;color:white}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {outline:3px solid var(--accent,#4338ca);outline-offset:3px}
.branch-card {scroll-margin-top:110px}
@media(max-width:1050px){.footer-five {grid-template-columns:1fr 1fr;gap:32px}.site-header {flex-wrap:wrap}.site-header nav {gap:16px}}
@media(max-width:700px){.product-detail {height:auto;max-height:90vh;overflow-y:auto;grid-template-columns:1fr}.product-detail .detail-copy {overflow:visible;padding:26px}.product-detail .detail-image {height:260px;min-height:260px}.product-detail .detail-image img {max-height:200px}.footer-five {grid-template-columns:1fr}.site-footer-v17 {padding:40px 24px}.user-row {flex-wrap:wrap}.notification-stack {right:16px;top:16px}.form-row {grid-template-columns:1fr}.site-header nav a {font-size:15px}.brand-tile {width:160px;flex-basis:160px}.brand-tile img {width:120px}}
@media(prefers-reduced-motion:reduce){.brand-window.static {overflow-x:auto}.brand-window .brand-track {animation:none!important}.brand-group {flex-wrap:nowrap;width:max-content}.brand-group[aria-hidden=true] {display:none}}
.site-header {height:auto;min-height:94px;gap:20px;padding-top:18px;padding-bottom:18px}
.site-header nav {flex-wrap:wrap}
.footer-preview:not(.mobile) .footer-five {grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1300px){.footer-preview:not(.mobile) .footer-five {grid-template-columns:1.2fr repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.site-header {padding-top:14px;padding-bottom:14px}.site-header nav {width:100%;justify-content:center}.site-header .header-actions {gap:12px}}
.product-draft-preview {padding:20px 0;margin:20px 0;border-block:1px solid var(--line)}
.product-draft-preview summary {font-weight:600;cursor:pointer;margin-bottom:20px}
.draft-product {display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;margin:20px 0;border:1px solid var(--line);border-radius:14px;background:var(--page)}
.draft-product img {width:100%;height:240px;object-fit:contain}
.draft-product.mobile {max-width:375px;grid-template-columns:1fr;margin:20px auto}
.draft-product p {white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:700px){.draft-product {grid-template-columns:1fr}}
@media(max-width:700px){.product-detail>.close {position:fixed;top:calc(5vh + 12px);right:32px}}
.notification-stack {max-height:calc(100vh - 48px);overflow-y:auto}

/* v1.8: module permissions, ordered management rules and contextual image help. */
.permission-picker {border:1px solid var(--line);border-radius:12px;padding:18px;margin:24px 0}
.permission-picker legend {font-weight:650;padding:0 8px}
.permission-picker .check-label {padding:7px 0;margin:4px 0}
.firewall-rule {display:grid;grid-template-columns:80px 120px 130px minmax(180px,1fr);align-items:center;gap:14px;padding:18px;margin:18px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.firewall-rule label {margin:0!important}
.firewall-rule label:nth-last-of-type(1) {grid-column:1/-1}
.firewall-rule .review-actions {grid-column:1/-1;margin:0}
.firewall-test {display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:24px 0}
.firewall-test label {flex:1;min-width:220px}
.image-guidance {display:block;margin:10px 0 6px!important;font-size:12px!important;line-height:1.5!important;color:var(--muted)}
@media(max-width:900px){.firewall-rule {grid-template-columns:1fr 1fr}.firewall-rule>label:nth-of-type(3){grid-column:1/-1}}
@media(max-width:600px){.firewall-rule {grid-template-columns:1fr}.firewall-rule>* {grid-column:1!important}}

/* Validation is visible without depending on colour alone. */
[aria-invalid="true"] { border-color:#c63243!important; box-shadow:0 0 0 4px rgba(198,50,67,.16)!important; }
.field-error { display:block; color:#a51e30; font-size:.86rem; line-height:1.45; margin:8px 0 14px; }
.operations-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; }
.operations-grid label { display:flex; flex-direction:column; gap:8px; margin:14px 0; }
.operations-grid input,.operations-grid select,.operations-grid textarea { width:100%; padding:12px; border:1px solid #d9dce6; border-radius:10px; }
.operations-grid .check-label {flex-direction:row;} .operations-grid .check-label input {width:auto;}
.operations-status {padding:14px 18px; background:#f1f0fa; border-radius:12px; margin:16px 0; overflow-wrap:anywhere;}
.discovery-filters {display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin:24px 0;}
.discovery-filters label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:150px;}
.discovery-filters select{padding:12px;border:1px solid #d6d7df;border-radius:10px;background:var(--surface,#fff);color:inherit;width:100%;}
.comparison-product{min-width:0;display:flex;flex-direction:column;}.comparison-product>.product-card{width:100%;flex:1;}
.compare-choice{display:flex;align-items:center;gap:9px;padding:14px;font-size:.9rem;}.compare-choice input{width:18px;height:18px;}
.comparison-panel{margin:24px 0;}.comparison-panel table{min-width:620px;}.comparison-panel th,.comparison-panel td{min-width:150px;vertical-align:top;padding:16px;}.comparison-panel img{width:90px;height:90px;object-fit:contain;}

/* v1.10 branding: image first, tagline beneath; company name remains accessible metadata. */
.global-brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;max-width:240px;}
.global-brand img{width:190px!important;height:64px!important;max-width:100%!important;object-fit:contain;object-position:left center;}
.global-brand .brand-copy{display:block;}.global-brand small{display:block;font-size:12px!important;line-height:1.35!important;letter-spacing:.015em!important;white-space:normal;}
.site-footer-v17 .global-brand img{width:220px!important;height:78px!important;}
.auth-box .global-brand img{width:220px!important;height:78px!important;}
.social-links{display:flex!important;flex-wrap:wrap;gap:12px!important;margin:16px 0 24px;}.social-links a{display:inline-flex!important;padding:0!important;}.social-links img{width:42px;height:42px;transition:transform .2s;}.social-links a:hover img{transform:translateY(-3px);}
.floating-whatsapp{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;padding:10px 20px 10px 10px;border-radius:40px;background:#158449;color:#fff!important;text-decoration:none;font-weight:700;box-shadow:0 8px 28px #082d2830;}
.floating-whatsapp img{width:38px;height:38px;}.floating-whatsapp:hover{background:#106c3c;}.floating-whatsapp:focus-visible{outline:3px solid #f58220;outline-offset:4px;}
.operations-view{max-width:1300px;margin:0 auto;padding-bottom:40px;}.operations-heading{margin-bottom:28px;}.operations-heading h2{font-size:clamp(24px,3vw,36px);margin:10px 0 14px;}.operations-heading p{line-height:1.7;}
.operations-view .operations-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start;}
.operations-view .panel{padding:clamp(22px,2.5vw,34px);border-radius:20px;margin:0;min-width:0;}
.operations-view>.panel{margin-top:28px!important;}.operations-view .panel h3{font-size:20px;margin:0 0 14px;}.operations-view .panel p{line-height:1.7;margin:0 0 20px;}.operations-view label{font-size:14px;font-weight:600;line-height:1.5;margin:20px 0;gap:10px;}
.operations-view input,.operations-view textarea,.operations-view select{font:inherit;font-weight:400;min-height:46px;border-radius:10px;padding:12px 14px;}.operations-view textarea{min-height:110px;resize:vertical;}.operations-view .check-label input{min-height:0;width:18px;height:18px;flex-shrink:0;}
.operations-view small{display:block;line-height:1.65;margin-top:12px;color:var(--muted,#676273);}.operations-view .review-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 14px;}.operations-view .review-actions button{padding:12px 18px;border-radius:10px;min-height:44px;}
.operations-view form>.btn{margin:28px 0 8px;padding:15px 26px;}.operations-view .table-wrap{margin-top:20px;}.operations-view th,.operations-view td{padding:16px 18px!important;line-height:1.5;}.operations-view .operations-status{margin:0;padding:18px;background:var(--page,#f6f5f9);}.operations-view .operations-status p{margin:8px 0 0;}
.worker-health{padding:22px 26px;border:1px solid #e9c892;background:#fff8e9;border-radius:16px;margin:0 0 28px;color:#614a23;}.worker-health.healthy{border-color:#b5d9c5;background:#edf8f1;color:#24573a;}.worker-health p{margin:8px 0 0;line-height:1.6;}
.campaign-overlay{position:fixed;inset:0;z-index:1500;background:#14102499;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;}.campaign-card{position:relative;width:min(800px,100%);max-height:88vh;overflow:auto;border-radius:24px;display:flex;box-shadow:0 24px 90px #0005;}.campaign-image{width:42%;object-fit:cover;}.campaign-copy{padding:48px 36px;flex:1;min-width:0;}.campaign-copy h2{font-size:clamp(26px,3vw,40px);line-height:1.12;margin:16px 0;}.campaign-copy p{line-height:1.7;white-space:pre-line;margin:0 0 26px;}.campaign-copy small{font-size:11px;letter-spacing:.12em;}.campaign-close{position:absolute;right:14px;top:14px;border:0;border-radius:50%;width:36px;height:36px;background:#ffffffed;color:#222;font-size:26px;z-index:1;}.campaign-later{display:block;margin:18px 0 0;border:0;background:none;color:inherit;text-decoration:underline;padding:8px 0;}.popup-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}.popup-editor{padding:32px!important;}.popup-editor label{margin:18px 0;}.badge-colours{display:flex;gap:18px;}.badge-colours input[type=color]{width:64px;height:42px;padding:4px;}
.custom-product-badges{position:absolute;left:14px;bottom:14px;display:flex;flex-wrap:wrap;gap:7px;max-width:calc(100% - 66px);z-index:3;pointer-events:none;}.custom-product-badges span{padding:6px 11px;border-radius:7px;font-size:11px;font-weight:800;line-height:1.3;letter-spacing:.03em;overflow-wrap:anywhere;}.badge-editor{margin:26px 0;padding:24px;border:1px solid var(--line,#ddd);border-radius:16px;}.badge-editor p{line-height:1.6;}.badge-presets{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;}.badge-presets button,.badge-editor>button{padding:10px 14px;border-radius:8px;}.badge-edit-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:16px;align-items:end;margin:18px 0;}.badge-edit-row label{margin:0;}.badge-edit-row input[type=color]{height:44px;width:100%;padding:4px;}.badge-edit-row button{height:44px;}.badge-preview{position:relative;min-height:65px;}.badge-preview .custom-product-badges{left:0;}.product-detail>div:first-of-type{position:relative;}
@media(max-width:1100px){.operations-view .operations-grid{grid-template-columns:1fr;}}
@media(max-width:650px){.global-brand{max-width:170px;}.global-brand img{width:155px!important;height:52px!important;}.global-brand small{font-size:10px!important;}.floating-whatsapp{right:16px;bottom:16px;padding:8px;}.floating-whatsapp span{display:none;}.campaign-card{display:block;}.campaign-image{width:100%;height:180px;}.campaign-copy{padding:28px;}.popup-editor-grid{grid-template-columns:1fr;}.badge-edit-row{grid-template-columns:1fr 1fr;}.operations-view .panel{padding:22px 18px;}}
@media(prefers-reduced-motion:reduce){.social-links img{transition:none;}}
.site-header{height:auto;min-height:108px;padding-top:16px;padding-bottom:16px;gap:24px;}
.detail-image{position:relative;}

/* Company pages share storefront typography, colours and spacing. */
.company-page{color:var(--text,#211d2d);}.company-page h1{font-size:clamp(36px,5vw,64px);line-height:1.08;letter-spacing:-.045em;margin:18px 0 26px;}.company-lead{font-size:clamp(17px,2vw,21px);line-height:1.75;max-width:780px;color:var(--muted,#655e70);}.company-intro.with-image{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}.company-hero-image{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:24px;}.company-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding-top:12px;}.company-story{padding:36px;border:1px solid var(--line,#e6e3eb);border-radius:20px;background:var(--surface,#fff);}.story-number{font-size:12px;font-weight:700;color:var(--accent,#d76822);letter-spacing:.1em;}.company-story h2{font-size:27px;margin:18px 0;letter-spacing:-.025em;}.company-story p{line-height:1.85;color:var(--muted,#655e70);overflow-wrap:anywhere;}.company-gallery{padding-top:16px;}.company-gallery h2{font-size:32px;margin:16px 0 32px;}.company-gallery>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}.company-gallery figure{margin:0;}.company-gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:16px;}.company-gallery figcaption{padding:14px 4px;line-height:1.6;color:var(--muted,#655e70);}.company-next{display:flex;justify-content:space-between;align-items:center;gap:28px;background:var(--surface,#f8f6fb);}.company-next h2{font-size:30px;margin:14px 0 0;}.company-heading{margin-bottom:38px;}.credential-tools{display:flex;gap:18px;align-items:center;margin:28px 0 36px;}.credential-tools .search{flex:1;}.credential-tools select{padding:14px 18px;border:1px solid var(--line,#ddd);border-radius:12px;background:var(--surface,#fff);color:inherit;font:inherit;}.credential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start;}.credential-card{overflow:hidden;border:1px solid var(--line,#e4dfe9);border-radius:20px;background:var(--surface,#fff);}.credential-visual{height:280px;padding:24px;background:var(--page,#f6f4f8);display:flex;align-items:center;justify-content:center;color:var(--muted,#736c80);}.credential-visual img{width:100%;height:100%;object-fit:contain;}.credential-copy{padding:28px;}.credential-kind{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--accent,#ce6e29);}.credential-copy h2{font-size:24px;line-height:1.25;margin:12px 0;overflow-wrap:anywhere;}.credential-copy p{line-height:1.7;font-size:14px;overflow-wrap:anywhere;}.credential-issuer{font-weight:600;}.credential-copy dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;padding:18px 0;border-top:1px solid var(--line,#eee);margin:22px 0 0;font-size:13px;}.credential-copy dt{color:var(--muted,#777);}.credential-copy dd{margin:0;overflow-wrap:anywhere;}.credential-expired{color:#a33d30;}.credential-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:18px;}.credential-links a{display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:700;}.company-empty{padding:64px 0;text-align:center;}.company-empty h2{font-size:28px;margin:20px 0 14px;}.company-empty p{line-height:1.7;color:var(--muted,#777);}.company-editor{max-width:1250px;}.company-editor>.panel{padding:30px;margin-bottom:26px;border-radius:18px;}.company-editor h2{margin:12px 0 20px;}.company-editor p{line-height:1.7;}.company-editor label{margin:20px 0;}.company-editor textarea{resize:vertical;}.company-presets,.company-editor-heading,.company-save{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}.company-editor-heading{justify-content:space-between;}.company-editor button:not(.btn){display:inline-flex;gap:7px;align-items:center;padding:10px 14px;border-radius:9px;}.company-edit-card{padding:24px;margin-top:24px;border:1px solid var(--line,#e2dee8);border-radius:14px;background:var(--surface,#fff);}.company-edit-card[hidden]{display:none;}.company-edit-card .review-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}.company-gallery-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}.credential-edit-grid{display:grid;grid-template-columns:minmax(250px,1fr) minmax(300px,1.5fr);gap:32px;}.company-preview{border:1px solid var(--line,#ddd);border-radius:20px;overflow:hidden;margin-top:28px;background:var(--page,#fff);}.company-preview-label{display:block;padding:18px 24px;background:var(--surface,#eee);font-size:11px;letter-spacing:.1em;}.company-save{padding:24px;justify-content:flex-end;}.site-header nav{flex-wrap:wrap;justify-content:center;row-gap:12px;}.site-header nav a{white-space:nowrap;}
@media(max-width:1200px){.credential-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.site-header{flex-wrap:wrap;}.site-header nav{order:3;width:100%;justify-content:flex-start;}}
@media(max-width:760px){.company-intro.with-image,.company-story-grid,.credential-edit-grid,.company-gallery-edit{grid-template-columns:1fr;}.company-intro.with-image{gap:30px;}.company-gallery>div{grid-template-columns:repeat(2,minmax(0,1fr));}.company-next{align-items:flex-start;flex-direction:column;}.company-story{padding:26px;}.credential-tools{align-items:stretch;flex-direction:column;}.site-header nav{flex-wrap:nowrap;overflow-x:auto;}.company-editor>.panel{padding:22px 16px;}.company-edit-card{padding:18px;}}
@media(max-width:500px){.credential-grid,.company-gallery>div{grid-template-columns:1fr;}.credential-copy{padding:24px;}.company-save{padding:18px 0;}.company-page h1{font-size:38px;}}

/* v1.11.1: never put navigation tabs in a horizontally scrolling row.
   A stable grid gives the measuring component the real space between brand and search. */
.site-header {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, max-content) minmax(44px, 1fr) auto;
  align-items: center;
  gap: clamp(12px, 2vw, 28px);
  isolation: isolate;
  z-index: 40;
}
.site-header > .brand-home { min-width: 0; max-width: 42vw; }
.site-header > .brand-home .global-brand { max-width: 100%; }
.site-header > .brand-home img { max-width: 100%; }
.site-header .header-actions { margin-left: 0; }
.responsive-navigation { min-width: 0; display: flex; justify-content: center; align-items: center; }
/* Keep the copy measurable but invisible and outside the document's scrollable area. */
.site-header .navigation-measure {
  position: fixed; left: 0; top: 0; width: max-content;
  display: flex; flex-wrap: nowrap; gap: 24px;
  visibility: hidden; pointer-events: none;
  font-size: 15px; font-weight: 650; line-height: 1.4; white-space: nowrap;
  clip-path: inset(100%);
}
.site-header .responsive-navigation nav {
  display: flex; flex-wrap: nowrap; gap: 24px; align-items: center;
  width: auto; order: initial; padding: 0; overflow: visible;
}
.site-header .responsive-navigation nav[hidden] { display: none; }
.site-header .responsive-navigation nav a { white-space: nowrap; padding: 12px 0; }
.site-header .responsive-navigation.is-compact { justify-content: flex-end; }
.navigation-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border: 1px solid var(--line);
  border-radius: 50%; background: var(--surface); color: var(--text); flex: 0 0 44px;
}
.navigation-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
/* Usability release: a compact sticky header, with drawers portalled outside it. */
.site-header { position: sticky; top: 0; min-height: 84px; padding-top: 10px; padding-bottom: 10px; }
.navigation-measure-clip { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.site-header .navigation-measure { position: static; clip-path: none; }
.drawer-layer { position: fixed; inset: 0; z-index: 2000; }
.drawer-shade { position: absolute; inset: 0; background: #10101b80; }
.side-drawer { position: absolute; right: 0; top: 0; bottom: 0; width: min(400px, 92vw); background: var(--surface, #fff); color: var(--text, #202020); box-shadow: -20px 0 60px #0002; display: flex; flex-direction: column; animation: drawer-enter .22s ease-out; }
.drawer-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; border-bottom: 1px solid var(--line); }
.drawer-heading h2 { margin: 0; font-size: 22px; }
.drawer-heading button { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; width: 44px; height: 44px; flex-shrink: 0; padding: 0; color: inherit; }
.drawer-content { overflow-y: auto; overscroll-behavior: contain; padding: 24px; flex: 1; min-height: 0; }
.drawer-logo { width: 180px; height: 64px; object-fit: contain; object-position: left center; margin-bottom: 24px; }
.drawer-navigation { display: flex; flex-direction: column; gap: 6px; }
.drawer-navigation a { padding: 14px 16px; font-size: 17px; font-weight: 600; border-radius: 10px; overflow-wrap: anywhere; }
.drawer-navigation a[aria-current=page], .drawer-navigation a:hover { background: var(--page); color: var(--accent); }
.drawer-contact { display: flex; flex-direction: column; gap: 18px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.side-drawer :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.side-drawer .discovery-filters { display: flex; flex-direction: column; align-items: stretch; }
.side-drawer .discovery-filters label { width: 100%; }
.drawer-apply { width: 100%; margin-top: 24px; }
.mobile-filter-controls { display: flex; gap: 18px; align-items: center; margin: 20px 0; }
@keyframes drawer-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
@media(prefers-reduced-motion:reduce) { .side-drawer { animation: none; } }
.product-search-box { position: relative; flex: 1; min-width: 0; }
.product-search-box .search { width: 100%; box-sizing: border-box; }
.search-suggestions { position: absolute; left: 0; right: 0; top: calc(100% + 8px); background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 30px #0002; z-index: 30; max-height: 60vh; overflow-y: auto; }
.search-suggestions [role=option] { display: flex; gap: 14px; align-items: center; padding: 14px; cursor: pointer; }
.search-suggestions [role=option]:hover, .search-suggestions [aria-selected=true] { background: var(--page); }
.search-suggestions strong, .search-suggestions small { display: block; overflow-wrap: anywhere; }
.search-suggestions small { margin-top: 5px; font-size: 12px; }
.suggestion-image { width: 48px; height: 48px; flex: 0 0 48px; }
.suggestion-image img { width: 100%; height: 100%; object-fit: contain; }
.search-empty { padding: 20px; line-height: 1.6; }
.search-empty button { margin-top: 12px; text-decoration: underline; }
.product-card { min-width: 0; width: 100%; }
.product-card .product-visual { height: auto; aspect-ratio: 1 / 1; min-height: 0; }
.product-card .product-visual > img { width: 100%; height: 100%; object-fit: contain; padding: 20px; box-sizing: border-box; }
.product-meta h3, .product-meta p { overflow-wrap: anywhere; }
.admin-save-status { position: fixed; right: 20px; bottom: 16px; z-index: 85; max-width: min(440px, calc(100vw - 40px)); padding: 12px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); box-shadow: 0 4px 20px #0001; font-size: 13px; pointer-events: none; }
.admin-layout { padding-bottom: 60px; }
.form-row > *, .settings-grid > *, .content-editors > * { min-width: 0; }
.settings-panel input:not([type=checkbox]):not([type=radio]), .settings-panel select, .settings-panel textarea { max-width: 100%; box-sizing: border-box; }
.review-actions, .save-bar { flex-wrap: wrap; gap: 12px; }
.product-spec-table table { table-layout: fixed; width: 100%; }
.product-spec-table td, .product-spec-table th { overflow-wrap: anywhere; }
@media(max-width:760px) {
  .catalogue-tools { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
  .catalogue-tools select { width: 100%; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .form-row { display: grid; grid-template-columns: minmax(0, 1fr); }
}
@media(max-width:380px) { .product-grid { grid-template-columns: minmax(0, 1fr); } }

/* v1.11.2: visible edge controls replace horizontal scrollbar tracks.
   Stable control gutters prevent measuring/showing controls from creating resize loops. */
.horizontal-scroll-shell { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 6px; min-width: 0; max-width: 100%; }
.horizontal-scroll-shell > .horizontal-scroll-viewport { min-width: 0; max-width: 100%; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.horizontal-scroll-viewport::-webkit-scrollbar { height: 0; display: none; }
.horizontal-scroll-shell > .scroll-chevron {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 44px; height: 44px; padding: 0; margin: 0; border-radius: 50%;
  background: var(--surface, #fff); color: var(--text, #202020); border: 1px solid var(--line, #ddd);
  cursor: pointer; box-shadow: 0 2px 8px #0000000a;
}
.horizontal-scroll-shell > .scroll-chevron:disabled { opacity: .28; cursor: default; }
.horizontal-scroll-shell > .scroll-chevron:not(:disabled):hover { background: var(--page, #f5f5f5); }
.scroll-chevron:focus-visible, .horizontal-scroll-viewport:focus-visible { outline: 2px solid var(--accent, #f58220); outline-offset: -2px; }
.horizontal-scroll-viewport.category-strip { justify-content: flex-start; flex-wrap: nowrap; padding: 32px 6px; margin: 0; }
.horizontal-scroll-viewport.category-strip > button { flex: 0 0 auto; }
.horizontal-scroll-viewport.filter-chips { flex-wrap: nowrap; padding: 8px 3px; }
.horizontal-scroll-viewport.filter-chips > button { flex: 0 0 auto; white-space: nowrap; }
.horizontal-scroll-viewport.table-wrap { width: 100%; }
.horizontal-scroll-viewport.product-spec-table { margin: 24px 0; }
@media(max-width:480px) { .horizontal-scroll-shell { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 2px; } .horizontal-scroll-shell > .scroll-chevron { width: 40px; height: 44px; } }
.horizontal-scroll-viewport.brand-manual .brand-group { display: flex; flex-wrap: nowrap; width: max-content; margin-inline: auto; }
.horizontal-scroll-viewport.chart > div { flex-shrink: 0; }

/* v1.11.3: five distinct footer columns; retain tablet/mobile stacking. */
.footer-five { gap: 28px; }
.footer-five > section { min-width: 0; overflow-wrap: anywhere; }
.footer-branch-hours { margin-bottom: 20px; }
.footer-branch-hours strong { display: block; font-size: 14px; line-height: 1.5; }
.site-footer-v17 .footer-branch-hours p { margin: 6px 0 0; }

/* v1.11.4: center the category group only when there is spare room.
   Auto margins share spare space equally. When categories overflow, those
   margins become zero so the first category remains reachable by scrolling.
   Unlike justify-content:center, this cannot push overflowing items off the left edge. */
.horizontal-scroll-viewport.category-strip > button:first-child { margin-left: auto; }
.horizontal-scroll-viewport.category-strip > button:last-child { margin-right: auto; }

/* v1.11.5: branches and hours share rows rather than independently drifting down the footer. */
.footer-branch-pair { grid-column: span 2; }
.footer-branch-table { width:100%; table-layout:fixed; border-collapse:collapse; }
.footer-branch-table th, .footer-branch-table td { width:50%; padding:0 12px 20px; vertical-align:top; text-align:left; border:0; background:transparent; font-weight:400; }
.footer-branch-table th:first-child, .footer-branch-table td:first-child { padding-left:0; }
.footer-branch-table th:last-child, .footer-branch-table td:last-child { padding-right:0; }
.site-footer-v17 .footer-branch-table h4 { margin:0; }
.site-footer-v17 .footer-branch-table a { margin:0; }
.site-footer-v17 .footer-branch-table p { margin:6px 0 0; font-size:14px; line-height:1.65; color:inherit; overflow-wrap:anywhere; }
.footer-branch-table tbody th a { font-weight:600; }
.footer-branch-table tfoot td { padding-top:4px; padding-bottom:0; text-align:center; }
.footer-preview.mobile .footer-branch-pair { grid-column:span 1; }
@media(max-width:700px) { .footer-branch-pair { grid-column:span 1; } }

/* Comparison cells use shared table rows: long names never misalign the Remove buttons. */
.comparison-panel { padding:clamp(20px,3vw,36px); border-radius:20px; }
.comparison-heading { margin-bottom:24px; }
.comparison-heading h2 { margin:0 0 12px; }
.comparison-heading p { margin:0; line-height:1.65; }
.comparison-table { width:100%; min-width:660px; table-layout:fixed; border-collapse:collapse; }
.comparison-panel .comparison-table th, .comparison-panel .comparison-table td { padding:20px; min-width:0; line-height:1.6; text-align:left; overflow-wrap:anywhere; border-bottom:1px solid var(--line); }
.comparison-table thead th, .comparison-table thead td { background:var(--surface); }
.comparison-table thead th:first-child[rowspan] { width:160px; vertical-align:bottom; }
.comparison-panel .comparison-images td { padding-bottom:8px; border-bottom:0; }
.comparison-image-frame { height:112px; display:flex; align-items:center; justify-content:center; }
.comparison-panel .comparison-image-frame img { width:112px; height:112px; object-fit:contain; }
.comparison-panel .comparison-names th { padding-top:12px; padding-bottom:12px; border-bottom:0; font-size:1rem; vertical-align:top; }
.comparison-panel .comparison-actions td { padding-top:0; padding-bottom:24px; }
.comparison-actions .btn { min-height:42px; padding:10px 18px; display:inline-flex; justify-content:center; align-items:center; }
.comparison-table tbody th { font-weight:600; }
.comparison-panel .comparison-table tbody tr:last-child th, .comparison-panel .comparison-table tbody tr:last-child td { border-bottom:0; }
.two-factor-panel { margin-bottom:28px; }
.two-factor-panel form { max-width:480px; margin:24px 0; }
.two-factor-confirm { padding-top:20px; border-top:1px solid var(--line); }
.two-factor-accounts { list-style:none; padding:0; margin:20px 0; max-width:640px; }
.two-factor-accounts li { display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.two-factor-panel small { display:block; line-height:1.65; }
@media(max-width:700px) { .comparison-panel { padding:20px 12px; }.comparison-heading { padding:0 8px; }.comparison-panel .comparison-table th, .comparison-panel .comparison-table td { padding-left:16px; padding-right:16px; } }
/* Override the compact admin-table defaults for these customer-facing tables. */
.footer-branch-table { white-space:normal; font-size:14px; color:inherit; }
.footer-branch-table th, .footer-branch-table td { color:inherit; font-size:14px; line-height:1.65; }
.comparison-table { white-space:normal; color:var(--text); font-size:15px; }
.comparison-panel .comparison-table th, .comparison-panel .comparison-table td { color:var(--text); font-size:15px; }
.comparison-panel .comparison-names th { font-size:16px; font-weight:600; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.comparison-heading h2 { font-size:clamp(24px,2vw,30px); letter-spacing:-.03em; line-height:1.25; }
.comparison-actions .btn { border:1px solid var(--line); border-radius:10px; background:var(--page); font-size:14px; }
.site-footer-v17 .footer-branch-table tbody td p { margin-top:0; }

/* v1.12 settings, hero media and banner designer. Scoped to avoid altering site themes. */
.release-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}.release-grid fieldset{border:1px solid var(--line,#ddd);border-radius:12px;padding:24px;min-width:0}.release-grid legend{font-weight:700;padding:0 8px}.release-lock{display:flex;align-items:center;gap:16px;justify-content:space-between;border-top:1px solid #ddd;padding:18px 0}.release-lock small{display:block;margin-top:6px}.settings-panel>.btn{margin-top:18px}.banner-designer>.panel{margin-bottom:24px}.designer-preview{margin:24px auto;border:1px solid #ddd;overflow:hidden}.enhanced-hero{position:relative;width:100%;min-height:280px;background-size:cover;background-color:#211c31;overflow:hidden;isolation:isolate}.enhanced-hero video{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;z-index:-2}.enhanced-hero-shade{position:absolute;inset:0;z-index:-1}.enhanced-hero-copy{max-width:840px;padding:clamp(40px,8vw,120px) clamp(24px,7vw,120px)}.enhanced-hero-copy h1{font-size:clamp(32px,5vw,76px);line-height:1.06;letter-spacing:-2px;margin:24px 0}.enhanced-hero-copy p{font-size:clamp(16px,2vw,22px);line-height:1.5;max-width:650px;margin-bottom:28px}.enhanced-hero-controls{position:absolute;bottom:24px;right:24px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.enhanced-hero-controls button{padding:10px 16px;background:#ffffffed;border:1px solid #fff;border-radius:30px;color:#211c31}.enhanced-hero-controls span{padding:8px;background:#0007;border-radius:12px;color:#fff}.designed-banner{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;min-height:var(--banner-height);overflow:hidden}.designed-banner h2{color:inherit;font-family:inherit;font-size:var(--banner-title);line-height:1.08;margin:20px 0}.designed-banner p{white-space:pre-line;font-size:18px;line-height:1.6;margin-bottom:28px}.designed-copy{padding:clamp(30px,5vw,80px);position:relative;z-index:2;align-self:center}.designed-picture{overflow:hidden;display:block;min-height:100%;position:relative;z-index:0}.designed-picture img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.designed-banner.layout-reverse .designed-picture{grid-column:1;grid-row:1}.designed-banner.layout-reverse .designed-copy{grid-column:2}.designed-banner.layout-overlay{display:block}.layout-overlay .designed-picture,.banner-overlay{position:absolute;inset:0}.layout-overlay .designed-copy{max-width:800px}.banner-overlay{z-index:1;pointer-events:none}.designed-banner.layout-canvas{display:block;height:var(--banner-height)}.banner-layer{position:absolute;left:var(--layer-x);top:var(--layer-y);width:var(--layer-width);font-size:var(--layer-size);line-height:1.15;white-space:pre-line;overflow-wrap:anywhere}.banner-layer img{width:100%;height:auto;display:block}.banner-layer.selected{outline:2px dashed #ffab45;outline-offset:5px;cursor:move}.banner-layer:focus-visible{outline:3px solid #5dc5ff}.banner-layer .btn{font-size:clamp(14px,1.2vw,18px);display:inline-flex}.banner-glow{pointer-events:none;position:absolute;inset:0;z-index:1;opacity:.65;background:radial-gradient(circle 140px at var(--glow-x,-500px) var(--glow-y,-500px),#ff7b2b88, #b06bff55 40%,#53dbe633 65%,transparent 100%);mix-blend-mode:screen}.designed-banner.mobile-preview{display:flex;flex-direction:column;min-height:var(--banner-mobile-height)}.designed-banner.mobile-preview h2{font-size:var(--banner-mobile-title)}.designed-banner.mobile-preview .designed-picture{min-height:280px;flex:1;order:2}.designed-banner.mobile-preview.layout-overlay .designed-picture{order:0}.designed-banner.mobile-preview.layout-canvas{display:block;height:var(--banner-mobile-height)}.mobile-preview .banner-layer{left:var(--layer-mobile-x);top:var(--layer-mobile-y);width:var(--layer-mobile-width);font-size:var(--layer-mobile-size)}
@media(max-width:700px){.release-grid{grid-template-columns:1fr;gap:18px}.release-grid fieldset{padding:18px}.release-lock{flex-wrap:wrap}.designed-banner{display:flex;flex-direction:column;min-height:var(--banner-mobile-height)}.designed-banner h2{font-size:var(--banner-mobile-title)}.designed-picture{min-height:280px;order:2}.designed-banner.layout-overlay .designed-picture{order:0}.designed-banner.layout-canvas{display:block;height:var(--banner-mobile-height)}.banner-layer{left:var(--layer-mobile-x);top:var(--layer-mobile-y);width:var(--layer-mobile-width);font-size:var(--layer-mobile-size)}.enhanced-hero-copy h1{letter-spacing:-1px}.enhanced-hero-controls{bottom:16px;right:16px;left:16px}.designed-copy{padding:28px}}
@media(prefers-reduced-motion:reduce){.banner-glow{display:none!important}.designed-banner,.enhanced-hero{scroll-behavior:auto}}

/* v1.12.1: compact unified media controls. Placement is independent of style. */
.enhanced-hero-controls{inset:auto;bottom:20px;left:50%;transform:translateX(-50%);gap:2px;flex-wrap:nowrap;max-width:calc(100% - 32px);padding:4px;border-radius:28px;background:#16162399;color:white;z-index:3}
.enhanced-hero-controls button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.enhanced-hero-controls button:disabled{opacity:.3;cursor:default}.enhanced-hero-controls button:focus-visible{outline:2px solid currentColor;outline-offset:2px}.enhanced-hero-controls button:hover{background:#ffffff20}
.hero-dots{display:flex;max-width:160px;overflow:auto}.hero-dots button{width:24px}.hero-dots i{width:6px;height:6px;border:1px solid currentColor;border-radius:50%}.hero-dots [aria-current=true] i{background:currentColor}
.enhanced-hero-controls.control-position-top-left,.enhanced-hero-controls.control-position-top-center,.enhanced-hero-controls.control-position-top-right{top:20px;bottom:auto}
.enhanced-hero-controls.control-position-top-left,.enhanced-hero-controls.control-position-bottom-left{left:20px;right:auto;transform:none}
.enhanced-hero-controls.control-position-top-right,.enhanced-hero-controls.control-position-bottom-right{right:20px;left:auto;transform:none}
.control-style-1{backdrop-filter:blur(12px);border:1px solid #ffffff55}.control-style-2{background:#0003;border-radius:8px}.control-style-3{background:none;gap:8px}.control-style-3>button{background:#202026aa}.control-style-4{background:#161623e8}.control-style-5{background:none}.control-style-5>button:last-child{background:white;color:#242039}.control-style-6{background:none;filter:drop-shadow(0 1px 3px #000)}.control-style-7{background:none;padding:0;gap:0;filter:drop-shadow(0 1px 2px #000)}.control-style-7 svg{stroke-width:1.3}.control-style-8{background:#15151b66;border:1px solid #ffffff33;border-radius:12px;backdrop-filter:blur(8px);padding:0}

/* Navbar designer affects storefront only. */
.navbar-frame{transition:transform .2s,background .2s}.nav-hidden{transform:translateY(-100%)}.navbar-frame:focus-within{transform:none}.navbar-frame .site-header{position:static;background:transparent;color:inherit;border:0;min-height:inherit;padding:12px 0;box-shadow:none}.navbar-frame .site-header a,.navbar-frame .navigation-toggle{color:inherit}.navbar-frame .site-header a:hover{color:var(--nav-hover)}.navbar-frame .site-header a.active{color:var(--nav-active)}.navbar-frame .brand img{max-width:var(--nav-logo);width:var(--nav-logo)}.navbar-frame nav,.navbar-frame .navigation-measure{gap:var(--nav-gap);font-size:inherit;font-weight:inherit}.nav-align-left nav{justify-content:flex-start}.nav-align-center nav{justify-content:center}.nav-align-right nav{justify-content:flex-end}.nav-layout-stacked .site-header{flex-wrap:wrap}.nav-layout-stacked .brand-home{flex-basis:100%}.nav-layout-center .brand-home{order:1}.nav-layout-center .header-actions{order:2}.navbar-frame .drawer{background:var(--nav-mobile-bg);color:var(--nav-mobile-text)}.theme-swatches{display:flex;gap:4px;margin-bottom:10px}.theme-swatches i{display:block;width:30px;height:20px;border-radius:5px;border:1px solid #0002}

body[data-nav-drawer] .side-drawer{background:var(--nav-mobile-bg);color:var(--nav-mobile-text)}body[data-nav-drawer=left] .side-drawer{left:0;right:auto}.navbar-frame .brand-home img{width:var(--nav-logo);max-width:var(--nav-logo)}

/* Completion: accessible details dropdowns and responsive editing controls. */
.nav-item-editor{padding:16px;margin:16px 0;border:1px solid var(--line);border-radius:10px}.nav-item-editor button{margin:6px}.nav-dropdown{position:relative}.nav-dropdown summary{cursor:pointer;padding:10px;white-space:nowrap}.nav-submenu{position:absolute;top:100%;left:0;min-width:220px;max-width:85vw;padding:12px;background:var(--page,#fff);color:var(--text,#222);box-shadow:0 8px 24px #0002;border-radius:10px;z-index:80;display:flex;flex-direction:column;gap:8px}.nav-submenu .nav-submenu{position:static;box-shadow:none}.navbar-mobile-dropdown{position:absolute;top:100%;left:0;right:0;max-height:70vh;overflow:auto;padding:20px;background:var(--nav-mobile-bg);color:var(--nav-mobile-text);display:flex!important;flex-direction:column}.navbar-mobile-dropdown .nav-submenu,.side-drawer .nav-submenu{position:static;box-shadow:none;max-width:100%;background:inherit;color:inherit}.navbar-frame :focus-visible{outline:2px solid var(--nav-focus);outline-offset:3px}body[data-nav-drawer] .side-drawer{width:min(var(--nav-mobile-width),100vw)}body[data-nav-drawer] .drawer-navigation{gap:var(--nav-mobile-gap)}.navbar-frame .site-header{font:inherit}.navbar-frame nav a{font:inherit}.navbar-frame .header-actions{display:flex;gap:10px}.nav-layout-center .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.nav-layout-center .brand-home{grid-column:2;grid-row:1}.nav-layout-center .responsive-navigation{grid-column:1;grid-row:1}.nav-layout-center .header-actions{grid-column:3;grid-row:1;justify-self:end}.navbar-frame{flex-shrink:0}

.enhanced-hero-copy p{color:inherit}.navbar-frame .navigation-measure span{padding:10px}.navbar-frame .nav-dropdown summary{font:inherit}.nav-submenu a{white-space:normal}

/* v1.12.5: always reachable actions; previews remain beside their controls. */
.admin-content{padding-bottom:110px}.admin-content .save-bar{position:sticky;bottom:12px;z-index:90;background:var(--page,#fff);border:1px solid var(--line,#ddd);border-radius:14px;padding:14px 18px;box-shadow:0 6px 30px #0002}
.typography-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px}.typography-fields input,.typography-fields select{width:100%}.settings-panel fieldset{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:12px}
.navbar-frame.nav-align-left .responsive-navigation nav{justify-content:flex-start!important}.navbar-frame.nav-align-center .responsive-navigation nav{justify-content:center!important}.navbar-frame.nav-align-right .responsive-navigation nav{justify-content:flex-end!important}
@media(min-width:1100px){.banner-designer{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,1fr);gap:22px;align-items:start}.banner-designer>section:first-child{grid-column:1/-1}.banner-designer>section:has(.live-preview-heading){grid-column:2;grid-row:2;position:sticky;top:20px;max-height:85vh;overflow:auto}.banner-designer>section:not(:first-child):not(:has(.live-preview-heading)){grid-column:1}}

@media(min-width:1100px){.pinned-banner-preview{position:fixed!important;right:24px;top:100px;width:36vw;max-height:75vh;overflow:auto;z-index:20}.banner-designer{display:block;padding-right:40vw}.banner-designer>section:first-child{width:auto}.pinned-appearance-preview{position:sticky;bottom:90px;max-height:38vh;overflow:auto;z-index:15;box-shadow:0 4px 20px #0002}}

.admin-save-status{position:fixed!important;bottom:16px;right:20px;top:auto!important;z-index:120;display:flex;gap:14px;align-items:center;padding:12px 18px;background:var(--page,#fff);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 24px #0002}

.navbar-frame.nav-align-left .responsive-navigation{justify-content:flex-start}.navbar-frame.nav-align-center .responsive-navigation{justify-content:center}.navbar-frame.nav-align-right .responsive-navigation{justify-content:flex-end}
@media(min-width:1100px){.settings-panel:has(.pinned-hero-preview){padding-right:42vw}.pinned-hero-preview{position:fixed;right:24px;top:110px;width:36vw;z-index:20;box-shadow:0 8px 28px #0002}.pinned-hero-preview .enhanced-hero{min-height:300px!important;height:48vh!important}}
.admin-content .save-bar{position:fixed;right:20px;bottom:78px;max-width:calc(100vw - 300px)}@media(max-width:800px){.admin-content .save-bar{max-width:calc(100vw - 24px);right:12px}.admin-save-status{max-width:calc(100vw - 24px);right:12px;font-size:12px}}

/* A geometric icon avoids the font-dependent baseline of the multiplication glyph. */
.campaign-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;min-width:36px;min-height:36px;flex-shrink:0}.campaign-close svg{display:block;margin:0;flex:none}

/* A geometric icon avoids the font-dependent baseline of the multiplication glyph. */
.campaign-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;min-width:36px;min-height:36px;flex-shrink:0}.campaign-close svg{display:block;margin:0;flex:none}

/* v1.12.7: shared preview chrome supersedes pinned layouts. */
.banner-designer{display:block!important;padding-right:0!important}.settings-panel:has(.pinned-hero-preview){padding-right:32px!important}
.studio-preview-window{position:fixed;z-index:110;background:var(--page,#fff);border:1px solid var(--line,#ddd);border-radius:14px;box-shadow:0 16px 60px #0003;resize:both;overflow:hidden;min-width:280px;min-height:180px;max-width:100vw;max-height:100dvh;display:flex;flex-direction:column}.studio-preview-window[hidden]{display:none}.studio-preview-window.is-full{inset:0!important;width:100vw!important;height:100dvh!important;border-radius:0;resize:none}.studio-preview-window>header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:move;touch-action:none;background:var(--surface,#eee);flex-shrink:0}.studio-preview-window>header button{width:32px;height:32px;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;font-size:20px}.studio-preview-content{overflow:auto;flex:1;padding:12px}.preview-minimised{position:fixed;bottom:20px;left:20px;z-index:120}.admin-save-status{box-shadow:none!important;border:0!important;background:transparent!important;pointer-events:none;bottom:0!important;font-size:12px}.admin-content{padding-bottom:130px}
@media(max-width:700px){.studio-preview-window{inset:0!important;width:100vw!important;height:100dvh!important;resize:none}}

.type-role{margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:12px 16px}.type-role summary{cursor:pointer;font-weight:650}.type-role summary label{display:flex;align-items:center;gap:10px;cursor:pointer}.type-role .typography-fields{padding-top:14px}
