/**
 * SemSem Elementor Widgets — frontend styles.
 *
 * Every selector is scoped under .semsem-*. Nothing here targets bare
 * elements outside a widget root, and nothing leaks into the Elementor editor
 * chrome. Defaults reproduce the approved prototype design exactly.
 */

/* ---------- Design tokens (theme variables with prototype fallbacks) ---------- */
.semsem-widget {
  --ss-paper: var(--paper, #f5f0e3);
  --ss-paper-2: var(--paper-2, #ebe3cf);
  --ss-surface: var(--surface, #fffdf7);
  --ss-ink: var(--ink, #302316);
  --ss-muted: var(--muted, #6d6255);
  --ss-olive: var(--olive, #75863a);
  --ss-olive-deep: var(--olive-deep, #59682b);
  --ss-bronze: var(--bronze, #5d3c17);
  --ss-bronze-2: var(--bronze-2, #7a5225);
  --ss-line: var(--line, rgba(93, 60, 23, .18));
  --ss-white: var(--white, #fffdf8);
  --ss-shadow: var(--shadow, 0 24px 60px rgba(64, 44, 20, .14));
  --ss-serif: var(--serif, "Newsreader", Georgia, serif);
  --ss-sans: var(--sans, "Manrope", ui-sans-serif, system-ui, sans-serif);
  font-family: var(--ss-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ss-ink);
}

.semsem-widget h1,
.semsem-widget h2,
.semsem-widget h3,
.semsem-widget h4,
.semsem-widget p,
.semsem-widget blockquote,
.semsem-widget figure {
  margin-top: 0;
}

.semsem-widget h1,
.semsem-widget h2,
.semsem-widget h3,
.semsem-widget h4 {
  font-family: var(--ss-serif);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.025em;
}

.semsem-widget h1 { font-size: clamp(3rem, 6vw, 5rem); margin-bottom: 20px; }
.semsem-widget h2 { font-size: clamp(2.25rem, 4vw, 3.9rem); margin-bottom: 20px; }
.semsem-widget h3 { font-size: clamp(1.45rem, 2.2vw, 2.05rem); }
.semsem-widget img { display: block; max-width: 100%; }
.semsem-widget a:not(.semsem-btn) { text-decoration: none; color: inherit; }
.semsem-widget button,
.semsem-widget input,
.semsem-widget textarea,
.semsem-widget select { font: inherit; }

.semsem-container {
  width: min(calc(100% - 40px), 1200px);
  margin-inline: auto;
}

/* ---------- Shared bits ---------- */
.semsem-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: var(--ss-olive-deep);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.semsem-eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  background: currentColor;
}
.semsem-lead {
  max-width: 670px;
  color: var(--ss-muted);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.semsem-widget .semsem-btn {
  min-height: 50px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  cursor: pointer;
  font-weight: 700;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.semsem-widget .semsem-btn:hover { transform: translateY(-2px); }
.semsem-widget .semsem-btn:focus-visible {
  outline: 3px solid var(--ss-olive);
  outline-offset: 2px;
}
.semsem-widget .semsem-btn-primary { background: var(--ss-bronze); color: var(--ss-white); }
.semsem-widget .semsem-btn-primary:hover { background: var(--ss-bronze-2); }
.semsem-widget .semsem-btn-secondary { border-color: var(--ss-line); background: transparent; color: var(--ss-ink); }
.semsem-widget .semsem-btn-secondary:hover { border-color: var(--ss-olive); color: var(--ss-olive-deep); }
.semsem-widget .semsem-btn-light { background: var(--ss-white); color: #3a2816; }
.semsem-widget .semsem-btn-secondary-light {
  border-color: rgba(255, 255, 255, .44);
  background: transparent;
  color: #fff;
}
.semsem-widget .semsem-btn-secondary-light:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  transform: translateY(-2px);
}
.semsem-widget .semsem-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* ---------- 1. Banner hero ---------- */
.semsem-banner-hero {
  position: relative;
  display: grid;
  align-items: end;
  color: var(--ss-white);
  background-color: #2f2214;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.semsem-banner-hero--home { min-height: 680px; }
.semsem-banner-hero--inner { min-height: 390px; }
.semsem-banner-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(28, 18, 8, .9) 0%, rgba(28, 18, 8, .62) 48%, rgba(28, 18, 8, .2) 100%);
  pointer-events: none;
}
.semsem-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  padding: clamp(92px, 13vw, 152px) 0 84px;
}
.semsem-banner-hero--inner .semsem-hero-inner {
  max-width: none;
  padding-top: 100px;
  padding-bottom: 60px;
}
.semsem-banner-hero .semsem-eyebrow { color: #d8e28d; }
.semsem-banner-hero .semsem-lead { color: rgba(255, 255, 255, .82); }
.semsem-banner-hero--inner .semsem-hero-inner h1 { max-width: 820px; margin-bottom: 14px; }
.semsem-banner-hero--inner .semsem-lead { max-width: 650px; margin-bottom: 0; font-size: 1.08rem; }
.semsem-banner-hero--inner .semsem-hero-actions { margin-top: 22px; }
.semsem-hero-note {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 28px;
  color: rgba(255, 255, 255, .74);
  font-size: .84rem;
  font-weight: 600;
}
.semsem-hero-note span { display: inline-flex; align-items: center; gap: 8px; }
.semsem-hero-note span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c3d36e;
}

/* ---------- 2. Marquee word row (static) ---------- */
.semsem-marquee { border-bottom: 1px solid var(--ss-line); background: var(--ss-surface); }
.semsem-marquee-track {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 4vw, 50px);
  font-family: var(--ss-serif);
  font-size: 1.1rem;
}
.semsem-marquee-track span:not(:last-child)::after {
  content: "\2726";
  margin-left: clamp(20px, 4vw, 50px);
  color: var(--ss-olive);
  font-size: .7rem;
}

/* ---------- 3. Story split ---------- */
.semsem-story-split { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(42px, 8vw, 105px);
  align-items: center;
}
.semsem-story-collage { min-height: 560px; position: relative; }
.semsem-collage-tall {
  position: absolute;
  inset: 0 22% 8% 0;
  height: 92%;
  width: auto;
  max-width: none;
  border-radius: 30px 8px;
  object-fit: cover;
}
.semsem-collage-small {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 42%;
  aspect-ratio: .86;
  border: 8px solid var(--ss-paper);
  border-radius: 8px 30px;
  object-fit: cover;
  box-shadow: var(--ss-shadow);
}
.semsem-statement {
  margin: 30px 0;
  padding: 20px 0;
  border-block: 1px solid var(--ss-line);
  font-family: var(--ss-serif);
  font-size: 1.34rem;
  line-height: 1.35;
}
.semsem-facts { display: flex; gap: 40px; }
.semsem-fact strong { display: block; color: var(--ss-olive-deep); font: 600 2.05rem/1 var(--ss-serif); }
.semsem-fact span { color: var(--ss-muted); font-size: .84rem; }
.semsem-steps-list { counter-reset: ss-step; border-top: 1px solid var(--ss-line); margin-top: 28px; }
.semsem-step {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--ss-line);
}
.semsem-step::before {
  counter-increment: ss-step;
  content: "0" counter(ss-step);
  color: var(--ss-olive-deep);
  font-weight: 700;
}
.semsem-step strong { display: block; margin-bottom: 4px; }
.semsem-step span { color: var(--ss-muted); font-size: .9rem; }
.semsem-widget .semsem-portrait-img { height: 580px; width: 100%; border-radius: 8px 30px; object-fit: cover; }
.semsem-split-actions { margin-top: 28px; }

/* ---------- 4. Menu teaser band ---------- */
.semsem-menu-teaser { background: var(--ss-bronze); color: var(--ss-white); padding: clamp(72px, 8vw, 112px) 0; }
.semsem-menu-teaser-grid {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 42px;
  align-items: center;
}
.semsem-menu-teaser .semsem-eyebrow { color: #d7e18a; }
.semsem-teaser-text { color: rgba(255, 255, 255, .76); }
.semsem-food-triptych { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.semsem-widget .semsem-food-triptych img { width: 100%; height: 220px; object-fit: cover; border-radius: 8px; }
.semsem-widget .semsem-food-triptych img:first-child { grid-row: span 2; height: 452px; }
.semsem-teaser-copy .semsem-hero-actions { margin-top: 24px; }

/* ---------- 5. Location list ---------- */
.semsem-location-list { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-locations-head {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 50px;
  align-items: end;
  margin-bottom: 40px;
}
.semsem-locations-head h2 { margin-bottom: 0; }
.semsem-locations-intro { max-width: 620px; color: var(--ss-muted); }
.semsem-locations-intro p { margin: 0; }
.semsem-locations-intro a { text-decoration: underline; }
/* Location cards with images */
.semsem-location-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 3vw, 32px);
  margin-top: 8px;
}
.semsem-location-card {
  background: var(--ss-white);
  border: 1px solid var(--ss-line);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--ss-shadow);
  transition: transform .25s ease, box-shadow .25s ease;
  display: flex;
  flex-direction: column;
}
.semsem-location-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 70px rgba(64,44,20,.18);
}
.semsem-location-card-media { overflow: hidden; aspect-ratio: 16 / 10; background: var(--ss-paper); }
.semsem-widget .semsem-location-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform .4s ease;
  display: block;
}
.semsem-location-card:hover .semsem-location-card-media img { transform: scale(1.04); }
.semsem-location-card-body { padding: clamp(22px, 3vw, 32px); display: flex; flex-direction: column; gap: 10px; flex: 1; }
.semsem-location-card-body h3 { margin: 0; font-size: clamp(1.4rem, 2vw, 1.7rem); }
.semsem-location-card-body .semsem-location-address { margin: 0; color: var(--ss-muted); font-size: .95rem; line-height: 1.6; }
.semsem-location-card-body .semsem-circle-link { margin-top: 8px; }
.semsem-location-card-body .semsem-directions { margin-top: 8px; align-self: flex-start; }
.semsem-circle-link {
  width: 42px;
  height: 42px;
  border: 1px solid var(--ss-line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.1rem;
}
.semsem-circle-link:hover { border-color: var(--ss-olive); color: var(--ss-olive-deep); }
.semsem-directions { min-height: 42px; padding: 0 16px; }
.semsem-coming { margin-top: 22px; color: var(--ss-olive-deep); font-weight: 700; }

/* ---------- 6. Image callout card ---------- */
.semsem-callout-wrap { padding: clamp(54px, 6vw, 82px) 0; }
.semsem-image-callout {
  min-height: 520px;
  position: relative;
  display: grid;
  align-items: end;
  overflow: hidden;
  border-radius: 30px;
  color: var(--ss-white);
  background-color: #2f2214;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.semsem-image-callout::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(28, 18, 8, .9) 0%, rgba(28, 18, 8, .62) 48%, rgba(28, 18, 8, .2) 100%);
  pointer-events: none;
}
.semsem-callout-copy {
  position: relative;
  z-index: 1;
  max-width: 650px;
  padding: clamp(34px, 7vw, 78px);
}
.semsem-image-callout .semsem-eyebrow { color: #d7e18a; }
.semsem-callout-text { color: rgba(255, 255, 255, .8); }

/* ---------- 7. CTA strip ---------- */
.semsem-cta-strip--olive { background: var(--ss-olive); color: #fff; }
.semsem-cta-strip--plain { background: transparent; }
.semsem-cta-inner {
  min-height: 240px;
  display: grid;
  grid-template-columns: .8fr 1.2fr auto;
  align-items: center;
  gap: 42px;
  padding-top: 24px;
  padding-bottom: 24px;
}
.semsem-cta-strip--plain .semsem-cta-inner { min-height: 0; }
.semsem-cta-inner h2, .semsem-cta-inner p { margin: 0; }
.semsem-cta-text { max-width: 560px; }
.semsem-cta-strip--olive .semsem-cta-text { color: rgba(255, 255, 255, .82); }
.semsem-cta-strip--plain .semsem-cta-text { color: var(--ss-muted); }

/* ---------- 8. Hours band ---------- */
.semsem-hours-band { padding: 36px 0; }
.semsem-hours-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 50px;
  padding: 36px 0;
  border-block: 1px solid var(--ss-line);
}
.semsem-hours-grid h2 { margin: 0; }
.semsem-schedule {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 28px;
  align-content: start;
}
.semsem-schedule span:nth-child(even) { font-weight: 700; }

/* ---------- 9. Menu catalog (modern cards) ---------- */
.semsem-menu-catalog { background: var(--ss-surface); padding: clamp(72px, 8vw, 112px) 0 clamp(36px, 4vw, 56px); }
.semsem-catalog-list-wrap { counter-reset: semsem-cat; display: grid; gap: clamp(22px, 3vw, 34px); }

/* Category card */
.semsem-catalog-group {
  counter-increment: semsem-cat;
  display: grid;
  grid-template-columns: minmax(210px, .68fr) 1.32fr;
  gap: clamp(28px, 5vw, 72px);
  position: relative;
  overflow: hidden;
  background: var(--ss-white);
  border: 1px solid var(--ss-line);
  border-radius: 26px;
  box-shadow: var(--ss-shadow);
  padding: clamp(30px, 4vw, 52px);
}
.semsem-catalog-group::after {
  content: "";
  position: absolute;
  top: -70px;
  right: -70px;
  width: 190px;
  height: 190px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(117,134,58,.14), rgba(117,134,58,0) 70%);
  pointer-events: none;
}
.semsem-catalog-group > header { position: relative; z-index: 1; }
.semsem-catalog-group > header::before {
  content: counter(semsem-cat, decimal-leading-zero);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  padding: 0 13px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: var(--ss-olive);
  color: #fffdf8;
  font: 700 .85rem/1 var(--ss-sans);
  letter-spacing: .1em;
}
.semsem-catalog-group > header h3 { margin: 0 0 12px; font-size: clamp(1.9rem, 3vw, 2.5rem); }
.semsem-catalog-group > header p { margin: 0; color: var(--ss-muted); font-size: 1rem; line-height: 1.65; }

/* Category photo: editorial anchor beside the heading */
.semsem-catalog-group--has-photo > header { display: grid; grid-template-columns: 1fr; gap: 20px; align-content: start; }
.semsem-catalog-photo { border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--ss-shadow); }
.semsem-catalog-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 900px) {
  .semsem-catalog-group--has-photo { grid-template-columns: minmax(260px, .8fr) 1.2fr; }
}

/* Priced items: modern mini-cards */
.semsem-catalog-items { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; position: relative; z-index: 1; }
.semsem-catalog-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 16px;
  align-items: start;
  background: var(--ss-paper);
  border: 1px solid rgba(93,60,23,.08);
  border-radius: 20px;
  padding: 24px 26px;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.semsem-catalog-item:hover {
  background: #fff;
  box-shadow: 0 14px 34px rgba(64,44,20,.12);
  transform: translateY(-2px);
}
.semsem-catalog-item h4 { margin: 0; font: 600 1.18rem/1.3 var(--ss-serif); }
.semsem-catalog-item strong.semsem-prices { text-align: right; color: #fffdf8; }
.semsem-price {
  display: inline-block;
  background: var(--ss-bronze);
  color: inherit;
  font: 700 .8rem/1.5 var(--ss-sans);
  letter-spacing: .02em;
  padding: 5px 14px;
  border-radius: 999px;
  white-space: nowrap;
}
.semsem-catalog-item p { grid-column: 1 / -1; margin: 2px 0 0; color: var(--ss-muted); font-size: .85rem; line-height: 1.6; }

/* List items: modern marker rows */
.semsem-catalog-list { columns: 2; column-gap: 36px; margin: 0; padding: 0; list-style: none; position: relative; z-index: 1; }
.semsem-catalog-list li {
  break-inside: avoid;
  position: relative;
  padding: 11px 0 11px 24px;
  font-size: .95rem;
  font-weight: 500;
}
.semsem-catalog-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 19px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ss-olive);
  box-shadow: 0 0 0 4px rgba(117,134,58,.15);
}
.semsem-catalog-list small { display: block; color: var(--ss-muted); font-size: .83rem; font-weight: 400; margin-top: 2px; }
.semsem-catalog-note { margin: 26px 0 0; color: var(--ss-muted); font-size: .85rem; }

/* ---------- 10. Photo ribbon ---------- */
.semsem-photo-ribbon-wrap { padding: clamp(54px, 6vw, 82px) 0; }
.semsem-photo-ribbon { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.semsem-widget .semsem-photo-ribbon img { width: 100%; height: 360px; object-fit: cover; border-radius: 8px; }
.semsem-photo-ribbon--trio { grid-template-columns: 1.2fr .8fr .8fr; }
.semsem-widget .semsem-photo-ribbon--trio img:first-child { border-radius: 30px 0 0 8px; }
.semsem-widget .semsem-photo-ribbon--trio img:last-child { border-radius: 0 8px 30px 0; }

/* ---------- Editorial photo collage (less boxy) ---------- */
.semsem-food-triptych { position: relative; }
.semsem-widget .semsem-food-triptych img {
  box-shadow: 0 24px 60px rgba(30, 20, 8, .35);
  border: 5px solid rgba(255, 255, 255, .16);
}
.semsem-widget .semsem-food-triptych img:first-child {
  border-radius: 190px 190px 22px 22px !important;
  transform: rotate(-2.5deg);
}
.semsem-widget .semsem-food-triptych img:nth-child(2) {
  border-radius: 50% !important;
  aspect-ratio: 1 / 1;
  height: auto !important;
  width: 86%;
  margin-left: auto;
  transform: rotate(4deg);
}
.semsem-widget .semsem-food-triptych img:nth-child(3) {
  border-radius: 26px 96px 26px 96px !important;
  transform: rotate(-3deg) translateY(-6px);
}
@media (max-width: 760px) {
  .semsem-widget .semsem-food-triptych img:first-child { border-radius: 120px 120px 18px 18px !important; }
}

/* Location cards: break the box with oversized imagery */
.semsem-location-card-media { aspect-ratio: 16 / 11; }
.semsem-location-card { border-radius: 28px; }
.semsem-widget .semsem-location-card-media img { border-radius: 28px 28px 0 0 !important; }

/* ---------- 11. Board gallery ---------- */
.semsem-board-gallery { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-board-gallery--boards { background: var(--ss-bronze); color: var(--ss-white); }
.semsem-board-gallery--boards .semsem-eyebrow { color: #d7e18a; }
.semsem-board-gallery--boards .semsem-lead { color: rgba(255, 255, 255, .76); }
.semsem-board-gallery--spread { background: var(--ss-surface); }
.semsem-board-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 38px; }
.semsem-board-gallery--spread .semsem-board-grid { gap: 24px; }
.semsem-board-grid figure { margin: 0; }
.semsem-widget .semsem-board-grid img { width: 100%; border-radius: 20px; border: 1px solid var(--ss-line); background: #fff; }
.semsem-board-gallery--spread .semsem-board-grid img { box-shadow: var(--ss-shadow); }
.semsem-board-grid figcaption { padding: 9px 2px; font-size: .78rem; }
.semsem-widget .semsem-board-gallery--boards .semsem-board-grid figcaption { color: rgba(255, 255, 255, .85); }
.semsem-board-gallery--spread .semsem-board-grid figcaption { margin-top: 10px; padding: 0 2px; color: var(--ss-muted); font-size: .8rem; }

/* ---------- 12. Editorial pair ---------- */
.semsem-editorial-pair { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-editorial-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: clamp(40px, 8vw, 100px);
  align-items: start;
}
.semsem-editorial-pair .semsem-quote {
  font: 500 clamp(1.8rem, 3.2vw, 3.2rem)/1.08 var(--ss-serif);
  color: var(--ss-bronze);
  margin: 0;
}
.semsem-editorial-copy .semsem-copy p { color: var(--ss-muted); }
.semsem-editorial-copy .semsem-copy strong { color: var(--ss-ink); }
.semsem-editorial-copy .semsem-btn { margin-top: 8px; }

/* ---------- 13. Inquiry form section ---------- */
.semsem-form-section { background: var(--ss-surface); padding: clamp(72px, 8vw, 112px) 0; scroll-margin-top: 90px; }
.semsem-form-layout {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: clamp(44px, 8vw, 100px);
  align-items: start;
}
.semsem-form-layout--no-aside { grid-template-columns: 1fr; }
.semsem-aside-inner { position: sticky; top: 115px; }
.semsem-aside-text { color: var(--ss-muted); }
.semsem-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.semsem-field { display: grid; gap: 7px; align-content: start; }
.semsem-field--full { grid-column: 1 / -1; }
.semsem-field label { font-size: .82rem; font-weight: 700; }
.semsem-field input,
.semsem-field textarea,
.semsem-field select {
  width: 100%;
  border: 1px solid var(--ss-line);
  border-radius: 8px;
  background: var(--ss-paper);
  color: var(--ss-ink);
  padding: 13px 14px;
  outline: none;
}
.semsem-field input:focus,
.semsem-field textarea:focus,
.semsem-field select:focus {
  border-color: var(--ss-olive);
  box-shadow: 0 0 0 3px rgba(117, 134, 58, .18);
}
.semsem-field textarea { min-height: 132px; resize: vertical; }
.semsem-form-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.semsem-form-note { margin: 0; color: var(--ss-muted); font-size: .78rem; }
.semsem-form-note--success { color: var(--ss-olive-deep); font-weight: 700; }
.semsem-form-note--error { color: #a33b2a; font-weight: 700; }
.semsem-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---------- 14. Story chapter ---------- */
.semsem-story-chapter { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-chapter-grid {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(40px, 8vw, 110px);
  align-items: start;
}
.semsem-chapter-sticky { position: sticky; top: 116px; }
.semsem-chapter-body p { color: var(--ss-muted); font-size: 1.04rem; }
.semsem-ingredients-line { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.semsem-ingredients-line span {
  padding: 9px 13px;
  border: 1px solid var(--ss-line);
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
}

/* ---------- 15. Full-width image ---------- */
.semsem-fullwidth-image { line-height: 0; }
.semsem-full-image { width: 100%; height: min(62vw, 690px); object-fit: cover; }

/* ---------- 16. Philosophy quote ---------- */
.semsem-philosophy { padding: clamp(72px, 8vw, 112px) 0; }
.semsem-philosophy-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: center; }
.semsem-philosophy blockquote { margin: 0; font: 500 clamp(2rem, 4vw, 4.1rem)/1.02 var(--ss-serif); }
.semsem-philosophy-text { color: var(--ss-muted); }
.semsem-philosophy-text p { margin-bottom: 1em; }
.semsem-philosophy-copy .semsem-btn { margin-top: 12px; }

/* ---------- 17. Contact ledger ---------- */
.semsem-contact-ledger .semsem-contact-items { border-top: 1px solid var(--ss-line); margin-top: 6px; }
.semsem-contact-item { padding: 23px 0; border-bottom: 1px solid var(--ss-line); }
.semsem-contact-item small {
  display: block;
  margin-bottom: 5px;
  color: var(--ss-olive-deep);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: .78rem;
}
.semsem-contact-item p { margin: 0; font: 500 1.25rem/1.3 var(--ss-serif); }
.semsem-contact-item a:hover { color: var(--ss-olive-deep); }
.semsem-contact-ledger .semsem-hero-actions { margin-top: 24px; }

/* ---------- Responsive ---------- */
@media (max-width: 1060px) {
  /* nothing widget-specific at this width in the prototype */
}

@media (max-width: 880px) {
  .semsem-split,
  .semsem-menu-teaser-grid,
  .semsem-editorial-grid,
  .semsem-form-layout,
  .semsem-chapter-grid { grid-template-columns: 1fr; }
  .semsem-story-collage { min-height: 520px; }
  .semsem-menu-teaser-grid > div:first-child { max-width: 700px; }
  .semsem-locations-head,
  .semsem-hours-grid,
  .semsem-philosophy-grid { grid-template-columns: 1fr; }
  .semsem-cta-inner { grid-template-columns: 1fr auto; padding: 46px 0; }
  .semsem-cta-text { grid-column: 1; }
  .semsem-cta-inner .semsem-btn { grid-column: 2; grid-row: 1 / span 2; }
  .semsem-aside-inner,
  .semsem-chapter-sticky { position: static; }
  .semsem-widget .semsem-portrait-img { height: 500px; }
  .semsem-catalog-group { grid-template-columns: 1fr; }
  .semsem-catalog-items { grid-template-columns: 1fr 1fr; }
  .semsem-photo-ribbon--trio { grid-template-columns: 1fr 1fr 1fr; }
}

@media (max-width: 700px) {
  .semsem-container { width: min(calc(100% - 28px), 1200px); }
  .semsem-widget h1 { font-size: clamp(2.35rem, 10vw, 2.65rem); line-height: .98; }
  .semsem-widget h2 { font-size: clamp(2.05rem, 9vw, 2.75rem); }
  .semsem-banner-hero--home { min-height: 610px; background-position: 58% center; }
  .semsem-banner-hero::after {
    background: linear-gradient(0deg, rgba(28, 18, 8, .92) 0%, rgba(28, 18, 8, .52) 66%, rgba(28, 18, 8, .18) 100%);
  }
  .semsem-hero-inner { padding: 160px 0 52px; }
  .semsem-banner-hero--inner { min-height: 330px; }
  .semsem-banner-hero--inner .semsem-hero-inner { padding-top: 120px; padding-bottom: 36px; }
  .semsem-banner-hero--inner .semsem-lead { font-size: .96rem; }
  .semsem-hero-actions .semsem-btn { min-height: 46px; padding-inline: 15px; }
  .semsem-hero-note { font-size: .76rem; }
  .semsem-marquee-track { min-height: 82px; flex-wrap: wrap; gap: 4px 15px; padding: 14px 0; font-size: .96rem; }
  .semsem-marquee-track span:not(:last-child)::after { margin-left: 15px; }
  .semsem-story-collage { min-height: 420px; }
  .semsem-collage-small { width: 44%; border-width: 5px; }
  .semsem-facts { flex-direction: column; gap: 18px; }
  .semsem-widget .semsem-food-triptych img, .semsem-widget .semsem-food-triptych img:first-child { height: 210px; }
  .semsem-widget .semsem-food-triptych img:first-child { grid-column: 1 / -1; grid-row: auto; }
  .semsem-locations-head { gap: 6px; }
  .semsem-widget .semsem-location-cards { grid-template-columns: 1fr !important; }
  .semsem-image-callout { min-height: 560px; border-radius: 18px; }
  .semsem-image-callout::after { background: linear-gradient(0deg, rgba(28, 18, 8, .92), rgba(28, 18, 8, .12)); }
  .semsem-cta-inner { grid-template-columns: 1fr; gap: 18px; }
  .semsem-cta-text, .semsem-cta-inner .semsem-btn { grid-column: auto; grid-row: auto; }
  .semsem-cta-inner .semsem-btn { justify-self: start; }
  .semsem-catalog-items { grid-template-columns: 1fr; }
  .semsem-catalog-list { columns: 1; }
  .semsem-photo-ribbon { grid-template-columns: 1fr; }
  .semsem-widget .semsem-photo-ribbon img { height: 260px; border-radius: 8px; }
  .semsem-board-grid { grid-template-columns: 1fr; }
  .semsem-widget .semsem-portrait-img { height: 390px; }
  .semsem-form { grid-template-columns: 1fr; }
  .semsem-field--full { grid-column: auto; }
  .semsem-form-actions { grid-column: auto; }
  .semsem-full-image { height: 72vw; min-height: 330px; }
  .semsem-philosophy-grid { gap: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .semsem-widget *, .semsem-widget *::before, .semsem-widget *::after {
    transition-duration: .01ms !important;
  }
}

/* Oct 2026 verified branch actions. */
.semsem-location-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:14px; }
.semsem-location-action { font-size:13px; font-weight:700; color:#213b2a; text-decoration:underline; text-underline-offset:4px; }
.semsem-location-action--order { color:#8b4b14; }
.semsem-location-action:hover { opacity:.7; }
.semsem-location-action:focus-visible { outline:2px solid #336e4a; outline-offset:4px; }

/* Franchise page. Individual native Elementor widgets; no shared giant HTML block. */
.semsem-franchise-info{padding:clamp(64px,7vw,110px) 0;background:#fdfbf5;color:#1f3126;}
.semsem-franchise-container{max-width:1180px;margin-inline:auto;}
.semsem-franchise-heading{max-width:760px;margin-bottom:clamp(30px,4vw,56px);}
.semsem-franchise-info .semsem-eyebrow{font-size:12px;letter-spacing:.18em;font-weight:750;color:#7b5b28;margin:0 0 16px;}
.semsem-franchise-info h2{font-size:clamp(32px,4vw,58px);line-height:1.12;letter-spacing:-.04em;font-weight:700;margin:0 0 19px;color:inherit;}
.semsem-franchise-intro{font-size:clamp(16px,1.65vw,19px);line-height:1.75;max-width:700px;color:#4d6053;margin:0;}
.semsem-franchise-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 35px;}
.semsem-franchise-item{min-width:0;padding:26px 2px 30px;border-top:1px solid rgba(46,73,51,.2);}
.semsem-franchise-item h3{font-size:clamp(18px,1.65vw,23px);line-height:1.28;margin:0 0 10px;letter-spacing:-.025em;color:inherit;}
.semsem-franchise-item p{font-size:15px;line-height:1.7;color:#516253;margin:0;}
.semsem-franchise--menu{background:#f1f3eb;}
.semsem-franchise--menu .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:70px;}
.semsem-franchise--menu .semsem-franchise-item{padding:21px 0;border-top:1px solid #cbd5c9;}
.semsem-franchise--highlight{background:#20392b;color:#fffaf0;}
.semsem-franchise--highlight .semsem-franchise-intro,.semsem-franchise--highlight .semsem-franchise-item p{color:#d4e0d5;}
.semsem-franchise--highlight .semsem-eyebrow{color:#dbc28f;}
.semsem-franchise--highlight .semsem-franchise-item{border-color:rgba(255,255,255,.2);}
.semsem-franchise--highlight .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr));}
.semsem-franchise-big-number{font-size:clamp(37px,6vw,82px);font-weight:750;line-height:1.05;letter-spacing:-.05em;margin:0 0 38px;color:#a77a37;}
.semsem-franchise--highlight .semsem-franchise-big-number{color:#f0d49b;}
.semsem-franchise--columns{background:#fffdf7;}
.semsem-franchise--columns .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.semsem-franchise--columns .semsem-franchise-item{border-top:3px solid #9da88b;padding:24px 0;}
.semsem-franchise--investment{background:#e7ece1;}
.semsem-franchise--investment .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr));}
.semsem-franchise--steps{background:#f7f5ef;}
.semsem-franchise--steps .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:70px;}
.semsem-franchise--steps .semsem-franchise-item{position:relative;padding-left:58px;}
.semsem-franchise-stepno{position:absolute;left:0;top:27px;font-size:23px;letter-spacing:-.05em;font-weight:700;color:#8e6a36;}
.semsem-franchise-note{font-size:13px;line-height:1.65;max-width:850px;color:#5e7060;margin:28px 0 0;}
.semsem-franchise--highlight .semsem-franchise-note{color:#dae5d9;}
@media(max-width:767px){
 .semsem-franchise-items,.semsem-franchise--menu .semsem-franchise-items,.semsem-franchise--highlight .semsem-franchise-items,.semsem-franchise--columns .semsem-franchise-items,.semsem-franchise--investment .semsem-franchise-items,.semsem-franchise--steps .semsem-franchise-items{grid-template-columns:1fr;gap:0;}
 .semsem-franchise-info{padding:64px 0;}
 .semsem-franchise--steps .semsem-franchise-item{padding-left:52px;}
}

/* v1.0.14: client photography gallery retains all native Elementor image controls. */
.semsem-photo-ribbon-heading { max-width: 720px; margin-bottom: clamp(26px, 4vw, 42px); }
.semsem-photo-ribbon-heading .semsem-eyebrow { margin-bottom: 10px; }
.semsem-photo-ribbon-heading h2 { margin: 0 0 10px; font-size: clamp(1.85rem, 3vw, 2.9rem); line-height: 1.16; letter-spacing: -.03em; }
.semsem-photo-ribbon-heading > p:last-child { margin: 0; max-width: 600px; line-height: 1.65; }
#semsem-client-sauces-gallery .semsem-photo-ribbon img { object-fit: contain; background: #f9f7f2; border: 1px solid rgba(54, 51, 40, .07); padding: 3px; border-radius: 16px; }

/* ==============================================================
   V1.0.15 — LOCATION & FRANCHISE EDITORIAL REDESIGN
   Scoped styles: no changes to existing home/menu/about widgets.
   ============================================================= */
.semsem-lx, .semsem-fh, .semsem-franchise-info { overflow:hidden; isolation:isolate; }
.semsem-lx *,.semsem-fh *,.semsem-franchise-info *{box-sizing:border-box}
.semsem-lx{background:#f7f4e9;color:#292f20}
.semsem-lx-inner{position:relative;z-index:2}
.semsem-lx-kicker,.semsem-fh-kicker{font:800 12px/1.5 var(--ss-sans);letter-spacing:.18em;text-transform:uppercase;margin:0 0 21px;color:#9c5f2a}
.semsem-lx h1,.semsem-lx h2,.semsem-fh h1,.semsem-fh h2{font-family:var(--ss-serif);letter-spacing:-.045em;font-weight:500;line-height:.97;margin:0 0 25px}
.semsem-lx h1{font-size:clamp(3.5rem,7.3vw,7.3rem);max-width:960px}
.semsem-lx h2{font-size:clamp(2.5rem,5vw,5.4rem)}
.semsem-lx-text{font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.72;max-width:650px;color:#586454;margin:0 0 25px}
.semsem-lx-address{font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:1.55;font-weight:700;letter-spacing:-.015em;margin:0 0 22px}
.semsem-lx-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.semsem-lx .semsem-lx-btn,.semsem-fh .semsem-fh-button{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:24px;padding:15px 23px;font-size:.9rem;line-height:1.2;font-weight:800;border-radius:5px;transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;text-decoration:none}
.semsem-lx-btn span,.semsem-fh-button span{font-size:19px;line-height:1}
.semsem-lx .semsem-lx-btn:hover,.semsem-fh .semsem-fh-button:hover{transform:translateY(-3px)}
.semsem-lx a:focus-visible,.semsem-fh a:focus-visible{outline:3px solid #e8a54f;outline-offset:4px}
.semsem-lx .semsem-lx-btn--main{background:#b87b34;color:#fff!important;border:1px solid #b87b34}
.semsem-lx .semsem-lx-btn--main:hover{background:#955e23}
.semsem-lx .semsem-lx-btn--outline{border:1px solid currentColor;color:inherit!important;background:transparent}
.semsem-lx .semsem-lx-btn--outline:hover{background:rgba(255,255,255,.12)}
.semsem-lx .semsem-lx-more{display:inline-block;margin-top:22px;font-size:14px;font-weight:800;letter-spacing:.02em;text-decoration:underline;text-underline-offset:6px}
.semsem-lx-note{margin:20px 0 0;font-size:.85rem;line-height:1.6;opacity:.76;max-width:560px}
/* Hero: large photographic composition with legible editorial copy. */
.semsem-lx--hero{min-height:660px;display:flex;align-items:end;background:#1b2920;color:#fffdf6;position:relative}
.semsem-lx-hero-media,.semsem-lx-hero-overlay{position:absolute;inset:0;z-index:0}
.semsem-lx-hero-media img{height:100%!important;width:100%!important;max-width:none!important;object-fit:cover;object-position:center 46%}
.semsem-lx-hero-overlay{z-index:1;background:linear-gradient(90deg,rgba(20,34,25,.96) 0%,rgba(22,33,27,.79) 38%,rgba(18,30,24,.3) 80%),linear-gradient(0deg,rgba(14,30,22,.6),transparent 55%)}
.semsem-lx--hero .semsem-lx-inner{padding:138px 0 75px;width:min(calc(100% - 48px),1200px)}
.semsem-lx--hero .semsem-lx-kicker{color:#eac28e;margin-bottom:25px}
.semsem-lx--hero .semsem-lx-text{color:#e3e8df;max-width:640px}
.semsem-lx--hero .semsem-lx-address{color:#f2ddba;display:inline-flex;align-items:center;gap:10px;margin-bottom:6px;font-size:1.03rem}
.semsem-lx--hero .semsem-lx-address::before{content:'●';font-size:11px;color:#dcaa70}
.semsem-lx--hero .semsem-lx-btn--outline{color:#fffdf6!important}
.semsem-lx-index{font:800 12px/1.4 var(--ss-sans);letter-spacing:.12em;margin:0 0 47px;color:#f1d7a9}
.semsem-lx-index span{font-size:11px;margin-left:16px;border-left:1px solid #d1b98d;padding-left:16px;color:#fff9e9}
/* Visit: photograph + crisp, immediately useful information. */
.semsem-lx--visit{padding:clamp(76px,8vw,124px) 0;background:#fbf8ee}
.semsem-lx-visit-layout{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(45px,8vw,120px);align-items:center}
.semsem-lx--visit h2{max-width:540px}
.semsem-lx--visit .semsem-lx-address{font-family:var(--ss-serif);font-size:clamp(1.35rem,2.2vw,2.3rem);font-weight:500;color:#30392c}
.semsem-lx--visit .semsem-lx-text{max-width:480px}
.semsem-lx-visit-photo{position:relative;margin-bottom:30px}
.semsem-lx-visit-photo::before{content:'';position:absolute;top:24px;bottom:-26px;left:-26px;right:26px;border:1px solid rgba(147,110,57,.32);z-index:-1}
.semsem-lx-visit-photo .semsem-lx-photo{width:100%;aspect-ratio:1.18;max-height:610px;object-fit:cover;object-position:center;border-radius:2px}
.semsem-lx-photo-caption{position:absolute;right:-20px;bottom:-18px;background:#294533;color:#fff8e9;padding:18px 23px;font-family:var(--ss-serif);font-style:italic;font-size:1.2rem;box-shadow:0 14px 35px rgba(16,34,24,.16)}
.semsem-lx--visit .semsem-lx-btn--outline{border-color:#8a947c}
/* Feature: expressive alternating dark split, not another stack of cards. */
.semsem-lx--feature{background:#244032;color:#fffdf4}
.semsem-lx--feature .semsem-lx-inner{width:100%;max-width:none}
.semsem-lx-feature-layout{display:grid;grid-template-columns:1fr 1fr;min-height:550px;align-items:stretch}
.semsem-lx-feature-media{min-height:400px;overflow:hidden}
.semsem-lx-feature-photo{width:100%;height:100%!important;max-width:none!important;object-fit:cover}
.semsem-lx--feature .semsem-lx-copy{padding:clamp(70px,7.5vw,118px) clamp(35px,6vw,110px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.semsem-lx--feature .semsem-lx-kicker{color:#f0c88e}
.semsem-lx--feature h2{max-width:610px}
.semsem-lx--feature .semsem-lx-text{color:#e3ebe0}
.semsem-lx--feature .semsem-lx-btn--outline{color:#fff!important}
/* Nearby: restrained editorial navigation, not repetitive service cards. */
.semsem-lx--nearby{padding:clamp(76px,8vw,112px) 0;background:#eee9d9}
.semsem-lx--nearby .semsem-lx-inner{max-width:1200px}
.semsem-lx--nearby h2{max-width:780px}
.semsem-lx-nearby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:46px}
.semsem-lx .semsem-lx-nearby-link{position:relative;display:flex;flex-direction:column;padding:0 0 23px;color:#253627;border-bottom:2px solid rgba(54,71,44,.32);transition:border-color .2s ease,transform .2s ease}
.semsem-lx .semsem-lx-nearby-link:hover{transform:translateY(-5px);border-color:#b77a35}
.semsem-lx-nearby-photo{display:block;height:clamp(150px,18vw,230px);margin-bottom:19px;overflow:hidden;background:#ddd3bd}
.semsem-lx-nearby-photo img{width:100%;height:100%!important;object-fit:cover;transition:transform .3s ease}
.semsem-lx-nearby-link:hover img{transform:scale(1.05)}
.semsem-lx-nearby-name{font:500 clamp(1.45rem,2.3vw,2rem)/1.1 var(--ss-serif);padding-right:25px}
.semsem-lx-nearby-address{font-size:.88rem;color:#57614e;margin-top:8px;padding-right:25px}
.semsem-lx-nearby-arrow{position:absolute;right:3px;bottom:43px;font:600 25px/1 var(--ss-sans)}
/* Full-bleed franchise photography with a confident compact message. */
.semsem-fh{position:relative;display:flex;align-items:center;min-height:680px;background:#1c3224;color:#fffaf1}
.semsem-fh-media,.semsem-fh-overlay{position:absolute;inset:0}
.semsem-fh-media img{height:100%!important;width:100%!important;max-width:none!important;object-fit:cover;object-position:center}
.semsem-fh-overlay{background:linear-gradient(90deg,rgba(24,45,32,.97) 0%,rgba(24,44,31,.83) 46%,rgba(24,44,31,.32) 100%);z-index:1}
.semsem-fh-inner{position:relative;z-index:2;padding:135px 0 105px}
.semsem-fh-kicker{color:#ebc18b}
.semsem-fh h1{font-size:clamp(3.7rem,7.8vw,8rem);max-width:860px}
.semsem-fh h2{font-size:clamp(3.2rem,6vw,6rem);max-width:850px}
.semsem-fh-text{color:#f5eddf;font-size:clamp(1rem,1.7vw,1.23rem);line-height:1.7;max-width:560px;margin:0 0 29px}
.semsem-fh .semsem-fh-button{background:#d6a05b;color:#193123!important;border:1px solid #d6a05b}
.semsem-fh .semsem-fh-button:hover{background:#efbe7c}
.semsem-fh-note{margin:23px 0 0;font-size:.83rem;color:#f1d8b8;line-height:1.6}
.semsem-fh--cta{min-height:460px;text-align:center}
.semsem-fh--cta .semsem-fh-inner{padding:95px 0 100px;display:flex;align-items:center;flex-direction:column}
.semsem-fh--cta .semsem-fh-overlay{background:rgba(25,44,30,.86)}
.semsem-fh--cta h2{max-width:910px}
.semsem-fh--cta .semsem-fh-text{max-width:630px}
/* 7 distinctly composed franchise sections instead of repeated plain lists. */
.semsem-franchise-info{padding:clamp(76px,9vw,126px) 0;background:#fbf8ee;color:#233628}
.semsem-franchise-info .semsem-franchise-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(20px,3vw,40px);align-items:start;max-width:1200px}
.semsem-franchise-info .semsem-franchise-heading{grid-column:1/-1;max-width:960px;margin:0}
.semsem-franchise-info .semsem-eyebrow{font:800 12px/1.5 var(--ss-sans);letter-spacing:.18em;color:#a26b2d;margin:0 0 18px}
.semsem-franchise-info .semsem-eyebrow::before{width:28px;background:currentColor}
.semsem-franchise-info h2{font:500 clamp(2.6rem,5vw,5.25rem)/.99 var(--ss-serif);letter-spacing:-.04em;color:inherit;margin:0 0 22px}
.semsem-franchise-info .semsem-franchise-intro{font-size:clamp(1rem,1.4vw,1.13rem);line-height:1.72;max-width:760px;color:#5b6658}
.semsem-franchise-info .semsem-franchise-media{grid-column:1/6;margin:0;align-self:stretch;min-height:365px;overflow:hidden}
.semsem-franchise-info .semsem-franchise-media img{height:100%!important;width:100%!important;object-fit:cover;max-width:none!important}
.semsem-franchise-info .semsem-franchise-items{grid-column:6/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px;row-gap:0;align-self:start}
.semsem-franchise-info .semsem-franchise-item{padding:20px 0 22px;border-top:1px solid rgba(48,76,50,.24);min-width:0}
.semsem-franchise-info .semsem-franchise-item h3{font:600 clamp(1.14rem,1.65vw,1.47rem)/1.23 var(--ss-serif);letter-spacing:-.015em;color:inherit;margin:0 0 9px}
.semsem-franchise-info .semsem-franchise-item p{font:400 .9rem/1.7 var(--ss-sans);color:#5c6758;margin:0}
.semsem-franchise-info .semsem-franchise-note{grid-column:1/-1;font:.82rem/1.6 var(--ss-sans);margin:10px 0 0;color:#61715e;max-width:930px}
/* Opportunity split */
.semsem-franchise--grid{background:#faf7ef}
.semsem-franchise--grid .semsem-franchise-heading{grid-column:1/8}
.semsem-franchise--grid .semsem-franchise-media{grid-column:8/-1;grid-row:1 / span 2;min-height:560px}
.semsem-franchise--grid .semsem-franchise-items{grid-column:1/8;grid-template-columns:repeat(2,minmax(0,1fr))}
/* Food menu: elegant opposite photo and ingredient lines */
.semsem-franchise--menu{background:#f0efe5}
.semsem-franchise--menu .semsem-franchise-heading{grid-column:6/-1}
.semsem-franchise--menu .semsem-franchise-media{grid-column:1/6;grid-row:1 / span 2;min-height:660px}
.semsem-franchise--menu .semsem-franchise-items{grid-column:6/-1;grid-template-columns:1fr 1fr}
.semsem-franchise--menu .semsem-franchise-item{padding:17px 0 19px}
/* Training: deep green, huge meaningful training figure, food photo on edge */
.semsem-franchise--highlight{background:#203d2e;color:#fffdf4}
.semsem-franchise--highlight .semsem-franchise-container{position:relative}
.semsem-franchise--highlight .semsem-franchise-heading{grid-column:1/8}
.semsem-franchise--highlight .semsem-franchise-media{grid-column:9/-1;grid-row:1 / span 3;min-height:540px}
.semsem-franchise--highlight .semsem-franchise-intro,.semsem-franchise--highlight .semsem-franchise-item p{color:#dce8d8}
.semsem-franchise--highlight .semsem-eyebrow{color:#f0ce8f}
.semsem-franchise--highlight .semsem-franchise-big-number{grid-column:1/8;grid-row:2;font:500 clamp(4.6rem,9.4vw,10rem)/.9 var(--ss-serif);color:#e4bc75;margin:10px 0 4px;letter-spacing:-.055em}
.semsem-franchise--highlight .semsem-franchise-items{grid-column:1/8;grid-row:3;grid-template-columns:1fr 1fr}
.semsem-franchise--highlight .semsem-franchise-item{border-color:rgba(255,255,255,.26)}
.semsem-franchise--highlight .semsem-franchise-note{color:#dce7d4}
/* Support: asymmetric paired large statements */
.semsem-franchise--columns{background:#fffdf7}
.semsem-franchise--columns .semsem-franchise-heading{grid-column:1/8}
.semsem-franchise--columns .semsem-franchise-media{grid-column:9/-1;grid-row:1;min-height:300px}
.semsem-franchise--columns .semsem-franchise-items{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.semsem-franchise--columns .semsem-franchise-item{border-top:3px solid #be9c63;padding:32px 28px;background:#f7f3e7}
.semsem-franchise--columns .semsem-franchise-item h3{font-size:clamp(1.7rem,2.7vw,2.5rem);margin-bottom:14px}
.semsem-franchise--columns .semsem-franchise-item p{font-size:1rem}
/* Investment: large clear figure + important legal disclosure, not a price grid */
.semsem-franchise--investment{background:#e6eadf}
.semsem-franchise--investment .semsem-franchise-heading{grid-column:1/8}
.semsem-franchise--investment .semsem-franchise-media{grid-column:9/-1;grid-row:1 / span 3;min-height:540px}
.semsem-franchise--investment .semsem-franchise-big-number{grid-column:1/9;font:500 clamp(2.5rem,5.1vw,5.5rem)/1.05 var(--ss-serif);letter-spacing:-.04em;color:#23402d;margin:0;padding:20px 0 12px;border-bottom:1px solid #abc09f}
.semsem-franchise--investment .semsem-franchise-items{grid-column:1/9;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr))}
/* Partner qualities: editorial compact list */
.semsem-franchise--qualities{background:#faf8f0}
.semsem-franchise--qualities .semsem-franchise-heading{grid-column:1/9}
.semsem-franchise--qualities .semsem-franchise-media{grid-column:10/-1;grid-row:1;min-height:320px}
.semsem-franchise--qualities .semsem-franchise-items{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px}
.semsem-franchise--qualities .semsem-franchise-item{padding:25px 0;border-top:1px solid rgba(46,73,51,.22)}
/* Steps: structured ownership path with true responsive timeline */
.semsem-franchise--steps{background:#f1eee4}
.semsem-franchise--steps .semsem-franchise-heading{grid-column:1/9}
.semsem-franchise--steps .semsem-franchise-media{grid-column:10/-1;grid-row:1;min-height:310px}
.semsem-franchise--steps .semsem-franchise-items{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:75px}
.semsem-franchise--steps .semsem-franchise-item{position:relative;padding:30px 12px 30px 65px;border-top:1px solid rgba(49,69,47,.26)}
.semsem-franchise--steps .semsem-franchise-stepno{position:absolute;top:28px;left:0;font:600 clamp(1.3rem,2vw,1.8rem)/1 var(--ss-serif);color:#9a652e}
/* Inquiries: editorial, calmer spacing and readable selects; only Franchise form affected. */
.semsem-form--franchise{padding:clamp(76px,8vw,128px) 0!important;background:#fffdf7}
.semsem-form--franchise .semsem-form-layout{gap:clamp(45px,7vw,110px);align-items:start}
.semsem-form--franchise h2{font:500 clamp(2.6rem,5vw,5.2rem)/.99 var(--ss-serif);letter-spacing:-.04em}
.semsem-form--franchise .semsem-aside-text{line-height:1.75;font-size:1.05rem}
.semsem-form--franchise .semsem-form{padding:clamp(24px,3.6vw,46px);background:#f4f2e8;border:1px solid #e3ddcb;border-radius:6px;gap:21px 16px}
.semsem-form--franchise .semsem-field label{color:#293b2e;font-size:.82rem}
.semsem-form--franchise .semsem-field input,.semsem-form--franchise .semsem-field select,.semsem-form--franchise .semsem-field textarea{background:#fffdf8;border:1px solid #bdbba9;border-radius:4px;color:#263326;min-height:49px}
.semsem-form--franchise .semsem-field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#536c54 50%),linear-gradient(135deg,#536c54 50%,transparent 50%);background-position:calc(100% - 21px) 51%,calc(100% - 16px) 51%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.semsem-form--franchise .semsem-field input:focus-visible,.semsem-form--franchise .semsem-field textarea:focus-visible,.semsem-form--franchise .semsem-field select:focus-visible{outline:2px solid #537850;outline-offset:2px}
.semsem-form--franchise .semsem-form-note{max-width:410px}
/* Existing global Elementor section wrappers often add no padding. */
.elementor-widget-semsem-location-experience,.elementor-widget-semsem-franchise-hero,.elementor-widget-semsem-franchise-info{width:100%;min-width:0}
@media(max-width:1050px){
  .semsem-franchise--grid .semsem-franchise-media{min-height:470px}
  .semsem-franchise--menu .semsem-franchise-media{min-height:590px}
  .semsem-franchise--highlight .semsem-franchise-media{min-height:520px}
  .semsem-lx-visit-layout{gap:48px}
}
@media(max-width:880px){
  .semsem-lx--hero{min-height:590px}
  .semsem-lx--hero .semsem-lx-inner{padding:115px 0 65px}
  .semsem-lx-visit-layout{grid-template-columns:1fr;gap:46px}
  .semsem-lx-visit-photo{max-width:650px;margin:0 16px 34px}
  .semsem-lx-feature-layout{grid-template-columns:1fr}
  .semsem-lx-feature-media{min-height:340px;max-height:480px}
  .semsem-lx--feature .semsem-lx-copy{padding:65px 30px 75px}
  .semsem-lx-nearby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .semsem-fh{min-height:620px}
  .semsem-fh--cta{min-height:440px}
  .semsem-franchise-info .semsem-franchise-container{grid-template-columns:repeat(6,minmax(0,1fr));gap:26px}
  .semsem-franchise-info .semsem-franchise-heading{grid-column:1/-1!important;grid-row:auto!important}
  .semsem-franchise-info .semsem-franchise-media{grid-column:1/-1!important;grid-row:auto!important;min-height:320px!important;height:390px!important}
  .semsem-franchise-info .semsem-franchise-items{grid-column:1/-1!important;grid-row:auto!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
  .semsem-franchise--highlight .semsem-franchise-big-number,.semsem-franchise--investment .semsem-franchise-big-number{grid-column:1/-1!important;grid-row:auto!important}
  .semsem-franchise--grid .semsem-franchise-media,.semsem-franchise--menu .semsem-franchise-media{grid-row:auto!important}
  .semsem-franchise--columns .semsem-franchise-items{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .semsem-lx--hero{min-height:570px}
  .semsem-lx--hero .semsem-lx-inner{padding:103px 0 55px;width:min(calc(100% - 34px),1200px)}
  .semsem-lx h1{font-size:clamp(3.1rem,12vw,4.7rem)}
  .semsem-lx h2{font-size:clamp(2.5rem,10.5vw,4.1rem)}
  .semsem-lx-index{margin-bottom:36px}
  .semsem-lx--hero .semsem-lx-hero-overlay{background:rgba(21,40,28,.77)}
  .semsem-lx--hero .semsem-lx-actions{align-items:stretch}
  .semsem-lx-actions{gap:10px;margin-top:22px}
  .semsem-lx .semsem-lx-btn{width:100%;justify-content:space-between}
  .semsem-lx--visit,.semsem-lx--nearby{padding:72px 0}
  .semsem-lx-photo-caption{right:0;bottom:-15px;font-size:1rem}
  .semsem-lx-visit-photo::before{left:-12px;right:12px}
  .semsem-lx--feature .semsem-lx-copy{padding:60px 20px}
  .semsem-lx-nearby-grid{grid-template-columns:1fr;gap:29px;margin-top:32px}
  .semsem-lx-nearby-photo{height:230px}
  .semsem-fh{min-height:650px}
  .semsem-fh-inner{padding:105px 0 90px}
  .semsem-fh h1{font-size:clamp(3.2rem,12vw,5rem)}
  .semsem-fh h2{font-size:clamp(2.9rem,10vw,4.8rem)}
  .semsem-fh .semsem-fh-button{max-width:100%;width:100%;justify-content:space-between}
  .semsem-fh--cta .semsem-fh-inner{padding:78px 0 85px}
  .semsem-franchise-info{padding:72px 0}
  .semsem-franchise-info .semsem-franchise-container{gap:24px}
  .semsem-franchise-info .semsem-franchise-media{height:285px!important;min-height:285px!important}
  .semsem-franchise-info h2{font-size:clamp(2.55rem,9vw,3.5rem)}
  .semsem-franchise-info .semsem-franchise-items{grid-template-columns:1fr!important;gap:0}
  .semsem-franchise--columns .semsem-franchise-item{padding:23px;background:#f7f3e7;margin-bottom:14px}
  .semsem-franchise--highlight .semsem-franchise-big-number{font-size:clamp(3.6rem,14vw,5.7rem)}
  .semsem-franchise--investment .semsem-franchise-big-number{font-size:clamp(2.45rem,9vw,4rem);overflow-wrap:anywhere}
  .semsem-franchise--steps .semsem-franchise-item{padding-left:50px}
  .semsem-form--franchise .semsem-form{padding:20px}
  .semsem-form--franchise .semsem-field{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.semsem-lx *,.semsem-fh *{transition:none!important;animation:none!important}}
/* Premium directory is enabled only on /locations/ and remains a normal editable repeater. */
.semsem-location-list--premium{padding:clamp(78px,8vw,120px) 0;background:#faf8ef}
.semsem-location-list--premium .semsem-locations-head{display:block;margin-bottom:43px}
.semsem-location-list--premium .semsem-locations-head h2{font:500 clamp(2.7rem,5vw,5.1rem)/1 var(--ss-serif);letter-spacing:-.045em;max-width:790px;margin:0 0 22px}
.semsem-location-list--premium .semsem-locations-intro{max-width:620px;color:#647160}
.semsem-location-list--premium .semsem-location-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.semsem-location-list--premium .semsem-location-card{border:none;border-radius:2px;background:#fffdf7;box-shadow:0 12px 36px rgba(35,51,37,.09);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.semsem-location-list--premium .semsem-location-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(35,51,37,.13)}
.semsem-location-list--premium .semsem-location-card-media{aspect-ratio:1.75;background:#eee8d7;overflow:hidden;border-radius:0}
.semsem-location-list--premium .semsem-widget .semsem-location-card-media img,.semsem-location-list--premium .semsem-location-card-media img{border-radius:0!important;width:100%;height:100%!important;object-fit:cover}
.semsem-location-list--premium .semsem-location-card-body{padding:clamp(24px,3vw,35px);gap:11px}
.semsem-location-list--premium .semsem-location-card h3{font:500 clamp(1.9rem,3vw,2.8rem)/1.05 var(--ss-serif);letter-spacing:-.025em;margin:0}
.semsem-location-list--premium .semsem-location-address{font-size:.95rem!important;color:#62715d!important}
.semsem-location-list--premium .semsem-location-actions{margin-top:auto;display:flex;gap:18px;align-items:center;padding-top:19px}
.semsem-location-list--premium .semsem-directions{border-radius:4px;background:#2b4d38!important;color:#fff!important;border-color:#2b4d38!important}
.semsem-location-list--premium .semsem-location-action{font-weight:800;font-size:.84rem;color:#2b4d38;text-decoration:underline}
.semsem-location-list--premium .semsem-location-action--order{color:#90602c}
@media(max-width:880px){.semsem-location-list--premium .semsem-location-cards{grid-template-columns:1fr 1fr;gap:18px}}
@media(max-width:600px){.semsem-location-list--premium .semsem-location-cards{grid-template-columns:1fr;gap:25px}}
/* 1.0.16 — Photo-led franchise editorial redesign.
   Deliberately scoped: other site pages, global Elementor, and form actions are untouched. */
.elementor-widget-semsem-franchise-info,.elementor-widget-semsem-franchise-hero,.elementor-widget-semsem-inquiry-form{min-width:0;width:100%}
.semsem-franchise-v16{--fi-forest:#173a2b;--fi-ink:#1f372a;--fi-clay:#bc7543;--fi-sand:#f7f3e8;--fi-tan:#e8dcc6;--fi-milk:#fffcf5;position:relative;padding:clamp(76px,8vw,118px) 0;color:var(--fi-ink);overflow:hidden;isolation:isolate}
.semsem-franchise-v16 *{box-sizing:border-box}
.semsem-franchise-v16 .semsem-franchise-container{width:min(calc(100% - 64px),1220px);margin-inline:auto;max-width:1220px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 34px;align-items:start}
.semsem-franchise-v16 .semsem-franchise-heading{margin:0 0 34px;max-width:none}
.semsem-franchise-v16 .semsem-eyebrow{font:800 12px/1.4 var(--ss-sans);letter-spacing:.17em;color:#9e632f;margin:0 0 20px;display:inline-flex;align-items:center;gap:12px}
.semsem-franchise-v16 .semsem-eyebrow::before{background:#b78c53;width:32px;height:2px}
.semsem-franchise-v16 .semsem-franchise-heading h2{font-family:var(--ss-serif);font-size:clamp(2.9rem,4.7vw,5.3rem);line-height:.99;letter-spacing:-.053em;font-weight:550;max-width:890px;margin:0 0 25px;color:inherit;overflow-wrap:normal}
.semsem-franchise-v16 .semsem-franchise-intro{font:400 clamp(1.01rem,1.42vw,1.15rem)/1.75 var(--ss-sans);max-width:650px;color:#546358;margin:0}
.semsem-franchise-v16 .semsem-franchise-media{position:relative;margin:0;overflow:hidden;background:#d7cbb7;min-width:0;width:100%;min-height:470px;border-radius:18px;box-shadow:0 22px 50px rgba(30,42,27,.14)}
.semsem-franchise-v16 .semsem-franchise-media img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;min-height:inherit;object-fit:cover!important;object-position:center;transition:transform .7s cubic-bezier(.18,.68,.22,1)}
.semsem-franchise-v16 .semsem-franchise-media:hover img{transform:scale(1.045)}
.semsem-franchise-v16 .semsem-franchise-media figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;color:#fff;font:800 11px/1.4 var(--ss-sans);letter-spacing:.15em;background:linear-gradient(transparent,rgba(17,33,24,.74));padding:58px 25px 20px;text-shadow:0 1px 5px rgba(0,0,0,.45)}
.semsem-franchise-v16 .semsem-franchise-items{display:flex;flex-direction:column;gap:0;margin:0;min-width:0}
.semsem-franchise-v16 .semsem-franchise-item{position:relative;min-width:0;margin:0;padding:22px 0;border-top:1px solid rgba(48,66,43,.17);display:flex;gap:22px;align-items:start;transition:background-color .2s,transform .2s}
.semsem-franchise-v16 .semsem-franchise-item h3{font:600 clamp(1.19rem,1.6vw,1.5rem)/1.2 var(--ss-serif);letter-spacing:-.028em;margin:0 0 8px;color:inherit}
.semsem-franchise-v16 .semsem-franchise-item p{font:400 .93rem/1.62 var(--ss-sans);margin:0;color:#58665c}
.semsem-franchise-v16 .semsem-franchise-stepno{position:static;display:inline-flex;align-items:center;justify-content:center;flex:0 0 39px;width:39px;height:39px;border-radius:50%;background:#e6d7bd;color:#684d2f;font:800 12px/1 var(--ss-sans);letter-spacing:0}
.semsem-franchise-v16 .semsem-fi-item-copy{min-width:0;flex:1}
.semsem-franchise-v16 .semsem-franchise-note{font:400 .84rem/1.68 var(--ss-sans);max-width:780px;color:#546457;margin:32px 0 0}
.semsem-franchise-v16 .semsem-franchise-big-number{font-family:var(--ss-serif);font-weight:550;letter-spacing:-.06em;line-height:1.04;margin:0;color:inherit;white-space:normal}
/* 1: Brand advantages — photo right, substantial value list below. */
.semsem-franchise-v16.semsem-franchise--grid{background:var(--fi-sand)}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-heading{grid-column:1/7;grid-row:1;margin:12px 0 30px}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-heading h2{max-width:640px}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-media{grid-column:8/-1;grid-row:1 / span 2;min-height:620px;height:100%;border-radius:190px 16px 16px 16px}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-items{grid-column:1/7;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:0;align-content:start}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item{border:0;border-radius:12px;padding:20px 18px 20px 15px;background:#fffdf8;box-shadow:0 3px 15px rgba(36,56,36,.04);display:block}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item:hover{background:#eee3cb;transform:translateY(-3px)}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-stepno{background:transparent;color:#b0793b;width:auto;height:auto;justify-content:start;margin-bottom:12px;font-size:.82rem}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item h3{font-size:1.12rem}
.semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item p{font-size:.86rem}
/* 2: Food editorial — wide photo on left with menu-like statement rows on right. */
.semsem-franchise-v16.semsem-franchise--menu{background:#fffdf7}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-media{grid-column:1/7;grid-row:1 / span 2;min-height:690px;height:100%;border-radius:17px 155px 17px 17px}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-heading{grid-column:8/-1;grid-row:1;margin-top:10px}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-items{grid-column:8/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item{border:1px solid #e6ddca;display:block;padding:18px 16px;border-radius:11px;background:#faf7ef}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item:first-child{grid-column:1/-1;background:#1b3c2b;color:#fff9ef;padding:20px 22px}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item:first-child p{color:#d9e3d6}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item:hover{border-color:#caa971;transform:translateY(-2px)}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-stepno{color:#af773e;background:transparent;width:auto;height:auto;font-size:11px;display:block;text-align:left;margin-bottom:12px}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item h3{font-size:1.13rem}
.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item p{font-size:.85rem}
/* 3: Training showcase — a true full-bleed dark standout. */
.semsem-franchise-v16.semsem-franchise--highlight{background:#19392a;color:#fff9e9}
.semsem-franchise-v16.semsem-franchise--highlight::after{content:"";position:absolute;z-index:-1;left:-120px;bottom:-210px;width:540px;height:540px;border:1px solid rgba(255,255,255,.11);border-radius:50%;box-shadow:0 0 0 82px rgba(255,255,255,.022),0 0 0 164px rgba(255,255,255,.018)}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-heading{grid-column:1/8;grid-row:1;margin:0 0 18px}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-heading h2{max-width:700px}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-eyebrow{color:#f2c685}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-intro{color:#deeadb;max-width:630px}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-media{grid-column:9/-1;grid-row:1 / span 3;min-height:550px;height:100%;border-radius:155px 12px 12px 12px;box-shadow:none}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-big-number{grid-column:1/8;grid-row:2;color:#f2c483;font-size:clamp(5rem,8.1vw,9.1rem);margin:12px 0 22px;max-width:720px}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-items{grid-column:1/8;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-item{border-color:rgba(242,237,216,.25);display:block;padding:17px 0}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-item h3{font-size:1.17rem;color:#fff9e9}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-item p{color:#d4e1d4}
.semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-note{grid-column:1/8;color:#e2e6da;margin-top:26px}
/* 4: Support — photo masthead and separate numbered support stages. */
.semsem-franchise-v16.semsem-franchise--columns{background:#f1eee4}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-heading{grid-column:1/8;grid-row:1;margin:0;align-self:center}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-media{grid-column:9/-1;grid-row:1;min-height:285px;border-radius:16px 100px 16px 16px}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-items{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:46px}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item{display:block;background:#fffdf6;border:0;border-radius:15px;padding:34px 40px;box-shadow:0 10px 25px rgba(32,54,39,.05)}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item:last-child{background:#234734;color:#fff}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-stepno{background:#d5b178;width:49px;height:49px;margin-bottom:18px;font-size:13px}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item:last-child .semsem-franchise-stepno{background:#d6b685;color:#153522}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item h3{font-size:clamp(1.55rem,2.6vw,2.45rem);margin:0 0 24px}
.semsem-franchise-v16 .semsem-franchise-subpoints{list-style:none!important;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
.semsem-franchise-v16 .semsem-franchise-subpoints li{position:relative;padding:0 0 0 20px;font:500 .91rem/1.6 var(--ss-sans);color:#5a665c}
.semsem-franchise-v16 .semsem-franchise-subpoints li::before{position:absolute;content:"✓";left:0;top:0;color:#aa7134;font-weight:800}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item:last-child li{color:#e4ebe1}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item:last-child li::before{color:#eabf86}
.semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-note{grid-column:1/-1;text-align:center;margin:33px auto 0;font:600 1.05rem/1.5 var(--ss-serif);color:#38513d}
/* 5: Investment — clear amount, readable qualifying text, photo-led half. */
.semsem-franchise-v16.semsem-franchise--investment{background:#e6ddcb}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-heading{grid-column:1/8;grid-row:1;margin-top:22px}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-media{grid-column:9/-1;grid-row:1 / span 3;min-height:565px;height:100%;border-radius:17px 135px 17px 17px}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-big-number{grid-column:1/8;grid-row:2;font-size:clamp(3.1rem,5.1vw,5.5rem);color:#1e412f;overflow-wrap:break-word;line-height:1.04;padding:15px 0 28px;margin:0;border:0}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-items{grid-column:1/8;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-item{background:rgba(255,255,255,.65);display:block;padding:22px;border:0;border-radius:12px}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-item h3{font-size:1.26rem}
.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-note{grid-column:1/-1;color:#4e634f;border-top:1px solid rgba(27,63,39,.19);padding:20px 0 0}
/* 6: Partner values — left photography and elegant full-height benefit list. */
.semsem-franchise-v16.semsem-franchise--qualities{background:#faf8f1}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-heading{grid-column:7/-1;grid-row:1;margin-top:10px}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-media{grid-column:1/6;grid-row:1 / span 2;min-height:720px;height:100%;border-radius:18px 175px 18px 18px}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-items{grid-column:7/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item{background:#efebe0;border-radius:11px;border:0;padding:18px 18px;display:block}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item:last-child{grid-column:1/-1;background:#1a3d2b;color:#fff}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item:last-child p{color:#d4e4d6}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-stepno{display:inline-flex;background:#d8c9ac;font-size:11px;width:31px;height:31px;margin-bottom:10px}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item h3{font-size:1.17rem}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item p{font-size:.87rem}
.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item:hover{transform:translateY(-3px)}
/* 7: Journey — connected milestones, not a two-column list of thin rules. */
.semsem-franchise-v16.semsem-franchise--steps{background:#1a3729;color:#fffaf1}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-heading{grid-column:1/8;grid-row:1;margin-bottom:34px}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-intro{color:#d5e3d7}
.semsem-franchise-v16.semsem-franchise--steps .semsem-eyebrow{color:#f0c48a}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-media{grid-column:9/-1;grid-row:1 / span 2;min-height:570px;height:100%;border-radius:155px 15px 15px 15px}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-items{grid-column:1/8;grid-row:2;display:flex;flex-direction:column;position:relative;margin-left:22px;padding:6px 0 0 28px;gap:11px;border-left:2px solid rgba(224,183,111,.42)}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item{position:relative;display:flex;gap:15px;align-items:start;padding:15px 22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:11px}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item:hover{background:rgba(255,255,255,.16);transform:translateX(3px)}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item::before{content:"";position:absolute;width:10px;height:10px;left:-34px;top:25px;background:#f0b66f;border-radius:50%;outline:5px solid #1a3729}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-stepno{position:static;flex:0 0 42px;width:42px;height:42px;border-radius:9px;background:#d5b07b;color:#213b2a;font-size:.82rem}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item h3{color:#fff8e8;font-size:1.17rem;margin:0 0 5px}
.semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item p{color:#d0ddd1;font-size:.88rem}
/* Photo intentionally removed in editor: let copy use full width, no ghost column. */
.semsem-franchise-v16.semsem-fi--no-photo .semsem-franchise-heading,.semsem-franchise-v16.semsem-fi--no-photo .semsem-franchise-items,.semsem-franchise-v16.semsem-fi--no-photo .semsem-franchise-big-number{grid-column:1/-1!important;grid-row:auto!important}
.semsem-franchise-v16.semsem-fi--no-photo .semsem-franchise-items{max-width:1000px}
/* CTA/hero: photographic focal point, not a flat green rectangle. */
.semsem-fh--hero{min-height:680px}
.semsem-fh--hero .semsem-fh-overlay{background:linear-gradient(95deg,rgba(18,41,29,.95) 0%,rgba(18,41,29,.77) 40%,rgba(18,41,29,.12) 100%)}
.semsem-fh--hero .semsem-fh-inner{padding:125px 0 128px}
.semsem-fh--hero .semsem-fh-kicker,.semsem-fh--cta .semsem-fh-kicker{letter-spacing:.19em;font-size:.76rem}
.semsem-fh--hero h1{max-width:795px;letter-spacing:-.06em;font-weight:500}
.semsem-fh--cta .semsem-fh-overlay{background:linear-gradient(100deg,rgba(16,35,25,.89),rgba(16,35,25,.52))}
.semsem-fh--cta{min-height:490px}
.semsem-fh--cta .semsem-fh-inner{align-items:flex-start;text-align:left;max-width:1200px;padding:105px 0}
.semsem-fh--cta h2{max-width:900px}
.semsem-fh--cta .semsem-fh-text{max-width:680px}
/* Inquiry form: substantial two-panel editorial composition. */
.semsem-form-section.semsem-form--franchise{background:#eee8dc!important;padding:clamp(75px,8vw,120px) 0!important}
.semsem-form--franchise .semsem-form-layout{width:min(calc(100% - 64px),1220px);max-width:1220px;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:0!important;align-items:stretch;box-shadow:0 28px 65px rgba(37,42,28,.14);border-radius:21px;overflow:hidden}
.semsem-form--franchise .semsem-form-layout>aside{margin:0;background:#1a3c2b;padding:clamp(38px,5vw,72px) clamp(32px,4vw,55px);position:relative;overflow:hidden;color:#fffdf3;display:block}
.semsem-form--franchise .semsem-form-layout>aside::after{content:"";position:absolute;left:-140px;bottom:-170px;width:380px;height:380px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 50px rgba(255,255,255,.035),0 0 0 105px rgba(255,255,255,.024);pointer-events:none}
.semsem-form--franchise .semsem-aside-inner{position:relative;z-index:1;top:0;max-width:420px}
.semsem-form--franchise .semsem-aside-inner .semsem-eyebrow{color:#ecbc7d;font-weight:800;letter-spacing:.14em}
.semsem-form--franchise .semsem-aside-inner h2{font:500 clamp(2.65rem,4.5vw,5rem)/1.02 var(--ss-serif);letter-spacing:-.05em;color:#fff9eb;margin:18px 0 26px}
.semsem-form--franchise .semsem-aside-text{font:400 clamp(1rem,1.38vw,1.13rem)/1.78 var(--ss-sans);color:#dce6dd;max-width:345px}
.semsem-form--franchise .semsem-form{border:none;border-radius:0;background:#fffdf8;padding:clamp(32px,4.4vw,58px);gap:20px 19px;box-shadow:none}
.semsem-form--franchise .semsem-field label{font:700 .86rem/1.45 var(--ss-sans);color:#253e2c;margin:0}
.semsem-form--franchise .semsem-field{gap:9px;min-width:0}
.semsem-form--franchise .semsem-field input,.semsem-form--franchise .semsem-field textarea,.semsem-form--franchise .semsem-field select{width:100%;padding:13px 16px;min-height:52px;font:500 .95rem/1.4 var(--ss-sans);background:#faf9f4;border:1.5px solid #d4d8ce;border-radius:9px;color:#203f2b;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.semsem-form--franchise .semsem-field input:focus,.semsem-form--franchise .semsem-field textarea:focus,.semsem-form--franchise .semsem-field select:focus{outline:none;border-color:#275b3b;box-shadow:0 0 0 3px rgba(42,98,59,.12)}
.semsem-form--franchise .semsem-field textarea{min-height:120px;resize:vertical}
.semsem-form--franchise .semsem-field select{cursor:pointer;padding-right:38px;background-position:calc(100% - 23px) 50%,calc(100% - 18px) 50%}
.semsem-form--franchise .semsem-form-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #e7e5db;padding-top:24px;margin-top:8px}
.semsem-form--franchise .semsem-btn-primary{background:#a36a36!important;border:1px solid #a36a36!important;color:#fff!important;border-radius:9px;padding:17px 26px;min-height:52px;font:800 .92rem/1.3 var(--ss-sans);white-space:normal}
.semsem-form--franchise .semsem-btn-primary:hover{background:#805126!important;transform:translateY(-2px)}
.semsem-form--franchise .semsem-form-note{font:400 .8rem/1.5 var(--ss-sans);color:#647064;max-width:230px}
@media(max-width:1100px){
 .semsem-franchise-v16 .semsem-franchise-container{gap:0 24px}
 .semsem-franchise-v16 .semsem-franchise-heading h2{font-size:clamp(2.65rem,5.1vw,4.7rem)}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-media{min-height:570px}
 .semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-media{min-height:590px}
 .semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-media{min-height:690px}
 .semsem-franchise-v16 .semsem-franchise-subpoints{grid-template-columns:1fr}
}
@media(max-width:900px){
 .semsem-franchise-v16{padding:82px 0}
 .semsem-franchise-v16 .semsem-franchise-container{width:min(calc(100% - 44px),700px);display:flex;flex-direction:column;gap:0}
 .semsem-franchise-v16 .semsem-franchise-heading,.semsem-franchise-v16 .semsem-franchise-items,.semsem-franchise-v16 .semsem-franchise-media,.semsem-franchise-v16 .semsem-franchise-big-number,.semsem-franchise-v16 .semsem-franchise-note{width:100%;max-width:100%;grid-column:auto!important;grid-row:auto!important;margin:0}
 .semsem-franchise-v16 .semsem-franchise-heading{order:1!important;margin:0 0 28px!important}
 .semsem-franchise-v16 .semsem-franchise-media{order:2!important;width:100%;height:380px!important;min-height:380px!important;margin:0 0 27px!important;border-radius:14px 95px 14px 14px!important}
 .semsem-franchise-v16 .semsem-franchise-big-number{order:3!important;padding:0!important;margin:0 0 25px!important}
 .semsem-franchise-v16 .semsem-franchise-items{order:4!important}
 .semsem-franchise-v16 .semsem-franchise-note{order:5!important;margin-top:20px!important}
 .semsem-franchise-v16 .semsem-franchise-heading h2{font-size:clamp(2.75rem,7vw,4.2rem)}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-items{display:grid;grid-template-columns:1fr 1fr}
 .semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-big-number{font-size:clamp(4.4rem,10vw,7rem)}
 .semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-items{grid-template-columns:1fr;gap:16px}
 .semsem-franchise-v16.semsem-franchise--columns .semsem-franchise-item{padding:29px}
 .semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-items{grid-template-columns:1fr 1fr}
 .semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-items{margin:8px 0 0 21px;width:calc(100% - 21px)}
 .semsem-form--franchise .semsem-form-layout{width:min(calc(100% - 44px),700px);grid-template-columns:1fr}
 .semsem-form--franchise .semsem-form-layout>aside{padding:46px 42px;min-height:270px}
 .semsem-form--franchise .semsem-aside-inner h2{max-width:590px}
 .semsem-form--franchise .semsem-aside-text{max-width:540px}
}
@media(max-width:540px){
 .semsem-franchise-v16{padding:68px 0}
 .semsem-franchise-v16 .semsem-franchise-container{width:calc(100% - 36px)}
 .semsem-franchise-v16 .semsem-franchise-heading h2{font-size:clamp(2.45rem,10.1vw,3.4rem);margin-bottom:18px}
 .semsem-franchise-v16 .semsem-franchise-intro{font-size:1rem;line-height:1.65}
 .semsem-franchise-v16 .semsem-franchise-media{height:290px!important;min-height:290px!important;margin:0 0 24px!important}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-items{grid-template-columns:1fr 1fr;gap:10px}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item{padding:16px 13px}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item h3,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item h3,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item h3{font-size:1.06rem}
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-item p,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-item p,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-item p{font-size:.82rem;line-height:1.52}
 .semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-items{grid-template-columns:1fr 1fr;gap:12px}
 .semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-big-number{font-size:clamp(4rem,14vw,6rem)}
 .semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-big-number{font-size:clamp(2.35rem,9vw,3.6rem);overflow-wrap:anywhere}
 .semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-item{padding:16px 14px}
 .semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-item{padding:15px 12px}
 .semsem-franchise-v16.semsem-franchise--steps .semsem-franchise-stepno{flex-basis:35px;width:35px;height:35px}
 .semsem-franchise-v16 .semsem-franchise-media figcaption{font-size:9px}
 .semsem-form--franchise .semsem-form-layout{width:calc(100% - 32px);border-radius:13px}
 .semsem-form--franchise .semsem-form-layout>aside{padding:38px 26px}
 .semsem-form--franchise .semsem-form{padding:26px 21px;gap:16px}
 .semsem-form--franchise .semsem-field{grid-column:1/-1}
 .semsem-form--franchise .semsem-form-actions{flex-direction:column;align-items:stretch}
 .semsem-form--franchise .semsem-form-actions .semsem-btn{width:100%;justify-content:center}
 .semsem-form--franchise .semsem-form-note{max-width:none}
 .semsem-fh--hero .semsem-fh-overlay{background:linear-gradient(90deg,rgba(18,41,29,.9),rgba(18,41,29,.52))}
}
@media(max-width:385px){
 .semsem-franchise-v16.semsem-franchise--grid .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--menu .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--qualities .semsem-franchise-items{grid-template-columns:1fr}
 .semsem-franchise-v16.semsem-franchise--highlight .semsem-franchise-items,.semsem-franchise-v16.semsem-franchise--investment .semsem-franchise-items{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.semsem-franchise-v16 .semsem-franchise-item,.semsem-franchise-v16 .semsem-franchise-media img{transition:none!important;transform:none!important}}
/* v1.0.16: Locations directory editorial rows instead of repeated box grid. */
.semsem-location-list--premium .semsem-location-cards{display:flex;flex-direction:column;gap:28px;counter-reset:ss-location}
.semsem-location-list--premium .semsem-location-card{counter-increment:ss-location;display:flex;flex-direction:row;align-items:stretch;min-height:320px;width:100%;border:0;border-radius:16px;overflow:hidden;box-shadow:0 12px 28px rgba(30,48,31,.065);transition:box-shadow .24s,transform .24s}
.semsem-location-list--premium .semsem-location-card:nth-child(even){flex-direction:row-reverse}
.semsem-location-list--premium .semsem-location-card-media{width:49%;flex:0 0 49%;height:auto;min-height:340px;aspect-ratio:auto;overflow:hidden;border-radius:0}
.semsem-location-list--premium .semsem-location-card-media img{object-fit:cover;height:100%!important;width:100%;border-radius:0;transition:transform .45s}
.semsem-location-list--premium .semsem-location-card:hover img{transform:scale(1.045)}
.semsem-location-list--premium .semsem-location-card-body{width:51%;flex:1;min-width:0;background:#fffdf7;display:flex;flex-direction:column;align-items:start;justify-content:center;padding:clamp(30px,5vw,66px);gap:12px}
.semsem-location-list--premium .semsem-location-card-body::before{content:'LOCATION 0' counter(ss-location) ' / 04';font:800 .72rem/1.3 var(--ss-sans);letter-spacing:.15em;color:#a87035;display:block;margin-bottom:18px}
.semsem-location-list--premium .semsem-location-card-body h3{font-size:clamp(2.3rem,4vw,4.1rem);line-height:1;letter-spacing:-.046em;margin:0 0 6px}
.semsem-location-list--premium .semsem-location-card-body .semsem-location-address{font-size:1.04rem!important;line-height:1.7!important;color:#5d6b5e!important;margin:0 0 16px}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-card-body{background:#21422f;color:#fffaf0}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-card-body::before{color:#eac28c}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-card-body h3{color:#fffaf0}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-card-body .semsem-location-address{color:#d9e5d9!important}
.semsem-location-list--premium .semsem-location-actions{display:flex;gap:23px;padding-top:16px;flex-wrap:wrap}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-action{color:#f2e6c9}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-directions{background:#ecbf80!important;color:#1b3525!important;border-color:#ecbf80!important}
.semsem-location-list--premium .semsem-location-card:nth-child(even) .semsem-location-action--order{color:#f3c68e}
.semsem-lx--visit .semsem-lx-visit-photo .semsem-lx-photo{border-radius:15px 110px 15px 15px}
.semsem-lx--feature .semsem-lx-feature-media img{transition:transform .5s ease}
.semsem-lx--feature .semsem-lx-feature-media:hover img{transform:scale(1.035)}
@media(max-width:760px){
 .semsem-location-list--premium .semsem-location-cards{display:flex;flex-direction:column;gap:23px}
 .semsem-location-list--premium .semsem-location-card,.semsem-location-list--premium .semsem-location-card:nth-child(even){flex-direction:column;min-height:0}
 .semsem-location-list--premium .semsem-location-card-media{width:100%;flex-basis:auto;height:235px;min-height:235px}
 .semsem-location-list--premium .semsem-location-card-body{width:100%;min-height:0;padding:32px 27px 35px}
 .semsem-location-list--premium .semsem-location-card-body::before{margin-bottom:8px}
 .semsem-location-list--premium .semsem-location-card-body h3{font-size:clamp(2.2rem,8vw,3.2rem)}
 .semsem-location-list--premium .semsem-location-card-body .semsem-location-address{margin:0 0 5px}
}
@media(prefers-reduced-motion:reduce){.semsem-location-list--premium .semsem-location-card,.semsem-location-list--premium .semsem-location-card-media img{transition:none!important;transform:none!important}}
/* Optional, gentle on-scroll motion: never hides content when JS/CSS features are unavailable. */
@keyframes semsem-fi-enter{from{opacity:.86;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 @supports (animation-timeline:view()){
  body:not(.elementor-editor-active) .semsem-franchise-v16 .semsem-franchise-item{animation:semsem-fi-enter linear both;animation-timeline:view();animation-range:entry 0% cover 22%}
 }
}
