/* ==========================================================================
   SERVICES
   ========================================================================== */

.svc {
  position: relative;
  padding-block: clamp(3.5rem, 10vh, 7.5rem);
  border-bottom: 1px solid var(--line-soft);
  scroll-margin-top: calc(var(--nav-h) + 20px);
  overflow: hidden;
}
.svc__grid { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (min-width: 980px) {
  .svc__grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
  .svc:nth-child(even) .svc__media { order: 2; }
}

.svc__media { position: relative; }
/* Landscape frame. These are wide environmental photographs — a portrait
   frame cropped them to a 45% slice and cut the subject in half. The overscan
   is the parallax travel room; it is kept light so the crop stays generous.
   Each image's crop window is aimed by `focus` in the catalog. */
.svc__frame { position: relative; overflow: hidden; aspect-ratio: 5/4; background: var(--bg-3); }
.svc__frame picture { display: block; width: 100%; height: 100%; }
.svc__frame img { width: 100%; height: 110%; object-fit: cover; position: absolute; top: -5%; }
@media (max-width: 979px) { .svc__frame { aspect-ratio: 16/10; } }

.svc__body { position: relative; }
.svc__k { display: block; color: var(--volt); font-size: var(--t-micro); letter-spacing: 0.26em; margin-bottom: 0.9rem; }
.svc__title { font-size: var(--t-3xl); line-height: 0.88; letter-spacing: -0.045em; }
.svc__blurb { margin-top: 1.3rem; font-size: var(--t-lg); color: var(--fg-2); line-height: 1.5; max-width: 44ch; }

.svc__price {
  margin-top: clamp(1.5rem, 3.5vh, 2.2rem);
  font-family: var(--f-display); font-weight: 900; font-stretch: 118%;
  font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1; letter-spacing: -0.05em;
}
.svc__price em {
  display: block; margin-top: 0.6rem;
  font-family: var(--f-mono); font-style: normal; font-weight: 400;
  font-size: var(--t-micro); letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--fg-4);
}
.svc__meta { margin-top: 0.8rem; font-size: var(--t-micro); letter-spacing: 0.16em; color: var(--fg-4); }

/* ------------------------------------------------------------ RATE ROWS --- */
.rate { display: grid; margin-top: clamp(1.6rem, 3.5vh, 2.4rem); }
.rate__row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem 1.4rem; align-items: center;
  padding: 1rem 0.85rem 1rem 0;
  border-top: 1px solid var(--line-soft);
  transition: background .35s var(--e-out), padding-left .35s var(--e-out);
}
.rate__row:last-child { border-bottom: 1px solid var(--line-soft); }
.rate__row:hover { background: var(--bg-2); padding-left: 0.85rem; }
.rate__label { font-size: var(--t-base); font-weight: 600; letter-spacing: -0.015em; }
.rate__label em {
  display: block; margin-top: 0.25rem; font-style: normal;
  font-family: var(--f-mono); font-size: var(--t-micro);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-4);
}
.rate__price {
  font-family: var(--f-display); font-weight: 900; font-stretch: 110%;
  font-size: var(--t-xl); letter-spacing: -0.035em;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.rate__go {
  width: 32px; height: 32px; flex: none;
  border: 1px solid var(--line); border-radius: 50%;
  display: grid; place-items: center; transition: all .35s var(--e-out);
}
.rate__go svg { width: 13px; height: 13px; }
.rate__row:hover .rate__go { background: var(--volt); border-color: var(--volt); color: #04150b; transform: rotate(-45deg); }
.rate__row--feature { background: linear-gradient(90deg, rgba(43,255,136,.05), transparent 55%); }
.rate__row--feature .rate__price { color: var(--volt); }

/* --------------------------------------------------------- DELIVERABLES --- */
.svc__deliv {
  display: grid; gap: 1px; background: var(--line-soft);
  border-block: 1px solid var(--line-soft);
  margin-top: clamp(1.6rem, 3.5vh, 2.4rem);
}
@media (min-width: 520px) { .svc__deliv { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .svc__deliv { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.svc__deliv-item {
  background: var(--bg); padding: 1.1rem 1.2rem;
  display: grid; gap: 0.3rem;
}
.svc__deliv-item strong {
  font-family: var(--f-display); font-weight: 900; font-stretch: 118%;
  font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1; letter-spacing: -0.045em;
  color: var(--volt); font-variant-numeric: tabular-nums;
}
.svc__deliv-item span { font-size: var(--t-sm); color: var(--fg-2); line-height: 1.45; }

/* -------------------------------------------------------- VALUE SAVING ---- */
.svc__value {
  margin-top: clamp(1.6rem, 3.5vh, 2.4rem);
  padding: clamp(1.1rem, 2.2vw, 1.6rem);
  border: 1px solid var(--line-soft); background: var(--bg-2);
}
.svc__value ul { display: grid; gap: 0; }
.svc__value li {
  display: flex; justify-content: space-between; gap: 1rem;
  padding-block: 0.55rem; font-size: var(--t-sm); color: var(--fg-3);
}
.svc__value-sum {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem 1rem;
  align-items: baseline; margin-top: 0.7rem; padding-top: 0.9rem;
  border-top: 1px solid var(--line);
}
.svc__value-sum span { font-family: var(--f-mono); font-size: var(--t-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-4); text-decoration: line-through; }
.svc__value-sum b {
  font-family: var(--f-display); font-weight: 900; font-stretch: 112%;
  font-size: var(--t-lg); letter-spacing: -0.03em; color: var(--volt);
}

.svc__inc { margin-top: clamp(1.6rem, 3.5vh, 2.4rem); }
@media (min-width: 620px) { .svc__inc { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem 1.6rem; } }
.svc__note {
  margin-top: 1.4rem; font-size: var(--t-sm); color: var(--fg-4);
  line-height: 1.65; max-width: 52ch;
  padding-left: 0.9rem; border-left: 1px solid var(--line);
}
.svc__cta { display: inline-block; margin-top: clamp(1.8rem, 4vh, 2.6rem); }

/* ------------------------------------------------------------- ADD-ONS ---- */
.addon-grid { display: grid; gap: 1px; background: var(--line-soft); border-block: 1px solid var(--line-soft); }
@media (min-width: 620px)  { .addon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .addon-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.addon {
  background: var(--bg); padding: clamp(1.3rem, 2.2vw, 1.8rem);
  display: grid; gap: 0.5rem; align-content: start;
  transition: background .4s var(--e-out);
}
.addon:hover { background: var(--bg-2); }
.addon__price {
  font-family: var(--f-display); font-weight: 900; font-stretch: 112%;
  font-size: var(--t-xl); letter-spacing: -0.035em; color: var(--volt);
}
.addon__price em {
  font-style: normal; font-family: var(--f-mono); font-weight: 400;
  font-size: var(--t-micro); letter-spacing: 0.14em; color: var(--fg-4); margin-left: 0.4rem;
}
.addon__name { font-size: var(--t-base); font-weight: 600; letter-spacing: -0.015em; }
.addon__desc { font-size: var(--t-sm); color: var(--fg-3); line-height: 1.55; }

/* -------------------------------------------------------- TERMS STRIP ----- */
.terms-strip { display: grid; gap: clamp(1.8rem, 4vw, 3rem); }
@media (min-width: 860px) { .terms-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.terms-strip > div { padding-top: 1.3rem; border-top: 1px solid var(--line); }
.terms-strip__h {
  font-family: var(--f-mono); font-size: var(--t-micro);
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--volt);
  margin-bottom: 0.9rem;
}
.terms-strip p { font-size: var(--t-sm); color: var(--fg-2); line-height: 1.7; max-width: 42ch; }
