/* ==========================================================================
   WEBSITES — service page
   Hero with a blush silk banner holding the demo Zuva Living store (a transparent
   photo of a laptop and a phone) and three glass chips,
   the basics, five plans (Go and Plus featured), plan finder, build sequence,
   upgrade staircase, Forge Flex, terms and house rules, FAQ and the closing band.
   Everything is scoped under .p-websites and uses the forge.css tokens only.
   ========================================================================== */

/* ---------- Shared section-head details ---------- */
.p-websites .ws-head__title { margin-top: 18px; }
.p-websites .ws-head__lead { max-width: 34em; }
.p-websites .ws-head__aside { display: grid; gap: 20px; justify-items: start; }
.p-websites .ws-head__link { font-size: 0.9375rem; }
.p-websites .ws-inline {
  color: inherit; font-weight: 500;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
  text-decoration-color: currentColor;
  transition: text-decoration-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);
}
.p-websites .ws-inline:hover { color: var(--ember-ink); }
.p-websites .dark .ws-inline:hover { color: var(--white); text-decoration-color: var(--ember); }

/* ==========================================================================
   Hero
   ========================================================================== */
.p-websites .ws-hero__title .ws-w,
.p-websites [data-ws-words] .ws-w { display: inline-block; }
.p-websites .ws-hero__lead { max-width: 30em; }

.p-websites .ws-media {
  --notch-bg: var(--paper);
  --mh: clamp(460px, 40vw, 600px); /* the banner height, also used to fit the photo */
  container-type: inline-size;
  height: var(--mh);
  background: #E6D9D2;
  isolation: isolate;
  transform: translateZ(0); /* keeps the rounded clip crisp while the layers move */
}
.p-websites .ws-media__silk {
  position: absolute; inset: -14% -2% -4%; z-index: 0;
  background: #E6D9D2 url("../../img/silk/banner-blush.webp") center 40% / cover no-repeat;
  background-image: image-set(url("../../img/silk/banner-blush-1600.webp") 1x, url("../../img/silk/banner-blush.webp") 2x);
  will-change: transform;
}
/* a soft floor shadow so the silver laptop separates from the pale silk */
.p-websites .ws-media::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(56% 50% at 52% 100%, rgba(98, 70, 56, 0.2) 0%, rgba(98, 70, 56, 0) 70%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 40%);
}
.p-websites .ws-stage { position: absolute; inset: 0; z-index: 2; font-size: 1cqw; }
.p-websites .ws-l { position: absolute; will-change: transform; }
.p-websites .ws-media__notch { z-index: 4; }

/* ----- The demo shop: a transparent photo of a laptop and a phone, straight on the silk ----- */
.p-websites .ws-l--shot { inset: 0; display: grid; place-items: center; padding-top: 1.6em; }
.p-websites .ws-shot { position: relative; width: min(64cqw, var(--mh) * 0.86 * 1.77); }
.p-websites .ws-shot__img { display: block; width: 100%; height: auto; }
.p-websites .ws-demo {
  flex: none; padding: 0.4em 0.85em; border-radius: var(--r-pill);
  background: var(--ember-soft); color: var(--ember-ink);
  font-size: 0.72em; font-weight: 600; line-height: 1; letter-spacing: 0.01em;
}
.p-websites .ws-shot__demo { position: absolute; right: 72%; top: 3.5%; font-size: clamp(10px, 0.82em, 12px); } /* ends just short of the laptop lid */
/* The chips sit on clear silk around the devices and never over a screen:
   WhatsApp beside the laptop's order button, Maps above the phone, Paynow under it. */
.p-websites .ws-l--wa  { left: -14%; top: 41%; }
.p-websites .ws-l--map { left: 82%; top: -2%; }
.p-websites .ws-l--pay { left: 77%; top: 91%; }

/* ----- Glass chips ----- */
.p-websites .ws-chip {
  display: flex; align-items: center; gap: 0.8em; padding: 0.7em 1.35em 0.7em 0.7em;
  font-size: clamp(11px, 1em, 14px); border-radius: 1.35em; white-space: nowrap;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 1.4em 2.8em -1.2em rgba(92, 62, 48, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.p-websites .ws-chip__icon {
  display: grid; place-items: center; flex: none; width: 2.9em; height: 2.9em; border-radius: 0.9em; color: var(--white);
}
.p-websites .ws-chip__icon .i { width: 1.45em; height: 1.45em; }
.p-websites .ws-chip__icon--wa { background: #25D366; }
.p-websites .ws-chip__icon--ember { background: var(--ember); }
.p-websites .ws-chip__icon--temper { background: var(--temper); }
.p-websites .ws-chip__text { display: grid; gap: 0.15em; line-height: 1.2; }
.p-websites .ws-chip__text b { font-size: 1em; font-weight: 600; letter-spacing: -0.015em; }
.p-websites .ws-chip__text small { font-size: 0.82em; color: var(--slate); }

/* Tablet: the photo grows; Maps steps above it and Paynow below the laptop */
@media (max-width: 959.98px) {
  .p-websites .ws-media { --mh: clamp(460px, 66vw, 560px); }
  .p-websites .ws-shot { width: min(76cqw, var(--mh) * 0.72 * 1.77); }
  .p-websites .ws-l--wa  { left: -12%; top: 38%; }
  .p-websites .ws-l--map { left: auto; right: -4%; top: -19%; }
  .p-websites .ws-l--pay { left: 18%; top: 97%; }
}
/* Phone: the photo spans the banner, one chip above it and one below */
@media (max-width: 599.98px) {
  .p-websites .ws-media { --mh: 420px; }
  .p-websites .ws-l--shot { padding-top: 0; }
  .p-websites .ws-shot { width: 100%; }
  .p-websites .ws-l--wa  { left: 12px; top: -36%; }
  .p-websites .ws-l--pay { left: 12px; top: 114%; }
  .p-websites .ws-l--map { display: none; }
  .p-websites .ws-chip { font-size: 11px; }
}

/* Intro: hidden only while JS boots (never without JS, never in QA or reduced motion) */
.js.is-loading:not(.is-qa):not(.is-reduced) .p-websites .ws-hero__eyebrow,
.js.is-loading:not(.is-qa):not(.is-reduced) .p-websites .ws-hero__title,
.js.is-loading:not(.is-qa):not(.is-reduced) .p-websites .ws-hero__lead,
.js.is-loading:not(.is-qa):not(.is-reduced) .p-websites .ws-hero__cta,
.js.is-loading:not(.is-qa):not(.is-reduced) .p-websites .ws-media {
  opacity: 0;
  animation: ws-failsafe 0.6s ease 3s forwards;
}
@keyframes ws-failsafe { to { opacity: 1; } }

/* ==========================================================================
   Every Forge site
   ========================================================================== */
.p-websites .ws-basics__grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .p-websites .ws-basics__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .p-websites .ws-basics__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.p-websites .ws-basic {
  display: flex; flex-direction: column; justify-content: flex-start; gap: clamp(40px, 4.4vw, 64px);
  min-height: 256px; padding: clamp(24px, 2.4vw, 32px);
  background: var(--white); border-radius: var(--r-lg);
  transition: transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .p-websites .ws-basic:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
}
.p-websites .ws-basic__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.p-websites .ws-basic__tag {
  display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: var(--r-pill);
  border: 1px solid var(--line-strong); font-size: 0.8125rem; font-weight: 500; color: var(--slate); white-space: nowrap;
}
.p-websites .ws-basic__tag--go { border-color: transparent; background: var(--brass-soft); color: var(--ink); }
.p-websites .ws-basic__title { font-size: 1.3125rem; line-height: 1.25; font-weight: 500; letter-spacing: -0.016em; text-wrap: pretty; }
.p-websites .ws-basic__text { margin-top: 10px; font-size: 0.9375rem; line-height: 1.55; color: var(--slate); max-width: 30em; }
/* phones: icon beside the text, so six cards don't become six screens */
@media (max-width: 639.98px) {
  .p-websites .ws-basics__grid { gap: 12px; }
  .p-websites .ws-basic { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: start; gap: 0 18px; min-height: 0; padding: 22px 22px 24px; }
  .p-websites .ws-basic__top { display: contents; }
  .p-websites .ws-basic .icon-tile { grid-column: 1; grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 13px; }
  .p-websites .ws-basic__tag { grid-column: 2; justify-self: start; height: 26px; margin-bottom: 10px; font-size: 0.75rem; }
  .p-websites .ws-basic__body { grid-column: 2; }
  .p-websites .ws-basic__title { margin-top: 1px; font-size: 1.125rem; }
  .p-websites .ws-basic__text { margin-top: 6px; }
}

/* ==========================================================================
   Plans
   ========================================================================== */
.p-websites .ws-plans__featured { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 880px) { .p-websites .ws-plans__featured { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.p-websites .ws-tier { position: relative; display: flex; flex-direction: column; min-width: 0; }
.p-websites .ws-tier--feature {
  --notch-bg: var(--paper);
  gap: 30px; padding: clamp(28px, 3.2vw, 44px); border-radius: var(--r-xl);
}
.p-websites .ws-tier--go {
  background:
    radial-gradient(90% 60% at 100% 0%, rgba(227, 160, 58, 0.2) 0%, rgba(227, 160, 58, 0) 60%),
    radial-gradient(70% 50% at 0% 100%, rgba(238, 106, 44, 0.1) 0%, rgba(238, 106, 44, 0) 60%),
    var(--coal);
}
.p-websites .ws-tier--plus { background: var(--white); }

/* folder-tab label in the top-right corner (reference "Payments" tab) */
.p-websites .ws-tier__tabcut { --notch-r: 20px; }
.p-websites .ws-tab {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px;
  border-radius: var(--r-pill); border: 1px solid var(--line-strong);
  font-size: 0.875rem; font-weight: 500; color: var(--ink); white-space: nowrap; letter-spacing: -0.005em;
}
.p-websites .ws-tab .i { width: 15px; height: 15px; }
.p-websites .ws-tab--dark { background: var(--ink); border-color: var(--ink); color: var(--white); }
.p-websites .ws-tab--dark .i { color: var(--brass); }

.p-websites .ws-tier__top { display: flex; align-items: center; gap: 16px; min-width: 0; }
/* the tab sits above the name row (tab 50px tall, name row starts at the card padding), so the row keeps its full width */
.p-websites .ws-tier--feature .ws-tier__top { min-height: 60px; }
.p-websites .ws-swatch {
  position: relative; display: grid; place-items: center; flex: none; overflow: hidden;
  width: 60px; height: 60px; border-radius: 18px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}
.p-websites .ws-swatch span {
  font-size: 0.75rem; font-weight: 600; color: var(--white); letter-spacing: 0.02em;
  padding: 3px 7px; border-radius: var(--r-pill); background: rgba(20, 20, 20, 0.18);
}
.p-websites .ws-swatch--sm { width: 48px; height: 48px; border-radius: 15px; }
.p-websites .ws-tier__id { min-width: 0; }
.p-websites .ws-tier__name {
  font-size: var(--fs-h3); line-height: 1.02; letter-spacing: var(--tracking-h3); font-weight: 400;
  font-optical-sizing: none; font-variation-settings: "opsz" 14;
}
.p-websites .ws-tier__for { margin-top: 6px; font-size: 0.9375rem; line-height: 1.4; color: var(--slate); }

.p-websites .ws-tier__price { display: grid; gap: 10px; }
.p-websites .ws-tier__amount { display: flex; align-items: baseline; gap: 10px; }
.p-websites .ws-tier__amount .t-num {
  font-size: clamp(3rem, 2.1rem + 2.2vw, 4.25rem); line-height: 0.95; letter-spacing: -0.045em; font-weight: 400;
  font-optical-sizing: none; font-variation-settings: "opsz" 14;
}
.p-websites .ws-tier__amount small { font-size: 1rem; color: var(--slate); }
.p-websites .ws-tier__amount .ws-tier__from { align-self: flex-start; margin-top: 0.3em; }
.p-websites .ws-tier__monthly { font-size: 1rem; line-height: 1.5; color: var(--slate); }
.p-websites .ws-tier__monthly b { color: var(--ink); font-weight: 500; }
.p-websites .dark .ws-tier__monthly b { color: var(--white); }
.p-websites .ws-tier__save {
  display: inline-flex; align-items: center; height: 24px; margin-left: 6px; padding: 0 10px; border-radius: var(--r-pill);
  background: rgba(20, 20, 20, 0.06); color: var(--ink); font-size: 0.75rem; font-weight: 500; white-space: nowrap; vertical-align: 1px;
}
.p-websites .dark .ws-tier__save { background: rgba(227, 160, 58, 0.16); color: var(--brass-soft); }
@media (max-width: 559.98px) { .p-websites .ws-tier__save { display: flex; width: fit-content; margin: 8px 0 0; } }
.p-websites .ws-tier__flex { font-size: 0.875rem; color: var(--slate); }

.p-websites .ws-tier__list { gap: 13px; padding-top: 28px; border-top: 1px solid var(--line); font-size: 0.9375rem; }
.p-websites .dark .ws-tier__list li::before { background-color: rgba(255, 255, 255, 0.14); }
.p-websites .ws-tier__foot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 24px;
  margin-top: auto; padding-top: 28px; border-top: 1px solid var(--line);
}
.p-websites .ws-tier__meta { display: grid; gap: 4px; }
.p-websites .ws-tier__eta { display: flex; align-items: center; gap: 8px; font-size: 0.9375rem; font-weight: 500; }
.p-websites .ws-tier__eta .i { width: 16px; height: 16px; color: var(--ember); }
.p-websites .ws-tier--go .ws-tier__eta .i { color: var(--brass); }
.p-websites .ws-tier__terms { padding-left: 24px; font-size: 0.8125rem; line-height: 1.4; color: var(--slate); }

/* the rest of the ladder */
.p-websites .ws-plans__rest { margin-top: clamp(56px, 6vw, 88px); }
.p-websites .ws-plans__resthead {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px;
  margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line);
}
.p-websites .ws-plans__resttitle { font-size: var(--fs-h4); font-weight: 500; letter-spacing: -0.014em; line-height: 1.25; }
.p-websites .ws-plans__restnote { font-size: 0.9375rem; color: var(--slate); }
.p-websites .ws-plans__trio { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .p-websites .ws-plans__trio { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.p-websites .ws-tier--compact {
  gap: 24px; padding: clamp(24px, 2.4vw, 32px); border-radius: var(--r-lg);
  background: rgba(255, 255, 255, 0.5); border: 1px solid var(--line);
  transition: background-color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);
}
.p-websites .ws-tier--compact:hover { background: var(--white); border-color: transparent; }
.p-websites .ws-tier--compact .ws-tier__name { font-size: clamp(1.5rem, 1.3rem + 0.5vw, 1.75rem); letter-spacing: -0.015em; }
.p-websites .ws-tier--compact .ws-tier__amount .t-num { font-size: clamp(2.5rem, 2rem + 1vw, 3rem); }
.p-websites .ws-tier--compact .ws-tier__list { gap: 11px; padding-top: 22px; font-size: 0.875rem; }
.p-websites .ws-tier--compact .ws-tier__foot { flex-direction: column; align-items: stretch; gap: 18px; padding-top: 22px; }
.p-websites .ws-tier__btn { justify-content: space-between; width: 100%; --btn-h: 50px; }
.p-websites .ws-tier__btn .i { width: 16px; height: 16px; transition: transform var(--dur-2) var(--ease-out); }
.p-websites .ws-tier__btn:hover .i { transform: translateX(3px); }
@media (min-width: 700px) and (max-width: 1023.98px) {
  .p-websites .ws-tier--compact {
    display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    grid-template-areas: "top list" "price list" "foot list"; align-content: start; column-gap: 40px;
  }
  .p-websites .ws-tier--compact .ws-tier__top { grid-area: top; }
  .p-websites .ws-tier--compact .ws-tier__price { grid-area: price; }
  .p-websites .ws-tier--compact .ws-tier__list { grid-area: list; padding-top: 0; border-top: 0; align-self: start; }
  .p-websites .ws-tier--compact .ws-tier__foot { grid-area: foot; }
}
.p-websites .ws-plans__foot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px;
  margin-top: 32px; font-size: 0.875rem; color: var(--slate);
}
.p-websites .ws-plans__foot p { max-width: 60em; }
.p-websites .ws-plans__foot .link { color: var(--ink); font-size: 0.9375rem; }

@media (min-width: 880px) and (max-width: 1099.98px) {
  .p-websites .ws-tab__more { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 559.98px) {
  .p-websites .ws-tier--feature { padding-top: 76px; }
  .p-websites .ws-tier--feature .ws-tier__top { padding-right: 0; }
  .p-websites .ws-tab__more { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .p-websites .ws-tier__foot .btn { width: 100%; justify-content: space-between; }
}

/* ==========================================================================
   Plan finder
   ========================================================================== */
.p-websites .ws-finder__box {
  display: grid; grid-template-columns: minmax(0, 1fr);
  background: var(--white); border-radius: var(--r-xl); overflow: hidden;
}
@media (min-width: 1024px) { .p-websites .ws-finder__box { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } }
.p-websites .ws-finder__form { display: grid; align-content: start; gap: clamp(30px, 3vw, 40px); padding: clamp(24px, 4vw, 56px); }
.p-websites .ws-q { min-width: 0; margin: 0; padding: 0; border: 0; }
.p-websites .ws-q__legend {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; margin-bottom: 16px; padding: 0;
  font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); font-weight: 500; letter-spacing: -0.015em; line-height: 1.3;
}
.p-websites .ws-q__num {
  display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%;
  background: var(--mist); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0;
  transition: background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out);
}
.p-websites .ws-q.is-done .ws-q__num { background: var(--ink); color: var(--white); }
.p-websites .ws-q__opt {
  display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--r-pill);
  border: 1px solid var(--line-strong); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--slate);
}
.p-websites .ws-q__text { min-width: 0; }
/* the tag rides inline after the question, so a wrapped question keeps it beside the last word */
.p-websites .ws-q__opt { margin-left: 4px; vertical-align: 0.12em; white-space: nowrap; line-height: 1; }
.p-websites .ws-q__choices { display: flex; flex-wrap: wrap; gap: 8px; }
.p-websites .ws-q .choice span {
  gap: 8px; min-height: 46px; padding: 0 18px; border-radius: var(--r-pill);
  font-size: 0.9375rem; line-height: 1.25; text-align: left;
}
.p-websites .ws-q .choice span::before {
  content: ""; flex: none; width: 0; height: 16px; margin-right: -8px; opacity: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 16px no-repeat;
  transition: width var(--dur-2) var(--ease-out), margin var(--dur-2) var(--ease-out), opacity var(--dur-2) var(--ease-out);
}
.p-websites .ws-q .choice input:checked + span::before { width: 16px; margin-right: 0; opacity: 1; }
/* phones: full-width answer rows instead of ragged wrapping pills */
@media (max-width: 559.98px) {
  .p-websites .ws-q__choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .p-websites .ws-q .choice span { justify-content: flex-start; min-height: 48px; padding: 10px 18px; border-radius: 14px; }
}
@media (hover: hover) and (pointer: fine) {
  .p-websites .ws-q .choice input:not(:checked) + span:hover { border-color: var(--ink); }
}

/* result */
.p-websites .ws-result { position: relative; display: flex; min-height: 540px; padding: 12px; }
.p-websites .ws-result__silks { position: absolute; inset: 12px; overflow: hidden; border-radius: 22px; background: var(--blush); }
.p-websites .ws-result__silk { position: absolute; inset: -4%; opacity: 0; transition: opacity 0.9s var(--ease-out); }
.p-websites .ws-result__silk.is-on { opacity: 1; }
.p-websites .ws-result__card {
  position: relative; z-index: 1; display: flex; flex-direction: column; gap: 22px;
  width: 100%; margin: auto 0 0; padding: clamp(22px, 2.4vw, 32px);
  border-radius: 20px; background: rgba(255, 255, 255, 0.84);
  transition: background-color 0.9s var(--ease-out);
}
.p-websites .ws-result[data-tier="3"] .ws-result__card,
.p-websites .ws-result[data-tier="4"] .ws-result__card { background: rgba(255, 255, 255, 0.9); }
@media (min-width: 1024px) { .p-websites .ws-result__card { margin: auto 12px 12px; width: calc(100% - 24px); } }
.p-websites .ws-result__progress { display: flex; align-items: center; gap: 10px; font-size: 0.8125rem; color: var(--slate); }
.p-websites .ws-result__dots { display: inline-flex; gap: 5px; }
.p-websites .ws-result__dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(20, 20, 20, 0.16); transition: background-color var(--dur-2) var(--ease-out); }
.p-websites .ws-result__dots i.is-on { background: var(--ink); }
.p-websites .ws-result__live { display: grid; gap: 8px; }
.p-websites .ws-result__kicker { font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ember-ink); }
.p-websites .ws-result__name {
  font-size: clamp(2.25rem, 1.8rem + 1.4vw, 3rem); line-height: 1; letter-spacing: -0.03em;
  font-optical-sizing: none; font-variation-settings: "opsz" 14;
}
.p-websites .ws-result[data-tier="none"] .ws-result__name { font-size: clamp(1.5rem, 1.3rem + 0.6vw, 1.875rem); letter-spacing: -0.02em; line-height: 1.15; }
.p-websites .ws-result__price { margin-top: 4px; font-size: 1.0625rem; font-weight: 500; }
.p-websites .ws-result__eta { display: flex; align-items: center; gap: 8px; font-size: 0.875rem; color: var(--slate); }
.p-websites .ws-result__eta::before {
  content: ""; width: 15px; height: 15px; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EE6A2C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.p-websites .ws-result__reason { margin-top: 6px; font-size: 0.9375rem; line-height: 1.55; color: var(--slate); }
.p-websites .ws-result__note {
  margin-top: 6px; padding: 10px 14px; border-radius: 12px; background: rgba(20, 20, 20, 0.05);
  font-size: 0.8125rem; line-height: 1.45; color: var(--ink);
}
.p-websites .ws-result__next { display: grid; gap: 4px; padding-top: 18px; border-top: 1px solid var(--line); }
.p-websites .ws-result__nextlabel { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--slate); }
.p-websites .ws-result__nexttitle { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 1.125rem; font-weight: 500; letter-spacing: -0.012em; }
.p-websites .ws-result__nexttitle small {
  display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--r-pill);
  background: var(--ink); color: var(--white); font-size: 0.75rem; font-weight: 600; letter-spacing: 0;
}
.p-websites .ws-result__nexttext { font-size: 0.875rem; line-height: 1.5; color: var(--slate); }
.p-websites .ws-result__actions { container-type: inline-size; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 2px; }
.p-websites .ws-result__send { min-width: 0; }
.p-websites .ws-result__send .btn__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* narrow result column (phones, and the two-column layout just above 1024px): the short label */
@container (max-width: 359.98px) {
  .p-websites .ws-send-more { display: none; }
}
@container (max-width: 299.98px) {
  .p-websites .ws-result__send { padding-left: 22px; gap: 14px; }
}
.p-websites .ws-result__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; min-height: 44px; }
.p-websites .ws-result__links .link { font-size: 0.9375rem; }
.p-websites .ws-result__reset {
  display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin-left: auto;
  font-size: 0.875rem; font-weight: 500; color: var(--slate); transition: color var(--dur-1) var(--ease-out);
}
.p-websites .ws-result__reset .i { width: 15px; height: 15px; }
.p-websites .ws-result__reset:hover { color: var(--ink); }
@media (max-width: 1023.98px) {
  .p-websites .ws-result { min-height: 0; padding: 0 12px 12px; }
  .p-websites .ws-result__silks { inset: 0 12px 12px; }
  .p-websites .ws-result__card { margin: 96px 12px 12px; width: calc(100% - 24px); }
}
@media (max-width: 479.98px) {
  .p-websites .ws-result__card { margin: 72px 8px 8px; width: calc(100% - 16px); padding: 20px; }
}

/* phones and tablets: the suggestion rides along while you answer (same bar as the Branding Cart) */
.p-websites .ws-bar {
  position: fixed; left: 12px; right: 86px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 79;
  display: flex; align-items: center; gap: 12px; height: 54px; padding: 0 7px 0 20px;
  border-radius: var(--r-pill); background: var(--ink); color: var(--white); box-shadow: var(--shadow-float);
  transform: translateY(170%); transition: transform 0.6s var(--ease-out); pointer-events: none;
}
.p-websites .ws-bar.is-shown { transform: none; pointer-events: auto; }
.p-websites .ws-bar__text { display: grid; min-width: 0; line-height: 1.2; }
.p-websites .ws-bar__text small { font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); white-space: nowrap; }
.p-websites .ws-bar__text b { overflow: hidden; font-size: 1rem; font-weight: 600; letter-spacing: -0.015em; white-space: nowrap; text-overflow: ellipsis; }
.p-websites .ws-bar__go {
  display: inline-flex; align-items: center; gap: 6px; flex: none; height: 40px; margin-left: auto; padding: 0 14px 0 16px;
  border-radius: var(--r-pill); background: var(--white); color: var(--ink); font-size: 0.875rem; font-weight: 600;
}
.p-websites .ws-bar__go .i { width: 15px; height: 15px; }
@media (min-width: 561px) { .p-websites .ws-bar { right: 214px; } }
@media (min-width: 1024px) { .p-websites .ws-bar { display: none; } }

/* ==========================================================================
   How we build (dark)
   ========================================================================== */
.p-websites .ws-build__box {
  position: relative; overflow: hidden; isolation: isolate;
  padding: clamp(32px, 5.4vw, 80px) clamp(22px, 5vw, 72px);
  border-radius: var(--r-xl);
  background:
    radial-gradient(80% 60% at 100% 0%, rgba(238, 106, 44, 0.12) 0%, rgba(238, 106, 44, 0) 60%),
    var(--coal);
}
.p-websites .ws-build__box::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.5;
  background: url("../../img/silk/banner-graphite.webp") 70% 0 / cover no-repeat;
  background-image: image-set(url("../../img/silk/banner-graphite-1600.webp") 1x, url("../../img/silk/banner-graphite.webp") 2x);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.4) 45%, transparent 80%);
  mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.4) 45%, transparent 80%);
}
.p-websites .ws-build__head { margin-bottom: clamp(48px, 5.6vw, 88px); }
.p-websites .ws-steps { position: relative; }
.p-websites .ws-steps__list { position: relative; display: grid; gap: 40px; }
.p-websites .ws-steps__rail {
  position: absolute; left: 21.5px; top: 22px; bottom: 60px; width: 1px;
  background: rgba(255, 255, 255, 0.16); overflow: hidden;
}
.p-websites .ws-steps__fill {
  position: absolute; inset: 0; transform-origin: 50% 0; transform: scaleY(var(--p, 1));
  background: linear-gradient(180deg, var(--ember), var(--brass));
}
.p-websites .ws-step { position: relative; display: grid; align-content: start; gap: 10px; padding-left: 68px; }
.p-websites .ws-step__node {
  position: absolute; left: 0; top: 0; display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--white); color: var(--ink); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0;
  box-shadow: 0 0 0 6px rgba(238, 106, 44, 0.16);
  transition: background-color 0.5s var(--ease-out), color 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.p-websites .ws-step__name { font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.2; letter-spacing: -0.016em; margin-top: 8px; }
.p-websites .ws-step__text { font-size: 0.9375rem; line-height: 1.55; color: rgba(255, 255, 255, 0.66); }
.p-websites .ws-step__parts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.p-websites .ws-step__parts li {
  padding: 5px 11px; border-radius: var(--r-pill); border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 0.75rem; font-weight: 500; color: rgba(255, 255, 255, 0.8); white-space: nowrap;
}
.p-websites .ws-step__name, .p-websites .ws-step__text, .p-websites .ws-step__parts { transition: opacity 0.6s var(--ease-out); }
/* motion: steps wait in grey until the rail reaches them (reference dark list, f_078) */
.p-websites .ws-steps.is-armed .ws-step:not(.is-on) .ws-step__node { background: var(--coal); color: rgba(255, 255, 255, 0.5); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2); }
.p-websites .ws-steps.is-armed .ws-step:not(.is-on) .ws-step__name,
.p-websites .ws-steps.is-armed .ws-step:not(.is-on) .ws-step__text,
.p-websites .ws-steps.is-armed .ws-step:not(.is-on) .ws-step__parts { opacity: 0.38; }
/* vertical rail: stop it at the last node (a coal cover hides the run below it) */
@media (max-width: 1023.98px) {
  .p-websites .ws-step:last-child::after {
    content: ""; position: absolute; z-index: 0; left: 0; top: 44px; bottom: 0; width: 44px; background: var(--coal);
  }
  .p-websites .ws-step__node { z-index: 1; }
}
@media (min-width: 1024px) {
  .p-websites .ws-steps__list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; }
  .p-websites .ws-steps__rail { left: 22px; right: calc((100% - 112px) / 5 - 22px); top: 21.5px; bottom: auto; width: auto; height: 1px; }
  .p-websites .ws-steps__fill { transform-origin: 0 50%; transform: scaleX(var(--p, 1)); background: linear-gradient(90deg, var(--ember), var(--brass)); }
  .p-websites .ws-step { padding-left: 0; padding-top: 64px; }
}
.p-websites .ws-build__note {
  display: flex; align-items: center; gap: 14px;
  margin-top: clamp(44px, 5vw, 72px); padding-top: 28px; border-top: 1px solid var(--line-on-dark);
  font-size: 0.9375rem; color: rgba(255, 255, 255, 0.74);
}
.p-websites .ws-build__noteicon {
  display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%;
  background: rgba(238, 106, 44, 0.16); color: var(--ember);
}
.p-websites .ws-build__noteicon .i { width: 17px; height: 17px; }

/* ==========================================================================
   Grow: upgrade staircase
   ========================================================================== */
.p-websites .ws-stairs-box { padding: clamp(20px, 4vw, 56px); background: var(--white); border-radius: var(--r-xl); }
.p-websites .ws-stairs { display: grid; gap: 14px; }
.p-websites .ws-stair { display: grid; gap: 10px; min-width: 0; overflow: hidden; }
.p-websites .ws-stair__move { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-height: 26px; }
.p-websites .ws-stair__disc {
  display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%;
  background: var(--ink); color: var(--white);
}
.p-websites .ws-stair__disc .i { width: 13px; height: 13px; stroke-width: 2.2; }
.p-websites .ws-stair__fee { font-size: 1.25rem; font-weight: 500; letter-spacing: -0.025em; line-height: 1.2; }
.p-websites .ws-stair__mo { font-size: 0.8125rem; color: var(--slate); }
.p-websites .ws-stair__move--start .ws-stair__fee { font-size: 1rem; color: var(--slate); letter-spacing: -0.01em; }
.p-websites .ws-stair__bar {
  position: relative; overflow: hidden; display: flex; align-items: flex-start;
  width: var(--w); min-height: 68px; padding: 10px; border-radius: 16px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}
.p-websites .ws-stair__label {
  display: grid; gap: 1px; padding: 9px 12px; border-radius: 12px;
  background: rgba(255, 255, 255, 0.8); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  line-height: 1.25;
}
.p-websites .ws-stair__label b { font-size: 0.9375rem; font-weight: 600; letter-spacing: -0.01em; }
.p-websites .ws-stair__label span { font-size: 0.75rem; color: var(--slate); white-space: nowrap; }
@media (max-width: 767.98px) {
  .p-websites .ws-stair:nth-child(1) .ws-stair__bar { width: 60%; }
  .p-websites .ws-stair:nth-child(2) .ws-stair__bar { width: 70%; }
  .p-websites .ws-stair:nth-child(3) .ws-stair__bar { width: 80%; }
  .p-websites .ws-stair:nth-child(4) .ws-stair__bar { width: 90%; }
  .p-websites .ws-stair:nth-child(5) .ws-stair__bar { width: 100%; }
}
@media (min-width: 768px) {
  .p-websites .ws-stairs {
    grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; gap: clamp(8px, 1.1vw, 16px);
    height: clamp(400px, 38vw, 500px); border-bottom: 1px solid var(--line);
  }
  .p-websites .ws-stair { display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; height: 100%; }
  .p-websites .ws-stair__move { flex-direction: row; align-content: flex-end; }
  .p-websites .ws-stair__mo { flex-basis: 100%; }
  .p-websites .ws-stair__bar { width: auto; height: var(--h); min-height: 0; padding: 12px; border-radius: 22px 22px 0 0; }
}
@media (min-width: 768px) and (max-width: 1100px) {
  .p-websites .ws-stair__label span { white-space: normal; }
  .p-websites .ws-stair__fee { flex: 1 1 0; min-width: 0; font-size: 1.0625rem; }
  /* the fees wrap to more lines here, so the bars leave them more headroom */
  .p-websites .ws-stair__bar { height: calc(var(--h) * 0.8); }
}
.p-websites .ws-stairs__notes {
  display: grid; gap: 12px 32px; margin-top: 28px; font-size: 0.9375rem; line-height: 1.45; color: var(--ink);
}
@media (min-width: 768px) { .p-websites .ws-stairs__notes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.p-websites .ws-stairs__notes li { display: flex; align-items: flex-start; gap: 10px; }
.p-websites .ws-stairs__notes .i { width: 18px; height: 18px; margin-top: 2px; color: var(--ember); stroke-width: 2.2; }

/* ==========================================================================
   Forge Flex (temper silk)
   ========================================================================== */
.p-websites .ws-flex__box {
  position: relative; overflow: hidden; isolation: isolate;
  padding: clamp(28px, 5vw, 72px); border-radius: var(--r-xl); color: var(--white);
  background: #6F79D8 url("../../img/silk/banner-temper.webp") center / cover no-repeat;
  background-image: image-set(url("../../img/silk/banner-temper-1800.webp") 1x, url("../../img/silk/banner-temper.webp") 2x);
}
.p-websites .ws-flex__box::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(100deg, rgba(34, 38, 104, 0.62) 0%, rgba(34, 38, 104, 0.3) 45%, rgba(34, 38, 104, 0.08) 80%);
}
.p-websites .ws-flex__grid { display: grid; gap: 40px; }
/* side by side only when the three plan cards still get ~190px each; below that they sit under the intro */
@media (min-width: 1200px) { .p-websites .ws-flex__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: end; gap: 56px; } }
.p-websites .ws-flex__title { margin-top: 18px; color: var(--white); }
.p-websites .ws-flex__lead { margin-top: 20px; max-width: 30em; font-size: var(--fs-lead); line-height: 1.5; color: rgba(255, 255, 255, 0.88); }
.p-websites .ws-flex__btn { margin-top: 32px; }
.p-websites .ws-flex__plans { display: grid; gap: 12px; }
@media (min-width: 640px) { .p-websites .ws-flex__plans { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.p-websites .ws-flex__plan {
  display: grid; align-content: start; gap: 6px; padding: 22px; border-radius: 22px; color: var(--ink);
  background: rgba(255, 255, 255, 0.84);
}
.p-websites .ws-flex__name { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--temper-ink); }
.p-websites .ws-flex__up { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin-top: 12px; font-size: 0.9375rem; color: var(--slate); }
.p-websites .ws-flex__up .t-num { font-size: clamp(2.25rem, 1.9rem + 1vw, 2.75rem); line-height: 1; color: var(--ink); letter-spacing: -0.045em; }
.p-websites .ws-flex__mo { font-size: 0.875rem; line-height: 1.45; color: var(--slate); }
.p-websites .ws-flex__mo b { color: var(--ink); font-weight: 500; }
.p-websites .ws-flex__total {
  display: grid; gap: 2px; margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line);
  font-size: 0.8125rem; line-height: 1.45; color: var(--slate);
}
.p-websites .ws-flex__total b { color: var(--ink); font-weight: 600; }
.p-websites .ws-flex__rules {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px;
  margin-top: clamp(32px, 4vw, 48px); padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.24);
}
.p-websites .ws-flex__ruleslabel { font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(255, 255, 255, 0.86); }
.p-websites .ws-flex__rules ul { display: flex; flex-wrap: wrap; gap: 8px; }
.p-websites .ws-flex__rules li {
  padding: 8px 14px; border-radius: var(--r-pill);
  background: rgba(30, 34, 96, 0.32); border: 1px solid rgba(255, 255, 255, 0.22);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  font-size: 0.875rem; font-weight: 500; color: var(--white);
}
@media (max-width: 559.98px) {
  .p-websites .ws-flex__rules li { border-radius: 14px; padding: 10px 14px; line-height: 1.4; }
}
@media (max-width: 479.98px) {
  .p-websites .ws-flex__btn { padding-left: 22px; gap: 14px; font-size: 0.9375rem; }
}

/* ==========================================================================
   Terms and house rules
   ========================================================================== */
.p-websites .ws-terms__grid { display: grid; gap: 16px; }
@media (min-width: 1024px) { .p-websites .ws-terms__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.p-websites .ws-terms__col { padding: clamp(24px, 3.4vw, 48px); background: var(--white); border-radius: var(--r-xl); }
.p-websites .ws-terms__colhead { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.p-websites .ws-terms__title { font-size: var(--fs-h4); font-weight: 500; letter-spacing: -0.014em; line-height: 1.25; }
.p-websites .ws-terms__list { margin: 0; }
.p-websites .ws-terms__list > div { display: grid; gap: 4px 24px; padding: 18px 0; border-top: 1px solid var(--line); }
.p-websites .ws-terms__list > div:last-child { padding-bottom: 0; }
@media (min-width: 560px) { .p-websites .ws-terms__list > div { grid-template-columns: 148px minmax(0, 1fr); } }
.p-websites .ws-terms__list dt { font-size: 0.9375rem; font-weight: 500; line-height: 1.5; }
.p-websites .ws-terms__list dd { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--slate); }

.p-websites .ws-clock { margin-bottom: 26px; padding: 24px 22px 20px; background: var(--paper); border-radius: 18px; }
.p-websites .ws-clock__track { position: relative; height: 6px; margin: 0 7px; border-radius: var(--r-pill); background: var(--fog); }
.p-websites .ws-clock__fill {
  position: absolute; inset: 0; border-radius: inherit; transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--patina) 0%, var(--brass) 46.667%, var(--ember) 100%);
}
.p-websites .ws-clock__track i {
  position: absolute; left: var(--at); top: 50%; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%;
  background: var(--white); box-shadow: 0 0 0 1px var(--line-strong), 0 2px 6px rgba(20, 20, 20, 0.12);
}
.p-websites .ws-clock__labels { position: relative; height: 40px; margin: 14px 7px 0; }
.p-websites .ws-clock__labels span {
  position: absolute; top: 0; left: var(--at); transform: translateX(-50%);
  display: grid; gap: 1px; font-size: 0.75rem; line-height: 1.35; color: var(--slate); white-space: nowrap; text-align: center;
}
.p-websites .ws-clock__labels span:first-child { transform: translateX(-7px); text-align: left; }
.p-websites .ws-clock__labels span:last-child { transform: translateX(calc(-100% + 7px)); text-align: right; }
.p-websites .ws-clock__labels b { font-size: 0.8125rem; font-weight: 600; color: var(--ink); }
@media (max-width: 479.98px) {
  .p-websites .ws-clock { padding: 22px 18px 18px; }
  .p-websites .ws-clock__labels { height: 54px; }
  .p-websites .ws-clock__labels span { white-space: normal; width: 5.6em; }
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.p-websites .ws-faq__grid { display: grid; gap: 40px; }
@media (min-width: 1024px) {
  .p-websites .ws-faq__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 72px; align-items: start; }
  .p-websites .ws-faq__head { position: sticky; top: calc(var(--header-h) + 24px); }
}
.p-websites .ws-faq__head { display: grid; gap: 20px; justify-items: start; }
.p-websites .ws-faq__head .ws-head__title { margin-top: 0; }
.p-websites .ws-faq__link { margin-top: 4px; font-size: 0.9375rem; }
.p-websites .ws-faq__q { font-size: inherit; line-height: inherit; letter-spacing: inherit; }
.p-websites .ws-faq__list .acc-trigger { font-weight: 400; color: var(--ink); }
.p-websites .ws-faq__list .acc-trigger:hover .acc-icon { border-color: var(--ink); }

/* ==========================================================================
   Closing band
   ========================================================================== */
.p-websites .ws-cta .cta-band__grid { align-items: end; }
@media (min-width: 960px) { .p-websites .ws-cta .cta-band__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 56px; } }
/* keep the lead readable where the graphite silk turns pale */
.p-websites .ws-cta .cta-band::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(100deg, rgba(15, 15, 15, 0.5) 0%, rgba(15, 15, 15, 0.2) 50%, rgba(15, 15, 15, 0.55) 100%);
}
.p-websites .ws-cta__aside { display: grid; gap: 28px; justify-items: start; }
.p-websites .ws-cta__lead { max-width: 30em; font-size: var(--fs-lead); line-height: 1.5; color: rgba(255, 255, 255, 0.74); }
.p-websites .ws-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.p-websites .ws-cta__btns .btn--ghost { --btn-h: 56px; padding: 0 26px; font-size: 1rem; }

/* inline links in FAQ answers (e.g. support@) */
.p-websites .ws-faq .acc-body a { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(20, 20, 20, 0.25); text-underline-offset: 3px; overflow-wrap: anywhere; transition: text-decoration-color var(--dur-1); }
.p-websites .ws-faq .acc-body a:hover { text-decoration-color: var(--ember); }
