/* Airy editorial refinement.
   A quiet, light gallery palette: the portrait remains the dramatic accent,
   while the rest of the site has room to breathe. */
:root {
  --primary: #875f53;
  --primary-light: #c49d87;
  --primary-dark: #322a27;
  --gold: #aa8248;
  --gold-light: #f0e2d2;
  --bg: #f7f3ee;
  --bg-card: #fffdfa;
  --text: #332c29;
  --text-light: #756a64;
  --shadow: 0 18px 44px rgba(71, 49, 40, .09);
  --shadow-hover: 0 24px 54px rgba(71, 49, 40, .14);
  --button-radius: 10px;
}

html, body { background: #f7f3ee !important; color: var(--text) !important; }
body {
  background-color: #f7f3ee !important;
  background-image:
    radial-gradient(circle at 9% 8%, rgba(211, 184, 165, .23), transparent 24%),
    radial-gradient(circle at 91% 15%, rgba(236, 220, 199, .7), transparent 23%),
    linear-gradient(145deg, #faf8f4 0%, #f4eee7 52%, #f9f5f0 100%) !important;
}
body::before {
  opacity: .34 !important;
  background-image: radial-gradient(rgba(110, 83, 67, .13) .42px, transparent .65px) !important;
  background-size: 8px 8px !important;
}
body::after { content: none !important; }
p { color: var(--text-light) !important; line-height: 1.8; }
h1, h2, h3, .logo, .section-title, .hero h1, .page-hero h1 {
  color: #352c29 !important;
}
.gold, .highlight, .logo .highlight { color: #875f53 !important; }
.section-label, .hero-badge, .eyebrow { color: #96703c !important; }

/* A paper-light header with precise, dark typography. */
header {
  background: rgba(252, 249, 245, .89) !important;
  border-bottom-color: rgba(99, 70, 58, .15) !important;
  box-shadow: 0 8px 24px rgba(63, 46, 38, .055) !important;
  backdrop-filter: blur(18px) saturate(110%);
}
header.scrolled { background: rgba(252, 249, 245, .975) !important; }
.logo { color: #342a27 !important; }
.logo-sub { color: #937d70 !important; }
.nav-links a, .header-right .phone { color: #443a36 !important; }
.nav-links a::after { background: #9a7161 !important; }
.social-icons a {
  color: #805f51 !important;
  border-color: rgba(128, 95, 81, .25) !important;
  background: rgba(255, 253, 250, .76) !important;
}
.social-icons a:hover { background: #f2e6dc !important; border-color: rgba(128, 95, 81, .5) !important; }

/* The hero is a bright editorial spread; the supplied portrait anchors it. */
.hero, .page-hero {
  background:
    radial-gradient(circle at 83% 18%, rgba(189, 145, 112, .22), transparent 25%),
    linear-gradient(115deg, #fbf8f3 0%, #f2e8df 56%, #e8d9cc 100%) !important;
  border-bottom-color: rgba(133, 94, 74, .16) !important;
}
/* Composition of the opening portrait: matched to vip.psihologpavel.ru. */
.hero { min-height: min(720px, calc(100vh - 74px)); display: grid; align-items: center; padding: clamp(72px, 8vw, 125px) 0 !important; }
.hero::before, .page-hero::before { content: 'ПАВЕЛ  МЕЛЬНИЧУК'; color: rgba(112, 78, 61, .055) !important; bottom: -4vw; left: -1vw; font-size: clamp(74px, 12.5vw, 210px); letter-spacing: -.06em; }
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0 !important;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 253, 249, .46), transparent 58%), radial-gradient(circle at 84% 34%, rgba(255, 241, 225, .34), transparent 30%) !important;
}
.hero-grid { grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr) !important; gap: clamp(34px, 6.2vw, 105px) !important; }
.hero-content { max-width: 650px; position: relative; z-index: 1 !important; }
.hero-photo { position: relative; z-index: 1 !important; max-width: 600px; justify-self: end; }
.hero-badge { color: #96703c !important; border-bottom: 1px solid rgba(158, 121, 72, .55) !important; padding: 0 0 13px !important; margin-bottom: 21px !important; }
.hero h1 { max-width: 660px; color: #382e2b !important; font-size: clamp(47px, 5.3vw, 80px) !important; line-height: .98 !important; }
.hero h1 .highlight { color: #8e6254 !important; }
.hero p { color: #70635c !important; font-size: 16px !important; }
.hero-photo::before { content: ''; position: absolute; inset: 5% -5% -5% 9%; border: 1px solid rgba(165, 124, 88, .45) !important; pointer-events: none; }
.hero-photo > div {
  max-width: 100% !important;
  aspect-ratio: 1.35 / 1.05 !important;
  border: 1px solid rgba(255, 252, 248, .95) !important;
  border-radius: 3px !important;
  box-shadow: 22px 27px 52px rgba(61, 41, 32, .2) !important;
  background: #3a2923 !important;
}
.hero-photo img { object-position: 73% center; filter: saturate(.91) contrast(1.02) sepia(.025) !important; }
.counter-wrapper { margin-top: 37px !important; padding-top: 17px !important; border-top-color: rgba(130, 94, 73, .28) !important; }
.counter-item { border-right-color: rgba(130, 94, 73, .18) !important; }
.counter-item .number, .counter-item .plus { color: #896452 !important; }
.counter-item .label { color: #8b7c73 !important; }

/* Calm, alternating paper surfaces keep long pages light and legible. */
.about, .services, .states, .booking, .article-section { background: rgba(255, 253, 250, .7) !important; }
.education, .reviews, .cta { background: linear-gradient(135deg, #eee3da 0%, #f5eee8 58%, #eadfd5 100%) !important; }
.section-divider { background: rgba(143, 103, 78, .2) !important; }
.page-hero .breadcrumb, .page-hero p { color: #766861 !important; }
.page-hero .breadcrumb a { color: #875f53 !important; }
.section-title { color: #352c29 !important; }
.section-sub { color: #776b65 !important; }
.text-block { border-left-color: #ae8654 !important; }
.text-block p, .about-text p { color: #6e625c !important; }
.text-block strong, .about-text strong { color: #3d302c !important; }
.about-photo .photo-wrapper, .photo-wrapper {
  border-color: rgba(166, 125, 90, .25) !important;
  box-shadow: 15px 18px 0 rgba(218, 196, 180, .75) !important;
}
.about-photo img, .photo-wrapper img { filter: sepia(.025) saturate(.94) !important; }

.edu-card, .service-card, .review-card, .states-category, .cta-box, .article-card, .price-card, .contact-card, .form-card,
.branch-review-card {
  background: linear-gradient(145deg, rgba(255, 254, 251, .98), rgba(247, 241, 235, .98)) !important;
  border-color: rgba(124, 89, 70, .16) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 14px 34px rgba(71, 49, 40, .075) !important;
}
.edu-card:hover, .service-card:hover, .review-card:hover, .states-category:hover {
  border-color: rgba(135, 95, 83, .42) !important;
  background: linear-gradient(145deg, #fffefa, #f5eae2) !important;
  box-shadow: 0 20px 42px rgba(71, 49, 40, .12) !important;
}
.edu-card h3, .service-card h3, .states-category h3, .branch-review-card h3, .review-card .author { color: #3b302c !important; }
.edu-card .org, .edu-card .desc, .service-card p, .review-card .text, .states-category p, .article-card p { color: #746761 !important; }
.edu-card .year, .tag, .service-card .price, .price, .review-stars, .stars { color: #a46f48 !important; }
.tag { background: #f6eee8 !important; border-color: rgba(163, 112, 79, .17) !important; }
.premium-icon {
  color: #9a7551 !important;
  border-color: rgba(160, 122, 79, .38) !important;
  background: linear-gradient(135deg, #fbf2e7, #efe0d0) !important;
}

/* Buttons: upholstered cocoa tones, slim contour, and a soft lift. */
.btn-consult, .btn-primary, .btn-edu, .service-detailed .btn-wrap .btn-service, .profi-fallback-button,
.profi-booking-host .pg-button, #profiGuideBooking .pg-button {
  border: 1px solid rgba(87, 54, 46, .26) !important;
  border-radius: 9px !important;
  background: linear-gradient(135deg, #7e5146 0%, #644039 100%) !important;
  color: #fffaf4 !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 9px 20px rgba(80, 52, 43, .16) !important;
}
.btn-consult:hover, .btn-primary:hover, .btn-edu:hover, .service-detailed .btn-wrap .btn-service:hover,
.profi-fallback-button:hover, .profi-booking-host .pg-button:hover, #profiGuideBooking .pg-button:hover {
  background: linear-gradient(135deg, #96665a 0%, #71463f 100%) !important;
  color: #fffdf9 !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 13px 24px rgba(80, 52, 43, .2) !important;
}
.btn-outline, .btn-service-outline, .education-nav-button, .service-booking-button, .contact-chip, .home-review-branches a {
  border-color: rgba(119, 82, 67, .32) !important;
  border-radius: 9px !important;
  background: rgba(255, 253, 250, .74) !important;
  color: #745145 !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 5px 14px rgba(80, 52, 43, .06) !important;
}
.btn-outline:hover, .btn-service-outline:hover, .education-nav-button:hover:not(:disabled), .service-booking-button:hover, .contact-chip:hover, .home-review-branches a:hover {
  background: #f3e5dc !important;
  border-color: rgba(119, 82, 67, .55) !important;
  color: #5f3d35 !important;
}
.service-booking-button::after { color: #9b7248 !important; }

/* Forms and embedded booking stay crisp rather than visually heavy. */
.booking-form, .contact-form {
  background: linear-gradient(145deg, #fffefa, #f6ebe3) !important;
  border: 1px solid rgba(133, 94, 74, .18) !important;
  box-shadow: 0 20px 48px rgba(91, 60, 48, .10), 10px 11px 0 rgba(223, 203, 188, .68) !important;
}
.profi-booking-card .section-label { color: #885b4c !important; }
.profi-booking-card h3 { color: #3d302b !important; }
.profi-booking-card .booking-card-accent { color: #9b684e !important; }
.profi-booking-card .booking-card-copy { color: #71635d !important; }
.profi-booking-card .booking-card-steps span {
  border-color: rgba(119, 82, 67, .18);
  background: rgba(255,255,255,.48);
  color: #604b43;
}
.profi-booking-card .booking-card-steps b { background: #815347; color: #fffaf4; }
.profi-booking-card .booking-card-note { color: #81716a !important; }
.profi-booking-card .booking-card-note::before { color: #815347; }
.booking-form label, .contact-form label { color: #493a35 !important; }
.booking-form input, .booking-form select, .booking-form textarea, .contact-form input, .contact-form textarea {
  color: #3b302c !important;
  background: rgba(255, 255, 255, .65) !important;
  border-bottom-color: rgba(126, 89, 72, .32) !important;
}
.booking-form .btn-submit, .contact-form .btn-submit {
  border: 1px solid rgba(87, 54, 46, .26) !important;
  border-radius: 9px !important;
  background: linear-gradient(135deg, #7e5146, #644039) !important;
  color: #fffaf4 !important;
}
.booking-form .btn-submit:hover, .contact-form .btn-submit:hover { background: linear-gradient(135deg, #96665a, #71463f) !important; color: #fffdf9 !important; }
.form-consent, .form-note { color: #8a7970 !important; }
.service-detailed, .service-detailed:nth-child(even), .what-includes, .states-category { border-color: rgba(133, 94, 74, .14) !important; }
.service-detailed .price, .price-old { color: #a96f47 !important; }
.yandex-review-widget { border-color: rgba(151, 105, 73, .24) !important; background: #fffaf4 !important; }
.branch-review-button { color: #805749 !important; border-bottom-color: rgba(128, 87, 73, .6) !important; }

/* A single rich, quiet base note at the end of the page. */
footer {
  background: linear-gradient(115deg, #3a2924 0%, #48322b 54%, #34241f 100%) !important;
  border-top-color: rgba(202, 166, 108, .6) !important;
}
footer a, footer .footer-details a, footer .footer-branches .branch-address { color: #e7cda6 !important; }
footer [style*="primary-dark"], .footer-branches-title, footer .footer-phone { color: #fff7ee !important; }
footer .footer-company, .footer-unified .footer-subtitle { color: rgba(246, 229, 211, .68) !important; }
footer .footer-details, .footer-legal { border-color: rgba(239, 206, 164, .18) !important; }

@media (max-width: 900px) {
  .mobile-menu { background: rgba(252, 249, 245, .99) !important; }
  .mobile-menu a { color: #403530 !important; border-bottom-color: rgba(128, 95, 81, .16) !important; }
  .mobile-menu .mobile-book { background: linear-gradient(135deg, #7e5146, #644039) !important; color: #fffaf4 !important; }
  .burger span { background: #67463d !important; }
  .hero-grid { grid-template-columns: 1fr !important; }
  .hero-content { order: 2; }
  .hero-photo { order: 1; width: min(100%, 560px); justify-self: center; }
  .hero-photo > div { aspect-ratio: 1.35 / 1 !important; }
  .hero h1 { font-size: clamp(43px, 11.5vw, 62px) !important; }
  .hero-photo > div { box-shadow: 15px 19px 38px rgba(61, 41, 32, .19) !important; }
}
@media (max-width: 600px) {
  .hero { padding: 33px 0 56px !important; }
  .hero-photo::before { inset: 5% -2% -4% 6%; border-color: rgba(165, 124, 88, .36) !important; }
  .hero-content { text-align: left; }
  .hero-badge { font-size: 8px !important; }
  .counter-wrapper { margin-top: 27px !important; }
  .about-photo .photo-wrapper, .photo-wrapper { box-shadow: 9px 11px 0 rgba(218, 196, 180, .78) !important; }
  .edu-card, .service-card, .review-card, .states-category, .cta-box, .article-card, .price-card, .contact-card, .form-card, .branch-review-card { border-radius: 10px !important; }
}
