:root {
  --background: #12110F;
  --ivory: #EFE6D6;
  --champagne: #D7C4A3;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--background);
  color: var(--ivory);
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
}
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Marcellus", serif; font-weight: 400; }

.site-header { border-bottom: 1px solid var(--champagne); }
.nav-wrap, .compact-footer {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.monogram {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--champagne);
  border: 1px solid var(--champagne);
  text-decoration: none;
  font-family: "Marcellus", serif;
  letter-spacing: 0.08em;
}
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-links a, .menu-toggle, .section-label, .compact-footer, .service-index, .service-detail, .testimonial span, .hero-back {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.nav-links a { color: var(--ivory); text-decoration: none; }
.nav-links a:hover, .text-link:hover, .compact-footer a:hover { color: var(--champagne); }
.menu-toggle { display: none; background: transparent; color: var(--ivory); border: 1px solid var(--champagne); padding: 8px 11px; }

.objection, .steps, .prices, .services, .contact { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.objection { padding: 118px 0 126px; }
.section-label { color: var(--champagne); margin-bottom: 24px; }
.objection-grid { display: grid; grid-template-columns: minmax(120px, 0.3fr) 1fr; gap: 48px; align-items: start; }
.objection-mark { margin: 0; color: var(--champagne); font-family: "Marcellus", serif; font-size: clamp(58px, 10vw, 130px); line-height: 0.8; letter-spacing: 0.1em; }
.objection h1, .section-heading h2, .contact h2 { max-width: 760px; font-size: clamp(33px, 5vw, 64px); line-height: 1.2; letter-spacing: 0.01em; }
.objection h1 { margin-bottom: 29px; }
.objection p:not(.objection-mark) { max-width: 700px; color: var(--champagne); }

.steps { padding: 92px 0 122px; border-top: 1px solid var(--champagne); }
.section-heading { margin-bottom: 40px; }
.section-heading h2 { margin-bottom: 0; }
.steps-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--champagne); }
.steps-list li { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--champagne); }
.step-number { color: var(--champagne); font-family: "Marcellus", serif; font-size: 20px; }
.steps-list h3 { margin-bottom: 4px; font-size: 20px; }
.steps-list p { margin-bottom: 0; color: var(--champagne); }
.text-link { display: inline-block; margin-top: 36px; color: var(--ivory); text-decoration: none; border-bottom: 1px solid var(--champagne); }
.text-link span { color: var(--champagne); padding-left: 8px; }

.hero { min-height: 100vh; position: relative; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--champagne); }
.hero-back { position: absolute; top: 22px; left: max(24px, calc((100% - 1180px) / 2)); color: var(--champagne); text-decoration: none; }
.hero-motif { position: absolute; color: var(--champagne); opacity: 0.18; font-family: "Marcellus", serif; font-size: clamp(170px, 38vw, 500px); letter-spacing: 0.18em; white-space: nowrap; }
.hero-content { position: relative; z-index: 1; width: min(1000px, calc(100% - 48px)); text-align: center; }
.hero-content h1 { margin: 0 auto 27px; font-size: clamp(54px, 9vw, 126px); line-height: 0.98; }
.hero-subline { max-width: 570px; margin: 0 auto 38px; color: var(--champagne); }
.ghost-button { display: inline-block; padding: 13px 22px; border: 1px solid var(--champagne); color: var(--ivory); text-decoration: none; font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.ghost-button:hover { background: var(--champagne); color: var(--background); }

.prices { padding: 112px 0 96px; }
.price-list { border-top: 1px solid var(--champagne); }
.price-row { display: flex; justify-content: space-between; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--champagne); }
.price-row strong { color: var(--champagne); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.testimonial { max-width: 720px; margin: 80px auto 0; padding: 34px; border: 1px solid var(--champagne); text-align: center; }
.testimonial p { margin-bottom: 15px; font-family: "Marcellus", serif; font-size: clamp(22px, 3vw, 31px); line-height: 1.35; }
.testimonial span { color: var(--champagne); }

.services { padding: 105px 0; border-top: 1px solid var(--champagne); }
.service-list { border-top: 1px solid var(--champagne); }
.service-row { display: grid; grid-template-columns: 70px 1fr auto; gap: 24px; align-items: center; padding: 23px 0; border-bottom: 1px solid var(--champagne); }
.service-row h3 { margin: 0; font-size: clamp(19px, 2vw, 26px); }
.service-index, .service-detail { color: var(--champagne); }
.service-detail { text-align: right; }

.contact { padding: 104px 0 78px; border-top: 1px solid var(--champagne); }
.contact-heading p:not(.section-label) { max-width: 610px; color: var(--champagne); }
.contact-grid { display: grid; grid-template-columns: 0.78fr 1.22fr; gap: 56px; margin-top: 53px; }
.contact-details { border-top: 1px solid var(--champagne); }
.contact-item { display: block; padding: 21px 0; border-bottom: 1px solid var(--champagne); color: var(--ivory); text-decoration: none; font-style: normal; }
.contact-item span { display: block; margin-bottom: 7px; color: var(--champagne); font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.contact-item strong { display: block; font-size: 15px; font-weight: 500; line-height: 1.5; }
.work-images { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.work-images figure { margin: 0; border: 1px solid var(--champagne); }
.work-images img { display: block; width: 100%; aspect-ratio: 1 / 1.1; object-fit: cover; filter: grayscale(1); }
.work-images figcaption { padding: 12px; color: var(--champagne); font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.privacy { max-width: 760px; margin-top: 84px; padding-top: 28px; border-top: 1px solid var(--champagne); }
.privacy p:last-child { margin-bottom: 0; color: var(--champagne); font-size: 12px; }

.compact-footer { border-top: 1px solid var(--champagne); color: var(--champagne); }
.compact-footer a { color: var(--champagne); text-decoration: none; }
.footer-mark { width: 32px; height: 32px; font-size: 11px; }

@media (max-width: 700px) {
  .nav-wrap, .compact-footer, .objection, .steps, .prices, .services, .contact { width: min(100% - 32px, 1180px); }
  .nav-wrap { min-height: 66px; flex-wrap: wrap; padding: 12px 0; }
  .menu-toggle { display: block; }
  .nav-links { display: none; width: 100%; flex-direction: column; align-items: flex-start; gap: 13px; padding: 11px 0 5px; }
  .nav-links.is-open { display: flex; }
  .objection { padding: 79px 0 88px; }
  .objection-grid { grid-template-columns: 1fr; gap: 27px; }
  .objection-mark { font-size: 64px; }
  .steps, .prices, .services, .contact { padding-top: 76px; padding-bottom: 76px; }
  .hero { min-height: 780px; }
  .hero-content h1 { font-size: clamp(48px, 15vw, 72px); }
  .price-row { align-items: flex-start; flex-direction: column; gap: 6px; }
  .service-row { grid-template-columns: 38px 1fr; gap: 12px; }
  .service-detail { grid-column: 2; text-align: left; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .compact-footer { min-height: 67px; gap: 13px; font-size: 8px; letter-spacing: 0.09em; }
}
