:root {
  --so-ink: #11100e;
  --so-black: #080808;
  --so-charcoal: #15130f;
  --so-gold: #cdaa63;
  --so-gold-deep: #9d702a;
  --so-ivory: #f6f2e9;
  --so-paper: #fff;
  --so-line: #ddd4c5;
  --so-muted: #6d6861;
  --so-shell: min(1220px, calc(100vw - 64px));
}

.special-offer-v2-page { margin: 0; background: var(--so-ivory); color: var(--so-ink); font-family: Raleway, Arial, sans-serif; }
.special-offer-v2-page *,
.special-offer-v2-page *::before,
.special-offer-v2-page *::after { box-sizing: border-box; }
.special-offer-v2-page .page-shell { overflow: clip; }
.special-offer-v2-page .site-header .brand,
.special-offer-v2-page .site-header .main-nav a {
  color: #fff;
  text-decoration: none;
}
.so-page { background: var(--so-ivory); }
.so-shell { width: var(--so-shell); margin-inline: auto; }
.so-kicker { margin: 0 0 14px; color: var(--so-gold-deep); font: 700 10px/1.2 Raleway, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.so-page h1,
.so-page h2,
.so-page h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
.so-page h2 em { color: var(--so-gold-deep); font-weight: 400; }

.so-hero { position: relative; min-height: 650px; display: grid; align-items: end; background: var(--so-black); color: #fff; isolation: isolate; }
.so-hero__image,
.so-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.so-hero__image { z-index: -3; object-fit: cover; object-position: center; }
.so-hero__shade { z-index: -2; background: linear-gradient(90deg, rgba(4,3,2,.96) 0%, rgba(4,3,2,.8) 42%, rgba(4,3,2,.25) 78%, rgba(4,3,2,.5) 100%), linear-gradient(0deg, rgba(4,3,2,.9), transparent 48%); }
.so-hero__inner { padding: 110px 0 142px; }
.so-hero__inner .so-kicker { color: var(--so-gold); }
.so-hero h1 { max-width: 880px; margin: 0; font-size: clamp(58px, 6.4vw, 92px); line-height: .9; }
.so-hero-title--weekday span { display: block; white-space: nowrap; }
.so-hero__lead { max-width: 780px; margin: 24px 0 0; color: rgba(255,255,255,.8); font: 400 17px/1.65 Raleway, sans-serif; }
.so-code { display: inline-flex; align-items: center; gap: 16px; margin-top: 24px; padding: 11px 15px; border: 1px solid rgba(205,170,99,.65); background: rgba(8,8,8,.58); }
.so-code span { color: rgba(255,255,255,.63); font: 700 9px/1 Raleway, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.so-code strong { color: var(--so-gold); font: 700 13px/1 Raleway, sans-serif; letter-spacing: .08em; }
.so-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.so-button { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--so-gold); color: inherit; font: 700 15px/1 Raleway, sans-serif; text-decoration: none; }
.so-button--gold { background: var(--so-gold); color: #0c0a07; }
.so-button--outline { background: rgba(8,8,8,.4); color: #fff; }
.so-button--dark { background: var(--so-black); border-color: var(--so-black); color: #fff; }
.so-button:hover,
.so-button:focus-visible { background: #fff; border-color: #fff; color: #0b0906; }
.so-button--dark:hover,
.so-button--dark:focus-visible { background: var(--so-gold); border-color: var(--so-gold); }
.so-hero__facts { position: absolute; right: auto; bottom: 0; left: 50%; width: var(--so-shell); display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; transform: translateX(-50%); border: 1px solid rgba(205,170,99,.34); border-bottom: 0; background: rgba(13,12,10,.93); backdrop-filter: blur(12px); }
.so-hero__facts > div { min-height: 92px; padding: 19px 28px; border-right: 1px solid rgba(205,170,99,.24); }
.so-hero__facts > div:last-child { border-right: 0; }
.so-hero__facts strong { display: block; color: var(--so-gold); font: 500 26px/1 "Cormorant Garamond", Georgia, serif; }
.so-hero__facts span { display: block; margin-top: 7px; color: rgba(255,255,255,.66); font: 600 9px/1.35 Raleway, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.so-nav { overflow-x: auto; scrollbar-width: none; }
.so-nav::-webkit-scrollbar { display: none; }
.so-nav .pl-shell { display: flex; width: max-content; min-width: min(100%,1120px); }

.so-overview { padding: 96px 0; background: #fff; }
.so-overview__grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); gap: 78px; align-items: start; }
.so-overview h2,
.so-section-head h2,
.so-final h2 { margin: 0; font-size: clamp(48px,4.6vw,66px); line-height: .95; }
.so-overview__content { max-width: 650px; margin-top: 28px; color: var(--so-muted); font: 400 15px/1.85 Raleway, sans-serif; }
.so-terms { padding: 30px; border: 1px solid var(--so-line); background: var(--so-ivory); box-shadow: 0 16px 42px rgba(52,42,23,.06); }
.so-terms__copy { color: var(--so-muted); font: 400 14px/1.8 Raleway, sans-serif; }
.so-terms__schedule { display: flex; gap: 10px; align-items: center; margin: 22px 0 0; color: var(--so-gold-deep); font: 700 11px/1.4 Raleway, sans-serif; }
.so-terms dl { margin: 24px 0 0; border-top: 1px solid var(--so-line); }
.so-terms dl > div { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--so-line); }
.so-terms dt { color: var(--so-muted); font: 600 10px/1 Raleway, sans-serif; text-transform: uppercase; letter-spacing: .09em; }
.so-terms dd { margin: 0; font: 700 11px/1 Raleway, sans-serif; }
.so-terms > a { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 24px; padding: 0 18px; background: var(--so-black); color: #fff; font: 700 15px/1.2 Raleway, sans-serif; text-decoration: none; }

.so-services { padding: 96px 0 110px; background: var(--so-ivory); scroll-margin-top: 80px; }
.so-section-head { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); gap: 78px; align-items: end; padding-bottom: 38px; border-bottom: 1px solid var(--so-line); }
.so-section-head > p { margin: 0; color: var(--so-muted); font: 400 14px/1.8 Raleway, sans-serif; }
.so-service-group { padding-top: 70px; }
.so-service-group + .so-service-group { margin-top: 82px; padding-top: 70px; border-top: 1px solid var(--so-line); }
.so-service-group > header { display: grid; grid-template-columns: 45px minmax(0,.95fr) minmax(340px,1.05fr); gap: 22px; align-items: end; padding-bottom: 26px; }
.so-service-group > header > span { color: var(--so-gold-deep); font: 700 10px/1 Raleway, sans-serif; letter-spacing: .15em; }
.so-service-group > header > div p { margin: 0 0 8px; color: var(--so-gold-deep); font: 700 9px/1.2 Raleway, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.so-service-group > header h2 { margin: 0; font-size: clamp(38px,3.6vw,50px); line-height: 1; }
.so-service-group > header > p { margin: 0; color: var(--so-muted); font: 400 13px/1.75 Raleway, sans-serif; }
.so-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.so-service-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--so-line); background: #fff; box-shadow: 0 13px 38px rgba(54,43,24,.05); }
.so-service-card__media { position: relative; display: block; aspect-ratio: 16/11; overflow: hidden; background: #1b1814; }
.so-service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.so-service-card:hover .so-service-card__media img { transform: scale(1.025); }
.so-service-card__media > span { position: absolute; bottom: 14px; left: 14px; padding: 9px 12px; border: 1px solid rgba(205,170,99,.75); background: rgba(8,8,8,.86); color: #fff; font: 700 10px/1 Raleway, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.so-service-card__body { display: flex; flex: 1; flex-direction: column; padding: 26px; }
.so-service-card__number { color: var(--so-gold-deep); font: 700 11px/1 Raleway, sans-serif; letter-spacing: .13em; }
.so-service-card h3 { min-height: 64px; margin: 17px 0 14px; font-size: clamp(32px,2.45vw,38px); line-height: 1; }
.so-service-card__body > p { min-height: 78px; margin: 0 0 21px; color: var(--so-muted); font: 400 15px/1.7 Raleway, sans-serif; }
.so-service-card__price { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 16px; align-items: center; margin-top: auto; padding-block: 17px; border-block: 1px solid var(--so-line); }
.so-service-card__price > span { color: var(--so-muted); font: 650 14px/1.3 Raleway, sans-serif; }
.so-service-card__price > strong { font: 750 18px/1 Raleway, sans-serif; white-space: nowrap; }
.so-service-card__price > small { grid-column: 1/-1; color: #8b6b38; font: 600 13px/1.45 Raleway, sans-serif; }
.so-service-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.so-service-card__actions a { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--so-gold); color: #18140f; font: 700 15px/1 Raleway, sans-serif; text-decoration: none; }
.so-service-card__actions a:first-child { background: var(--so-black); color: #fff; }
.so-service-card__actions a:hover,
.so-service-card__actions a:focus-visible { background: var(--so-gold); color: #0c0a07; }

.so-seasonal { margin-top: 82px; padding: 54px; background: var(--so-charcoal); color: #fff; }
.so-seasonal .so-kicker { color: var(--so-gold); }
.so-seasonal > h2 { margin: 0 0 30px; font-size: 50px; }
.so-seasonal__grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid rgba(205,170,99,.3); }
.so-seasonal article { display: flex; flex-direction: column; padding: 28px; border-right: 1px solid rgba(205,170,99,.3); }
.so-seasonal article:last-child { border-right: 0; }
.so-seasonal h3 { min-height: 60px; margin: 0 0 12px; color: var(--so-gold); font-size: 31px; line-height: .95; }
.so-seasonal p { margin: 0 0 24px; color: rgba(255,255,255,.65); font: 400 13px/1.7 Raleway, sans-serif; }
.so-seasonal article > div { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; padding-block: 14px; border-block: 1px solid rgba(205,170,99,.25); font: 700 11px/1 Raleway, sans-serif; }
.so-seasonal article > a { min-height: 50px; display: flex; align-items: center; justify-content: center; margin-top: 16px; background: var(--so-gold); color: #0d0b08; font: 700 15px/1 Raleway, sans-serif; text-decoration: none; }

.so-gifts { padding: 96px 0 110px; background: #fff; scroll-margin-top: 80px; }
.so-gift-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding-top: 34px; }
.so-gift-grid article { display: grid; grid-template-columns: 132px minmax(0,1fr); min-height: 170px; border: 1px solid var(--so-line); background: var(--so-ivory); }
.so-gift-grid img { width: 100%; height: 100%; min-height: 168px; object-fit: cover; background: #ddd4c5; }
.so-gift-grid article > div { display: flex; min-width: 0; flex-direction: column; padding: 21px; }
.so-gift-grid h3 { margin: 0 0 8px; font-size: 25px; line-height: 1; }
.so-gift-grid strong { color: var(--so-gold-deep); font: 700 14px/1 Raleway, sans-serif; }
.so-gift-grid a { margin-top: auto; color: #17130f; font: 700 12px/1.2 Raleway, sans-serif; text-decoration: none; text-transform: uppercase; letter-spacing: .06em; }

.so-addons { padding: 96px 0 110px; background: var(--so-charcoal); color: #fff; scroll-margin-top: 80px; }
.so-addons .so-kicker { color: var(--so-gold); }
.so-addons .so-section-head { border-color: rgba(205,170,99,.25); }
.so-addons .so-section-head > p { color: rgba(255,255,255,.64); }
.so-addon-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(205,170,99,.28); margin-top: 34px; }
.so-addon-grid article { min-height: 132px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 18px; align-items: start; padding: 25px 24px; border-right: 1px solid rgba(205,170,99,.28); border-bottom: 1px solid rgba(205,170,99,.28); }
.so-addon-grid article:nth-child(2n) { border-right: 0; }
.so-addon-grid article > span { padding-top: 5px; color: var(--so-gold); font: 700 9px/1 Raleway, sans-serif; }
.so-addon-grid h3 { margin: 0 0 8px; color: #fff; font-size: 27px; line-height: 1; }
.so-addon-grid p { margin: 0; color: rgba(255,255,255,.57); font: 400 12px/1.6 Raleway, sans-serif; }
.so-addon-grid article > strong { color: var(--so-gold); font: 700 14px/1.3 Raleway, sans-serif; white-space: nowrap; }

.so-gallery { padding: 96px 0 110px; background: #0f0f0e; color: #fff; scroll-margin-top: 80px; }
.so-gallery .so-kicker { color: var(--so-gold); }
.so-gallery .so-section-head { border-color: rgba(205,170,99,.25); }
.so-gallery .so-section-head > p { color: rgba(255,255,255,.62); }
.so-gallery__grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; grid-template-rows: repeat(2,280px); gap: 10px; padding-top: 34px; }
.so-gallery figure { position: relative; margin: 0; overflow: hidden; }
.so-gallery figure:first-child { grid-row: 1/3; }
.so-gallery figure:last-child { grid-column: 2/4; }
.so-gallery img { width: 100%; height: 100%; object-fit: cover; }
.so-gallery figcaption { position: absolute; inset: auto 0 0; display: flex; gap: 12px; padding: 38px 18px 16px; background: linear-gradient(transparent,rgba(0,0,0,.85)); color: #fff; font: 600 10px/1.4 Raleway, sans-serif; }
.so-gallery figcaption span { color: var(--so-gold); }

.so-final { padding: 96px 0; background: var(--so-ivory); }
.so-final__grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); gap: 78px; align-items: end; }
.so-final__grid > div:last-child { color: var(--so-muted); font: 400 14px/1.8 Raleway, sans-serif; }
.so-final__grid > div:last-child p { margin: 0 0 15px; }
.so-final__grid strong { color: var(--so-ink); }

@media (max-width: 1080px) {
  :root { --so-shell: min(100% - 44px,920px); }
  .so-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .so-gift-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .so-hero { min-height: 690px; }
  .so-hero__inner { padding-bottom: 170px; }
  .so-hero__facts { grid-template-columns: repeat(2,1fr); }
  .so-hero__facts > div { min-height: 76px; padding: 14px 22px; }
  .so-hero__facts > div:nth-child(2) { border-right: 0; }
  .so-hero__facts > div:nth-child(-n+2) { border-bottom: 1px solid rgba(205,170,99,.24); }
  .so-overview__grid,
  .so-section-head,
  .so-final__grid { grid-template-columns: 1fr; gap: 34px; }
  .so-service-group > header { grid-template-columns: 34px 1fr; }
  .so-service-group > header > p { grid-column: 2; }
  .so-seasonal { padding: 38px; }
  .so-seasonal__grid { grid-template-columns: 1fr; }
  .so-seasonal article { border-right: 0; border-bottom: 1px solid rgba(205,170,99,.3); }
  .so-seasonal article:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  :root { --so-shell: calc(100% - 32px); }
  .so-hero { min-height: 720px; }
  .so-hero__image { object-position: 58% center; }
  .so-hero__shade { background: linear-gradient(90deg,rgba(4,3,2,.94),rgba(4,3,2,.57)),linear-gradient(0deg,rgba(4,3,2,.94),transparent 58%); }
  .so-hero__inner { padding: 92px 0 174px; }
  .so-hero h1 { font-size: clamp(50px,15vw,68px); line-height: .9; }
  .so-hero h1.so-hero-title--weekday { font-size: clamp(48px,13.5vw,60px); }
  .so-hero__lead { font-size: 14px; line-height: 1.6; }
  .so-code { max-width: 100%; flex-wrap: wrap; }
  .so-code strong { overflow-wrap: anywhere; }
  .so-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .so-button { width: 100%; }
  .so-overview,
  .so-services,
  .so-gifts,
  .so-addons,
  .so-gallery,
  .so-final { padding: 72px 0 82px; }
  .so-overview h2,
  .so-section-head h2,
  .so-final h2 { font-size: 44px; }
  .so-terms { padding: 23px; }
  .so-service-group { padding-top: 52px; }
  .so-service-group > header { grid-template-columns: 28px 1fr; gap: 13px; }
  .so-service-group > header > p { grid-column: 1/-1; }
  .so-service-grid { grid-template-columns: 1fr; }
  .so-service-card h3,
  .so-service-card__body > p { min-height: 0; }
  .so-service-card__body { padding: 24px; }
  .so-service-card__actions { grid-template-columns: 1fr; }
  .so-seasonal { width: 100%; margin-top: 62px; padding: 25px 17px; }
  .so-seasonal > h2 { font-size: 40px; }
  .so-gift-grid { grid-template-columns: 1fr; }
  .so-gift-grid article { grid-template-columns: 112px minmax(0,1fr); }
  .so-addon-grid { grid-template-columns: 1fr; }
  .so-addon-grid article,
  .so-addon-grid article:nth-child(2n) { grid-template-columns: 26px minmax(0,1fr); border-right: 0; padding-inline: 0; }
  .so-addon-grid article > strong { grid-column: 2; }
  .so-gallery__grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .so-gallery figure,
  .so-gallery figure:first-child,
  .so-gallery figure:last-child { grid-column: auto; grid-row: auto; aspect-ratio: 16/11; }
}

@media (prefers-reduced-motion: reduce) {
  .so-service-card__media img { transition: none; }
}
