/* Client revision — final spacing, compact homepage, clear call controls and map ratings. */
:root { --rev-gap: clamp(18px, 2.4vw, 32px); }
body { font-size: 17px; line-height: 1.65; }
main { min-width: 0; }
main section { scroll-margin-top: 85px; }
main h1, main h2, main h3 { text-wrap: balance; overflow-wrap: normal; }
main p { text-wrap: pretty; }
.content-block { max-width: 1180px; margin-inline: auto; }
.content-block > p, .content-block > ul { max-width: 1080px; }
.content-block > h2 { margin: 44px 0 16px; line-height: 1.13; }
.content-block > h2:first-child { margin-top: 0; }
.content-block > h2 + p { margin-top: 12px; }
.content-block > .seo-lead { max-width: 1100px; }
.content-block .quick-facts { grid-template-columns: repeat(auto-fit,minmax(198px,1fr)); gap: 16px; align-items: stretch; }
.content-block .quick-facts > * { min-width: 0; }
.content-block .info-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.content-block .info-card { padding: 24px 26px; }
.content-block .info-card h3 { line-height:1.2; }
.content-block .service-index { grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); }
.content-block .service-index a { min-height: 104px; }
.content-block .price-block { max-width: 1100px; }
.content-block .quick-fact { padding: 21px 22px; }
.content-block .quick-fact strong { display: block; }
/* Call blocks are a single visible conversion zone, not two disconnected widgets. */
section#callback .container:has(> .form-card) { max-width: 1190px; display:grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 0; align-items:stretch; padding-inline:0; border-radius: 26px; overflow:hidden; box-shadow:0 18px 56px rgba(19,75,74,.14); }
section#callback .cta-block { display:flex; flex-direction:column; justify-content:center; align-items:center; margin:0; padding:48px 42px; border-radius:26px 0 0 26px; background:linear-gradient(130deg,#087a73,#175775); }
section#callback .cta-block h2 { font-size:clamp(2rem,3vw,3rem); max-width:580px; }
section#callback .cta-block .cta-buttons { margin-top: 14px; }
section#callback .cta-block .btn { min-width: 170px; min-height: 60px; font-size:1.02rem; }
section#callback .form-card { max-width:none; width:100%; padding:42px 38px; margin:0; border-radius:0 26px 26px 0; border:1px solid #dbeae6; box-shadow:none; display:flex; flex-direction:column; justify-content:center; }
section#callback .form-card h3 { font-size:1.5rem; line-height:1.27; }
section#callback .form-card .btn-primary { min-height:54px; font-size:1.03rem; }
/* Short but complete homepage: genuine image per card, fewer repetitive blocks. */
.site-home .hero { min-height: 530px; border-radius:0 0 28px 28px; }
.site-home .hero .container { padding-block:46px; gap:40px; }
.site-home .hero-content h1 { font-size:clamp(2.55rem,4.45vw,4.4rem); }
.site-home .hero-image > img { height: 430px; }
.site-home .section { padding-block: clamp(44px,4vw,68px); }
.site-home .section-intro { margin: 10px 0 22px; }
.site-home .home-intro-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.site-home .visual-step__image { height:145px; }
.site-home .visual-step__body { padding:20px 22px 23px; }
.site-home .visual-step__body h3 { font-size:1.22rem; }
.site-home .visual-step__body p { font-size:.93rem; line-height:1.52; }
.site-home .cases-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.site-home .case-card__image { height:145px; }
.site-home .case-card__body { padding:18px 19px 22px; }
.site-home .case-card__body h3 { font-size:1.16rem; }
.site-home .case-card__body p { font-size:.93rem; line-height:1.5; }
.site-home .home-services-catalog { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.site-home .home-service-group__image { height:160px; }
.site-home .home-service-group__body { padding:20px 22px; }
.site-home .home-service-group__body h3 { font-size:1.27rem; margin-bottom:10px; }
.site-home .home-service-group__body li { margin:0; }
.site-home .home-service-group__body ul { gap:8px; }
.site-home .home-service-group__body li a { font-size:.95rem; }
.site-home .doctors-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.site-home .doctor-photo { height:225px; }
.doctor-card .doctor-photo img { object-fit:cover; object-position:center top !important; }
/* Home cards use a shorter photo area than /vrachi/: fit the whole face in the original frame. */
.site-home .doctor-photo img { width:83%; }
.doctor-card .doctor-photo img[src$="P005_doctor_05.jpg"] { object-position:center 24% !important; }
.site-home .doctor-info { padding:18px 21px !important; }
.site-home .doctor-info h3 { font-size:1.12rem; }
.alcohol-hub-hero .service-hero-v84__actions .btn { margin-top:0; }
.alcohol-hub-hero .service-hero-v84__actions .btn-outline { background:transparent; color:#fff; border-color:rgba(255,255,255,.8); }
.alcohol-hub-hero .service-hero-v84__actions .btn-outline:hover { background:rgba(255,255,255,.15); color:#fff; }
@media(max-width:760px) {
  .alcohol-hub-hero { padding-block:30px; }
  .alcohol-hub-hero .page-grand-hero__grid { gap:22px; }
  .alcohol-hub-hero .page-grand-hero__image,
  .alcohol-hub-hero .page-grand-hero__image img { min-height:0; max-height:210px; height:210px; }
  .alcohol-hub-hero .service-hero-v84__actions .btn { flex:1 1 100%; min-width:0; }
}
.site-home #callback { padding-block:48px 70px; }
/* Small functional map with two reference rating cards below, not a full-screen rating banner. */
.location-reviews { background:linear-gradient(135deg,#eef8f5,#f9fbfc); }
.location-reviews__heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.location-reviews__heading h2 { margin:0 0 8px; }
.location-reviews__heading p { max-width:780px; color:#59757e; margin:0; }
.location-reviews__heading .btn { flex-shrink:0; }
.location-map { position:relative; height:288px; isolation:isolate; border-radius:23px; overflow:hidden; border:1px solid #c7deda; background:repeating-linear-gradient(0deg,#e9f1e9 0,#e9f1e9 36px,#c7d3d0 37px,#c7d3d0 39px,#e9f1e9 41px,#e9f1e9 85px); box-shadow: 0 15px 42px rgba(22,60,57,.07); }
.location-map iframe { width:100%; height:100%; border:0; display:block; position:relative; z-index:1; }
.location-map__address { position:absolute; z-index:2; left:18px; top:18px; max-width:calc(100% - 36px); display:grid; background:#fff; border:1px solid #d5e4df; border-radius:13px; padding:10px 16px; box-shadow: 0 6px 24px rgba(14,58,62,.12); line-height:1.36; }
.location-map__address strong { color:#174b4c; }
.location-map__address span { font-size:.87rem; color:#60777a; }
.ratings-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.ratings-card { min-height:148px; padding:20px 26px 16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; background:#fff; border-radius:18px; border:1px solid #d6e6e2; box-shadow:0 10px 30px rgba(18,66,66,.04); }
.ratings-card img { display:block; width:auto; height:auto; max-width:100%; max-height:100px; object-fit:contain; }
.ratings-card span { color:#6b7b82; font-size:.74rem; text-align:center; }
/* About page: editorial, not empty 800px left column. */
.site-about .about-opening { max-width:1100px; }
.site-about .about-opening h2 { margin:0 0 18px; }
.site-about .about-opening p { margin-bottom:16px; }
.about-feature { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); align-items:stretch; gap:36px; margin:52px 0; padding:28px; background:#f0f8f5; border:1px solid #dceae5; border-radius:24px; }
.about-feature--reverse { grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:#f7fbfa; }
.about-feature__copy { padding:16px 5px 16px 14px; display:flex; flex-direction:column; align-items:start; justify-content:center; }
.about-feature__copy h2 { margin:0 0 16px; }
.about-feature__copy p { margin:0 0 16px; }
.about-feature__copy .btn { margin-top:8px; }
.about-feature > img { width:100%; height:100%; min-height:300px; max-height:410px; object-fit:cover; border-radius:18px; }
.about-info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 48px; }
.about-info-grid article { border:1px solid #d6e8e3; padding:24px; border-radius:19px; background:#fff; }
.about-info-grid h3 { font-size:1.25rem; margin-bottom:11px; color:#067e77; }
.about-info-grid p { color:#46636c; font-size:.97rem; }
.about-end-cta { display:flex; align-items:center; flex-wrap:wrap; gap:15px; margin-top:42px; padding:34px; border-radius:23px; background:linear-gradient(120deg,#0a7973,#155979); color:#fff; }
.about-end-cta div { flex:1 1 360px; }
.about-end-cta h2 { color:#fff; font-size:clamp(1.7rem,2.9vw,2.5rem); margin:0 0 8px; }
.about-end-cta p { margin:0; color:#e4faf4; }
.about-end-cta .btn-outline { border-color:#fff; color:#fff; }
@media(max-width:1100px){
 .site-home .home-intro-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .site-home .cases-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .site-home .home-services-catalog{grid-template-columns:repeat(2,minmax(0,1fr));}
 .about-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 section#callback .container:has(> .form-card){max-width:calc(100% - 44px);}
}
@media(max-width:760px){
 html,body { font-size:16px; }
 .content-block > h2 { margin-top:30px; }
 .content-block .quick-facts,.content-block .info-grid,.content-block .service-index { grid-template-columns:1fr; }
 .site-home .hero .container { padding-block:35px; }
 .site-home .hero-content h1 { font-size:clamp(2.2rem,8vw,3.1rem); }
 .site-home .hero-image > img { height:275px; }
 .site-home .home-intro-grid,.site-home .cases-grid,.site-home .home-services-catalog,.site-home .doctors-grid { grid-template-columns:1fr; }
 .site-home .visual-step__image,.site-home .case-card__image { height:175px; }
 .site-home .home-service-group__image { height:185px; }
 .site-home .doctor-photo { height:270px; }
 .site-home .section { padding-block:42px; }
 section#callback .container:has(> .form-card) { grid-template-columns:1fr;max-width:calc(100% - 36px); }
 section#callback .cta-block { padding:38px 22px; border-radius:22px 22px 0 0; }
 section#callback .cta-block .btn{ min-width:0; width:100%; }
 section#callback .cta-block .cta-buttons{width:100%;}
 section#callback .form-card { border-radius:0 0 22px 22px; padding:28px 23px; }
 .location-reviews__heading { align-items:start; flex-direction:column; gap:18px; }
 .location-map{height:255px;}
 .location-map__address { font-size:.92rem; }
 .ratings-row { grid-template-columns:1fr; gap:12px; }
 .ratings-card { padding:13px 18px; min-height:128px; }
 .ratings-card img { max-height:92px; }
 .about-feature,.about-feature--reverse { grid-template-columns:1fr; gap:20px; margin:30px 0; padding:15px; }
 .about-feature__copy{padding:16px 8px;}
 .about-feature > img{min-height:230px;max-height:320px;}
 .about-info-grid { grid-template-columns:1fr; margin-bottom:28px; }
 .about-end-cta { padding:26px; }
}
@media(min-width:761px) and (max-width:980px){
 .site-home .doctors-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .about-feature,.about-feature--reverse{grid-template-columns:1fr;}
 .about-feature > img{min-height:250px;max-height:320px;}
 section#callback .container:has(> .form-card) { grid-template-columns:1fr; }
 section#callback .cta-block{border-radius:22px 22px 0 0;}
 section#callback .form-card{border-radius:0 0 22px 22px;}
}

/* Small viewport and reference-rating polish */
.about-feature,.about-feature > *,.about-feature__copy{min-width:0;}
.about-feature > img{max-width:100%;}
.ratings-card{min-height:177px;}
.ratings-card img{max-height:133px;}
.ratings-card:first-child img{width:min(100%,315px);}
.ratings-card:nth-child(2) img{width:min(100%,265px);}
@media(max-width:760px){.ratings-card{min-height:160px;}.ratings-card img{max-height:128px;}}

/* Keep fixed callbacks usable on narrow and short phone screens. */
@media(max-width:760px){
 .lead-widget__panel { max-height:calc(100dvh - 90px); overflow-y:auto; overscroll-behavior:contain; }
 .callback-modal__dialog { max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; }
 .lead-widget__panel input,.lead-widget__panel select,.callback-form input,.callback-form select { font-size:16px; }
}
@media(max-width:480px){
 .btn { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
}

/* Keep the entire face in frame as cards change width on tablets and phones. */
@media(min-width:761px) and (max-width:980px){
 .site-home .doctor-photo { height:clamp(225px,31vw,310px); }
}
@media(min-width:600px) and (max-width:760px){
 .site-home .doctors-grid,.doctors-grid--full { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:599px){
 .site-home .doctor-photo { height:max(270px,67vw); }
 .doctors-grid--full .doctor-photo { height:max(330px,72vw); }
}
