/* Shared social controls: consistent size in contacts and footer. */
.soc_row { gap:14px; flex-wrap:wrap; }
.soc_row .soc_ico { display:grid; place-items:center; box-sizing:border-box; width:44px; height:44px; flex:0 0 44px; margin:0; padding:8px; border:1px solid rgba(var(--zam-gold-rgb),.4); border-radius:8px; background:rgba(var(--zam-hero-rgb),.14); transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease; }
.soc_row .soc_ico img { display:block; width:28px; height:28px; max-width:100%; object-fit:contain; margin:0; }
.soc_row .soc_ico:is(:hover,:focus-visible) { background:rgba(var(--zam-gold-rgb),.16); border-color:var(--zam-gold); box-shadow:0 4px 15px rgba(var(--zam-gold-rgb),.2); transform:translateY(-2px); filter:brightness(1.08); }
@media(prefers-reduced-motion:reduce) {
  .soc_row .soc_ico { transition:none; }
  .soc_row .soc_ico:is(:hover,:focus-visible) { transform:none; }
}
/* Reviews share the project's restrained translucent chevrons on all screens. */
#otz_block > .owl-controls .owl-buttons > div { display:grid; place-items:center; width:40px; height:40px; padding:0; margin:0; border-radius:50%; border:1px solid rgba(255,255,255,.25); background-image:none; background-color:rgba(38,41,36,.5)!important; color:var(--zam-text); box-shadow:0 2px 8px rgba(0,0,0,.12); opacity:1; transform:translateY(-50%); }
#otz_block > .owl-controls .owl-buttons > div::before { content:''; width:10px; height:10px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:translateX(-2px) rotate(45deg); }
#otz_block > .owl-controls .owl-buttons > .owl-prev::before { transform:translateX(2px) rotate(-135deg); }
#otz_block > .owl-controls .owl-buttons > div:hover { background-color:rgba(38,41,36,.78)!important; border-color:rgba(var(--zam-gold-rgb),.7); }
@media(min-width:1025px) {
  #otz_block { box-sizing:border-box; padding-inline:56px; }
  #otz_block > .owl-controls { position:static; margin:0; height:0; }
  #otz_block > .owl-controls .owl-buttons > div { position:absolute; top:50%; bottom:auto; transform:translateY(-50%); }
  #otz_block > .owl-controls .owl-buttons > .owl-prev { left:0; right:auto; }
  #otz_block > .owl-controls .owl-buttons > .owl-next { right:0; left:auto; }
  #otz_block .otziv { padding-left:30px; padding-right:0; }
  #otz_block .otz_row img { left:-30px; }
}
/* Mobile and tablet layer. Desktop exceptions are limited to review arrows above. */
@media (max-width:1024px) {
  .wrapper { padding-inline:16px; }
  :is(.main_header,.usl_fon,.about_fon,.proj_fon) .main_zag,
  .zam-project-hero h1 { text-align:left; align-self:start; width:100%; max-width:none; font-size:clamp(29px,7.5vw,38px); line-height:1.18; text-wrap:pretty; }
  :is(.main_header,.usl_fon,.about_fon,.proj_fon) { text-align:left; }
  :is(.main_header,.usl_fon,.zam-about-hero,.zam-project-hero) .butts_line,
  .zam-project-hero-links { justify-content:flex-start; align-items:flex-start; text-align:left; }
  :is(.main_header,.usl_fon,.zam-about-hero) .butts_line { gap:20px; margin-top:30px; }
  :is(.main_header,.usl_fon,.zam-about-hero) .butt_big { box-sizing:border-box; max-width:100%; padding:14px 17px; }
  :is(.main_header,.usl_fon,.zam-about-hero) .butt_big p { font-size:15px; line-height:1.4; }
  .main_header .zam-mobile-hero { margin-bottom:30px; }
  .main_header .main_row { box-sizing:border-box; width:100%; max-width:none; min-width:0; margin:0; padding:24px 16px; left:auto; right:auto; transform:none; gap:24px 16px; }
  .main_header .main_row::before { inset:0; }
  .main_header .main_col { min-width:0; flex-direction:column; text-align:left; align-items:flex-start; }
  .main_header .main_col p { font-size:14px; line-height:1.5; text-align:left; }
  .main_header .main_col img { margin:0 0 12px; }
  .main_header .line_v,.main_header .line_h { display:none; }

  .cif_row,.about_cif_row,.zam-about-hero .about_cif_row { box-sizing:border-box; width:100%; max-width:none; margin:28px 0; gap:8px; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
  .cif_row .cif_col,.about_cif_row .about_cif_col { box-sizing:border-box; display:block; min-width:0; width:auto; height:auto; margin:0; padding:14px 8px; text-align:left; border:1px solid rgba(var(--zam-gold-rgb),.65); border-radius:6px; background:rgba(35,39,33,.8); }
  .cif_row .cif,.about_cif_row .about_cif { display:flex; align-items:baseline; justify-content:flex-start; gap:3px; min-height:0; font-size:clamp(24px,6.8vw,34px); line-height:1.2; letter-spacing:-.035em; white-space:nowrap; }
  .cif_row .cif span,.about_cif_row .about_cif span { font-size:14px; letter-spacing:0; }
  .cif_row .cif_text,.about_cif_row .about_cif_text { margin:12px 0 0; font-size:14px; line-height:1.45; font-weight:400; color:var(--zam-text); overflow-wrap:normal; word-break:normal; hyphens:none; }

  :is(#port_slider,.zam-project-list-card).zam-project-card { padding:18px; }
  .archive-project .zam-project-list-card { grid-template-columns:1fr; padding:18px; }
  :is(#port_slider,.zam-project-list-card) .port_block { gap:24px; }
  :is(#port_slider,.zam-project-list-card) .port_name { font-size:22px; line-height:1.3; margin-bottom:20px; text-align:left; }
  :is(#port_slider,.zam-project-list-card) .char_row { gap:12px; }
  :is(#port_slider,.zam-project-list-card) .char_one,
  :is(#port_slider,.zam-project-list-card) .char_one span { font-size:16px; line-height:1.5; }
  :is(#port_slider,.zam-project-list-card) .char_sum { font-size:15px; line-height:1.5; padding-top:16px; margin-top:18px; }
  :is(#port_slider,.zam-project-list-card) .char_sum span { font-size:21px; }
  :is(#port_slider,.zam-project-list-card) .port_text { font-size:16px; line-height:1.6; margin:18px 0 22px; }
  :is(#port_slider,.zam-project-list-card) .butts_line { justify-content:flex-start; gap:18px; }
  :is(#port_slider,.zam-project-list-card) .port_butts { justify-content:flex-start; align-items:flex-start; gap:18px; }
  :is(#port_slider,.zam-project-list-card) .butt_big { padding:13px 15px; max-width:100%; box-sizing:border-box; }
  :is(#port_slider,.zam-project-list-card) .butt_big p { font-size:14px; }
  :is(#port_slider,.zam-project-list-card) .butt_big img { width:22px; margin-right:10px; }
  .zam-service-copy { padding:20px; }
  .zam-service-copy h3 { font-size:23px; margin-bottom:14px; }
  .zam-service-copy p { font-size:16px; line-height:1.6; margin-bottom:20px; }
  .zam-rich-copy,.zam-copy-section .zam-rich-copy { font-size:16px; line-height:1.65; }
  .zam-rich-copy :is(p,li),.content_block .zam-rich-copy :is(p,li) { font-size:16px!important; line-height:1.65; }
  .zam-copy-section { padding:18px; }
  .zam-project-facts { padding:18px; }
  .zam-project-facts .proj_name { font-size:15px; }
  .zam-project-facts .proj_val { font-size:17px; }
  .zam-content-row { gap:24px; }
  .zam-rich-copy ol > li { padding:16px; gap:12px; align-items:flex-start; }
  .zam-rich-copy ol > li::before { font-size:16px; width:20px; flex-basis:20px; }
  .zam-step-copy { min-width:0; }

  .otz_wrap { width:100%; max-width:none; }
  .otziv { padding:26px 0 0; }
  .otz_row { padding:92px 20px 24px; text-align:left; }
  .otz_row img { width:80px; height:80px; object-fit:cover; top:-14px; bottom:auto; left:20px; }
  .otz_line { align-items:baseline; justify-content:flex-start; gap:6px 12px; margin-bottom:18px; }
  .otz_name { font-size:23px; }
  .otz_city { font-size:14px; margin:0; }
  .otz_text { font-size:16px; line-height:1.6; }
  #otz_block .owl-buttons > :is(.owl-prev,.owl-next),
  #port_slider .port_gall .owl-buttons > :is(.owl-prev,.owl-next),
  .port_gall .owl-buttons > :is(.owl-prev,.owl-next) { box-sizing:border-box; width:32px; height:32px; min-width:32px; padding:0; background-size:10px; }
  #otz_block .owl-prev { left:4px; }
  #otz_block .owl-next { right:4px; }
  #port_slider .port_gall .owl-buttons > :is(.owl-prev,.owl-next)::before,
  .port_gall .owl-buttons > :is(.owl-prev,.owl-next)::before { width:8px; height:8px; border-width:2px; }

  .soc_row { justify-content:flex-start; flex-wrap:wrap; gap:20px; }
  .soc_row .soc_ico { margin:0; }
  footer,.foot_row,.foot_col1,.foot_col4 { text-align:left; align-items:flex-start; }
  .foot_row { justify-content:flex-start; gap:24px; }
  footer :is(.foot_tel,.foot_mail,.foot_adr,.logo) { margin-left:0; margin-right:0; }
  footer :is(.foot_tel,.foot_mail) { font-size:19px; }
  footer .foot_adr { font-size:16px; }
  .zam-address-card figure img,.zam-contact-page-map .zam-address-card figure img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
  .zam-address-card-copy { padding:18px; align-items:flex-start; }
  .zam-address-title { font-size:18px; min-width:0; flex-basis:100%; }
  .spoiler-body { max-height:calc(100dvh - 100px); overflow-y:auto; overscroll-behavior:contain; }
  .spoiler-body li a { display:block; padding:8px 4px; }

  /* Text blocks share a left edge; centering is reserved for icon-only controls. */
  section :is(h1,h2,h3,h4,p,li,dt,dd,.cat_name,.proj_podzag,.form_t1,.form_t2,.butt_small),
  .popup :is(h2,p,.form_t1,.form_t2), .zam-legal-content :is(h1,h2,p,li) { text-align:left!important; }
  section :is(.cat_name,.sec_zag,.proj_podzag,.form_t1,.form_t2) { margin-left:0; margin-right:0; }
  section .butt_small { align-self:flex-start; margin-left:0; margin-top:0; }
  .usl_fon .butts_line { display:flex; flex-direction:column; align-items:flex-start; }
  .cat_name,.usl_butt,.butt_small,.post_date,.form_col > p,
  .zam-service-nav a,.zam-service-nav a span,.zam-row-number,
  #port_slider.owl-theme > .owl-controls .owl-buttons > div { font-size:14px; }
  .zam-about-hero { min-height:0; padding:116px 0 48px; }
  .main_header { min-height:0; padding:116px 0 48px; background-image:none!important; }
  .main_header .main_zag { margin:0 0 24px; }
  .main_header .zam-mobile-hero { display:block; }
  .zam-about-hero > .wrapper { display:grid; grid-template-columns:1fr; gap:32px; }
  .zam-about-hero-copy { width:100%; max-width:none; }
  .zam-about-hero-photo { position:relative; inset:auto; width:100%; border-radius:6px; }
  .zam-about-hero-photo::after { display:none; }
  .zam-about-hero-photo img { height:auto; aspect-ratio:4/3; }
  #port_slider .port_block,.zam-project-hero .wrapper { grid-template-columns:1fr; }
  .zam-content-row,.zam-content-pair,.zam-card-batch { grid-template-columns:1fr; }
  .zam-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zam-service-hero-split :is(.main_zag,.usl_icos,.butts_line) { width:100%; max-width:none; }
  .zam-service-hero-photo { position:relative; inset:auto; width:100%; }
  .zam-service-hero-photo::after { display:none; }
  .zam-service-hero-photo img { height:auto; }
  .site-header .main-menu { display:none; }
  .site-header .head { display:grid; grid-template-columns:80px minmax(0,1fr) 44px; gap:8px; min-height:84px; padding:12px 0; align-items:center; }
  .site-header .naming-wrap { grid-column:1; grid-row:1; width:80px; min-width:0; }
  .site-header .logo img { width:80px; }
  .site-header .menu_mob { grid-column:3; grid-row:1; justify-self:end; display:block; position:static; width:44px; height:44px; margin:0; }
  .site-header .spoiler-head { display:block; position:relative; box-sizing:border-box; width:44px; height:44px; min-width:44px; padding:0; margin:0; border:0; background-color:transparent; background-size:24px; background-position:center; background-repeat:no-repeat; appearance:none; cursor:pointer; }
  .site-header .tel { grid-column:2; grid-row:1; justify-self:end; align-items:flex-end; min-width:0; width:100%; text-align:right; }
  .site-header .phone { font-size:clamp(14px,3.8vw,19px); white-space:nowrap; }
  .site-header .zakaz { font-size:14px; line-height:1.3; white-space:normal; }
  .site-header .spoiler-body { position:absolute; left:16px; right:16px; top:100%; width:auto; max-height:calc(100dvh - 100px); padding:8px; margin:0; background:var(--zam-hero); border:1px solid rgba(var(--zam-gold-rgb),.65); border-radius:6px; z-index:20; }
  .site-header .spoiler-body li { width:100%; margin:0; padding:0; text-align:left; }
  .site-header .spoiler-body ul.menu { display:block; width:100%; height:auto; padding:0; margin:0; }
  .site-header .spoiler-body a { font-size:16px; padding:12px; }
  .etap_col > p,.et_cif span,.zam-address-caption,footer .foot_list a { font-size:14px; }
  .et_cif > * { font-size:14px!important; }
  footer p,.usl_cena { text-align:left; }
  .blog_row .blog_post:focus-within,.zam-service-card:focus-within { box-shadow:0 8px 22px rgba(0,0,0,.16); }
  .blog_row .blog_post,.zam-service-card { overflow:hidden; border-radius:8px; border:1px solid rgba(var(--zam-gold-rgb),.65); background-clip:padding-box; }
  .blog_row .blog_post:hover,.zam-service-card:hover { transform:none; box-shadow:0 8px 22px rgba(0,0,0,.16); }
  .blog_row .post_img,.zam-service-photo { overflow:hidden; border-radius:0; }
  .blog_row .post_img img,.zam-service-photo img { border:0; outline:0; border-radius:0; }
  .blog_row .post_img:focus-visible { outline-offset:-4px; }
  #otz_block { padding-bottom:58px; }
  #otz_block > .owl-controls { position:static; margin:0; }
  #otz_block > .owl-controls .owl-buttons > div { top:auto; bottom:0; width:32px; height:32px; transform:none; }
  #otz_block > .owl-controls .owl-buttons > .owl-prev { left:0; right:auto; }
  #otz_block > .owl-controls .owl-buttons > .owl-next { left:48px; right:auto; }
  #otz_block > .owl-controls .owl-buttons > div::before { width:8px; height:8px; }
}
@media (max-width:600px) {
  .cif_row,.about_cif_row,.zam-about-hero .about_cif_row { grid-template-columns:1fr; gap:10px; }
  .cif_row .cif_col,.about_cif_row .about_cif_col { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:start; gap:14px; padding:16px; }
  .cif_row .cif_text,.about_cif_row .about_cif_text { margin:0; }
  .zam-services-grid { grid-template-columns:1fr; }
}

/* Restrained footer hierarchy; copy remains in native ACF options. */
footer.zam-footer-refined { padding:54px 0 30px; border-top:1px solid rgba(var(--zam-gold-rgb),.35); background:linear-gradient(130deg,#292d26,#20231f 75%); }
.zam-footer-refined .foot_row { display:grid; grid-template-columns:1.05fr 1.55fr .9fr 1.35fr; align-items:start; gap:36px; }
.zam-footer-refined :is(.foot_col1,.foot_col2,.foot_col3,.foot_col4) { width:auto; min-width:0; margin:0; }
.zam-footer-refined .logo { display:inline-flex; width:auto; margin:0; }
.zam-footer-refined .logo img { width:130px; }
.zam-footer-refined .foot_ops { margin:20px 0 14px; max-width:26ch; font-size:16px; line-height:1.6; font-style:normal; color:var(--zam-text); }
.zam-footer-refined .copy { margin:0; max-width:28ch; font-size:13px; line-height:1.65; color:var(--zam-muted); text-align:left; }
.zam-footer-refined .foot_zag { margin:0 0 18px; padding:0; border:0; font-size:14px; line-height:1.5; letter-spacing:.07em; color:var(--zam-gold); }
.zam-footer-refined .foot_zag::after { content:''; display:block; width:28px; height:1px; margin-top:10px; background:rgba(var(--zam-gold-rgb),.6); }
.zam-footer-refined .foot_list li { line-height:1.55; }
.zam-footer-refined .foot_col4 { padding-left:24px; border-left:1px solid rgba(var(--zam-gold-rgb),.18); }
.zam-footer-refined :is(.foot_tel,.foot_mail) { font-size:18px; }
.zam-footer-refined .soc_row { margin-top:24px; }
.zam-legal-links { background:#20231f; border-top-color:rgba(var(--zam-gold-rgb),.15); }
@media(max-width:1024px) {
  footer.zam-footer-refined { padding:40px 0 26px; }
  .zam-footer-refined .foot_row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
  .zam-footer-refined .foot_col4 { padding-left:0; border-left:0; }
}
@media(max-width:600px) {
  .zam-footer-refined .foot_row { grid-template-columns:1fr; gap:28px; }
  .zam-footer-refined .foot_col4 { padding-top:24px; border-top:1px solid rgba(var(--zam-gold-rgb),.18); }
}
