not recolouring.
   Shared invariant: four visit services always remain in one row.
   Sahra,
Linen and Ember then use unrelated layout systems. */

/* ---------- Non-negotiable responsive invariants ------------------------- */
:root[data-design-template] .service-quick-rail {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: auto !important;
  gap: 7px !important;
  overflow: visible !important;
}
:root[data-design-template] .service-quick {
  position: relative;
  width: auto !important;
  min-width: 0 !important;
  min-height: 88px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  padding: 10px 3px 8px !important;
  transform: none !important;
}
:root[data-design-template] .service-quick > span {
  width: 38px !important;
  height: 38px !important;
  display: grid !important;
  place-items: center !important;
  margin-inline: auto !important;
}
:root[data-design-template] .service-icon { width: 27px; height: 27px; }
:root[data-design-template] .service-quick strong {
  display: block;
  min-width: 0;
  margin-top: 7px;
  color: inherit;
  font-size: clamp(7px, 2.3vw, 9px) !important;
  line-height: 1.12 !important;
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none;
}
.service-sequence { display: none; }
.popular-rank, .news-card-index, .loyalty-seal { display: none; }
.popular-copy { display: block; min-width: 0; }

/* Loyalty is a two-column component. Text and the physical card can never
   occupy the same grid cell, including 320px devices. */
:root[data-design-template] .loyalty-preview {
  min-height: 180px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 128px !important;
  grid-template-rows: 104px 44px !important;
  gap: 8px 10px !important;
  padding: 16px !important;
  align-items: start;
}
:root[data-design-template] .loyalty-copy {
  position: relative !important;
  z-index: 3;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}
:root[data-design-template] .loyalty-copy strong,
:root[data-design-template] .loyalty-copy span {
  max-width: 100% !important;
  overflow-wrap: normal;
}
:root[data-design-template] .loyalty-plastic {
  position: relative !important;
  inset: auto !important;
  grid-column: 2;
  grid-row: 1;
  width: 124px !important;
  height: 78px !important;
  padding: 10px !important;
  justify-self: end;
  transform: none !important;
}
:root[data-design-template] .loyalty-balance {
  position: relative !important;
  inset: auto !important;
  grid-column: 2;
  grid-row: 2;
  align-self: end;
  justify-self: end;
}
:root[data-design-template] .loyalty-arrow {
  left: 16px !important;
  bottom: 17px !important;
}
@media (max-width: 350px) {
  :root[data-design-template] .service-quick-rail { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 4px !important; }
  :root[data-design-template] .service-quick { min-height: 82px !important; padding-inline: 1px !important; }
  :root[data-design-template] .service-quick > span { width: 34px !important; height: 34px !important; }
  :root[data-design-template] .service-icon { width: 24px; height: 24px; }
  :root[data-design-template] .loyalty-preview { grid-template-columns: minmax(0, 1fr) 110px !important; padding: 14px !important; }
  :root[data-design-template] .loyalty-plastic { width: 108px !important; height: 70px !important; }
  :root[data-design-template] .loyalty-copy strong { font-size: 17px !important; }
  :root[data-design-template] .loyalty-copy span { font-size: 9px !important; }
}

/* ========================================================================
   SAHRA / EDITORIAL — black-red collectible zine.
   Flat editorial rows, hard edges, numbered content and a ticket dock. */
:root[data-design-template="editorial"] {
  --sahra-black: #050303;
  --sahra-panel: #130807;
  --sahra-red: #ff3b1f;
  --sahra-orange: #ff8a1f;
  --sahra-ink: #fff7f2;
  --sahra-muted: #d9aea4;
}
:root[data-design-template="editorial"] body { background: #020101 !important; }
:root[data-design-template="editorial"] .app {
  color: var(--sahra-ink);
  background:
    linear-gradient(90deg, transparent 49.7%, rgba(255,59,31,.035) 50%, transparent 50.3%),
    radial-gradient(circle at 100% 0, rgba(255,59,31,.18), transparent 24%),
    var(--sahra-black) !important;
}
:root[data-design-template="editorial"] .screen { padding-inline: 14px !important; }
:root[data-design-template="editorial"] .home-screen > section { margin-top: 25px; }
:root[data-design-template="editorial"] .top-home {
  height: 472px !important;
  margin: 10px 8px 0 !important;
  border: 1px solid rgba(255,59,31,.45) !important;
  border-radius: 0 0 30px 0 !important;
  background: #080303 !important;
}
:root[data-design-template="editorial"] .top-home .hero-backdrop {
  width: 100% !important;
  height: 56% !important;
  clip-path: polygon(0 0, 100% 0, 100% 83%, 0 100%) !important;
  filter: saturate(.9) contrast(1.18) !important;
}
:root[data-design-template="editorial"] .hero-copy {
  right: 14px !important;
  bottom: 14px !important;
  left: 14px !important;
  width: auto !important;
  min-height: 178px !important;
  padding: 19px 18px 16px 25px !important;
  border: 0 !important;
  border-left: 5px solid var(--sahra-red) !important;
  border-radius: 0 0 22px 0 !important;
  background: #130807 !important;
}
:root[data-design-template="editorial"] .hero-copy h2 { font-size: 34px !important; }
:root[data-design-template="editorial"] .hero-copy > p:last-of-type { color: var(--sahra-muted) !important; }
:root[data-design-template="editorial"] .home-feature-story {
  min-height: 238px !important;
  display: block !important;
  border: 1px solid rgba(255,59,31,.35) !important;
  border-radius: 0 0 25px 0 !important;
  overflow: hidden;
  background: var(--sahra-panel) !important;
}
:root[data-design-template="editorial"] .home-feature-story::after,
:root[data-design-template="editorial"] .home-feature-scrim { display: none !important; }
:root[data-design-template="editorial"] .home-feature-story > img {
  position: absolute;
  inset: 0 auto 0 0;
  width: 43% !important;
  height: 100% !important;
  object-fit: cover;
  filter: saturate(.86) contrast(1.14);
}
:root[data-design-template="editorial"] .home-feature-copy {
  position: absolute !important;
  inset: 0 0 0 43% !important;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 17px !important;
  color: var(--sahra-ink) !important;
  background: linear-gradient(145deg, #1c0b08, #0d0504) !important;
}
:root[data-design-template="editorial"] .home-feature-copy :where(strong,small,em,b) { color: var(--sahra-ink) !important; text-shadow: none !important; }
:root[data-design-template="editorial"] .home-feature-copy small { color: var(--sahra-orange) !important; font: 800 8px/1.3 var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
:root[data-design-template="editorial"] .home-feature-copy strong { margin-top: 9px; font: 400 25px/1 Georgia, serif !important; }
:root[data-design-template="editorial"] .home-feature-copy em { margin-top: 8px; color: var(--sahra-muted) !important; font-size: 10px; font-style: normal; line-height: 1.35; }
:root[data-design-template="editorial"] .home-feature-copy b { margin-top: 13px; color: var(--sahra-red) !important; font-size: 9px; }

:root[data-design-template="editorial"] .home-service-hub {
  padding: 12px 0 0 !important;
  border: 0 !important;
  border-top: 4px solid var(--sahra-red) !important;
  background: transparent !important;
}
:root[data-design-template="editorial"] .service-hub-head { padding-bottom: 9px; border-bottom: 1px solid rgba(255,59,31,.28); }
:root[data-design-template="editorial"] .service-hub-head h2 { color: var(--sahra-ink) !important; font: 400 28px/1 Georgia, serif; }
:root[data-design-template="editorial"] .service-visit-state { color: var(--sahra-muted) !important; }
:root[data-design-template="editorial"] .service-quick {
  min-height: 91px !important;
  border: 1px solid rgba(255,59,31,.34) !important;
  border-radius: 0 0 14px 0 !important;
  color: var(--sahra-ink) !important;
  background: #100605 !important;
}
:root[data-design-template="editorial"] .service-quick.is-primary { color: #190301 !important; background: linear-gradient(145deg, var(--sahra-red), var(--sahra-orange)) !important; }
:root[data-design-template="editorial"] .service-quick > span { border-radius: 0 !important; color: var(--sahra-red) !important; background: transparent !important; }
:root[data-design-template="editorial"] .service-quick.is-primary > span { color: #190301 !important; }
:root[data-design-template="editorial"] .service-sequence { display: block; position: absolute; top: 5px; left: 6px; color: var(--sahra-orange); font: 700 7px var(--font-body); }

:root[data-design-template="editorial"] .popular-strip {
  display: grid !important;
  grid-auto-flow: row !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  border-top: 1px solid rgba(255,59,31,.35);
}
:root[data-design-template="editorial"] .popular-strip article {
  display: grid !important;
  grid-template-columns: 30px 68px minmax(0,1fr) !important;
  align-items: center;
  gap: 11px;
  min-height: 82px;
  padding: 7px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,59,31,.25) !important;
  border-radius: 0 !important;
  color: var(--sahra-ink);
  background: transparent !important;
}
:root[data-design-template="editorial"] .popular-rank { display: block; color: var(--sahra-red); font: 400 18px Georgia, serif; }
:root[data-design-template="editorial"] .popular-strip img,
:root[data-design-template="editorial"] .popular-strip article:first-child img { width: 68px !important; height: 68px !important; aspect-ratio: 1 !important; border: 0 !important; border-radius: 0 0 12px 0 !important; }
:root[data-design-template="editorial"] .popular-copy :where(strong,small) { padding: 0 !important; }
:root[data-design-template="editorial"] .popular-copy strong { margin: 0 0 5px !important; color: var(--sahra-ink); font: 500 14px/1.2 var(--font-body); }
:root[data-design-template="editorial"] .popular-copy small { color: var(--sahra-muted); }

:root[data-design-template="editorial"] .news-grid { gap: 0 !important; border-top: 1px solid rgba(255,59,31,.35); }
:root[data-design-template="editorial"] .news-card {
  position: relative;
  min-height: 100px;
  display: grid !important;
  grid-template-columns: 26px 84px minmax(0,1fr) !important;
  gap: 10px;
  padding: 9px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,59,31,.28) !important;
  border-radius: 0 !important;
  color: var(--sahra-ink) !important;
  background: transparent !important;
}
:root[data-design-template="editorial"] .news-card-index { display: block; align-self: center; color: var(--sahra-red); font: 400 16px Georgia, serif; }
:root[data-design-template="editorial"] .news-card img { grid-column: 2; width: 84px !important; height: 84px !important; min-height: 84px !important; border-radius: 0 0 12px 0 !important; }
:root[data-design-template="editorial"] .news-card > div { grid-column: 3; padding: 4px 0 !important; }
:root[data-design-template="editorial"] .news-card :where(h3,p) { color: var(--sahra-ink) !important; }
:root[data-design-template="editorial"] .news-card p { color: var(--sahra-muted) !important; -webkit-line-clamp: 2; }

:root[data-design-template="editorial"] .loyalty-preview { border-radius: 0 0 26px 0 !important; border-left: 5px solid var(--sahra-red) !important; }
:root[data-design-template="editorial"] .loyalty-seal { display: block; position: absolute; right: -20px; bottom: -12px; color: rgba(255,59,31,.12); font: 800 48px/1 var(--font-body); transform: rotate(-10deg); }
:root[data-design-template="editorial"] .loyalty-plastic { border-radius: 0 0 15px 0 !important; transform: rotate(2deg) !important; }
:root[data-design-template="editorial"] .tabs {
  right: 9px !important; bottom: 9px !important; left: 9px !important;
  height: 72px !important; padding: 0 5px !important; border: 1px solid rgba(255,59,31,.38) !important;
  border-radius: 0 0 23px 0 !important; background: rgba(10,3,3,.97) !important;
}
:root[data-design-template="editorial"] .tab { min-height: 60px; border-right: 1px solid rgba(255,59,31,.12); }
:root[data-design-template="editorial"] .tab.on { color: var(--sahra-red) !important; background: linear-gradient(180deg, rgba(255,59,31,.15), transparent) !important; }
:root[data-design-template="editorial"] .tab.on::after { width: 22px; height: 3px; border-radius: 0; background: var(--sahra-red); }
:root[data-design-template="editorial"] :where(.menu-item) { border-radius: 0 0 17px 0 !important; }
:root[data-design-template="editorial"] .menu-product-list { gap: 0 !important; border-top: 1px solid rgba(255,59,31,.3); }
:root[data-design-template="editorial"] .menu-item { border-width: 0 0 1px !important; background: #0d0605 !important; }

/* ========================================================================
   LINEN / GALLERY — wedding invitation and tactile album.
   Arches, medallions, a collage lead, stationery grid and floating ribbon. */
:root[data-design-template="gallery"] {
  --linen-paper: #f4eadb;
  --linen-card: #fffaf1;
  --linen-ink: #2f2822;
  --linen-muted: #74685e;
  --linen-foil: #aa7456;
}
:root[data-design-template="gallery"] body { background: #dfd2c1 !important; }
:root[data-design-template="gallery"] .app {
  color: var(--linen-ink);
  background:
    radial-gradient(circle at 22px 22px, rgba(100,72,52,.07) 1px, transparent 1.4px) 0 0/44px 44px,
    linear-gradient(rgba(255,250,241,.14), transparent 30%),
    var(--linen-paper) !important;
}
:root[data-design-template="gallery"] .top-home { height: 438px !important; border-radius: 150px 150px 28px 28px !important; }
:root[data-design-template="gallery"] .top-home .hero-backdrop { clip-path: inset(0 round 150px 150px 28px 28px); }
:root[data-design-template="gallery"] .hero-copy { right: 22px !important; bottom: 19px !important; left: 22px !important; padding: 18px 20px !important; border-radius: 22px 22px 8px 22px !important; }
:root[data-design-template="gallery"] .home-feature-story {
  min-height: 326px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
:root[data-design-template="gallery"] .home-feature-story::after,
:root[data-design-template="gallery"] .home-feature-scrim { display: none !important; }
:root[data-design-template="gallery"] .home-feature-story > img {
  position: absolute; inset: 0 18% 50px 0; width: 82% !important; height: auto !important;
  border: 9px solid var(--linen-card); border-radius: 100px 100px 14px 14px; object-fit: cover;
  box-shadow: 0 18px 38px rgba(76,51,35,.16);
}
:root[data-design-template="gallery"] .home-feature-copy {
  position: absolute !important; z-index: 3; right: 0; bottom: 0; left: 29% !important;
  width: auto !important; min-height: 174px; display: flex; flex-direction: column; justify-content: center;
  padding: 18px 20px !important; border: 1px solid rgba(126,88,64,.2); border-radius: 7px 28px 28px 28px;
  color: var(--linen-ink) !important; background: var(--linen-card) !important; box-shadow: 0 16px 32px rgba(86,60,43,.13);
}
:root[data-design-template="gallery"] .home-feature-copy :where(strong,small,em,b) { color: var(--linen-ink) !important; text-shadow: none !important; }
:root[data-design-template="gallery"] .home-feature-copy small,
:root[data-design-template="gallery"] .home-feature-copy b { color: var(--linen-foil) !important; }
:root[data-design-template="gallery"] .home-feature-copy strong { margin: 7px 0; font: 400 25px/1.02 Georgia, serif !important; }
:root[data-design-template="gallery"] .home-feature-copy em { color: var(--linen-muted) !important; font-size: 10px; font-style: normal; line-height: 1.4; }

:root[data-design-template="gallery"] .home-service-hub { padding: 0 !important; background: transparent !important; }
:root[data-design-template="gallery"] .service-hub-head { justify-content: center; text-align: center; }
:root[data-design-template="gallery"] .service-visit-state { display: none !important; }
:root[data-design-template="gallery"] .service-quick {
  min-height: 105px !important; padding-top: 8px !important; border: 0 !important; border-radius: 999px 999px 18px 18px !important;
  color: var(--linen-ink) !important; background: rgba(255,250,241,.74) !important; box-shadow: inset 0 0 0 1px rgba(126,88,64,.17) !important;
}
:root[data-design-template="gallery"] .service-quick > span { width: 48px !important; height: 48px !important; border: 1px solid rgba(126,88,64,.24); border-radius: 50% !important; color: var(--linen-foil) !important; background: var(--linen-card) !important; }
:root[data-design-template="gallery"] .service-quick.is-primary { color: #fffaf2 !important; background: var(--linen-foil) !important; }
:root[data-design-template="gallery"] .service-quick.is-primary > span { color: #fffaf2 !important; border-color: rgba(255,255,255,.4); background: transparent !important; }

:root[data-design-template="gallery"] .popular-strip { grid-auto-columns: 136px !important; gap: 14px !important; padding: 6px 2px 14px !important; }
:root[data-design-template="gallery"] .popular-strip article { border: 0 !important; border-radius: 0 !important; background: transparent !important; text-align: center; }
:root[data-design-template="gallery"] .popular-strip img,
:root[data-design-template="gallery"] .popular-strip article:first-child img { width: 136px !important; height: 174px !important; border: 7px solid var(--linen-card) !important; border-radius: 70px 70px 11px 11px !important; box-shadow: 0 12px 24px rgba(76,51,35,.12); }
:root[data-design-template="gallery"] .popular-copy :where(strong,small) { padding: 0 4px !important; }
:root[data-design-template="gallery"] .popular-copy strong { margin-top: 9px !important; color: var(--linen-ink); font-family: Georgia, serif; font-weight: 400; }

:root[data-design-template="gallery"] .news-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 10px !important; }
:root[data-design-template="gallery"] .news-card {
  display: flex !important; flex-direction: column; min-height: 246px; padding: 7px !important;
  border: 1px solid rgba(126,88,64,.16) !important; border-radius: 52px 52px 12px 12px !important;
  color: var(--linen-ink) !important; background: var(--linen-card) !important; box-shadow: 0 12px 25px rgba(76,51,35,.1) !important;
}
:root[data-design-template="gallery"] .news-card img { width: 100% !important; height: 124px !important; min-height: 124px !important; border-radius: 46px 46px 8px 8px !important; }
:root[data-design-template="gallery"] .news-card > div { padding: 10px 8px !important; }
:root[data-design-template="gallery"] .news-card h3 { color: var(--linen-ink) !important; font: 400 15px/1.16 Georgia, serif; }
:root[data-design-template="gallery"] .news-card p { color: var(--linen-muted) !important; font-size: 9px; -webkit-line-clamp: 3; }

:root[data-design-template="gallery"] .loyalty-preview { border-radius: 34px 8px 34px 34px !important; box-shadow: 0 18px 35px rgba(76,51,35,.17) !important; }
:root[data-design-template="gallery"] .loyalty-seal { display: grid; place-items: center; position: absolute; right: 15px; bottom: 13px; width: 42px; height: 42px; border: 1px solid rgba(255,250,242,.55); border-radius: 50%; color: #fffaf2; font: 700 6px var(--font-body); letter-spacing: .08em; }
:root[data-design-template="gallery"] .loyalty-plastic { border-radius: 8px 21px 21px 21px !important; transform: rotate(3deg) !important; }
:root[data-design-template="gallery"] .tabs { right: 12px !important; bottom: 10px !important; left: 12px !important; height: 80px !important; border-radius: 40px 40px 13px 40px !important; box-shadow: 0 14px 30px rgba(75,52,37,.17) !important; }
:root[data-design-template="gallery"] .tab.on .tab-icon-shell { border-radius: 50% !important; background: rgba(169,121,88,.12) !important; box-shadow: inset 0 0 0 1px rgba(169,121,88,.24); }
:root[data-design-template="gallery"] .menu-product-list { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 10px !important; }
:root[data-design-template="gallery"] .menu-item { display: flex !important; flex-direction: column; border-radius: 70px 70px 15px 15px !important; }
:root[data-design-template="gallery"] .menu-item-photo { width: 100% !important; height: 160px !important; border-radius: 64px 64px 10px 10px !important; }

/* ========================================================================
   EMBER / ATELIER — compact neon operations console.
   Dashboard cells, ranked matrix, timeline news and segmented HUD dock. */
:root[data-design-template="atelier"] {
  --ember-black: #020705;
  --ember-panel: #07140d;
  --ember-green: #10f06b;
  --ember-lime: #a4ff3f;
  --ember-ink: #effff4;
  --ember-muted: #9ad6ae;
}
:root[data-design-template="atelier"] .screen { padding-inline: 10px !important; }
:root[data-design-template="atelier"] .top-home { height: 410px !important; border-radius: 3px 28px 3px 28px !important; }
:root[data-design-template="atelier"] .hero-copy { right: 15px !important; bottom: 14px !important; left: 42% !important; width: auto !important; padding: 15px !important; border: 1px solid rgba(16,240,107,.36) !important; border-radius: 2px 17px 2px 17px !important; background: rgba(2,12,7,.92) !important; }
:root[data-design-template="atelier"] .hero-copy h2 { font-size: 28px !important; }
:root[data-design-template="atelier"] .home-feature-story {
  min-height: 218px !important; display: block !important; border: 1px solid rgba(16,240,107,.38) !important;
  border-radius: 2px 25px 2px 25px !important; background: var(--ember-panel) !important;
}
:root[data-design-template="atelier"] .home-feature-story::after,
:root[data-design-template="atelier"] .home-feature-scrim { display: none !important; }
:root[data-design-template="atelier"] .home-feature-story > img { position: absolute; inset: 0 auto 0 0; width: 46% !important; height: 100% !important; object-fit: cover; filter: grayscale(.28) hue-rotate(55deg) saturate(.8) contrast(1.2); clip-path: polygon(0 0, 100% 0, 84% 100%, 0 100%); }
:root[data-design-template="atelier"] .home-feature-copy {
  position: absolute !important; inset: 0 0 0 43% !important; width: auto !important; display: flex !important;
  flex-direction: column; justify-content: center; align-items: flex-start; padding: 17px 14px 17px 23px !important;
  color: var(--ember-ink) !important; background: repeating-linear-gradient(180deg, transparent 0 4px, rgba(16,240,107,.025) 4px 5px), var(--ember-panel) !important;
}
:root[data-design-template="atelier"] .home-feature-copy :where(strong,small,em,b) { color: var(--ember-ink) !important; text-shadow: none !important; }
:root[data-design-template="atelier"] .home-feature-copy small,
:root[data-design-template="atelier"] .home-feature-copy b { color: var(--ember-green) !important; font-family: ui-monospace, monospace; }
:root[data-design-template="atelier"] .home-feature-copy strong { margin: 7px 0; font: 750 22px/.98 var(--font-body) !important; text-transform: uppercase; }
:root[data-design-template="atelier"] .home-feature-copy em { color: var(--ember-muted) !important; font-size: 9px; font-style: normal; }

:root[data-design-template="atelier"] .home-service-hub { padding: 11px !important; border-radius: 2px 26px 2px 26px !important; }
:root[data-design-template="atelier"] .service-hub-head { padding-left: 10px; }
:root[data-design-template="atelier"] .service-hub-head h2 { font: 760 25px/.95 var(--font-body); text-transform: uppercase; }
:root[data-design-template="atelier"] .service-visit-state { color: var(--ember-muted) !important; }
:root[data-design-template="atelier"] .service-quick {
  min-height: 90px !important; border: 1px solid rgba(16,240,107,.34) !important; border-radius: 2px 15px 2px 15px !important;
  color: var(--ember-ink) !important; background: #041009 !important; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}
:root[data-design-template="atelier"] .service-quick > span { border-radius: 0 !important; color: var(--ember-green) !important; background: transparent !important; box-shadow: none !important; }
:root[data-design-template="atelier"] .service-quick.is-primary { color: #001508 !important; background: var(--ember-green) !important; }
:root[data-design-template="atelier"] .service-quick.is-primary > span { color: #001508 !important; }
:root[data-design-template="atelier"] .service-sequence { display: block; position: absolute; top: 4px; left: 5px; color: var(--ember-green); font: 700 6px ui-monospace, monospace; }

:root[data-design-template="atelier"] .popular-strip {
  display: grid !important; grid-auto-flow: row !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 7px !important; overflow: visible !important; padding: 4px 0 !important;
}
:root[data-design-template="atelier"] .popular-strip article {
  position: relative; min-height: 142px; display: grid !important; grid-template-columns: 58px minmax(0,1fr) !important;
  grid-template-rows: 88px auto; align-items: center; gap: 7px; padding: 7px !important;
  border: 1px solid rgba(16,240,107,.28) !important; border-radius: 2px 18px 2px 18px !important;
  color: var(--ember-ink); background: #041009 !important;
}
:root[data-design-template="atelier"] .popular-rank { display: block; position: absolute; top: 5px; right: 7px; color: var(--ember-green); font: 700 7px ui-monospace, monospace; }
:root[data-design-template="atelier"] .popular-strip img,
:root[data-design-template="atelier"] .popular-strip article:first-child img { grid-column: 1/-1; width: 100% !important; height: 88px !important; aspect-ratio: auto !important; border: 0 !important; border-radius: 1px 13px 1px 1px !important; filter: hue-rotate(40deg) saturate(.78) contrast(1.1); }
:root[data-design-template="atelier"] .popular-copy { grid-column: 1/-1; }
:root[data-design-template="atelier"] .popular-copy :where(strong,small) { padding: 0 !important; }
:root[data-design-template="atelier"] .popular-copy strong { margin: 0 !important; color: var(--ember-ink); font: 700 10px/1.2 var(--font-body); }
:root[data-design-template="atelier"] .popular-copy small { color: var(--ember-muted); font-family: ui-monospace, monospace; }

:root[data-design-template="atelier"] .news-grid { position: relative; gap: 7px !important; padding-left: 16px; }
:root[data-design-template="atelier"] .news-grid::before { position: absolute; top: 0; bottom: 0; left: 5px; width: 1px; content: ""; background: var(--ember-green); box-shadow: 0 0 10px var(--ember-green); }
:root[data-design-template="atelier"] .news-card {
  position: relative; min-height: 92px; display: grid !important; grid-template-columns: 78px minmax(0,1fr) !important;
  border: 1px solid rgba(16,240,107,.28) !important; border-radius: 2px 17px 2px 17px !important; color: var(--ember-ink) !important; background: #041009 !important;
}
:root[data-design-template="atelier"] .news-card::before { position: absolute; left: -15px; top: 29px; width: 7px; height: 7px; border-radius: 50%; content: ""; background: var(--ember-green); box-shadow: 0 0 9px var(--ember-green); }
:root[data-design-template="atelier"] .news-card img { width: 78px !important; height: 100% !important; min-height: 90px !important; border-radius: 1px !important; filter: hue-rotate(40deg) saturate(.72); }
:root[data-design-template="atelier"] .news-card > div { padding: 10px !important; }
:root[data-design-template="atelier"] .news-card :where(h3,p) { color: var(--ember-ink) !important; }
:root[data-design-template="atelier"] .news-card p { color: var(--ember-muted) !important; -webkit-line-clamp: 2; }

:root[data-design-template="atelier"] .loyalty-preview { border-radius: 2px 28px 2px 28px !important; background: repeating-linear-gradient(90deg, transparent 0 19px, rgba(16,240,107,.035) 19px 20px), var(--loyalty-bg) !important; }
:root[data-design-template="atelier"] .loyalty-seal { display: block; position: absolute; top: 9px; right: 12px; color: var(--ember-green); font: 700 7px ui-monospace, monospace; letter-spacing: .16em; }
:root[data-design-template="atelier"] .loyalty-plastic { border-radius: 2px 18px 2px 18px !important; clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 13px, 100% 100%, 0 100%); }
:root[data-design-template="atelier"] .tabs { right: 7px !important; bottom: 7px !important; left: 7px !important; height: 69px !important; gap: 4px !important; }
:root[data-design-template="atelier"] .tab { min-height: 65px !important; border-radius: 2px 13px 2px 13px !important; clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%); }
:root[data-design-template="atelier"] .tab.on { box-shadow: 0 0 20px rgba(16,240,107,.26) !important; }
:root[data-design-template="atelier"] .menu-product-list { gap: 6px !important; }
:root[data-design-template="atelier"] .menu-item { min-height: 98px !important; grid-template-columns: 84px minmax(0,1fr) auto !important; border-radius: 2px 17px 2px 17px !important; }
:root[data-design-template="atelier"] .menu-item-photo { width: 84px !important; height: 96px !important; border-radius: 1px !important; }

@media (max-width: 370px) {
  :root[data-design-template="editorial"] .home-feature-story { min-height: 220px !important; }
  :root[data-design-template="editorial"] .home-feature-copy { padding: 13px !important; }
  :root[data-design-template="editorial"] .home-feature-copy strong { font-size: 21px !important; }
  :root[data-design-template="gallery"] .news-grid { grid-template-columns: 1fr !important; }
  :root[data-design-template="gallery"] .news-card { min-height: 120px; display: grid !important; grid-template-columns: 95px minmax(0,1fr) !important; border-radius: 35px 12px 12px 35px !important; }
  :root[data-design-template="gallery"] .news-card img { width: 95px !important; height: 100% !important; min-height: 118px !important; border-radius: 31px 8px 8px 31px !important; }
  :root[data-design-template="gallery"] .menu-product-list { grid-template-columns: 1fr !important; }
  :root[data-design-template="atelier"] .service-hub-head { display: block; }
  :root[data-design-template="atelier"] .service-visit-state { margin-top: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  :root[data-design-template] * { scroll-behavior: auto !important; }
}

/* Decorative wordmarks never compete with functional loyalty content. */
:root[data-design-template] .loyalty-seal { display: none !important; }
