/* ============================================================
   PAGES.CSS — Section-specific styles + responsive
   ============================================================ */

/* ===================== HERO ===================== */
.hero {
  position: relative;
  min-height: 94vh;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(160deg, #0A3A33 0%, #14201D 100%);
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,32,29,.45) 0%, rgba(20,32,29,.28) 42%, rgba(10,58,51,.82) 100%);
}

.hero__content {
  position: relative;
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: clamp(100px, 14vw, 180px) var(--gut) clamp(48px, 7vw, 90px);
}

.hero__text {
  max-width: 920px;
  animation: heroUp .9s cubic-bezier(.22,.61,.36,1) both;
}

.hero__eyebrow {
  display: inline-block;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--c-brass-light);
  margin-bottom: 24px;
}

.hero__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: var(--fs-hero);
  line-height: 1.0;
  letter-spacing: -.02em;
  color: var(--c-on-dark);
  margin: 0 0 22px;
}

.hero__subtitle {
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  line-height: 1.5;
  color: rgba(246,242,234,.82);
  margin: 0 0 40px;
  max-width: 560px;
}

.hero__features {
  margin-top: clamp(44px, 6vw, 72px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 28px 36px;
  border-top: 1px solid rgba(246,242,234,.18);
  padding-top: 34px;
  animation: heroUp 1.1s cubic-bezier(.22,.61,.36,1) both;
}

.hero__feature-num {
  font-family: var(--ff-display);
  font-size: 1.05rem;
  color: var(--c-brass-light);
  margin-bottom: 8px;
}

.hero__feature-text {
  color: var(--c-on-dark);
  font-weight: 500;
  font-size: 1.02rem;
}

/* ===================== COST BANNER ===================== */
.cost-banner {
  padding: clamp(56px, 7vw, 96px) 0;
}

.cost-banner__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 32px 48px;
  justify-content: space-between;
}

.cost-banner__text {
  flex: 1 1 460px;
  max-width: 680px;
}

.cost-banner__heading {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(1.8rem, 3.6vw, 2.9rem);
  line-height: 1.1;
  letter-spacing: -.015em;
  color: var(--c-on-dark);
  margin: 0 0 16px;
}

.cost-banner__desc {
  font-size: clamp(1.02rem, 1.2vw, 1.18rem);
  line-height: 1.6;
  color: rgba(246,242,234,.8);
  margin: 0;
}

.cost-banner__countries {
  margin-top: clamp(36px, 4vw, 52px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.country-card {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(246,242,234,.16);
}

.country-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.country-card:hover .country-card__img {
  transform: scale(1.06);
}

.country-card__label {
  position: absolute;
  inset: auto 0 0 0;
  background: linear-gradient(transparent, rgba(10,58,51,.78));
  padding: 30px 16px 14px;
  color: var(--c-on-dark);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .01em;
}

/* ===================== APPROACH + PROCESS ===================== */
.approach__intro {
  max-width: 880px;
  margin-bottom: clamp(40px, 5.5vw, 72px);
}

.approach__heading {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.08;
  letter-spacing: -.018em;
  color: var(--c-ink);
  margin: 0 0 22px;
  text-wrap: balance;
}

.approach__lead {
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
  line-height: 1.6;
  color: var(--c-body);
  margin: 0;
}
.approach__lead strong {
  color: var(--c-jade);
  font-weight: 600;
}

.process__header {
  margin-bottom: clamp(28px, 3.5vw, 44px);
  padding-top: clamp(28px, 3.5vw, 44px);
  border-top: 1px solid var(--c-line);
}

.process__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(1.7rem, 3.4vw, 2.7rem);
  line-height: 1.1;
  letter-spacing: -.015em;
  color: var(--c-ink);
  margin: 0;
  max-width: 760px;
  text-wrap: balance;
}

.process__list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.process__card-inner {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(18px, 4vw, 56px);
  align-items: flex-start;
}

.process__card-left {
  flex: 1 1 240px;
  max-width: 400px;
  display: flex;
  gap: 18px;
  align-items: flex-start;
}

.process__card-num {
  font-family: var(--ff-display);
  font-size: 2.2rem;
  color: var(--c-brass);
  line-height: 1;
  flex-shrink: 0;
}

.process__card-title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.4rem;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.2;
}

.process__card-body {
  flex: 2 1 340px;
}

.process__card-body p {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--c-muted);
  margin: 0;
}

/* ===================== ROADBOOK ===================== */
.roadbook__intro {
  max-width: 720px;
  margin-bottom: clamp(40px, 5vw, 60px);
}

.roadbook__layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(28px, 3.5vw, 52px);
  align-items: start;
}

.roadbook__spread {
  margin: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--c-line);
  box-shadow: 0 30px 70px -50px rgba(20,32,29,.5);
}

.roadbook__spread img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.roadbook__benefits {
  margin: 26px 0 0;
  gap: 14px;
}

/* --- Timeline --- */
.timeline {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(22px, 2.6vw, 32px);
  box-shadow: 0 30px 70px -50px rgba(20,32,29,.5);
}

.timeline__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 16px;
  margin-bottom: 6px;
}

.timeline__day {
  font-family: var(--ff-display);
  font-size: 1.35rem;
  color: var(--c-ink);
}

.timeline__location {
  font-size: .82rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--c-dim);
}

.timeline__subtitle {
  font-size: .9rem;
  color: var(--c-muted);
  margin-bottom: 20px;
}

.timeline__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--c-sand-2);
}

.timeline__legend-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .78rem;
  color: var(--c-muted);
}

.timeline__legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}
.timeline__legend-dot--flight  { background: #3E7CA8; }
.timeline__legend-dot--hotel   { background: var(--c-jade); }
.timeline__legend-dot--food    { background: var(--c-brass); }
.timeline__legend-dot--tour    { background: #6F9E5B; }
.timeline__legend-dot--rest    { background: #4FA39E; }

/* Timeline rail */
.timeline__rail {
  position: relative;
  padding-left: 74px;
}

.timeline__axis {
  position: absolute;
  left: 62px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(var(--c-brass), rgba(180,130,74,.25));
}

.timeline__item {
  position: relative;
  margin-bottom: 18px;
}
.timeline__item:last-child {
  margin-bottom: 0;
}

.timeline__time {
  position: absolute;
  left: -74px;
  top: 1px;
  width: 46px;
  text-align: right;
  font-size: .84rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.timeline__time--food     { color: var(--c-brass); }
.timeline__time--transfer { color: var(--c-dim); }
.timeline__time--tour     { color: #6F9E5B; }
.timeline__time--rest     { color: #4FA39E; }
.timeline__time--hotel    { color: var(--c-jade); }

/* Dot variants */
.timeline__dot {
  position: absolute;
  left: -18px;
  top: 5px;
  width: 12px;
  height: 12px;
  border-radius: var(--r-pill);
  border: 3px solid var(--c-cream);
  box-shadow: 0 0 0 1px #E4D9C2;
}
.timeline__dot--food    { background: var(--c-brass); }
.timeline__dot--tour    { background: #6F9E5B; }
.timeline__dot--rest    { background: #4FA39E; }
.timeline__dot--hotel   { background: var(--c-jade); }

.timeline__dot--transfer {
  left: -17px;
  top: 6px;
  width: 10px;
  height: 10px;
  background: var(--c-cream);
  border: 2px solid #B6AE9C;
  box-shadow: none;
}

/* Timeline cards */
.timeline__card {
  border-radius: 12px;
  padding: 12px 16px;
  border-width: 1px;
  border-style: solid;
  border-left-width: 3px;
}
.timeline__card--food {
  background: #FBF8F1;
  border-color: var(--c-sand-2);
  border-left-color: var(--c-brass);
}
.timeline__card--tour {
  background: #F4F8F1;
  border-color: #E2EBDC;
  border-left-color: #6F9E5B;
}
.timeline__card--rest {
  background: #F0F7F6;
  border-color: #DCEAE8;
  border-left-color: #4FA39E;
}
.timeline__card--hotel {
  background: #EEF3F1;
  border-color: #D9E4E0;
  border-left-color: var(--c-jade);
}

.timeline__card-title {
  font-weight: 600;
  color: var(--c-ink);
  font-size: .98rem;
}

.timeline__card-meta {
  font-size: .84rem;
  margin-top: 3px;
}
.timeline__card-meta--food    { color: var(--c-dim); }
.timeline__card-meta--tour    { color: #7C8A72; }
.timeline__card-meta--rest    { color: #6E8784; }
.timeline__card-meta--hotel   { color: var(--c-muted); }

/* Transfer (inline, no card) */
.timeline__transfer {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-dim);
  font-size: .86rem;
  padding: 2px 0;
}

/* Claims grid */
.claims {
  margin-top: clamp(36px, 4vw, 52px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
}

.claim {
  background: var(--c-jade);
  color: var(--c-on-dark);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.claim__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(180,130,74,.22);
  color: var(--c-brass-light);
}

.claim__text {
  font-size: .98rem;
  line-height: 1.45;
  font-weight: 500;
}

/* ===================== PRICING ===================== */
.pricing__header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto clamp(40px, 5vw, 60px);
}

.pricing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: start;
}

.pricing__card {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(28px, 3vw, 36px);
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease;
}
.pricing__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 56px -34px rgba(20,32,29,.45);
}

.pricing__card--popular {
  position: relative;
  border: 2px solid var(--c-brass);
  padding: clamp(30px, 3vw, 38px);
  box-shadow: 0 36px 80px -48px rgba(180,130,74,.7);
}
.pricing__card--popular:hover {
  transform: translateY(-6px);
  box-shadow: 0 44px 90px -44px rgba(180,130,74,.85);
}

.pricing__badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--c-brass);
  color: var(--c-ink);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 7px 18px;
  border-radius: var(--r-pill);
  white-space: nowrap;
}

.pricing__name {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.5rem;
  color: var(--c-ink);
  margin: 0 0 6px;
}

.pricing__desc {
  font-size: .92rem;
  color: var(--c-dim);
  margin: 0 0 18px;
}

.pricing__price {
  font-family: var(--ff-display);
  font-size: 2.6rem;
  color: var(--c-jade);
  line-height: 1;
  margin-bottom: 24px;
}

.pricing__features {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  margin-bottom: 28px;
}

.pricing__feature {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  font-size: .94rem;
  color: var(--c-body);
  line-height: 1.45;
}
.pricing__feature-icon {
  color: var(--c-jade);
  font-weight: 700;
  flex-shrink: 0;
}

.pricing__btn {
  text-align: center;
  text-decoration: none;
  font-weight: 600;
  padding: 14px;
  border-radius: var(--r-pill);
  transition: background .25s ease, transform .25s ease;
  display: block;
}
.pricing__btn--jade {
  background: var(--c-jade);
  color: var(--c-on-dark);
}
.pricing__btn--jade:hover {
  background: var(--c-jade-700);
}
.pricing__btn--brass {
  background: var(--c-brass);
  color: var(--c-ink);
}
.pricing__btn--brass:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -16px rgba(180,130,74,.9);
}

/* ===================== WHY ROADBOOK ===================== */
.why__header {
  max-width: 760px;
  margin-bottom: clamp(40px, 5vw, 60px);
}

.why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.why__card {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(26px, 3vw, 34px);
  transition: transform .3s ease, box-shadow .3s ease;
}
.why__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 56px -34px rgba(20,32,29,.45);
}

.why__card-icon {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: var(--c-sand-2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-brass);
  margin-bottom: 20px;
}

.why__card-title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.35rem;
  color: var(--c-ink);
  margin: 0 0 12px;
}

.why__card-text {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--c-muted);
  margin: 0;
}

/* ===================== STEPS (Взаимодействие) ===================== */
.steps__header {
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 64px);
}

.steps__list {
  display: flex;
  flex-direction: column;
  max-width: 880px;
  margin: 0 auto;
}

.steps__item {
  display: flex;
  gap: clamp(18px, 3vw, 36px);
  padding: 24px 0;
  border-bottom: 1px solid var(--c-line);
  align-items: baseline;
}
.steps__item:last-child {
  border-bottom: none;
}

.steps__num {
  font-family: var(--ff-display);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: var(--c-brass);
  flex: 0 0 auto;
  width: 54px;
}

.steps__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.35rem;
  color: var(--c-ink);
  margin: 0 0 6px;
}

.steps__text {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--c-muted);
  margin: 0;
}

/* ===================== STATS + QUOTE ===================== */
.stats__header {
  max-width: 720px;
  margin-bottom: clamp(40px, 5vw, 56px);
}

.stats__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: clamp(40px, 5vw, 56px);
}

.stats__item {
  border-left: 2px solid var(--c-brass);
  padding-left: 22px;
}

.stats__number {
  font-family: var(--ff-display);
  font-size: clamp(2.6rem, 5vw, 3.6rem);
  color: var(--c-jade);
  line-height: 1;
}

.stats__label {
  font-size: 1rem;
  color: var(--c-muted);
  margin-top: 8px;
}

.stats__quote {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(32px, 5vw, 64px);
}

.stats__quote-mark {
  font-family: var(--ff-display);
  color: var(--c-brass);
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: .6;
  margin-bottom: 8px;
}

.stats__quote-text {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  line-height: 1.18;
  letter-spacing: -.015em;
  color: var(--c-ink);
  margin: 0 0 28px;
  font-style: italic;
  text-wrap: balance;
}

.stats__quote-author {
  font-weight: 600;
  color: var(--c-jade);
  font-size: 1.1rem;
}

.stats__quote-role {
  font-size: .95rem;
  color: var(--c-dim);
  margin-top: 2px;
}

/* ===================== PARTNERS ===================== */
.partners__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  color: var(--c-ink);
  margin: 0 0 28px;
  text-align: center;
}

.partners__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  align-items: center;
}

.partners__item {
  aspect-ratio: 5 / 2;
  border: 1px solid #D4CCBC;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #A79F8D;
  font-size: .82rem;
  background: #F1ECE1;
}

/* ===================== APPLICATION FORM ===================== */
.app-form {
  scroll-margin-top: 90px;
}

.app-form__header {
  text-align: center;
  margin-bottom: clamp(32px, 4vw, 48px);
}

.app-form__fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}

.app-form__submit {
  margin-top: 24px;
  width: 100%;
  background: var(--c-brass);
  color: var(--c-ink);
  font-weight: 700;
  font-size: 1.05rem;
  padding: 16px;
  border: none;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  font-family: inherit;
}
.app-form__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -16px rgba(0,0,0,.5);
}

/* ============================================================
   RESPONSIVE — Pages
   ============================================================ */

@media (max-width: 919px) {
  .pricing__grid {
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  }
  .why__grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

@media (max-width: 767px) {
  .hero__features {
    grid-template-columns: repeat(2, 1fr);
  }

  .cost-banner__countries {
    grid-template-columns: repeat(3, 1fr);
  }

  .pricing__grid {
    grid-template-columns: 1fr;
  }

  .why__grid {
    grid-template-columns: 1fr;
  }

  .stats__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

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

  .app-form__fields {
    grid-template-columns: 1fr;
  }

  .roadbook__layout {
    grid-template-columns: 1fr;
  }

  .claims {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .hero__features {
    grid-template-columns: 1fr;
  }

  .cost-banner__countries {
    grid-template-columns: repeat(2, 1fr);
  }

  .partners__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .claims {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   CONCIERGE PAGE
   ============================================================ */

/* --- Hero variant --- */
.hero--concierge {
  min-height: 78vh;
}

.hero__features--icons {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px 28px;
}

.hero__feature-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.hero__feature-icon {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(180,130,74,.22);
  color: var(--c-brass-light, #D6A766);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* --- Section utilities --- */
.section {
  padding: var(--sp-section) 0;
}

.section--sand {
  background: var(--c-sand);
}

.section--sand2 {
  background: var(--c-sand-2);
}

.section--dark {
  background: var(--c-ink);
  color: var(--c-on-dark);
}

.section__header {
  max-width: 720px;
  margin-bottom: clamp(40px, 5vw, 60px);
}

.section__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.08;
  letter-spacing: -.015em;
  color: var(--c-ink);
  margin: 0 0 16px;
}

.section__title--light {
  color: var(--c-on-dark);
}

.section__lead {
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  line-height: 1.6;
  color: var(--c-muted);
  margin: 0;
}

.container--narrow {
  max-width: 1080px;
}

/* --- Service cards --- */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 22px;
}

.svc-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: 20px;
  padding: 16px 16px 24px;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 56px -34px rgba(20,32,29,.45);
  border-color: #CFC6B3;
}

.svc-card__fig {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}

.svc-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
}

.svc-card:hover .svc-card__img {
  transform: scale(1.05);
}

.svc-card__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.3rem;
  color: var(--c-ink);
  margin: 14px 6px 0;
}

.svc-card__desc {
  font-size: .96rem;
  line-height: 1.55;
  color: var(--c-muted);
  margin: 4px 6px 0;
}

.svc-card__link {
  margin: 12px 6px 0;
  font-size: .9rem;
  font-weight: 600;
  color: var(--c-jade);
  text-decoration: none;
}

.svc-card__link:hover {
  color: var(--c-jade-700);
}

/* --- Category cards --- */
.cat-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
}

.cat-heading + .cat-grid {
  margin-bottom: clamp(40px, 5vw, 64px);
}

.cat-heading__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  color: var(--c-ink);
  margin: 0;
}

.cat-badge {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: rgba(180,130,74,.16);
  color: var(--c-brass);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cat-grid {
  display: grid;
  gap: 18px;
}

.cat-grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.cat-grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.cat-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  text-decoration: none;
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: 18px;
  padding: clamp(22px, 2.6vw, 28px);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.cat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px -32px rgba(20,32,29,.45);
  border-color: var(--c-brass);
}

.cat-card__title {
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 10px;
}

.cat-card__desc {
  font-size: .94rem;
  line-height: 1.55;
  color: var(--c-muted);
  margin: 0;
}

.cat-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--c-sand-2);
}

.cat-card__price {
  font-size: .92rem;
  font-weight: 600;
  color: var(--c-brass);
  letter-spacing: .01em;
}

.cat-card__arrow {
  color: #8A8474;
  font-size: 1.1rem;
  line-height: 1;
}

/* --- Personal assistant (dark) --- */
.assistant-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(24px, 3vw, 44px);
}

.assistant-grid__text {
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(246,242,234,.82);
  margin: 0;
}

/* --- Detail blocks --- */
.detail-blocks {
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 6vw, 88px);
}

.detail-block__content {
  max-width: 860px;
}

.detail-block__num {
  font-family: var(--ff-display);
  font-size: 2.2rem;
  color: var(--c-brass);
  display: block;
  line-height: 1;
  margin-bottom: 14px;
}

.detail-block__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  color: var(--c-ink);
  margin: 0 0 16px;
  line-height: 1.15;
}

.detail-block__desc {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--c-muted);
  margin: 0;
}

/* --- Manager card --- */
.contact-section {
  scroll-margin-top: 90px;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 22px;
  align-items: start;
}

.mgr-card {
  background: var(--c-jade);
  color: var(--c-on-dark);
  border-radius: var(--r-lg);
  padding: clamp(28px, 3.4vw, 40px);
  align-self: stretch;
}

.mgr-card__avatar {
  width: 96px;
  height: 96px;
  border-radius: var(--r-pill);
  background: rgba(246,242,234,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-display);
  font-size: 1.6rem;
  color: var(--c-on-dark);
  margin-bottom: 22px;
}

.mgr-card__role {
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-brass-light, #D6A766);
  margin-bottom: 8px;
}

.mgr-card__name {
  font-family: var(--ff-display);
  font-size: 1.7rem;
  margin-bottom: 22px;
}

.mgr-card__links {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mgr-card__link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--c-on-dark);
  font-weight: 600;
  font-size: 1.02rem;
  transition: color .2s ease;
}

.mgr-card__link:hover {
  color: var(--c-brass-light, #D6A766);
}

.mgr-card__messengers {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(246,242,234,.16);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mgr-card__chip {
  text-decoration: none;
  color: var(--c-on-dark);
  font-size: .9rem;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(246,242,234,.3);
  transition: background .2s ease, border-color .2s ease;
}

.mgr-card__chip:hover {
  background: rgba(180,130,74,.22);
  border-color: var(--c-brass);
}

/* --- Contact form (light variant) --- */
.contact-form {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(26px, 3.4vw, 44px);
}

.contact-form__fields {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.contact-form__label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contact-form__label-text {
  font-size: .86rem;
  font-weight: 600;
  color: var(--c-ink);
}

.contact-form__input {
  background: #FBF8F1;
  border: 1px solid var(--c-line);
  border-radius: 12px;
  padding: 14px 16px;
  color: var(--c-ink);
  font-size: 1rem;
  font-family: inherit;
  outline: none;
  width: 100%;
}

.contact-form__input:focus {
  border-color: var(--c-jade);
}

.contact-form__input--error {
  border-color: #D9866F;
}

.contact-form__textarea {
  resize: vertical;
}

.contact-form__counter {
  font-size: .8rem;
  color: #8A8474;
  align-self: flex-end;
}

.contact-form__checkbox {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  cursor: pointer;
}

.contact-form__check {
  width: 20px;
  height: 20px;
  accent-color: var(--c-jade);
  margin-top: 1px;
  flex-shrink: 0;
  cursor: pointer;
}

.contact-form__checkbox-text {
  font-size: .94rem;
  color: #3A4541;
  line-height: 1.4;
}

.contact-form__checkbox-text a {
  color: var(--c-jade);
}

.contact-form__err {
  font-size: .8rem;
  color: #C5604A;
  display: none;
}

.contact-form__err.is-visible {
  display: block;
}

.contact-form__submit {
  background: var(--c-brass);
  color: var(--c-ink);
  font-weight: 700;
  font-size: 1.05rem;
  padding: 16px;
  border: none;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  font-family: inherit;
  width: 100%;
}

.contact-form__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -16px rgba(180,130,74,.8);
}

/* Form states */
.contact-form__success,
.contact-form__error {
  display: none;
  flex-direction: column;
}

.contact-form__success.is-visible,
.contact-form__error.is-visible {
  display: flex;
}

.contact-form__icon {
  width: 64px;
  height: 64px;
  border-radius: var(--r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}

.contact-form__icon--success {
  background: #E2EFD9;
  color: #5C8C3F;
}

.contact-form__icon--error {
  background: #F6E2DC;
  color: #C5604A;
}

.contact-form__state-title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.6rem;
  margin: 0 0 10px;
  color: var(--c-ink);
}

.contact-form__state-text {
  font-size: 1rem;
  color: var(--c-muted);
  margin: 0;
}

.contact-form__back-btn {
  background: none;
  border: none;
  color: var(--c-jade);
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  font-family: inherit;
  border-bottom: 1px solid rgba(14,77,68,.4);
  padding: 0 0 2px;
  margin-top: 18px;
  align-self: flex-start;
}

.contact-form__back-btn:hover {
  color: var(--c-jade-700);
}

/* ============================================================
   COOPERATION PAGE
   ============================================================ */

/* --- Hero variant --- */
.hero--coop {
  min-height: 72vh;
}

/* --- Intro text --- */
.container--mid {
  max-width: 980px;
}

.container--mid-sm {
  max-width: 880px;
}

.coop-intro {
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.8vw, 2.2rem);
  line-height: 1.4;
  color: var(--c-ink);
  margin: 0;
  text-wrap: pretty;
}

.coop-intro strong {
  font-weight: 600;
  color: var(--c-jade);
}

/* --- Benefits grid --- */
.ben-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}

.ben-grid__sticky {
  position: sticky;
  top: 100px;
}

.ben-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ben-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: 16px;
  padding: 20px 22px;
}

.ben-item__icon {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #F1ECE1;
  color: var(--c-jade);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ben-item__text {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--c-body, #3A4541);
}

/* --- Document cards --- */
.doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.doc-card {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: 18px;
  padding: 22px 24px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.doc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px -32px rgba(20,32,29,.45);
  border-color: var(--c-brass);
}

.doc-card__icon {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(180,130,74,.14);
  color: var(--c-brass);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.doc-card__body {
  flex: 1 1 auto;
}

.doc-card__title {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1.35;
  margin-bottom: 6px;
}

.doc-card__meta {
  display: block;
  font-size: .84rem;
  color: var(--c-dim, #8A8474);
  letter-spacing: .02em;
}

.doc-card__arrow {
  flex: 0 0 auto;
  color: var(--c-jade);
}

/* --- CTA dark --- */
.cta-dark__text {
  font-size: clamp(1.05rem, 1.3vw, 1.25rem);
  line-height: 1.6;
  color: rgba(246,242,234,.8);
  margin: 0 0 34px;
  max-width: 620px;
  margin-inline: auto;
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */

/* --- Hero variant --- */
.hero--about {
  min-height: 70vh;
}

/* --- Stats --- */
.about-stats {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(32px, 6vw, 80px);
}

.about-stat {
  border-left: 2px solid var(--c-brass);
  padding-left: 22px;
}

.about-stat__num {
  display: block;
  font-family: var(--ff-display);
  font-size: clamp(3rem, 6vw, 4.5rem);
  color: var(--c-jade);
  line-height: 1;
}

.about-stat__label {
  display: block;
  font-size: 1.05rem;
  color: var(--c-muted);
  margin-top: 8px;
}

/* --- Founder letter --- */
.founder {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}

.founder__aside {
  position: sticky;
  top: 100px;
}

.founder__avatar {
  width: 96px;
  height: 96px;
  border-radius: var(--r-lg);
  background: var(--c-jade);
  color: var(--c-on-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-display);
  font-size: 1.6rem;
}

.founder__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 28px;
}

.founder__text p {
  font-size: clamp(1.02rem, 1.2vw, 1.15rem);
  line-height: 1.7;
  color: var(--c-body, #3A4541);
  margin: 0;
}

.founder__sign {
  padding-top: 20px;
  border-top: 1px solid var(--c-line);
}

.founder__name {
  display: block;
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.2rem;
  color: var(--c-ink);
}

.founder__role {
  display: block;
  font-size: .9rem;
  color: var(--c-muted);
  margin-top: 4px;
}

/* --- Team --- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 28px 22px;
}

.team-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.team-card__avatar {
  width: 88px;
  height: 88px;
  border-radius: var(--r-lg);
  background: var(--c-sand-2);
  color: var(--c-jade);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-display);
  font-size: 1.4rem;
  margin-bottom: 14px;
}

.team-card__name {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--c-ink);
}

.team-card__role {
  font-size: .9rem;
  color: var(--c-dim, #8A8474);
  margin-top: 4px;
}

/* --- About Timeline --- */
.about-tl {
  position: relative;
  padding-left: 34px;
}

.about-tl__axis {
  position: absolute;
  left: 9px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(var(--c-brass), rgba(180,130,74,.2));
}

.about-tl__item {
  position: relative;
  padding-bottom: 26px;
}

.about-tl__item--last {
  padding-bottom: 0;
}

.about-tl__dot {
  position: absolute;
  left: -31px;
  top: 4px;
  width: 14px;
  height: 14px;
  border-radius: var(--r-pill);
  background: var(--c-brass);
  border: 3px solid var(--c-ink);
  box-shadow: 0 0 0 1px rgba(180,130,74,.5);
}

.about-tl__year {
  font-family: var(--ff-display);
  font-size: 1.05rem;
  color: var(--c-brass-light, #D6A766);
  margin-bottom: 4px;
}

.about-tl__title {
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--c-on-dark);
  line-height: 1.35;
}

/* --- Rating block --- */
.rating-block {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(28px, 4vw, 48px);
}

.rating-block p {
  font-size: clamp(1.02rem, 1.2vw, 1.15rem);
  line-height: 1.7;
  color: var(--c-body, #3A4541);
  margin: 0 0 16px;
}

.rating-block p:last-child {
  margin-bottom: 0;
}

.rating-block strong {
  color: var(--c-jade);
  font-weight: 600;
}

/* --- Event/Achievement cards --- */
.ev-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 22px;
}

.ev-card {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: 20px;
  padding: clamp(22px, 3vw, 30px);
  transition: transform .3s ease, box-shadow .3s ease;
}

.ev-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px -32px rgba(20,32,29,.4);
}

.ev-card__title {
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 1.25rem;
  color: var(--c-ink);
  margin: 0 0 12px;
  line-height: 1.25;
}

.ev-card__preview {
  font-size: .96rem;
  line-height: 1.6;
  color: var(--c-muted);
  margin: 0;
}

.ev-card__full {
  display: none;
  margin-top: 12px;
}

.ev-card__full.is-open {
  display: block;
}

.ev-card__full p {
  font-size: .96rem;
  line-height: 1.6;
  color: var(--c-muted);
  margin: 0;
}

.ev-card__toggle {
  background: none;
  border: none;
  color: var(--c-jade);
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  font-family: inherit;
  padding: 0;
  margin-top: 14px;
  border-bottom: 1px solid rgba(14,77,68,.3);
}

.ev-card__toggle:hover {
  color: var(--c-jade-700);
}

.ev-card__toggle.is-open {
  border-bottom-color: transparent;
}

/* --- CTA jade variant --- */
.cta-jade {
  padding: var(--sp-section) 0;
  background: var(--c-jade);
  color: var(--c-on-dark);
}

/* ============================================================
   RESPONSIVE — All inner pages
   ============================================================ */

@media (max-width: 767px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .hero__features--icons {
    grid-template-columns: repeat(2, 1fr);
  }

  .ben-grid {
    grid-template-columns: 1fr;
  }

  .ben-grid__sticky {
    position: static;
  }

  .founder {
    grid-template-columns: 1fr;
  }

  .founder__aside {
    position: static;
  }

  .why__grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }

  .team-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 22px 16px;
  }
}

@media (max-width: 480px) {
  .svc-grid {
    grid-template-columns: 1fr;
  }

  .hero__features--icons {
    grid-template-columns: 1fr;
  }

  .cat-grid--3,
  .cat-grid--4 {
    grid-template-columns: 1fr;
  }

  .doc-grid {
    grid-template-columns: 1fr;
  }

  .ev-grid {
    grid-template-columns: 1fr;
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ===================== LEGAL PAGE ===================== */
.legal-page {
  padding-top: calc(80px + var(--sp-section));
  padding-bottom: var(--sp-section);
}

.legal-page__title {
  font-family: var(--ff-display);
  font-size: var(--fs-h2);
  color: var(--c-ink);
  margin-bottom: 2rem;
}

.legal-page__content {
  font-family: var(--ff-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--c-ink);
}

.legal-page__content h2,
.legal-page__content h3,
.legal-page__content h4 {
  margin-top: 2em;
  margin-bottom: 0.5em;
  color: var(--c-ink);
}

.legal-page__content p {
  margin-bottom: 1em;
}

.legal-page__content ul,
.legal-page__content ol {
  margin-bottom: 1em;
  padding-left: 1.5em;
}

.legal-page__content li {
  margin-bottom: 0.4em;
}

.legal-page__content a {
  color: var(--c-jade);
  text-decoration: underline;
}
