:root { --brand:#684ee8; --brand-dark:#543bcf; --meeting-highlight:#f2efff; --accent:#ffb36b; --ink:#222; --muted:#6a6a6a; --line:#ddd; --soft:#f7f7f7; --page-pad:max(24px,calc((100vw - 1280px)/2)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Inter,Arial,sans-serif; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:10px 14px; background:var(--brand); color:#fff; border-radius:8px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { height:80px; padding:0 var(--page-pad); position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; }
.brand { width:max-content; display:inline-flex; align-items:center; }
.brand img { width:220px; height:74px; display:block; object-fit:contain; object-position:left center; }
.header-nav { margin-inline:auto; display:flex; align-items:center; gap:36px; white-space:nowrap; font-size:16px; font-weight:600; }
.header-nav a:hover,.header-menu nav a:hover { color:var(--brand-dark); }
.header-menu { display:none; }
.header-link { justify-self:end; padding:12px 20px; background:var(--brand); color:#fff; border-radius:8px; font-size:15px; font-weight:600; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.header-link:hover { background:var(--brand-dark); box-shadow:0 8px 18px rgba(104,78,232,.24); transform:translateY(-2px); }
.hero { min-height:650px; padding:0 var(--page-pad) 40px; position:relative; }
.hero-image { height:610px; margin-left:25%; position:relative; display:block; overflow:hidden; border-radius:12px; background:#eee; }
.hero-photo { width:100%; height:100%; display:block; object-fit:cover; object-position:right center; }
.search-card { width:418px; padding:32px; position:absolute; left:var(--page-pad); top:50%; z-index:2; transform:translateY(-50%); background:#fff; border-radius:12px; box-shadow:0 6px 20px rgba(0,0,0,.2); }
.age-badge { width:36px; height:25px; flex:none; display:grid; place-items:center; background:#eeeaff; color:var(--brand); border-radius:999px; font-size:11px; font-weight:800; letter-spacing:0; }
.search-card h1 { margin:0; display:flex; align-items:center; gap:10px; white-space:nowrap; font-size:32px; line-height:1.12; letter-spacing:-.03em; }
.search-card>p { margin:8px 0 12px; color:var(--muted); font-size:16px; line-height:1.25; }
.select-control { margin-top:8px; position:relative; }
.select-control.is-open { z-index:15; }
.search-field { width:100%; min-height:58px; padding:10px 14px 8px; position:relative; display:flex; flex-direction:column; justify-content:center; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:12px; cursor:pointer; text-align:left; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.city-field { cursor:default; }
.city-field:hover { border-color:var(--line); background:#fff; }
.search-field:hover { border-color:#b8b8b8; background:#fafafa; }
.search-field:focus-visible,.select-control.is-open .search-field,.meeting-control.is-open .search-field { border-color:var(--brand); outline:0; box-shadow:0 0 0 4px rgba(104,78,232,.13); }
.search-field .select-label { font-size:11px; line-height:14px; font-weight:700; }
.search-field strong { margin-top:2px; font-size:16px; line-height:24px; font-weight:400; }
.select-popover { width:100%; padding:8px; position:absolute; left:0; top:calc(100% + 4px); z-index:20; background:#fff; border:1px solid #e5e5e5; border-radius:12px; box-shadow:0 14px 40px rgba(0,0,0,.18); }
.select-popover[hidden] { display:none; }
.select-popover button { width:100%; min-height:48px; padding:0 14px; display:flex; align-items:center; justify-content:space-between; background:transparent; color:var(--ink); border:0; border-radius:10px; cursor:pointer; font-size:15px; text-align:left; }
.select-popover button:hover,.select-popover button:focus-visible { background:#f5f3ff; outline:0; }
.select-popover button[aria-selected="true"] { background:#eeeaff; color:var(--brand-dark); font-weight:700; }
.select-popover button svg { width:20px; height:20px; visibility:hidden; fill:none; stroke:var(--brand); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.select-popover button[aria-selected="true"] svg { visibility:visible; }
.search-button { height:48px; margin-top:16px; display:flex; align-items:center; justify-content:center; gap:8px; background:var(--brand); color:#fff; border-radius:8px; font-weight:600; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.search-button:hover { background:var(--brand-dark); box-shadow:0 10px 22px rgba(104,78,232,.28); transform:translateY(-2px); }
.search-button img { width:16px; height:16px; filter:brightness(0) invert(1); }
.meeting-control { margin-top:8px; position:relative; }
.meeting-control.is-open { z-index:18; }
.meeting-popover { width:100%; padding:14px; position:absolute; top:calc(100% + 4px); left:0; z-index:22; background:#fff; border:1px solid #e5e5e5; border-radius:12px; box-shadow:0 14px 40px rgba(0,0,0,.18); }
.meeting-popover[hidden] { display:none; }
.meeting-hours-viewport { overflow:hidden; }
.meeting-hours-track { width:100%; }
.meeting-hours { min-width:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); column-gap:4px; row-gap:8px; }
.hour-pill { width:50px; height:50px; max-width:100%; padding:4px 0; display:flex; flex-direction:column; align-items:center; justify-content:center; background:transparent; color:var(--ink); border:1px solid transparent; border-radius:50%; cursor:pointer; }
.hour-pill:not(.is-selected):hover,.hour-pill:not(.is-selected):focus-visible { background:#f7f5ff; border-color:#d9d2ff; outline:0; }
.hour-pill.is-selected { background:var(--meeting-highlight); color:var(--ink); font-weight:700; }
.hour-pill span { font:500 14px/18px Inter,Arial,sans-serif; }
.hour-pill small { font:400 10px/12px Inter,Arial,sans-serif; }
.hour-pill.is-disabled { color:#b0b0b0; cursor:not-allowed; text-decoration:line-through; }
@media (prefers-reduced-motion:reduce) { .meeting-hours-track { transition:none; } }

.catalog-section { padding:40px var(--page-pad); overflow:hidden; }
.catalog-section h2 { margin:0; font-size:26px; line-height:30px; font-weight:600; letter-spacing:-.02em; }
.section-head { padding-bottom:24px; display:flex; align-items:end; justify-content:space-between; gap:32px; }
.section-head p { margin:8px 0 0; color:var(--muted); font-size:16px; line-height:24px; }
.card-row { margin-top:0; padding:14px 0 24px; display:flex; gap:16px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; }
.card-row::-webkit-scrollbar,.feature-grid::-webkit-scrollbar { display:none; }
.card-row .listing-card { flex:0 0 calc((100% - 48px)/4); scroll-snap-align:start; }
.carousel-controls { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.carousel-count { margin-right:4px; font-size:14px; white-space:nowrap; }
.carousel-arrow { width:38px; height:38px; display:grid; place-items:center; background:#fff; border:1px solid #ddd; border-radius:50%; color:#222; cursor:pointer; font-size:22px; line-height:1; }
.carousel-arrow:hover:not(:disabled) { border-color:#222; }
.carousel-arrow:disabled { opacity:.35; cursor:not-allowed; }
.carousel-controls[data-carousel-controls="top-cards"] .carousel-arrow { width:42px; height:42px; color:var(--brand); border-color:#ddd7ff; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.carousel-controls[data-carousel-controls="top-cards"] .carousel-arrow svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.carousel-controls[data-carousel-controls="top-cards"] .carousel-arrow:hover:not(:disabled),.carousel-controls[data-carousel-controls="top-cards"] .carousel-arrow:focus-visible { background:#f2efff; border-color:var(--brand); outline:0; transform:translateY(-2px); }
.listing-card { min-width:0; display:block; transition:transform .28s ease; }
.photo-placeholder { position:relative; overflow:hidden; aspect-ratio:1.067; display:flex; align-items:end; justify-content:space-between; padding:18px; border-radius:12px; color:#fff; }
.photo-placeholder::before { content:""; position:absolute; width:70%; aspect-ratio:1; right:-22%; bottom:-34%; border:1px solid rgba(255,255,255,.55); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.08),0 0 0 76px rgba(255,255,255,.05); }
.photo-placeholder::after { content:""; position:absolute; inset:0; opacity:.24; background:repeating-linear-gradient(135deg,transparent 0 34px,rgba(255,255,255,.32) 34px 35px); }
.photo-placeholder span,.photo-placeholder b { position:relative; z-index:1; }
.photo-placeholder span { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.photo-placeholder b { font-size:12px; font-weight:500; }
.profile-photo,.mood-photo { width:100%; display:block; object-fit:cover; object-position:center 20%; border-radius:12px; background:#eee; transition:transform .35s ease,filter .35s ease,box-shadow .35s ease; }
.profile-photo { aspect-ratio:308/288.75; }
.card-row .listing-card:nth-child(6) .profile-photo { object-position:left center; }
.mood-photo { aspect-ratio:308/247; }
.tone-rose { background:linear-gradient(135deg,#ea9aa8,#b95878); }.tone-sky { background:linear-gradient(135deg,#91cadd,#50799c); }.tone-sand { background:linear-gradient(135deg,#d7bc91,#9a7252); }.tone-mint { background:linear-gradient(135deg,#8bc7b5,#427968); }.tone-purple { background:linear-gradient(135deg,#b89de9,#694dad); }.tone-orange { background:linear-gradient(135deg,#f2b06f,#c96943); }.tone-blue { background:linear-gradient(135deg,#88a9e8,#4967aa); }.tone-green { background:linear-gradient(135deg,#9ebd78,#54754d); }.tone-lilac { background:linear-gradient(135deg,#c3a5d8,#7e5b99); }.tone-coral { background:linear-gradient(135deg,#eea28d,#bd6052); }.tone-night { background:linear-gradient(135deg,#67718e,#2c3450); }
.listing-title { margin-top:10px; display:flex; align-items:start; justify-content:space-between; gap:8px; font-size:15px; line-height:19px; }
.listing-title strong { overflow:hidden; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.listing-title span { padding:3px 7px; flex:0 0 auto; background:#f0edff; color:var(--brand-dark); border-radius:999px; font-size:12px; font-weight:600; }
.listing-card>p { margin:2px 0 0; color:var(--muted); font-size:15px; line-height:19px; }
.listing-card>small { margin-top:8px; display:-webkit-box; overflow:hidden; color:var(--muted); font-size:12px; line-height:16px; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.listing-card .listing-title { margin-top:11px; }
.listing-card .listing-title strong { font-size:15px; line-height:19px; font-weight:600; }
.listing-card .card-city,.listing-card .card-specs,.listing-card .card-meeting { margin:2px 0 0; color:var(--muted); font-size:15px; line-height:19px; }
.listing-card .card-city,.listing-card .card-meeting { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.listing-card .card-meeting { margin-top:6px; color:#444; }
.listing-card:hover { transform:translateY(-6px); }
.listing-card:hover .profile-photo { filter:saturate(1.07); box-shadow:0 16px 30px rgba(34,34,34,.16); transform:scale(1.015); }
.listing-card:hover .listing-title strong { color:var(--brand-dark); }
.card-contact { width:100%; min-height:46px; margin-top:16px; padding:10px 16px; display:flex; align-items:center; justify-content:center; background:#f2efff; color:var(--brand-dark); border:1px solid #ded8ff; border-radius:8px; font-size:15px; line-height:22px; font-weight:650; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.listing-card:hover .card-contact:not(.is-disabled),.card-contact:focus-visible { background:var(--brand); color:#fff; border-color:var(--brand); }
.card-contact.is-disabled { background:#f5f5f7; color:#777; border-color:#e8e8eb; cursor:not-allowed; }
.listing-card:focus-visible { outline:2px solid var(--brand); outline-offset:4px; border-radius:8px; }

.promo-section { padding-top:30px; padding-bottom:62px; }
.promo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.promo-card { min-width:0; min-height:322px; padding:26px; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; border:1px solid #e7e2fa; border-radius:18px; isolation:isolate; color:var(--ink); }
.promo-card::before { width:250px; height:250px; position:absolute; z-index:-1; top:-105px; right:-85px; content:""; border:1px solid rgba(104,78,232,.18); border-radius:50%; box-shadow:0 0 0 38px rgba(104,78,232,.035),0 0 0 76px rgba(104,78,232,.025); }
.promo-card--first { background:var(--meeting-highlight); }
.promo-card--weekday { background:var(--brand); color:#fff; border-color:var(--brand); }
.promo-card--weekday::before { border-color:rgba(255,255,255,.24); box-shadow:0 0 0 38px rgba(255,255,255,.055),0 0 0 76px rgba(255,255,255,.035); }
.promo-card--time { background:var(--soft); }
.promo-label { padding:7px 11px; display:inline-flex; border:1px solid #c9bfff; border-radius:999px; color:var(--brand-dark); font-size:12px; line-height:16px; font-weight:650; }
.promo-card--weekday .promo-label { color:#fff; border-color:rgba(255,255,255,.7); }
.promo-value { margin-top:auto; display:block; color:var(--brand); font-size:clamp(58px,5.6vw,86px); line-height:1; font-weight:750; letter-spacing:-.065em; }
.promo-card--weekday .promo-value { color:#fff; }
.promo-value small { font-size:.4em; letter-spacing:-.025em; }
.promo-copy { margin-top:16px; }
.promo-copy h3 { margin:0; font-size:21px; line-height:26px; font-weight:700; letter-spacing:-.025em; }
.promo-copy p { max-width:330px; margin:7px 0 0; color:var(--muted); font-size:15px; line-height:21px; }
.promo-card--weekday .promo-copy p { color:rgba(255,255,255,.82); }
.feature-section { padding-top:30px; padding-bottom:28px; overflow:visible; }
.feature-grid { margin:0 -18px; padding:20px 18px 36px; display:flex; gap:28px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
.feature-grid .feature-card { flex:0 0 calc((100% - 112px)/5); }
.feature-card { min-width:0; min-height:116px; padding:20px; display:flex; flex-direction:column; justify-content:space-between; gap:16px; background:#fff; border:1px solid #eae8f0; border-radius:14px; box-shadow:0 3px 8px rgba(32,29,52,.06); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.feature-card:hover { border-color:#cec5ff; box-shadow:0 8px 16px rgba(45,36,88,.11); transform:translateY(-4px); }
.feature-card>img { width:27px; height:27px; object-fit:contain; }
.feature-card strong { overflow:hidden; font-size:15px; line-height:20px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.feature-section .carousel-arrow { width:42px; height:42px; color:var(--brand); border-color:#ddd7ff; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.feature-section .carousel-arrow svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.feature-section .carousel-arrow:hover:not(:disabled),.feature-section .carousel-arrow:focus-visible { background:#f2efff; border-color:var(--brand); outline:0; transform:translateY(-2px); }
.grid-section { padding-top:40px; padding-bottom:30px; }
.listing-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px 16px; }
.primary-button { width:fit-content; min-height:48px; margin-top:28px; padding:12px 18px; display:flex; gap:12px; align-items:center; background:var(--brand); color:#fff; border-radius:8px; font-size:14px; font-weight:600; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.primary-button:hover { background:var(--brand-dark); box-shadow:0 10px 22px rgba(104,78,232,.28); transform:translateY(-2px); }
.primary-button img,.mobile-cta img { width:17px; height:17px; filter:brightness(0) invert(1); transform:rotate(180deg); }
.stats-section { margin:8px var(--page-pad) 0; padding:32px 36px 36px; background:#f7f7fa; border:1px solid #eeedf3; border-radius:20px; }
.stats-section h2 { font-size:26px; line-height:32px; }
.stats-grid { margin-top:28px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.stats-grid article { min-width:0; padding:0 30px; display:flex; align-items:flex-start; flex-direction:column; gap:18px; border-left:1px solid #e5e4ec; }
.stats-grid article:first-child { padding-left:0; border-left:0; }
.stats-grid article:last-child { padding-right:0; }
.stat-icon { width:46px; height:46px; display:grid; place-items:center; flex:0 0 auto; background:#ebe7ff; color:var(--brand); border-radius:14px; }
.stat-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.stats-grid strong { display:block; font-size:17px; line-height:23px; font-weight:650; letter-spacing:-.01em; }
.stats-grid p { max-width:340px; margin:7px 0 0; color:#606068; font-size:15px; line-height:22px; }

.about-section { padding-top:18px; padding-bottom:70px; }
.about-panel { padding:52px 56px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:center; gap:64px; background:#f7f6fc; border:1px solid #ebe8f5; border-radius:22px; }
.about-eyebrow { display:inline-block; color:var(--brand-dark); font-size:13px; line-height:18px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.about-content h2 { max-width:650px; margin:16px 0 22px; font-size:clamp(32px,3.5vw,48px); line-height:1.09; font-weight:700; letter-spacing:-.045em; }
.about-content p { max-width:625px; margin:0 0 14px; color:#56535f; font-size:16px; line-height:25px; }
.about-content p:last-child { margin-bottom:0; }
.about-aside { padding:30px 32px; background:#fff; border:1px solid #e7e2f5; border-radius:18px; box-shadow:0 12px 30px rgba(52,38,110,.06); }
.about-aside-label { display:block; margin-bottom:12px; color:#77717f; font-size:13px; line-height:18px; font-weight:600; }
.about-aside-item { min-height:62px; display:flex; align-items:center; gap:22px; border-top:1px solid #eeebf3; }
.about-aside-item span { color:var(--brand); font-size:13px; line-height:18px; font-weight:750; }
.about-aside-item strong { font-size:17px; line-height:23px; font-weight:650; }

.city-section { padding-top:0; padding-bottom:64px; }
.city-heading { margin-bottom:22px; }
.city-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:32px; border-top:1px solid #e7e4ef; }
.city-item { min-width:0; min-height:77px; padding:23px 0; border-bottom:1px solid #e7e4ef; font-size:19px; line-height:27px; font-weight:600; letter-spacing:-.01em; }

.site-footer { padding:38px var(--page-pad) 22px; background:#f4f2fb; border-top:1px solid #e7e2f7; }
.footer-main { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.footer-brand>p { max-width:520px; margin:14px 0 0; color:var(--muted); font-size:14px; line-height:21px; }
.footer-age { display:flex; align-items:center; gap:12px; max-width:260px; }
.footer-age strong { width:46px; height:46px; display:grid; place-items:center; flex:0 0 auto; background:var(--brand); color:#fff; border-radius:50%; font-size:14px; }
.footer-age span { color:var(--muted); font-size:13px; line-height:18px; }
.footer-legal { margin-top:28px; padding-top:18px; display:flex; align-items:end; justify-content:space-between; gap:32px; border-top:1px solid #ded9ed; color:var(--muted); font-size:12px; line-height:18px; }
.footer-legal p { flex:1 1 auto; min-width:0; margin:0; }
.footer-legal span { flex:0 0 auto; }
.mobile-cta { display:none; }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

@media (max-width:1020px) {
  :root { --page-pad:40px; }
  .header-nav { display:none; }
  .header-menu { margin-left:auto; position:relative; display:block; z-index:30; }
  .header-menu summary { width:42px; height:42px; display:grid; place-items:center; cursor:pointer; border:1px solid var(--line); border-radius:10px; list-style:none; }
  .header-menu summary::-webkit-details-marker { display:none; }
  .header-menu summary span,.header-menu summary span::before,.header-menu summary span::after { width:18px; height:2px; display:block; position:relative; background:var(--ink); border-radius:2px; content:""; }
  .header-menu summary span::before { position:absolute; top:-6px; }
  .header-menu summary span::after { position:absolute; top:6px; }
  .header-menu nav { min-width:190px; padding:8px; position:absolute; right:0; top:calc(100% + 8px); display:grid; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 28px rgba(0,0,0,.15); }
  .header-menu nav a { padding:10px 12px; border-radius:8px; font-size:14px; font-weight:600; }
  .header-menu nav a:hover { background:#f5f3ff; }
  .hero { min-height:570px; }.hero-image { height:530px; margin-left:18%; }.search-card { width:390px; }
  .card-row { margin-inline:calc(-1 * var(--page-pad)); padding-inline:var(--page-pad); gap:var(--page-pad); scroll-snap-type:none; }
  .card-row .listing-card { flex-basis:calc((100% - var(--page-pad))/2); }.listing-grid { grid-template-columns:repeat(3,1fr); }.feature-grid .feature-card { flex-basis:calc((100% - 56px)/3); }
  .about-panel { padding:40px; gap:36px; }
  .city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; }
}

@media (max-width:720px) {
  :root { --page-pad:16px; }
  body { padding-bottom:82px; }
  .site-header { height:68px; }
  .brand img { width:184px; height:62px; }.header-link { display:none; }
  .hero { min-height:0; padding-bottom:36px; display:flex; flex-direction:column; }
  .hero-image { width:100%; height:auto; aspect-ratio:1.55; margin:0; border-radius:12px; order:1; }.hero-photo { object-position:right center; }
  .search-card { width:100%; margin:0; padding:24px 0 0; position:relative; left:auto; top:auto; order:2; transform:none; background:transparent; border-radius:0; box-shadow:none; }.search-card h1 { gap:8px; font-size:clamp(25px,7vw,32px); line-height:1.15; white-space:normal; }.search-card>p { margin:10px 0 18px; font-size:15px; line-height:1.4; }
  .search-field { min-height:68px; padding:12px 16px; }.search-field .select-label { font-size:12px; line-height:16px; }.search-field strong { font-size:18px; line-height:25px; }.search-button { height:56px; }
  .catalog-section { padding-top:34px; padding-bottom:34px; }.catalog-section h2 { font-size:23px; line-height:28px; }.section-head { align-items:start; }.section-head p { font-size:14px; line-height:20px; }
  .card-row .listing-card { flex-basis:min(78vw,300px); }.photo-placeholder { aspect-ratio:1.08; }
  .promo-grid { grid-template-columns:1fr; gap:12px; }.promo-card { min-height:250px; padding:24px; }.promo-value { font-size:64px; }.promo-copy h3 { font-size:20px; line-height:25px; }
  .feature-grid { margin:0 -16px; padding:20px 16px 36px; }.feature-grid .feature-card { flex-basis:178px; }.feature-card strong { font-size:15px; }
  .listing-grid { grid-template-columns:repeat(2,1fr); gap:28px 12px; }.listing-grid .photo-placeholder { aspect-ratio:.86; padding:12px; }.listing-grid .profile-photo { aspect-ratio:.86; }.listing-grid .photo-placeholder span { font-size:9px; }.listing-title { font-size:13px; line-height:17px; }.listing-title span { font-size:12px; }.listing-card>p { font-size:12px; line-height:16px; }.listing-card .card-specs { min-height:32px; white-space:normal; font-size:12px; line-height:16px; }.listing-card>small { font-size:11px; line-height:14px; -webkit-line-clamp:2; }
  .card-contact { min-height:42px; margin-top:12px; padding:8px 12px; font-size:14px; line-height:20px; }
  .stats-section { margin:0 var(--page-pad); padding:24px; border-radius:16px; }.stats-section h2 { font-size:23px; line-height:28px; }
  .stats-grid { margin-top:20px; grid-template-columns:1fr; }.stats-grid article,.stats-grid article:first-child,.stats-grid article:last-child { padding:18px 0; align-items:flex-start; flex-direction:row; gap:14px; border-left:0; border-top:1px solid #e5e4ec; }.stats-grid article:first-child { padding-top:0; border-top:0; }.stats-grid article:last-child { padding-bottom:0; }.stats-grid strong { font-size:15px; line-height:20px; }.stats-grid p { font-size:14px; line-height:20px; }
  .about-section { padding-top:12px; padding-bottom:36px; }.about-panel { padding:28px 24px; grid-template-columns:1fr; gap:26px; border-radius:18px; }.about-content h2 { margin:12px 0 16px; font-size:30px; line-height:1.13; }.about-content p { font-size:14px; line-height:21px; }.about-aside { padding:20px 22px; }.about-aside-item { min-height:54px; gap:18px; }.about-aside-item strong { font-size:15px; line-height:20px; }
  .city-section { padding-bottom:36px; }.city-heading { margin-bottom:16px; }.city-grid { column-gap:16px; }.city-item { min-height:63px; padding:18px 0; font-size:15px; line-height:22px; }
  .site-footer { padding-top:30px; padding-bottom:24px; }.footer-main { align-items:flex-start; flex-direction:column; gap:22px; }.footer-legal { margin-top:24px; align-items:start; flex-direction:column; gap:12px; }
  .mobile-cta { min-height:68px; padding:10px 18px; position:fixed; z-index:20; left:12px; right:12px; bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--brand); color:#fff; border-radius:12px; box-shadow:0 8px 24px rgba(42,27,113,.3); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(calc(100% + 18px)); transition:opacity .22s ease,transform .22s ease,visibility .22s ease; }
  .mobile-cta.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
  .mobile-cta-copy { min-width:0; display:flex; flex-direction:column; gap:2px; }
  .mobile-cta-copy small { font-size:12px; line-height:16px; font-weight:500; }
  .mobile-cta-copy strong { font-size:17px; line-height:22px; font-weight:700; }
}

@media (max-width:720px) {
  .hero { padding-bottom:16px; }
  .catalog-section { padding-top:24px; padding-bottom:24px; }
  .catalog-section h2 { font-size:22px; line-height:27px; }
  .section-head { padding-bottom:14px; gap:12px; }
  .section-head p { margin-top:6px; }
  .card-row { padding-top:4px; padding-bottom:10px; gap:12px; }
  .carousel-controls { gap:8px; }
  .carousel-controls[data-carousel-controls="top-cards"] .carousel-arrow,
  .feature-section .carousel-arrow { width:36px; height:36px; }
  .feature-section { padding-top:24px; padding-bottom:14px; }
  .feature-grid { margin-inline:calc(-1 * var(--page-pad)); padding:6px var(--page-pad) 12px; gap:12px; }
  .feature-grid .feature-card { flex-basis:160px; }
  .feature-card { min-height:100px; padding:16px; }
  .promo-section { padding-top:20px; padding-bottom:32px; }
  .grid-section { padding-top:24px; padding-bottom:24px; }
}

@media (max-width:380px) {
  .search-card h1 { gap:6px; font-size:25px; }
  .search-card h1 .age-badge { width:32px; height:23px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; scroll-behavior:auto!important; } }
