/* TechOven Offers — front-end styles are intentionally scoped to the plugin. */
.tos-offer,
.tos-directory {
  --tos-ink: #111218;
  --tos-muted: #626571;
  --tos-paper: #f5f3ed;
  --tos-white: #fff;
  --tos-line: rgba(17, 18, 24, 0.14);
  --tos-dark: #101116;
  --tos-accent: #f3714e;
  --tos-radius: 24px;
  color: var(--tos-ink);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.tos-offer *,
.tos-offer *::before,
.tos-offer *::after,
.tos-directory *,
.tos-directory *::before,
.tos-directory *::after {
  box-sizing: border-box;
}

.tos-offer :where(h1, h2, h3, p, ul),
.tos-directory :where(h1, h2, h3, p, ul) {
  margin-top: 0;
}

.tos-offer :where(h1, h2, h3),
.tos-directory :where(h1, h2, h3) {
  color: inherit;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.tos-offer a,
.tos-directory a {
  color: inherit;
  text-decoration: none;
}

.tos-offer svg,
.tos-directory svg {
  display: block;
}

.tos-wrap {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}

.tos-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: var(--tos-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.tos-kicker > span {
  width: 28px;
  height: 2px;
  background: currentColor;
}

.tos-button {
  position: relative;
  z-index: 1;
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  transition: transform 180ms ease, background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.tos-button svg {
  width: 19px;
  height: 19px;
  transition: transform 180ms ease;
}

.tos-button:hover,
.tos-button:focus-visible {
  transform: translateY(-2px);
}

.tos-button:hover svg,
.tos-button:focus-visible svg {
  transform: translateX(4px);
}

.tos-button:focus-visible,
.tos-filter button:focus-visible,
.tos-faq summary:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--tos-accent) 70%, white);
  outline-offset: 3px;
}

.tos-button--primary {
  background: var(--tos-accent);
  color: #fff;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--tos-accent) 28%, transparent);
}

.tos-button--primary:hover,
.tos-button--primary:focus-visible {
  background: color-mix(in srgb, var(--tos-accent) 82%, black);
  color: #fff;
}

.tos-button--outline {
  border-color: var(--tos-line);
  background: transparent;
}

.tos-button--outline:hover {
  border-color: var(--tos-ink);
  background: var(--tos-ink);
  color: #fff;
}

.tos-button--light {
  background: #fff;
  color: #111218;
}

.tos-button--light:hover {
  background: var(--tos-accent);
  color: #fff;
}

.tos-button--text {
  min-height: auto;
  padding-inline: 4px;
  border-radius: 0;
  color: #fff;
  box-shadow: inset 0 -1px rgba(255,255,255,.55);
}

/* Single offer hero. */
.tos-offer__hero {
  position: relative;
  isolation: isolate;
  min-height: 760px;
  overflow: hidden;
  padding: clamp(88px, 10vw, 150px) 0 106px;
  background:
    radial-gradient(circle at 76% 32%, color-mix(in srgb, var(--tos-accent) 20%, transparent), transparent 31%),
    linear-gradient(145deg, #0c0d11 0%, #15171e 68%, #0d0e12 100%);
  color: #fff;
}

.tos-offer__hero::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, #000 0%, transparent 90%);
  content: "";
}

.tos-offer__hero::after {
  position: absolute;
  z-index: -1;
  right: -9vw;
  bottom: -34vw;
  width: 58vw;
  height: 58vw;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 50%;
  box-shadow: 0 0 0 8vw rgba(255,255,255,.018), 0 0 0 16vw rgba(255,255,255,.012);
  content: "";
}

.tos-offer__noise {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .14;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
  pointer-events: none;
}

.tos-offer__hero-grid {
  display: grid;
  align-items: center;
  gap: clamp(54px, 7vw, 100px);
  grid-template-columns: minmax(0, 1.02fr) minmax(390px, .98fr);
}

.tos-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 50px;
  color: rgba(255,255,255,.52);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.tos-breadcrumb a:hover {
  color: #fff;
}

.tos-offer__hero h1 {
  max-width: 760px;
  margin-bottom: 28px;
  color: #fff;
  font-size: clamp(48px, 6.1vw, 84px);
  font-weight: 750;
}

.tos-offer__hero h1::after {
  display: inline-block;
  width: .18em;
  height: .18em;
  margin-left: .09em;
  border-radius: 50%;
  background: var(--tos-accent);
  content: "";
}

.tos-offer__lede {
  max-width: 670px;
  margin-bottom: 34px;
  color: rgba(255,255,255,.7);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.55;
}

.tos-offer__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}

.tos-offer__assurance {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 28px 0 0;
  color: rgba(255,255,255,.58);
  font-size: 13px;
}

.tos-offer__assurance svg {
  width: 16px;
  color: var(--tos-accent);
}

/* Abstract product visual: no image dependency. */
.tos-visual {
  position: relative;
  min-height: 520px;
  perspective: 1200px;
}

.tos-visual__glow {
  position: absolute;
  inset: 12% 4% 9%;
  filter: blur(60px);
  border-radius: 50%;
  background: color-mix(in srgb, var(--tos-accent) 30%, transparent);
  animation: tos-pulse 5s ease-in-out infinite;
}

.tos-visual__frame {
  position: absolute;
  top: 9%;
  right: 2%;
  left: 2%;
  overflow: hidden;
  transform: rotateY(-8deg) rotateX(4deg) rotateZ(1.5deg);
  transform-style: preserve-3d;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 22px;
  background: rgba(21, 23, 29, .76);
  box-shadow: 0 48px 110px rgba(0,0,0,.5);
  backdrop-filter: blur(20px);
  transition: transform 220ms ease-out;
}

.tos-visual__bar {
  display: flex;
  height: 48px;
  align-items: center;
  gap: 7px;
  padding: 0 16px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.tos-visual__bar i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
}

.tos-visual__bar i:first-child { background: var(--tos-accent); }

.tos-visual__bar span {
  margin-left: auto;
  color: rgba(255,255,255,.34);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px;
}

.tos-visual__canvas {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  padding: 37px;
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.012));
}

.tos-visual__canvas::after {
  position: absolute;
  right: -60px;
  bottom: -80px;
  width: 230px;
  height: 230px;
  border: 1px solid color-mix(in srgb, var(--tos-accent) 45%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 0 34px color-mix(in srgb, var(--tos-accent) 6%, transparent), 0 0 0 68px color-mix(in srgb, var(--tos-accent) 4%, transparent);
  content: "";
}

.tos-visual__label {
  display: inline-flex;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--tos-accent) 60%, transparent);
  border-radius: 999px;
  color: var(--tos-accent);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tos-visual__headline {
  display: grid;
  width: 70%;
  gap: 10px;
  margin-top: 26px;
}

.tos-visual__headline b {
  height: 13px;
  border-radius: 99px;
  background: rgba(255,255,255,.8);
}

.tos-visual__headline b:nth-child(2) { width: 83%; }
.tos-visual__headline b:nth-child(3) { width: 54%; background: var(--tos-accent); }

.tos-visual__cards {
  display: grid;
  gap: 12px;
  margin-top: 50px;
  grid-template-columns: repeat(3, 1fr);
}

.tos-visual__cards i {
  height: 100px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.045);
}

.tos-visual__cards i:nth-child(2) {
  border-color: color-mix(in srgb, var(--tos-accent) 55%, transparent);
  background: color-mix(in srgb, var(--tos-accent) 10%, transparent);
}

.tos-visual__path {
  position: absolute;
  inset: 38px 10px auto;
  width: calc(100% - 20px);
  height: 280px;
  overflow: visible;
  pointer-events: none;
}

.tos-visual__path path {
  stroke: color-mix(in srgb, var(--tos-accent) 65%, transparent);
  stroke-width: 2;
  stroke-dasharray: 8 8;
  animation: tos-dash 16s linear infinite;
}

.tos-visual__path circle {
  fill: var(--tos-accent);
  filter: drop-shadow(0 0 8px var(--tos-accent));
}

.tos-visual__chip {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 14px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  background: rgba(12,13,17,.82);
  box-shadow: 0 15px 35px rgba(0,0,0,.3);
  color: rgba(255,255,255,.8);
  font-size: 11px;
  font-weight: 750;
  backdrop-filter: blur(12px);
  animation: tos-float 4.5s ease-in-out infinite;
}

.tos-visual__chip svg { width: 18px; color: var(--tos-accent); }
.tos-visual__chip--one { top: 2%; right: -1%; }
.tos-visual__chip--two { right: 8%; bottom: 2%; animation-delay: -2.2s; }

.tos-offer--blocks .tos-visual__canvas { background-image: linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px); background-size: 28px 28px; }
.tos-offer--commerce .tos-visual__cards i { border-radius: 50% 50% 12px 12px; }
.tos-offer--wave .tos-visual__frame { border-radius: 42px 14px 42px 14px; }
.tos-offer--grid .tos-visual__canvas::before { position:absolute; inset:0; background: repeating-linear-gradient(135deg, transparent 0 22px, rgba(255,255,255,.025) 22px 23px); content:""; }
.tos-offer--system .tos-visual__cards { grid-template-columns: 1.4fr .8fr .8fr; }
.tos-offer--signal .tos-visual__path path { stroke-width: 4; stroke-dasharray: 2 11; stroke-linecap: round; }

/* Outcomes. */
.tos-outcomes {
  border-bottom: 1px solid var(--tos-line);
  background: #fff;
}

.tos-outcomes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.tos-outcome {
  display: grid;
  min-height: 190px;
  align-content: center;
  gap: 20px;
  padding: 36px;
  border-right: 1px solid var(--tos-line);
  grid-template-columns: auto 1fr;
}

.tos-outcome:first-child { border-left: 1px solid var(--tos-line); }
.tos-outcome > span { padding-top: 2px; color: var(--tos-accent); font-family: ui-monospace, monospace; font-size: 11px; font-weight: 800; }
.tos-outcome h2 { margin-bottom: 9px; font-size: 20px; }
.tos-outcome p { margin-bottom: 0; color: var(--tos-muted); font-size: 14px; line-height: 1.55; }

.tos-section { padding: clamp(86px, 10vw, 142px) 0; }

.tos-section--statement {
  background: var(--tos-paper);
}

.tos-statement {
  display: grid;
  align-items: start;
  gap: clamp(48px, 8vw, 130px);
  grid-template-columns: 180px 1fr;
}

.tos-statement__marker {
  display: grid;
  width: 150px;
  height: 150px;
  place-items: center;
  transform: rotate(-5deg);
  border: 1px solid var(--tos-line);
  border-radius: 34px;
  background: #fff;
  box-shadow: 18px 18px 0 color-mix(in srgb, var(--tos-accent) 26%, transparent);
}

.tos-statement__marker svg { width: 62px; color: var(--tos-accent); }
.tos-statement h2 { max-width: 890px; margin-bottom: 28px; font-size: clamp(40px, 5.1vw, 68px); }
.tos-statement > div:last-child > p:last-child { max-width: 800px; margin-bottom: 0; color: var(--tos-muted); font-size: 20px; line-height: 1.7; }

.tos-section--features { background: #fff; }
.tos-heading { max-width: 760px; margin-bottom: 64px; }
.tos-heading h2 { margin-bottom: 0; font-size: clamp(38px, 4.5vw, 62px); }
.tos-heading > p:last-child { margin-top: 24px; margin-bottom: 0; color: var(--tos-muted); font-size: 18px; }
.tos-heading--split { display: grid; max-width: none; align-items: end; gap: 70px; grid-template-columns: 1.35fr .65fr; }
.tos-heading--split > p:last-child { margin: 0; }
.tos-heading--center { margin-inline: auto; text-align: center; }
.tos-heading--center .tos-kicker { justify-content: center; }

.tos-feature-grid {
  display: grid;
  border-top: 1px solid var(--tos-line);
  border-left: 1px solid var(--tos-line);
  grid-template-columns: repeat(3, 1fr);
}

.tos-feature {
  position: relative;
  min-height: 330px;
  padding: 38px;
  overflow: hidden;
  border-right: 1px solid var(--tos-line);
  border-bottom: 1px solid var(--tos-line);
  background: #fff;
  transition: background 220ms ease, transform 220ms ease;
}

.tos-feature:hover { z-index: 1; transform: translateY(-5px); background: var(--tos-paper); box-shadow: 0 20px 50px rgba(17,18,24,.08); }
.tos-feature > span { position: absolute; top: 32px; right: 32px; color: #a0a1a7; font-family: ui-monospace, monospace; font-size: 11px; }
.tos-feature__icon { display: grid; width: 54px; height: 54px; margin-bottom: 55px; place-items: center; border-radius: 16px; background: color-mix(in srgb, var(--tos-accent) 12%, white); color: var(--tos-accent); }
.tos-feature__icon svg { width: 26px; }
.tos-feature h3 { margin-bottom: 15px; font-size: 23px; }
.tos-feature p { margin-bottom: 0; color: var(--tos-muted); font-size: 15px; }

.tos-section--editorial { padding-block: 0 100px; background: #fff; }
.tos-editorial { display:grid; gap: 40px; padding: 48px; border: 1px solid var(--tos-line); border-radius: var(--tos-radius); background: var(--tos-paper); grid-template-columns: 220px 1fr; }
.tos-editorial .tos-kicker { margin: 4px 0 0; }
.tos-editorial__content { max-width: 760px; color: var(--tos-muted); }
.tos-editorial__content > *:last-child { margin-bottom: 0; }

.tos-section--process { overflow: hidden; background: #111218; color: #fff; }
.tos-section--process::before { position:absolute; top:-300px; left:-200px; width:600px; height:600px; border:1px solid rgba(255,255,255,.055); border-radius:50%; box-shadow:0 0 0 100px rgba(255,255,255,.015), 0 0 0 200px rgba(255,255,255,.01); content:""; }
.tos-section--process .tos-heading h2 { color: #fff; }
.tos-process { position: relative; display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); }
.tos-process__line { position: absolute; top: 29px; right: 12.5%; left: 12.5%; height: 1px; overflow: hidden; background: rgba(255,255,255,.15); }
.tos-process__line i { display: block; width: 30%; height: 100%; background: var(--tos-accent); animation: tos-line 5s ease-in-out infinite; }
.tos-process__step { position: relative; padding: 0 28px; text-align: center; }
.tos-process__step > span { position: relative; z-index: 1; display: grid; width: 58px; height: 58px; margin: 0 auto 32px; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: #111218; color: var(--tos-accent); font-family: ui-monospace, monospace; font-size: 11px; }
.tos-process__step h3 { margin-bottom: 14px; color: #fff; font-size: 22px; }
.tos-process__step p { margin: 0; color: rgba(255,255,255,.56); font-size: 14px; }

.tos-section--pricing { background: var(--tos-paper); }
.tos-pricing-grid { display: grid; align-items: stretch; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.tos-price-card { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 36px; border: 1px solid var(--tos-line); border-radius: var(--tos-radius); background: #fff; box-shadow: 0 14px 45px rgba(17,18,24,.04); }
.tos-price-card--featured { transform: translateY(-10px); border-color: var(--tos-accent); box-shadow: 0 24px 70px color-mix(in srgb, var(--tos-accent) 14%, transparent); }
.tos-price-card__flag { position: absolute; top: 18px; right: 18px; padding: 5px 9px; border-radius: 99px; background: var(--tos-accent); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tos-price-card__name { margin-bottom: 25px; font-size: 14px; font-weight: 800; text-transform: uppercase; }
.tos-price-card__price { display: flex; align-items: flex-end; min-height: 72px; margin-bottom: 24px; }
.tos-price-card__price sup { align-self: flex-start; margin-top: 14px; color: var(--tos-accent); font-size: 22px; font-weight: 800; }
.tos-price-card__price strong { font-size: clamp(48px, 5vw, 68px); letter-spacing: -.07em; line-height: .9; }
.tos-price-card__price span { margin: 0 0 3px 8px; color: var(--tos-muted); font-size: 10px; font-weight: 800; }
.tos-price-card > p:not(.tos-price-card__name) { min-height: 76px; margin-bottom: 22px; color: var(--tos-muted); font-size: 14px; }
.tos-price-card ul { display: grid; gap: 12px; margin: 0 0 32px; padding: 25px 0 0; border-top: 1px solid var(--tos-line); list-style: none; }
.tos-price-card li { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; }
.tos-price-card li svg { width: 16px; min-width: 16px; margin-top: 2px; color: var(--tos-accent); }
.tos-price-card .tos-button { width: 100%; margin-top: auto; }
.tos-pricing-note { margin: 30px 0 0; color: var(--tos-muted); font-size: 12px; text-align: center; }
.tos-custom-price { display: flex; max-width: 880px; align-items: center; justify-content: space-between; gap: 40px; margin-inline: auto; padding: clamp(34px, 6vw, 68px); border: 1px solid var(--tos-line); border-radius: 32px; background: #fff; box-shadow: 0 22px 70px rgba(17,18,24,.06); }
.tos-custom-price span { color: var(--tos-accent); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tos-custom-price strong { display: block; margin: 10px 0 12px; font-size: clamp(52px, 7vw, 84px); letter-spacing: -.07em; line-height: 1; }
.tos-custom-price p { max-width: 460px; margin: 0; color: var(--tos-muted); }

.tos-section--faq { background: #fff; }
.tos-faq-layout { display: grid; align-items: start; gap: clamp(50px, 9vw, 130px); grid-template-columns: .72fr 1.28fr; }
.tos-faq-layout .tos-heading { position: sticky; top: 120px; margin-bottom: 0; }
.tos-faq-layout .tos-heading h2 { font-size: clamp(42px, 5vw, 64px); }
.tos-faq details { border-top: 1px solid var(--tos-line); }
.tos-faq details:last-child { border-bottom: 1px solid var(--tos-line); }
.tos-faq summary { position: relative; display: flex; min-height: 90px; align-items: center; justify-content: space-between; gap: 25px; padding: 20px 48px 20px 0; cursor: pointer; font-size: 17px; font-weight: 750; list-style: none; }
.tos-faq summary::-webkit-details-marker { display: none; }
.tos-faq summary i { position: absolute; right: 4px; width: 22px; height: 22px; }
.tos-faq summary i::before, .tos-faq summary i::after { position: absolute; top: 10px; right: 2px; left: 2px; height: 2px; background: var(--tos-accent); content: ""; transition: transform 180ms ease; }
.tos-faq summary i::after { transform: rotate(90deg); }
.tos-faq details[open] summary i::after { transform: rotate(0); }
.tos-faq details > div { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 260ms ease; }
.tos-faq details[open] > div { grid-template-rows: 1fr; }
.tos-faq details > div p { max-width: 650px; margin: 0 0 28px; overflow: hidden; color: var(--tos-muted); font-size: 15px; }

.tos-final { padding: 90px 0; overflow: hidden; background: var(--tos-accent); color: #fff; }
.tos-final__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 70px; }
.tos-final__inner::after { position:absolute; z-index:0; right: 12%; width:250px; height:250px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.05), 0 0 0 76px rgba(255,255,255,.03); content:""; }
.tos-final__inner > * { position:relative; z-index:1; }
.tos-final .tos-kicker { margin-bottom: 14px; color: rgba(255,255,255,.7); }
.tos-final h2 { max-width: 780px; margin-bottom: 18px; color:#fff; font-size: clamp(38px, 5vw, 64px); }
.tos-final p:last-child { max-width: 690px; margin-bottom: 0; color: rgba(255,255,255,.75); }
.tos-final .tos-button { flex: 0 0 auto; }

/* Main Offers directory. Full-bleed inside common theme/Elementor page wrappers. */
.tos-directory {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: -50vw;
  overflow: hidden;
  background: var(--tos-paper);
}

.tos-directory__hero {
  position: relative;
  min-height: 680px;
  overflow: hidden;
  padding: clamp(105px, 12vw, 170px) 0 100px;
  background: #111218;
  color: #fff;
}

.tos-directory__hero::before { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:64px 64px; content:""; }
.tos-directory__hero .tos-wrap { position:relative; display:grid; align-items:center; gap:80px; grid-template-columns:1.08fr .92fr; }
.tos-directory__intro h1 { max-width:760px; margin-bottom:30px; color:#fff; font-size:clamp(52px, 7.2vw, 96px); }
.tos-directory__intro > p:last-child { max-width:700px; margin:0; color:rgba(255,255,255,.65); font-size:20px; }
.tos-directory__mesh { position:absolute; inset:0; pointer-events:none; }
.tos-directory__mesh i { position:absolute; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.tos-directory__mesh i:nth-child(1) { top:-150px; right:-110px; width:520px; height:520px; }
.tos-directory__mesh i:nth-child(2) { right:50px; bottom:-280px; width:620px; height:620px; }
.tos-directory__mesh i:nth-child(3) { top:14%; right:18%; width:210px; height:210px; border-color:color-mix(in srgb,var(--tos-accent) 40%,transparent); animation:tos-pulse 5s ease-in-out infinite; }
.tos-directory__signal { position:relative; min-height:380px; }
.tos-directory__ring { position:absolute; z-index:1; top:30px; left:50%; display:grid; width:230px; height:230px; place-content:center; transform:translateX(-50%); border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.025),0 0 0 68px rgba(255,255,255,.015); text-align:center; }
.tos-directory__ring::after { position:absolute; inset:14px; border:1px dashed var(--tos-accent); border-radius:50%; content:""; animation:tos-spin 24s linear infinite; }
.tos-directory__ring span { font-size:80px; font-weight:750; letter-spacing:-.08em; line-height:.8; }
.tos-directory__ring small { margin-top:12px; color:rgba(255,255,255,.52); font-size:10px; font-weight:800; letter-spacing:.15em; line-height:1.4; text-transform:uppercase; }
.tos-directory__signal svg { position:absolute; right:0; bottom:0; left:0; width:100%; overflow:visible; }
.tos-directory__signal path { fill:none; stroke:var(--tos-accent); stroke-width:2; stroke-dasharray:8 8; animation:tos-dash 14s linear infinite; }

.tos-directory__catalog { padding: 80px 0 140px; }
.tos-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:54px; padding-bottom:22px; border-bottom:1px solid var(--tos-line); }
.tos-filter button { padding:9px 14px; border:1px solid var(--tos-line); border-radius:999px; background:transparent; color:var(--tos-muted); cursor:pointer; font:inherit; font-size:11px; font-weight:800; line-height:1.2; transition:all 160ms ease; }
.tos-filter button:hover, .tos-filter button.is-active { border-color:var(--tos-ink); background:var(--tos-ink); color:#fff; }
.tos-offer-grid { display:grid; gap:18px; grid-template-columns:repeat(3,1fr); }
.tos-offer-card { position:relative; display:flex; min-height:490px; flex-direction:column; overflow:hidden; padding:30px; border:1px solid var(--tos-line); border-radius:20px; background:#fff; box-shadow:0 10px 35px rgba(17,18,24,.035); transition:transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
.tos-offer-card[hidden] { display:none; }
.tos-offer-card:hover { transform:translateY(-7px); border-color:var(--card-accent); box-shadow:0 24px 60px color-mix(in srgb,var(--card-accent) 14%,transparent); }
.tos-offer-card__link { position:absolute; z-index:3; inset:0; }
.tos-offer-card__top { display:flex; align-items:center; justify-content:space-between; color:var(--tos-muted); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.tos-offer-card__top i { display:grid; width:34px; height:34px; place-items:center; border:1px solid var(--tos-line); border-radius:50%; color:var(--card-accent); transition:all 200ms ease; }
.tos-offer-card__top svg { width:16px; }
.tos-offer-card:hover .tos-offer-card__top i { transform:rotate(-35deg); border-color:var(--card-accent); background:var(--card-accent); color:#fff; }
.tos-offer-card__glyph { position:relative; width:100%; height:130px; margin:25px 0 28px; overflow:hidden; border-radius:14px; background:color-mix(in srgb,var(--card-accent) 8%,#f5f3ed); }
.tos-offer-card__glyph b { position:absolute; top:25px; width:80px; height:80px; border:1px solid color-mix(in srgb,var(--card-accent) 42%,transparent); border-radius:50%; }
.tos-offer-card__glyph b:nth-child(1) { left:calc(50% - 82px); }
.tos-offer-card__glyph b:nth-child(2) { left:calc(50% - 40px); }
.tos-offer-card__glyph b:nth-child(3) { left:calc(50% + 2px); }
.tos-offer-card__glyph em { position:absolute; top:55px; left:calc(50% - 10px); width:20px; height:20px; transform:rotate(45deg); border-radius:3px; background:var(--card-accent); box-shadow:0 0 24px color-mix(in srgb,var(--card-accent) 65%,transparent); }
.tos-offer-card h2 { margin-bottom:14px; font-size:26px; }
.tos-offer-card > p { display:-webkit-box; margin-bottom:28px; overflow:hidden; color:var(--tos-muted); font-size:14px; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.tos-offer-card__price { display:flex; align-items:baseline; gap:7px; margin-top:auto; padding-top:18px; border-top:1px solid var(--tos-line); }
.tos-offer-card__price small { margin-right:auto; color:var(--tos-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.tos-offer-card__price strong { font-size:25px; letter-spacing:-.04em; }
.tos-offer-card__price span { color:var(--tos-muted); font-size:9px; font-weight:800; }
.tos-directory__empty { padding:50px; text-align:center; }

.tos-directory__cta { padding:90px 0; background:var(--tos-accent); color:#fff; }
.tos-directory__cta-inner { display:flex; align-items:center; justify-content:space-between; gap:70px; }
.tos-directory__cta .tos-kicker { margin-bottom:15px; color:rgba(255,255,255,.7); }
.tos-directory__cta h2 { margin-bottom:15px; color:#fff; font-size:clamp(40px,5vw,62px); }
.tos-directory__cta p:last-child { max-width:680px; margin:0; color:rgba(255,255,255,.75); }
.tos-directory__cta .tos-button { flex:0 0 auto; }

.tos-reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms cubic-bezier(.2,.75,.25,1), transform 700ms cubic-bezier(.2,.75,.25,1); }
.tos-reveal.is-visible { opacity: 1; transform: translateY(0); }

@keyframes tos-dash { to { stroke-dashoffset: -160; } }
@keyframes tos-pulse { 0%,100% { transform:scale(.92); opacity:.55; } 50% { transform:scale(1.05); opacity:1; } }
@keyframes tos-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes tos-line { 0% { transform:translateX(-110%); } 50%,100% { transform:translateX(430%); } }
@keyframes tos-spin { to { transform:rotate(360deg); } }

@media (max-width: 1024px) {
  .tos-offer__hero-grid { grid-template-columns: 1fr; }
  .tos-offer__hero-copy { max-width: 780px; }
  .tos-visual { width: min(650px, 100%); min-height: 500px; margin-inline: auto; }
  .tos-feature-grid, .tos-offer-grid { grid-template-columns: repeat(2, 1fr); }
  .tos-pricing-grid { gap: 12px; }
  .tos-price-card { padding: 28px; }
  .tos-directory__hero .tos-wrap { grid-template-columns: 1fr; }
  .tos-directory__signal { min-height:300px; }
}

@media (max-width: 780px) {
  .tos-wrap { width: min(100% - 32px, 1180px); }
  .tos-offer, .tos-directory { font-size: 16px; }
  .tos-offer__hero { min-height: auto; padding: 80px 0 75px; }
  .tos-breadcrumb { margin-bottom: 38px; }
  .tos-offer__hero h1 { font-size: clamp(43px, 12vw, 66px); }
  .tos-visual { min-height: 430px; }
  .tos-visual__frame { right: 0; left: 0; }
  .tos-visual__canvas { min-height: 310px; padding: 26px; }
  .tos-visual__cards { margin-top: 40px; }
  .tos-outcomes__grid { grid-template-columns: 1fr; }
  .tos-outcome, .tos-outcome:first-child { min-height: 145px; border-right:1px solid var(--tos-line); border-bottom:1px solid var(--tos-line); border-left:1px solid var(--tos-line); }
  .tos-outcome:last-child { border-bottom:0; }
  .tos-statement { grid-template-columns: 1fr; }
  .tos-statement__marker { width:110px; height:110px; }
  .tos-statement__marker svg { width:48px; }
  .tos-heading--split { gap: 25px; grid-template-columns: 1fr; }
  .tos-feature-grid { grid-template-columns: 1fr; }
  .tos-feature { min-height: 290px; }
  .tos-editorial { padding:34px; grid-template-columns:1fr; }
  .tos-process { gap: 42px; grid-template-columns: 1fr; }
  .tos-process__line { top:0; right:auto; bottom:0; left:29px; width:1px; height:auto; }
  .tos-process__line i { width:100%; height:30%; animation-name:tos-line-vertical; }
  .tos-process__step { display:grid; align-items:start; gap:5px 22px; padding:0; text-align:left; grid-template-columns:58px 1fr; }
  .tos-process__step > span { margin:0; grid-row:1 / 3; }
  .tos-process__step h3 { margin:4px 0 5px; }
  .tos-pricing-grid { gap: 18px; grid-template-columns: 1fr; }
  .tos-price-card--featured { transform:none; }
  .tos-custom-price { align-items:flex-start; flex-direction:column; }
  .tos-faq-layout { grid-template-columns: 1fr; }
  .tos-faq-layout .tos-heading { position:static; }
  .tos-final__inner, .tos-directory__cta-inner { align-items:flex-start; flex-direction:column; }
  .tos-directory__hero { min-height:auto; padding:100px 0 60px; }
  .tos-directory__intro h1 { font-size:clamp(48px,13vw,72px); }
  .tos-directory__signal { min-height:280px; }
  .tos-offer-grid { grid-template-columns: 1fr; }
  .tos-offer-card { min-height:460px; }
}

@media (max-width: 520px) {
  .tos-wrap { width: min(100% - 24px, 1180px); }
  .tos-offer__actions { align-items:stretch; flex-direction:column; }
  .tos-button { width:100%; }
  .tos-button--text { padding:12px 4px; }
  .tos-visual { min-height:360px; }
  .tos-visual__canvas { min-height:270px; padding:22px; }
  .tos-visual__cards i { height:70px; }
  .tos-visual__chip--one { top:1%; right:0; }
  .tos-visual__chip--two { right:2%; bottom:-2%; }
  .tos-outcome { padding:28px 24px; }
  .tos-section { padding:78px 0; }
  .tos-feature { padding:28px; }
  .tos-price-card { padding:27px 24px; }
  .tos-filter { flex-wrap:nowrap; margin-right:-12px; padding-right:12px; overflow-x:auto; scrollbar-width:none; }
  .tos-filter::-webkit-scrollbar { display:none; }
  .tos-filter button { flex:0 0 auto; }
  .tos-directory__catalog { padding:60px 0 90px; }
  .tos-directory__cta { padding:72px 0; }
}

@keyframes tos-line-vertical { 0% { transform:translateY(-110%); } 50%,100% { transform:translateY(430%); } }

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