.cty {
    --cty-bur: #52001c;
    --cty-bur2: #75002b;
    --cty-ink: #0c0c0c;
    --cty-soft: #4a4244;
    --cty-mut: #6d6868;
    --cty-hair: rgba(12, 12, 12, .13);
    --cty-bg: #fff;
    --cty-bg2: #f7f4f2;
    --cty-disp: 'Prata', Georgia, serif;
    --cty-ital: 'Cormorant Garamond', Georgia, serif;
    --cty-sans: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
    color: var(--cty-ink);
    background: var(--cty-bg);
    font-family: var(--cty-sans);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.cty * { box-sizing: border-box; }
.cty img { display: block; max-width: 100%; }
.cty a { color: var(--cty-bur); text-decoration: none; }
.cty a:hover { color: var(--cty-bur2); }
.cty h1, .cty h2, .cty h3 { font-family: var(--cty-disp); font-weight: 400; margin: 0; letter-spacing: -.01em; }
.cty em { font-family: var(--cty-ital); font-style: italic; font-weight: 500; }

.ct-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.ct-eyebrow { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--cty-mut); }

.ct-btn {
    display: inline-flex; align-items: center; justify-content: center;
    height: 50px; padding: 0 30px; white-space: nowrap;
    font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700;
    border: 1px solid var(--cty-bur); background: var(--cty-bur); color: #fff !important;
    transition: background .2s, border-color .2s;
}
.ct-btn:hover { background: var(--cty-bur2); border-color: var(--cty-bur2); }
.ct-btn--ghost { background: transparent; color: var(--cty-bur) !important; border-color: rgba(82, 0, 28, .35); }
.ct-btn--ghost:hover { background: rgba(82, 0, 28, .06); border-color: var(--cty-bur); }
.ct-btn--light { background: #fff; border-color: #fff; color: var(--cty-bur) !important; }
.ct-btn--light:hover { background: #f2e9ec; border-color: #f2e9ec; }

.ct-hero { background: var(--cty-bg2); padding: 22px 0 0; }
.ct-crumb { font-size: 12px; color: var(--cty-mut); letter-spacing: .04em; }
.ct-crumb a { color: var(--cty-mut); }
.ct-crumb a:hover { color: var(--cty-bur); }
.ct-crumb i { font-style: normal; margin: 0 .5em; opacity: .5; }
.ct-hero__in { padding: 40px 0 58px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 56px; align-items: end; }
.ct-hero h1 { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.04; margin: 16px 0 0; }
.ct-hero h1 em { color: var(--cty-bur); }
.ct-hero__lead { max-width: 52ch; margin: 22px 0 0; font-family: var(--cty-ital); font-size: 21px; line-height: 1.55; color: var(--cty-soft); text-wrap: pretty; }
.ct-hero__acts { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.ct-hero__aside { text-align: right; padding-bottom: 6px; }
.ct-hero__aside b { display: block; font-family: var(--cty-disp); font-weight: 400; font-size: clamp(32px, 5.4vw, 72px); line-height: .9; letter-spacing: -.02em; color: var(--cty-bur); }
.ct-hero__aside span { display: block; margin-top: 10px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--cty-mut); }

.ct-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--cty-hair); border-bottom: 1px solid var(--cty-hair); }
.ct-facts > div { padding: 26px 24px; text-align: center; border-left: 1px solid var(--cty-hair); }
.ct-facts > div:first-child { border-left: 0; }
.ct-facts b { display: block; font-family: var(--cty-disp); font-size: clamp(18px, 2.1vw, 26px); font-weight: 400; line-height: 1.15; }
.ct-facts span { display: block; margin-top: 8px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--cty-mut); line-height: 1.5; }

.ct-sec { padding: 74px 0 0; }
.ct-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--cty-hair); padding-bottom: 16px; margin-bottom: 32px; }
.ct-sec__head h2 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; }
.ct-sec__head p { margin: 0; font-size: 13px; color: var(--cty-mut); max-width: 40ch; text-align: right; line-height: 1.6; }

.ct-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; }
.ct-text p { margin: 0 0 18px; font-size: 15.5px; line-height: 1.78; color: var(--cty-soft); text-wrap: pretty; }
.ct-text p:last-child { margin-bottom: 0; }
.ct-text strong { color: var(--cty-ink); font-weight: 600; }
.ct-text .ct-lede { font-family: var(--cty-ital); font-size: 22px; line-height: 1.55; color: var(--cty-ink); }

.ct-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--cty-hair); border: 1px solid var(--cty-hair); }
.ct-points--2 { grid-template-columns: repeat(2, 1fr); }
.ct-point { background: #fff; padding: 26px 24px 24px; display: flex; flex-direction: column; transition: background .2s; }
.ct-point:hover { background: var(--cty-bg2); }
.ct-point__tag { font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--cty-bur); border: 1px solid rgba(82, 0, 28, .28); padding: 3px 8px; align-self: flex-start; }
.ct-point h3 { font-size: 21px; line-height: 1.2; margin: 14px 0 0; }
.ct-point__addr { margin: 9px 0 0; font-size: 14px; line-height: 1.6; color: var(--cty-soft); }
.ct-point__meta { margin-top: 12px; font-size: 12.5px; color: var(--cty-mut); line-height: 1.7; }
.ct-point__acts { margin-top: auto; padding-top: 18px; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; }
.ct-point__acts a { border-bottom: 1px solid rgba(82, 0, 28, .3); padding-bottom: 2px; }

.ct-hl { margin-top: 34px; background: var(--cty-bur); color: #fff; padding: clamp(28px, 3.4vw, 46px); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.ct-hl h3 { font-size: clamp(22px, 2.6vw, 32px); line-height: 1.1; max-width: 14ch; color: #fff; }
.ct-hl h3 em { color: #f0c9d6; }
.ct-hl p { margin: 0; font-size: 15.5px; line-height: 1.72; color: rgba(255, 255, 255, .84); max-width: 56ch; }
.ct-hl p + p { margin-top: 12px; }

.ct-steps { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid var(--cty-ink); }
.ct-steps article { position: relative; padding: 26px 24px 30px; border-left: 1px solid var(--cty-hair); transition: background .25s; }
.ct-steps article:first-child { border-left: 0; padding-left: 0; }
.ct-steps article:hover { background: var(--cty-bg2); }
.ct-steps article::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--cty-bur); transition: width .5s cubic-bezier(.22, 1, .36, 1); }
.ct-steps article:hover::before { width: 100%; }
.ct-num { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--cty-bur); }
.ct-steps h3 { font-size: 19px; line-height: 1.2; margin: 13px 0 10px; }
.ct-steps p { margin: 0; font-size: 14px; line-height: 1.66; color: var(--cty-soft); }

.ct-prods { margin-top: 4px; }
.ct-more { margin-top: 32px; }

.ct-note { border-left: 2px solid var(--cty-bur); padding: 6px 0 6px 22px; margin-top: 26px; }
.ct-note p { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--cty-soft); }
.ct-note strong { color: var(--cty-ink); font-weight: 600; }

.ct-faq { border-top: 1px solid var(--cty-hair); max-width: 82ch; }
.ct-faq details { border-bottom: 1px solid var(--cty-hair); }
.ct-faq summary { list-style: none; cursor: pointer; padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: 22px; font-size: 16px; font-weight: 600; transition: color .2s; }
.ct-faq summary:hover { color: var(--cty-bur); }
.ct-faq summary::-webkit-details-marker { display: none; }
.ct-pl { position: relative; width: 13px; height: 13px; flex: none; }
.ct-pl::before, .ct-pl::after { content: ""; position: absolute; background: var(--cty-bur); transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.ct-pl::before { left: 0; top: 6px; width: 13px; height: 1.5px; }
.ct-pl::after { left: 6px; top: 0; width: 1.5px; height: 13px; }
.ct-faq details[open] .ct-pl::after { transform: scaleY(0); }
.ct-faq .ct-ans { padding: 0 0 22px; font-size: 15px; line-height: 1.72; color: var(--cty-soft); max-width: 68ch; }

.ct-cities { display: flex; flex-wrap: wrap; gap: 9px; }
.ct-cities a { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--cty-hair); padding: 12px 18px; color: var(--cty-ink); transition: border-color .2s, color .2s; }
.ct-cities a:hover { border-color: var(--cty-bur); color: var(--cty-bur); }
.ct-cities span[aria-current] { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--cty-bur); background: var(--cty-bur); color: #fff; padding: 12px 18px; }

.ct-band { margin-top: 84px; background: var(--cty-bur); color: #fff; padding: 66px 0 70px; }
.ct-band__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: center; }
.ct-band .ct-eyebrow { color: rgba(255, 255, 255, .62); }
.ct-band h2 { font-size: clamp(26px, 3.4vw, 42px); line-height: 1.1; margin: 14px 0 0; color: #fff; }
.ct-band h2 em { color: #f0c9d6; }

@media (max-width: 1024px) {
    .ct-points, .ct-points--2 { grid-template-columns: 1fr; }
    .ct-steps { grid-template-columns: repeat(2, 1fr); }
    .ct-steps article:nth-child(3) { border-left: 0; padding-left: 0; }
    .ct-facts { grid-template-columns: repeat(2, 1fr); }
    .ct-facts > div:nth-child(3) { border-left: 0; }
    .ct-facts > div { border-top: 1px solid var(--cty-hair); }
    .ct-facts > div:nth-child(-n+2) { border-top: 0; }
}

@media (max-width: 860px) {
    .ct-wrap { padding: 0 20px; }
    .ct-hero__in { grid-template-columns: 1fr; gap: 30px; }
    .ct-hero__aside { text-align: left; }
    .ct-text { grid-template-columns: 1fr; gap: 0; }
    .ct-text > div:first-child { margin-bottom: 18px; }
    .ct-hl, .ct-band__in { grid-template-columns: 1fr; }
    .ct-sec__head { flex-direction: column; gap: 12px; }
    .ct-sec__head p { text-align: left; }
}

@media (max-width: 600px) {
    .ct-sec { padding-top: 52px; }
    .ct-steps { grid-template-columns: 1fr; }
    .ct-steps article { border-left: 0; padding-left: 0; border-top: 1px solid var(--cty-hair); }
    .ct-steps article:first-child { border-top: 0; }
    .ct-band { margin-top: 56px; padding: 46px 0 50px; }
}
