

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, h4, p, ul, figure, blockquote { margin: 0; }
ul { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }

button {
  font: inherit; color: inherit; background: none; border: 0; cursor: pointer;
  text-transform: inherit; letter-spacing: inherit;
}
a { color: inherit; }

html { scroll-behavior: smooth; scroll-padding-top: 8rem; }
body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--step-0);
  font-weight: 300;
  line-height: 1.7;
  letter-spacing: 0.005em;
  overflow-x: hidden;
}

h1, h2, h3 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: var(--track-display);
}
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-1); letter-spacing: -0.01em; }

::selection { background: var(--color-accent-2); color: var(--color-bg); }

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: var(--radius);
}

.skip-link {
  position: absolute; top: 0; left: 50%;
  transform: translate(-50%, -120%);
  z-index: 200;
  padding: var(--space-2) var(--space-4);
  background: var(--color-accent); color: var(--color-bg);
  font-size: var(--step--1); letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none;
  transition: transform var(--dur-fast) var(--ease);
}
.skip-link:focus-visible { transform: translate(-50%, 0); }

.dot { color: var(--color-accent-2); }

.eyebrow {
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-accent-2);
  margin-bottom: var(--space-4);
}
.eyebrow--dark { color: var(--color-accent-2-on-relief); }

.link {
  color: var(--color-accent);
  text-decoration: none;
  padding-bottom: 1px;
  background-image: linear-gradient(var(--color-accent), var(--color-accent));
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: color var(--dur-fast) var(--ease), background-size var(--dur) var(--ease);
}
.link:hover { color: var(--color-accent-200); background-size: 0% 1px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.95em 2.1em;
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-btn);
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  transition: transform var(--dur-fast) var(--ease),
              background-color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.btn--rose { background: var(--color-accent); color: var(--color-bg); }
.btn--rose:hover { background: var(--color-accent-200); }

.btn--ghost { border-color: var(--color-line); color: var(--color-text); }
.btn--ghost:hover { border-color: var(--color-accent-2); color: var(--color-accent-2-200); }

.btn--sm { padding: 0.72em 1.5em; }
.btn--lg { padding: 1.1em 2.6em; font-size: var(--step-0); }

@media (max-width: 860px) { .br-lg { display: none; } }

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity var(--dur-slow) var(--ease-out),
              transform var(--dur-slow) var(--ease-out);
}
.reveal.is-in { opacity: 1; transform: none; }

.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  display: flex; align-items: center; gap: var(--space-5);
  padding: var(--space-4) var(--gutter);
  background: linear-gradient(to bottom, rgb(var(--color-scrim-rgb) / 0.86), rgb(var(--color-scrim-rgb) / 0));
  transition: background-color var(--dur) var(--ease), padding var(--dur) var(--ease);
}

.nav.is-stuck {
  background: rgb(var(--color-scrim-rgb) / 0.94);
  padding-top: var(--space-3); padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-line);
}
.nav__logo { flex: 0 0 auto; }

.nav__logo img { width: 196px; height: auto; }

.nav__links {
  display: flex; align-items: center; gap: var(--space-5);
  margin-left: auto;
  font-size: var(--step--1);
  letter-spacing: var(--track-nav);
  text-transform: uppercase;
}
.nav__links > a, .nav__parent {
  color: var(--color-text);
  text-decoration: none;
  padding: var(--space-1) 0;
  position: relative;
  transition: color var(--dur-fast) var(--ease);
}
.nav__links > a::after, .nav__parent::after {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 100%; height: 1px; background: var(--color-accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
.nav__links > a:hover, .nav__parent:hover { color: var(--color-accent-200); }
.nav__links > a:hover::after, .nav__parent:hover::after { transform: scaleX(1); }

.nav__links a[aria-current="page"] { color: var(--color-accent-2-200); }
.nav__links a[aria-current="page"]::after {
  background: var(--color-accent-2); transform: scaleX(1);
}

.nav__group { position: relative; display: inline-flex; align-items: center; gap: 0.35em; }
.nav__parent { display: inline-flex; align-items: center; }

.nav__toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.6em; height: 1.6em;
  color: var(--color-text);
  transition: color var(--dur-fast) var(--ease);
}
.nav__toggle:hover { color: var(--color-accent-200); }
.nav__caret {
  width: 0; height: 0;
  border-left: 3.5px solid transparent; border-right: 3.5px solid transparent;
  border-top: 4px solid currentColor;
  transition: transform var(--dur-fast) var(--ease);
}
.nav__group:hover .nav__caret,
.nav__toggle[aria-expanded="true"] .nav__caret { transform: rotate(180deg); }

.nav__group:hover .nav__parent { color: var(--color-accent-200); }
.nav__group:hover .nav__parent::after { transform: scaleX(1); }

.nav__menu {
  position: absolute; top: calc(100% + var(--space-2)); left: calc(-1 * var(--space-3));
  min-width: 232px;
  padding: var(--space-2);
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  opacity: 0; visibility: hidden;
  transform: translateY(-6px);

  transition: opacity var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}

.nav__menu::before {
  content: ''; position: absolute;
  left: 0; right: 0;
  top: calc(-1 * var(--space-2)); height: var(--space-2);
}
.nav__group:hover .nav__menu,
.nav__group:focus-within .nav__menu,
.nav__toggle[aria-expanded="true"] + .nav__menu {
  opacity: 1; visibility: visible; transform: none;
}
.nav__menu a {
  display: block;
  padding: var(--space-2) var(--space-3);
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  transition: color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}
.nav__menu a:hover { color: var(--color-accent-200); background: var(--color-surface-2); }

.nav__right { display: flex; align-items: center; gap: var(--space-3); flex: 0 0 auto; }

.nav__burger { display: none; width: 40px; height: 40px; position: relative; }
.nav__burger span {
  position: absolute; left: 8px; width: 24px; height: 1px;
  background: var(--color-text);
  transition: transform var(--dur-fast) var(--ease);
}
.nav__burger span:nth-child(1) { top: 17px; }
.nav__burger span:nth-child(2) { top: 23px; }

.menu {
  position: fixed; inset: 0; z-index: 150;
  display: flex; flex-direction: column;
  padding: var(--space-4) var(--gutter) var(--space-6);
  background: var(--color-bg);
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  transform: translateY(-12px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.menu[hidden] { display: none; }
.menu.is-open { opacity: 1; transform: none; }
.menu__top { display: flex; align-items: center; justify-content: space-between; }
.menu__top img { width: 168px; }
.menu__close { font-size: 2.4rem; line-height: 1; padding: 0 var(--space-2); color: var(--color-text); }

.menu__nav {
  display: flex; flex-direction: column; gap: var(--space-2);
  margin: auto 0;
  font-family: var(--font-heading);
  font-size: var(--step-1);
  line-height: 1.35;
}
.menu__nav a { text-decoration: none; transition: color var(--dur-fast) var(--ease); }
.menu__nav a:hover { color: var(--color-accent); }
.menu__foot { display: flex; flex-direction: column; gap: var(--space-3); align-items: flex-start; }
.menu__foot p { color: var(--color-text-muted); font-size: var(--step--1); }

.hero {
  position: relative;
  min-height: 100svh;
  display: flex; align-items: center;
  padding: var(--space-8) var(--gutter) var(--space-7);
  overflow: hidden;
}
.hero__media { position: absolute; inset: -6% 0; z-index: 0; }

.hero__media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: 72% 50%;
}

.hero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(to right, rgb(var(--color-scrim-rgb)) 0%, rgb(var(--color-scrim-rgb) / 0.82) 34%, rgb(var(--color-scrim-rgb) / 0.10) 68%, rgb(var(--color-scrim-rgb) / 0.45) 100%),
    linear-gradient(to bottom, rgb(var(--color-scrim-rgb) / 0.72) 0%, rgb(var(--color-scrim-rgb) / 0) 26%, rgb(var(--color-scrim-rgb) / 0) 62%, rgb(var(--color-scrim-rgb) / 0.8) 100%);
}

.hero__inner { position: relative; z-index: 2; max-width: 760px; }

.hero__h1 {
  font-size: clamp(3.4rem, 5vw, 5rem);
  margin-bottom: var(--space-4);
}
.hero__lead {
  max-width: 46ch;
  color: var(--color-text-muted);
  font-size: var(--step-1);
  line-height: 1.6;
  margin-bottom: var(--space-6);
}
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--space-3); }

.scroll-cue {
  position: absolute; z-index: 2;
  left: var(--gutter); bottom: var(--space-5);
  display: flex; align-items: center; gap: var(--space-3);
  font-size: var(--step--1);
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-dim);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease);
}
.scroll-cue:hover { color: var(--color-accent-2); }
.scroll-cue__line {
  display: block; width: 64px; height: 1px;
  background: linear-gradient(to right, var(--color-accent-2), transparent);
  transform-origin: left;
  animation: cue 2.6s var(--ease) infinite;
}
@keyframes cue {
  0%, 100% { transform: scaleX(0.35); opacity: 0.5; }
  50%      { transform: scaleX(1);    opacity: 1; }
}

.phead {
  position: relative;
  padding: calc(var(--space-9) + var(--space-5)) var(--gutter) var(--space-7);
  border-bottom: 1px solid var(--color-line);
  overflow: hidden;
}
.phead::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-image: url('../img/damask.webp');
  background-size: 460px;
  opacity: 0.05;
  pointer-events: none;
}
.phead__inner { position: relative; z-index: 1; max-width: var(--maxw); margin: 0 auto; }
.phead h1 {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--step-4);
  line-height: 1.04;
  letter-spacing: var(--track-display);
  margin-bottom: var(--space-4);
}
.phead__lead {
  max-width: 58ch;
  color: var(--color-text-muted);
  font-size: var(--step-1);
  line-height: 1.6;
}

.phead .eyebrow a {
  color: inherit; text-decoration: none;
  background-image: linear-gradient(var(--color-accent-2), var(--color-accent-2));
  background-size: 0% 1px; background-repeat: no-repeat; background-position: 0 100%;
  transition: background-size var(--dur) var(--ease);
}
.phead .eyebrow a:hover { background-size: 100% 1px; }

.srows { padding: 0 var(--gutter) var(--space-7); }
.srow {
  max-width: var(--maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  align-items: center;
  padding: var(--space-7) 0;
  border-bottom: 1px solid var(--color-line);
}
.srow:last-of-type { border-bottom: 0; }

.srow__media {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
}
.srow__media img { width: 100%; height: 100%; object-fit: cover; }

.srow--flip .srow__media { order: -1; }

.srow__copy h2 { font-size: var(--step-3); margin-bottom: var(--space-4); }
.srow__copy > p { color: var(--color-text-muted); margin-bottom: var(--space-4); }
.srow__cta { margin-top: var(--space-5); }

.spec {
  display: flex; flex-wrap: wrap;
  gap: var(--space-5);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-line);
}
.spec div { flex: 0 1 auto; }
.spec dt {
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-accent-2);
  margin-bottom: var(--space-1);
}
.spec dd {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--step-1);
  line-height: 1.2;
  color: var(--color-text);
}

.sets {
  position: relative;
  padding: var(--space-9) var(--gutter);
  border-top: 1px solid var(--color-line);
}

.sets::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-image: url('../img/damask.webp');
  background-size: 460px;
  opacity: 0.05;
  pointer-events: none;
}
.sets > * { position: relative; z-index: 1; }
.sets__head { max-width: var(--maxw); margin: 0 auto var(--space-7); text-align: center; }
.sets__head h2 { margin-bottom: var(--space-4); }
.sets__lead {
  max-width: 56ch; margin: 0 auto;
  color: var(--color-text-muted); font-size: var(--step-1); line-height: 1.6;
}

.sets__stage { max-width: 980px; margin: 0 auto; }

.fan { position: relative; }
.fan svg { width: 100%; height: auto; overflow: visible; }

.fan .lash {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  transition: stroke-dashoffset var(--dur-slow) var(--ease-out),
              opacity var(--dur) var(--ease);
}
.fan .lash.is-on { stroke-dashoffset: 0; opacity: 1; }

.fan__count {
  position: absolute; left: 50%; top: 74%;
  transform: translateX(-50%);
  text-align: center;
  font-family: var(--font-heading);
  font-size: var(--step-3);
  color: var(--color-accent-2);
  letter-spacing: var(--track-display);
  line-height: 1;
  white-space: nowrap;
}
.fan__plus { color: var(--color-accent-2-500); }
.fan__word {
  display: block;
  margin-top: var(--space-1);
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 400;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-text-dim);
}

.sets__picker {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-6);
}
.setbtn {
  display: flex; flex-direction: column; gap: var(--space-1);
  padding: var(--space-4);
  text-align: left;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  transition: background-color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.setbtn:hover { transform: translateY(-3px); border-color: var(--color-accent-2-500); }
.setbtn.is-on { background: var(--color-surface-2); border-color: var(--color-accent-2); }
.setbtn__name {
  font-family: var(--font-heading);
  font-size: var(--step-1);
  line-height: 1.1;
}
.setbtn__meta { font-size: var(--step--1); color: var(--color-text-dim); letter-spacing: 0.04em; }
.setbtn__price {
  margin-top: var(--space-2);
  font-size: var(--step-1);
  color: var(--color-accent-2);
  font-variant-numeric: tabular-nums;
}
.setbtn.is-on .setbtn__price { color: var(--color-accent-2-200); }

.sets__note {
  margin-top: var(--space-6);
  max-width: 62ch;
  margin-inline: auto;
  text-align: center;
  color: var(--color-text-dim);
}
.sets__note-head {
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  margin-bottom: var(--space-3);
}
.sets__note p { font-size: var(--step-0); line-height: 1.65; }
.sets__note p + p {
  margin-top: var(--space-4);
  font-size: var(--step--1);
  letter-spacing: 0.03em;
}

.svc { padding: var(--space-9) var(--gutter); border-top: 1px solid var(--color-line); }
.svc__head { max-width: var(--maxw); margin: 0 auto var(--space-7); }
.svc__more { margin-top: var(--space-4); }

.card__link::after { content: ''; position: absolute; inset: 0; }

.card__link:focus-visible { outline: none; }
.card:has(.card__link:focus-visible) {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}
.svc__grid {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}

.card {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  overflow: hidden;
}
.card__media { overflow: hidden; aspect-ratio: 3 / 2; }
.card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--dur-slow) var(--ease-out);
}
.card:hover .card__media img { transform: scale(1.045); }
.card__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
.card__body h3 { color: var(--color-text); }
.card__body p { color: var(--color-text-muted); }
.card__from {
  margin-top: auto; padding-top: var(--space-3);
  border-top: 1px solid var(--color-line);
  font-size: var(--step--1);
  letter-spacing: var(--track-btn); text-transform: uppercase;
  color: var(--color-text-dim);
}
.card__from strong { color: var(--color-accent-2); font-weight: 500; letter-spacing: 0.04em; }

.pricing { padding: var(--space-9) var(--gutter); background: var(--color-relief); color: var(--color-text-on-relief); }

.pricing--slim { padding-block: var(--space-8); }
.pricing--slim .pricing__head { margin-bottom: 0; }
.pricing__routes {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: var(--space-3) var(--space-6);
  margin-top: var(--space-6);
  font-size: var(--step-0);
}
.pricing__inner { max-width: 860px; margin: 0 auto; }
.pricing__head { text-align: center; margin-bottom: var(--space-7); }
.pricing__head h2 { margin-bottom: var(--space-4); }
.pricing__lead {
  max-width: 52ch; margin: 0 auto;
  color: var(--color-text-on-relief-muted); font-size: var(--step-1); line-height: 1.6;
}
.pricing__list { display: flex; flex-direction: column; gap: var(--space-2); }
.pricing__list li { display: flex; align-items: baseline; gap: var(--space-3); }
.pricing__name { font-size: var(--step-1); font-family: var(--font-heading); }

.pricing__rule { flex: 1; height: 1px; background: var(--color-line-relief); }
.pricing__fig {
  font-family: var(--font-heading);
  font-size: var(--step-1);
  color: var(--color-accent-2-on-relief);
  font-variant-numeric: tabular-nums;
}
.pricing__foot {
  margin-top: var(--space-6); text-align: center;
  color: var(--color-text-on-relief-muted); font-size: var(--step--1);
}
.pricing__foot .link,
.pricing .link { color: var(--color-accent-on-relief); background-image: linear-gradient(var(--color-accent-on-relief), var(--color-accent-on-relief)); }
.pricing a { color: var(--color-accent-on-relief); }

.ptabs__list { display: none; }
.ptabs:not(.is-live) .ptabs__panel[hidden] { display: block !important; }
.ptabs.is-live .ptabs__list {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-6);
}
.ptab {
  padding: var(--space-3) var(--space-5);
  border: 1px solid var(--color-line-relief);
  border-radius: 999px;
  background: transparent;
  font-family: var(--font-body);
  font-size: var(--step--1);
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-text-on-relief-muted);
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease);
}
.ptab:hover { color: var(--color-accent-on-relief); border-color: var(--color-accent-on-relief); }
.ptab.is-on {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-bg);
}

.ptabs__panel:focus-visible { outline: none; }

.plist { max-width: 860px; margin: 0 auto; }
.plist__group + .plist__group { margin-top: var(--space-7); }
.plist__group h3 {
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-accent-2-on-relief);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-line-relief);
  margin-bottom: var(--space-4);
}
.plist ul { display: flex; flex-direction: column; gap: var(--space-4); }
.plist li { display: grid; grid-template-columns: 1fr auto; gap: var(--space-2) var(--space-3); align-items: baseline; }
.plist__name { font-family: var(--font-heading); font-size: var(--step-1); }
.plist__fig {
  font-family: var(--font-heading);
  font-size: var(--step-1);
  color: var(--color-accent-2-on-relief);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.plist__note {
  grid-column: 1 / -1;
  font-size: var(--step--1);
  color: var(--color-text-on-relief-muted);
  max-width: 54ch;
}

.qa { max-width: 860px; margin: 0 auto; }
.qa details { border-bottom: 1px solid var(--color-line); }
.qa details:first-of-type { border-top: 1px solid var(--color-line); }
.qa summary {
  display: flex; align-items: baseline; gap: var(--space-4);
  padding: var(--space-4) 0;
  font-family: var(--font-heading);
  font-size: var(--step-1);
  line-height: 1.3;
  cursor: pointer;
  list-style: none;
  transition: color var(--dur-fast) var(--ease);
}

.qa summary::-webkit-details-marker { display: none; }
.qa summary::marker { content: ''; }
.qa summary:hover { color: var(--color-accent-200); }
.qa summary:focus-visible { outline-offset: -2px; }

.qa__caret {
  flex: 0 0 auto;
  margin-left: auto;
  width: 0; height: 0;
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 6px solid var(--color-accent-2);
  transition: transform var(--dur-fast) var(--ease);
}
.qa details[open] .qa__caret { transform: rotate(180deg); }
.qa__body {
  padding: 0 var(--space-6) var(--space-5) 0;
  color: var(--color-text-muted);
  max-width: var(--measure);
}
.qa__body p + p { margin-top: var(--space-3); }

.prose { max-width: var(--maxw); margin: 0 auto; }
.prose__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6) var(--space-7);
}
.prose__grid h3 { font-size: var(--step-1); margin-bottom: var(--space-3); }
.prose__grid p { color: var(--color-text-muted); max-width: var(--measure); }
.prose__grid p + p { margin-top: var(--space-3); }

.gallery { padding: var(--space-9) var(--gutter); }
.gallery__head { max-width: var(--maxw); margin: 0 auto var(--space-7); }

.gallery__grid {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: var(--space-3);
}
.gallery__grid figure {
  flex: 0 0 calc((100% - 2 * var(--space-3)) / 3);
}
.gallery__grid figure { overflow: hidden; aspect-ratio: 4 / 5; background: var(--color-surface); }

.gallery__grid img {
  width: 100%; height: 100%; object-fit: cover;

  transition: transform var(--dur-slow) var(--ease-out);
}
.gallery__grid figure:hover img { transform: scale(1.05); }

.about { padding: var(--space-9) var(--gutter); background: var(--color-relief); color: var(--color-text-on-relief); }
.about__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 0.85fr 1fr;
  gap: var(--space-8); align-items: center;
}

.about__portrait { margin: 0; }
.about__portrait img {
  width: 100%; height: auto; display: block;
  aspect-ratio: 4 / 5; object-fit: cover; object-position: 44% 50%;
  border-radius: var(--radius-lg);
}

.about__copy { display: flex; flex-direction: column; gap: var(--space-4); }
.about__copy h2 { margin-bottom: var(--space-2); }
.about__copy p { color: var(--color-text-on-relief-muted); max-width: var(--measure); }
.about__cta { margin-top: var(--space-2); }
.about .link { color: var(--color-accent-on-relief); background-image: linear-gradient(var(--color-accent-on-relief), var(--color-accent-on-relief)); }

.book {
  position: relative;
  padding: var(--space-9) var(--gutter);
  text-align: center;
  border-top: 1px solid var(--color-line);
  overflow: hidden;
}
.book::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-image: url('../img/damask.webp');
  background-size: 380px;
  opacity: 0.07;
  pointer-events: none;
}
.book__inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
.book__inner h2 { margin-bottom: var(--space-4); }
.book__lead { color: var(--color-text-muted); font-size: var(--step-1); margin-bottom: var(--space-6); }
.book__cta { display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: center; }

.closer { padding: var(--space-9) var(--gutter) var(--space-8); text-align: center; }
.closer__inner { max-width: 720px; margin: 0 auto; }
.closer__inner h2 { margin-bottom: var(--space-4); }
.closer__lead { color: var(--color-text-muted); font-size: var(--step-1); }
.closer__cta { margin-top: var(--space-5); }
.closer .book__cta { margin-top: var(--space-6); }

.terms {
  margin-top: var(--space-7);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-line);
  display: flex; flex-direction: column; gap: var(--space-2);
  text-align: left;
  font-size: var(--step--1);
  color: var(--color-text-dim);
}
.terms li { padding-left: var(--space-4); position: relative; }
.terms li::before {
  content: ''; position: absolute; left: 0; top: 0.72em;
  width: 6px; height: 1px; background: var(--color-accent-2);
}
.terms strong { color: var(--color-text-muted); font-weight: 500; }

.visit { padding: var(--space-8) var(--gutter); border-top: 1px solid var(--color-line); }
.visit__room {
  max-width: var(--maxw); margin: 0 auto var(--space-7);
  aspect-ratio: 21 / 9; overflow: hidden;
}
.visit__room img { width: 100%; height: 100%; object-fit: cover; }
.visit__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}
.visit__block h3 {
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-accent-2);
  margin-bottom: var(--space-3);
}
.visit__block p { color: var(--color-text-muted); }

.hours { display: grid; gap: var(--space-2) var(--space-4); }
.hours div { display: flex; flex-wrap: wrap; column-gap: var(--space-3); }
.hours dt { flex: 0 0 auto; min-width: 6.5em; font-weight: 500; }
.hours dd { margin: 0; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }

.foot { padding: var(--space-8) var(--gutter) var(--space-5); border-top: 1px solid var(--color-line); }
.foot__top {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: var(--space-6);
}
.foot__brand img { width: 190px; margin-bottom: var(--space-3); }
.foot__brand p { color: var(--color-text-dim); font-size: var(--step--1); }
.foot__col h4 {
  font-family: var(--font-body);
  font-size: var(--step--1); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-accent-2);
  margin-bottom: var(--space-3);
}

.foot__col h4 a {
  text-decoration: none;
  background-image: linear-gradient(var(--color-accent-2), var(--color-accent-2));
  background-size: 0% 1px; background-repeat: no-repeat; background-position: 0 100%;
  transition: background-size var(--dur) var(--ease);
}
.foot__col h4 a:hover { background-size: 100% 1px; }
.foot__col ul { display: flex; flex-direction: column; gap: var(--space-2); }
.foot__col a {
  color: var(--color-text-muted); text-decoration: none;
  font-size: var(--step--1);
  transition: color var(--dur-fast) var(--ease);
}
.foot__col a:hover { color: var(--color-accent); }
.foot__tag {
  margin-top: var(--space-3);
  font-family: var(--font-heading);
  color: var(--color-accent-2-700);
  font-size: var(--step-0);
}
.foot__bar {
  max-width: var(--maxw); margin: var(--space-7) auto 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-line);
  display: flex; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap;
  font-size: var(--step--1); color: var(--color-text-dim);
}

@media (max-width: 1080px) {
  .about__inner { grid-template-columns: 1fr; gap: var(--space-6); }
  .about__portrait { max-width: 380px; }
  .foot__top { grid-template-columns: 1fr 1fr; gap: var(--space-5); }
}

@media (max-width: 860px) {
  .nav__links { display: none; }
  .nav__burger { display: block; }


  .srow { grid-template-columns: 1fr; gap: var(--space-5); padding: var(--space-7) 0; }
  .srow .srow__media { order: -1; }
  .phead { padding-top: calc(var(--space-8) + var(--space-5)); }
  .prose__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .svc__grid { grid-template-columns: 1fr; }
  .sets__picker { grid-template-columns: 1fr; }

  .gallery__grid figure { flex: 0 0 calc((100% - var(--space-3)) / 2); }
  .visit__inner { grid-template-columns: 1fr; gap: var(--space-5); }
  .hero { min-height: 92svh; }
  .hero__media img { object-position: 66% 50%; }

  .hero__scrim {
    background:
      linear-gradient(to right, rgb(var(--color-scrim-rgb)) 0%, rgb(var(--color-scrim-rgb) / 0.80) 52%, rgb(var(--color-scrim-rgb) / 0.42) 100%),
      linear-gradient(to bottom, rgb(var(--color-scrim-rgb) / 0.78) 0%, rgb(var(--color-scrim-rgb) / 0.22) 30%, rgb(var(--color-scrim-rgb) / 0.55) 72%, rgb(var(--color-scrim-rgb) / 0.92) 100%);
  }
  .fan__count { font-size: var(--step-2); }
}

@media (max-width: 560px) {

  html { scroll-padding-top: 6.5rem; }

  .gallery__grid { gap: var(--space-2); }
  .gallery__grid figure { flex: 0 0 calc((100% - var(--space-2)) / 2); }
  .foot__top { grid-template-columns: 1fr; }
  .foot__bar { flex-direction: column; gap: var(--space-1); }

  .hero__cta .btn, .book__cta .btn { width: 100%; }
  .nav__logo img { width: 148px; }
  .nav .btn--sm { padding: 0.66em 1.05em; letter-spacing: 0.08em; }
}

@media (max-height: 700px) {
  .hero { padding-bottom: var(--space-5); }
  .hero__h1 { font-size: clamp(2.4rem, 4.2vw, 3.4rem); }
  .hero__lead { margin-bottom: var(--space-4); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }

  .fan .lash.is-on { opacity: 1; stroke-dashoffset: 0; }
}

.svc, .visit { background: var(--color-bg-2); }

.pricing, .about {
  --color-text-on-relief:       var(--color-text);
  --color-text-on-relief-muted: var(--color-text-muted);
  --color-accent:               var(--color-accent-600);
  --color-accent-on-relief:     var(--color-accent-600);
  --color-accent-2-on-relief:   var(--color-accent-2-700);
  --color-line-relief:          var(--color-line);
  color: var(--color-text);
}
.pricing { background: var(--color-wash-lavender); }
.about   { background: var(--color-wash-sage); }

.pricing .dot,
.about .dot { color: var(--color-accent-2-700); }

.hero__scrim {
  background:
    linear-gradient(to right,
      rgb(var(--color-scrim-rgb)) 0%,
      rgb(var(--color-scrim-rgb)) 20%,
      rgb(var(--color-scrim-rgb) / 0.80) 32%,
      rgb(var(--color-scrim-rgb) / 0.22) 44%,
      rgb(var(--color-scrim-rgb) / 0) 52%);
}

.hero { border-bottom: 0; }

.hero__media img { object-position: 20% 40%; }

@media (max-height: 700px) {
  .hero__h1 { font-size: clamp(2.6rem, 5vw, 4rem); }
  .hero__script-svg { width: clamp(13rem, 30vw, 24rem); }
}

.hero__h1 {
  font-size: clamp(3rem, 6.4vw, 6.4rem);
  line-height: 0.96;
  margin-bottom: var(--space-3);
}

.hero__script { display: block; margin-top: 0.13em; }

.hero__script-svg {

  width: clamp(15rem, 39vw, 37rem);
  height: auto;
  margin-left: 0.2em;
  transform: rotate(-5deg);
  transform-origin: left center;
  overflow: visible;
}
.hero__script-text {
  font-family: var(--font-script);
  font-size: 200px;
  font-weight: 400;
  fill: var(--color-accent-600);
}

.hero__tbar { fill: var(--color-accent-600); }

.hero__lead {
  max-width: 52ch;
  font-size: var(--step-0);
  margin-bottom: var(--space-2);
}
.hero__promise {
  font-family: var(--font-heading);
  font-size: var(--step-1);
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--color-text);
  margin-bottom: var(--space-5);
}

.hero__cta { gap: var(--space-2) var(--space-3); }

@media (min-width: 1920px) {
  .hero__inner      { max-width: 40vw; }
  .hero__h1         { font-size: 5.4vw; }
  .hero__script-svg { width: 31vw; }
  .hero__lead       { font-size: clamp(1.1rem, 0.92vw, 2.1rem); }
  .hero__promise    { font-size: clamp(1.44rem, 1.2vw, 2.8rem); }

  .hero__eyebrow    { font-size: clamp(0.84rem, 0.62vw, 1.5rem); }
  .hero__cta .btn   { font-size: clamp(0.84rem, 0.55vw, 1.3rem); }
}

.hero__media { animation: heroSettleIn 2.6s var(--ease-out) both; }
.hero__eyebrow { animation: heroFade 0.7s var(--ease-out) 0.10s both; }

.hero__word {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;

  line-height: 1.04;
  padding: 0.16em 0.04em 0.1em;
  margin: -0.16em -0.04em -0.1em;
}
.hero__word > span { display: inline-block; }
.hero__word:nth-of-type(1) > span { animation: heroRise 0.9s var(--ease-out) 0.30s both; }
.hero__word:nth-of-type(2) > span { animation: heroRise 0.9s var(--ease-out) 0.44s both; }

.hero__pen { stroke-dasharray: 1; stroke-dashoffset: 0; animation: heroWrite 1.8s 0.95s both; }
.hero__settle { opacity: 1; animation: heroReveal 0.4s linear 2.62s both; }

.hero__tbar-wipe {
  transform-box: fill-box; transform-origin: left center;
  animation: heroWipe 0.55s var(--ease-out) 2.45s both;
}

.hero__bloom { opacity: 1; animation: heroSettleBloom 0.9s var(--ease-out) 2.9s both; }

.hero__lead    { animation: heroFade 0.8s var(--ease-out) 1.50s both; }
.hero__promise { animation: heroFade 0.8s var(--ease-out) 1.70s both; }
.hero__cta     { animation: heroFade 0.8s var(--ease-out) 1.90s both; }
.hero .scroll-cue { animation: heroFade 0.8s var(--ease-out) 2.30s both; }

@keyframes heroSettleIn { from { transform: scale(1.06); } to { transform: none; } }
@keyframes heroFade     { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes heroRise     { from { transform: translateY(112%); } to { transform: none; } }
@keyframes heroReveal   { from { opacity: 0; } to { opacity: 1; } }
@keyframes heroWipe     { from { transform: scaleX(0); } to { transform: none; } }
@keyframes heroSettleBloom {
  from { opacity: 0; transform: translate(14px, 10px); }
  to   { opacity: 1; transform: none; }
}

@keyframes heroWrite {
  0%   { stroke-dashoffset: 1;    animation-timing-function: cubic-bezier(0.40, 0.05, 0.55, 0.95); }
  52%  { stroke-dashoffset: 0.39; animation-timing-function: cubic-bezier(0.30, 0.00, 0.70, 1.00); }
  62%  { stroke-dashoffset: 0.34; animation-timing-function: cubic-bezier(0.45, 0.05, 0.50, 1.00); }
  100% { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__media, .hero__eyebrow, .hero__word > span, .hero__pen, .hero__settle,
  .hero__tbar-wipe, .hero__bloom, .hero__lead, .hero__promise, .hero__cta,
  .hero .scroll-cue {
    animation: none;
  }
}

@media (max-width: 860px) {

  .hero {
    display: block;
    min-height: 0;
    padding: calc(var(--space-4) * 2 + 40px) 0 var(--space-5);
  }

  .hero__media {
    position: relative;
    inset: auto;
    height: 21svh;
    min-height: 168px;
    overflow: hidden;
  }

  .hero__media img {

    width: 128%;
    max-width: none;
    margin-left: -28%;
    height: 100%;
    object-position: 50% 72%;
  }

  .hero__scrim { display: none; }

  .hero__inner { max-width: none; padding: var(--space-3) var(--gutter) 0; }
  .hero__eyebrow { margin-bottom: var(--space-2); }
  .hero__h1 { margin-bottom: var(--space-2); }
  .hero__lead { margin-bottom: var(--space-2); }
  .hero__promise { margin-bottom: var(--space-3); }
  .hero__cta { gap: var(--space-2); }

  .hero__script-svg { width: min(92%, 23rem); margin-left: 0.1em; }

  .hero .scroll-cue {
    position: static;
    margin: var(--space-3) var(--gutter) 0;
  }
}

.phead::before,
.sets::before,
.book::before {
  content: ''; position: absolute; z-index: 1;
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
  pointer-events: none;
}

.phead::before {
  inset: 0; z-index: 0;
  background-image: url('../img/watercolour/wc-cornflower.webp');
  background-position: right -50px top 96px;
  background-size: auto 400px;
  opacity: var(--art-wash-max);
}

.sets::before {
  inset: 0; z-index: 0;
  background-image: url('../img/watercolour/wc-sprig.webp');
  background-position: left -70px bottom -60px;
  background-size: auto 340px;
  opacity: var(--art-wash-soft);
}

.book::before {
  inset: 0; z-index: 0;
  background-image:
    url('../img/watercolour/wc-peony.webp'),
    url('../img/watercolour/wc-bud.webp');
  background-position: left -150px top -90px, right -110px bottom -80px;
  background-size: auto 400px, auto 300px;
  opacity: var(--art-wash-max);
}

#services { position: relative; overflow: hidden; }
#services > * { position: relative; z-index: 1; }
#services::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-image:
    url('../img/watercolour/wc-cornflower.webp'),
    url('../img/watercolour/wc-peony.webp');
  background-repeat: no-repeat;
  background-position: calc(50% + 250px) calc(100% - 120px), left -190px bottom -70px;
  background-size: auto 560px, auto 620px;
  mix-blend-mode: multiply;
  opacity: var(--art-wash-max);
  pointer-events: none;
}

@media (max-width: 860px) {
  .phead::before,
  .sets::before,
  .book::before,
  #services::before { opacity: 0.14; }

  #services::before {
    background-image: url('../img/watercolour/wc-cornflower.webp');
    background-position: right -70px top -50px;
    background-size: auto 400px;
  }

  .book::before {
    background-image: url('../img/watercolour/wc-peony.webp');
    background-position: left -120px top -70px;
    background-size: auto 320px;
  }
}

.imgslot {
  position: relative; overflow: hidden;
  margin: 0;
  aspect-ratio: 4 / 3;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: var(--space-2);
  padding: var(--space-5);
  text-align: center;

  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
}
.imgslot::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-image: url('../img/watercolour/wc-sprig.webp');
  background-repeat: no-repeat;
  background-position: right -34px bottom -44px;
  background-size: auto 190px;
  mix-blend-mode: multiply;
  opacity: var(--art-wash-soft);
  pointer-events: none;
}
.imgslot > * { position: relative; z-index: 1; }

.imgslot__note {
  max-width: 46ch;
  color: var(--color-text-muted);
  font-size: var(--step--1);
  line-height: 1.55;
}
.imgslot .eyebrow { margin: 0; }

.imgslot--wide {
  aspect-ratio: 16 / 4.5;
  max-width: var(--maxw);
  margin: var(--space-7) auto 0;
}
@media (max-width: 860px) {
  .imgslot--wide { aspect-ratio: 4 / 3; }
}

.srow__media .imgslot {
  aspect-ratio: auto; height: 100%;
  border: 0; border-radius: 0;
}

.brows__ba {
  margin: var(--space-7) auto 0;
  max-width: var(--maxw);
}
.brows__ba img {
  display: block; width: 100%;
  aspect-ratio: 16 / 4.5;
  object-fit: cover; object-position: 50% 42%;
  border-radius: var(--radius-lg);
}
.brows__ba figcaption {
  margin-top: var(--space-2);
  font-size: var(--step--1);
  color: var(--color-text-dim);
  text-align: center;
}

@media (max-width: 860px) {
  .brows__ba img { aspect-ratio: 21 / 9; }
}

.giftpair {
  margin: var(--space-7) auto 0;
  max-width: var(--maxw);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}
.giftpair img {
  display: block; width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-lg);
}
.giftpair figcaption {
  grid-column: 1 / -1;
  margin-top: var(--space-1);
  font-size: var(--step--1);
  color: var(--color-text-dim);
  text-align: center;
}
@media (max-width: 700px) {
  .giftpair { grid-template-columns: 1fr; }
}

.art--bust-left,
.art--bust-right { position: relative; overflow: hidden; }
.art--bust-left > *,
.art--bust-right > * { position: relative; z-index: 1; }
.art--bust-left::before,
.art--bust-right::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background-repeat: no-repeat;

  background-size: auto clamp(700px, 128%, 1150px);

  opacity: var(--art-ghost);
  pointer-events: none;
}

.art--bust-left::before {
  background-image: url('../img/busts/bust-male-taupe.webp');
  background-position: left -110px center;
}
.art--bust-right::before {
  background-image: url('../img/busts/bust-female-taupe.webp');
  background-position: right -130px center;
}

.pricing.art--bust-right::before {
  opacity: 0.11;
  background-position: right -130px top -90px;
}

@media (max-width: 1080px) {
  .art--bust-left::before,
  .art--bust-right::before { display: none; }
}

.card {
  background-repeat: no-repeat;
  background-position: right -18px bottom -14px;
  background-size: auto 190px;
}
.card:nth-child(odd)  { background-image: url('../img/botanical/cornflower-card-blue.svg'); }
.card:nth-child(even) { background-image: url('../img/botanical/cornflower-card-taupe.svg'); }

.visit__media {
  max-width: var(--maxw); margin: 0 auto var(--space-7);
  display: grid; grid-template-columns: 2.1fr 1fr; gap: var(--space-3);
  align-items: stretch;
}
.visit__media .visit__room { margin: 0; aspect-ratio: auto; }
.visit__room, .visit__still { overflow: hidden; border-radius: var(--radius-lg); }
.visit__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.visit__media .visit__room img { aspect-ratio: 16 / 9; }

.visit__still img { aspect-ratio: 4 / 5; object-position: 32% 50%; }
@media (max-width: 860px) {

  .visit__media { grid-template-columns: 1fr; }
  .visit__still { display: none; }
}

.nav {
  background: rgb(var(--color-bg-rgb) / 0.92);
  border-bottom: 1px solid var(--color-line);
}
.nav.is-stuck { background: rgb(var(--color-bg-rgb) / 0.96); }

.nav__logo { text-decoration: none; }

.wordmark { display: block; line-height: 1.1; }

.wordmark__name {
  display: block;
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 1.3rem;
  letter-spacing: 0.185em;
  text-transform: uppercase;
  color: var(--color-accent-2-700);
}

.wordmark__sub {
  display: block;
  margin-top: 0.42em;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-accent-2-500);
}

.brand { display: flex; align-items: center; gap: 0.7rem; }
.brand .brand__mark { flex: 0 0 auto; width: 46px; height: auto; }

.foot__brand .brandmark { display: block; width: min(300px, 80%); height: auto; }

@media (max-width: 560px) {
  .wordmark__name {
    font-size: 0.82rem;
    letter-spacing: 0.14em;
    max-width: 7.5em;
    line-height: 1.28;
  }

  .wordmark__sub {
    display: block;
    margin-top: 0.28em;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
  }
  .brand { gap: 0.5rem; }
  .brand .brand__mark { width: 36px; }
}

@media (max-width: 1100px) {
  .nav__links { display: none; }
  .nav__burger { display: block; }

  .nav__right { margin-left: auto; }
}

@media (max-width: 860px) {
  .nav__gift { display: none; }
}

.nav__gift[aria-current="page"] {
  color: var(--color-accent-2-700);
  border-color: var(--color-accent-2);
  background: var(--color-surface);
}

.script {
  font-family: var(--font-script);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-accent-600);
  line-height: 1.3;
}
.book .script { font-size: clamp(1.75rem, 3.8vw, 3.2rem); margin-bottom: var(--space-3); }

.foot__brand .foot__script {
  font-size: clamp(2rem, 2.8vw, 2.6rem);
  margin: var(--space-2) 0 var(--space-3);
  color: var(--color-accent-600);
}

.eyebrow,
.spec dt,
.hours dt,
.sets__note-head,
.visit__block h3,
.foot__col h4,
.card__from strong,
.setbtn__price,
.fan__count,
.scroll-cue:hover { color: var(--color-accent-2-700); }

::selection { background: var(--color-accent-300); color: var(--color-text); }

.sets {
  background: var(--color-wash-mist);
  --color-accent-2:     var(--color-accent-2-700);
  --color-accent-2-300: var(--color-accent-2-500);
  --color-text-dim:     var(--color-text-muted);
}

.setbtn { background: var(--color-surface-2); }
.setbtn__name { color: var(--color-text); }
.setbtn.is-on { background: var(--color-surface-2); border-color: var(--color-accent); }
.setbtn.is-on .setbtn__price { color: var(--color-accent-600); }

.btn--rose { color: var(--color-surface-2); }
.btn--rose:hover { color: var(--color-bg); }
.btn--ghost:hover {
  border-color: var(--color-accent-2);
  color: var(--color-accent-2-700);
}

.btn, .setbtn, .card { border-radius: var(--radius); }
.card__media, .srow__media, .gallery__grid img, .about img { border-radius: var(--radius-lg); }
.card__media img, .srow__media img { border-radius: inherit; }
