/* Color-only rules, grouped by component. All theme values come from palette.json.
   is limited to parent inline backgrounds and parent colors. */

/* 1. Base surfaces and typography */
body { color: var(--zam-text); background-color: var(--zam-page); }
.archive-project, .blog-page, .single-post, .page404 {
  background-color: var(--zam-page); background-image: var(--zam-page-gradient);
}
.sec_zag, .sec_zag.white, .main_zag, .proj_podzag, .cat_name, .about_logo { color: var(--zam-text); }
.main_zag span, .sec_zag span, .cat_name span, .about_cif,
.char_sum span, .usl_cena span, .proj_sum span, .rasch_form h2 span { color: var(--zam-gold); }
.about_cif_text, .otz_city, .post_date { color: var(--zam-muted); }
.butt_small, .usl_butt, .port_butts .butt_small {
  color: var(--zam-gold); text-decoration-color: var(--zam-gold-dark);
}
.logo p, .about_logo p, .foot_name { color: var(--zam-gold); }
.phone { color:var(--zam-phone-text); }

/* Services surface has its own paired roles, independent of the light steps section. */
section#next, .archive-service {
  background-color:var(--zam-services-bg); background-image:var(--zam-services);
}
:is(section#next, .archive-service) .sec_zag { color:var(--zam-services-ink); }
:is(section#next, .archive-service) .sec_zag span,
.cif, .cif span { color:var(--zam-services-accent); }
.cif_text { color:var(--zam-services-muted); }
.usl_zag { color:var(--zam-service-card-title); }

/* 2. Original multi-layer photo backgrounds: URLs are resolved from current ACF values. */
.main_header { --zam-banner-image: var(--zam-home-image); }
.usl_fon { --zam-banner-image: var(--zam-service-image); }
.proj_fon { --zam-banner-image: var(--zam-project-image); }
.about_fon { --zam-banner-image: var(--zam-about-image); }
.main_header, .usl_fon, .proj_fon, .about_fon {
  background-color: var(--zam-hero);
  background-image: var(--zam-hero-side), var(--zam-hero-top), var(--zam-hero-bottom), var(--zam-banner-image);
}
.portfolio, .otzivi { background-color: var(--zam-hero); }
.portfolio { background-image: var(--zam-photo-overlay), var(--zam-portfolio-image); }
.otzivi { background-image: var(--zam-photo-overlay), var(--zam-review-image); }
.raschet {
  background-color: var(--zam-page);
  background-image: var(--zam-form-side), var(--zam-form-top), var(--zam-form-bottom), var(--zam-form-image);
}
.popup_vnutr { background-color:var(--zam-surface-deep); background-image:var(--zam-surface-gradient); }
.contacts, .contacts-page {
  background-color: var(--zam-page); background-image: var(--zam-contacts);
}
footer { background-color: var(--zam-footer); background-image: var(--zam-footer-gradient); color: var(--zam-text); }

/* 3. Navigation: desktop, sticky and mobile */
.menu_fix { background-color: var(--zam-hero); box-shadow: 0 0 15px rgba(var(--zam-shadow-rgb), .35); }
.main-menu .sub-menu li, .podmenu li, .spoiler-body li {
  background-color: var(--zam-surface-deep); color: var(--zam-text);
  box-shadow: inset 0 0 3px 1px rgba(var(--zam-shadow-rgb), .3);
}
.main-menu .menu-item-has-children, .menu li p.arr { background-image: var(--zam-icon-arr); }
.spoiler-head { background-image: var(--zam-icon-menu); }

/* 4. Cards: resting surfaces; states live in interactions.css. */
/* Service cards share the same material/state implementation with scoped fill roles. */
.usl_block {
  --zam-surface-backdrop:var(--zam-service-card-backdrop);
  --zam-surface-gradient:var(--zam-service-card-surface);
  --zam-surface-active:var(--zam-service-card-active);
}
.usl_block, .proj_block, .blog_post, .post_content, #port_slider, .otz_row {
  background-color:var(--zam-surface-backdrop); background-image:var(--zam-surface-gradient); color:var(--zam-text);
}
.usl_block, .rasch_form, .proj_block, .blog_post, .post_content, .otz_row { box-shadow: var(--zam-surface-shadow); }
.usl_block img, .otz_row img { box-shadow: var(--zam-image-shadow); }
.cont_map { box-shadow: 0 0 20px rgba(var(--zam-shadow-rgb), .24); }
#port_slider { box-shadow: var(--zam-surface-shadow); }
.img_light { background-image: var(--zam-image-shade); }
.post_content blockquote { background-color: var(--zam-page-deep); border-left-color: var(--zam-gold-dark); }
.proj_podl, .vid_podl { background-color: var(--zam-surface); }

.rasch_form { background-color:var(--zam-surface-backdrop); background-image:var(--zam-form-surface); color:var(--zam-text); }

/* 5. One shared CTA treatment and state palette, no duplicate fix layers. */
.butt_big, .port_butts .butt_big, .usl_butt_vn, .etaps_butt, .usl_zakaz, .proj_butt, .post_butt,
.form_col input.form_butt, .form_col .wpcf7-submit {
  background-color: var(--zam-gold-mid); background-image: var(--zam-gold-metallic);
  color: var(--zam-on-gold); box-shadow: var(--zam-button-shadow);
  background-size:var(--zam-action-background-size); background-position:var(--zam-action-background-rest);
}
.butt_big img, .usl_zakaz img { filter: var(--zam-button-icon-filter); }

/* 6. Forms and validation */
.form_col input, .form_col select, .form_col textarea {
  color: var(--zam-text); background-color: var(--zam-field); border-color: var(--zam-line); caret-color: var(--zam-gold);
}
.form_col input::placeholder, .form_col textarea::placeholder { color: var(--zam-muted); }
.form_col option { color: var(--zam-text); background-color: var(--zam-field); }
.pol_row a { color: var(--zam-gold); }
.form_col input[type="checkbox"] { accent-color: var(--zam-gold-mid); }
.wpcf7-not-valid-tip { color: var(--zam-error); }
.wpcf7 form .wpcf7-response-output { border-color: var(--zam-gold); color: var(--zam-text); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--zam-error); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--zam-success); }
.popup { background-color: rgba(var(--zam-shadow-rgb), .72); }

/* 7. Light steps surface deliberately has its own readable text/accent pair. */
.etaps { background-color: var(--zam-light); background-image: var(--zam-light-gradient); color: var(--zam-on-light); }
.etaps .sec_zag { color: var(--zam-on-light); }
.etaps .sec_zag span { color: var(--zam-gold-on-light); }
.et_cif { background-color: var(--zam-gold-mid); background-image: var(--zam-gold-metallic); color: var(--zam-on-gold); }
.et_l1, .et_l2, .et_l3 { background-image: var(--zam-icon-etap-dots); }
.line_v { background-image: var(--zam-divider-vertical); }
.line_h { background-image: var(--zam-divider-horizontal); }

/* 8. Original carousel controls, pagination and video overlay */
.port_gall .owl-prev, .port_gall .owl-next, #otz_block .owl-prev, #otz_block .owl-next,
.proj_carus .owl-prev, .proj_carus .owl-next, .pag_left, .pag_right {
  background-color: var(--zam-surface-light); box-shadow: 0 0 15px rgba(var(--zam-shadow-rgb), .35);
  background-position:var(--zam-carousel-icon-position); background-size:var(--zam-carousel-icon-size); background-repeat:no-repeat;
}
#port_slider.owl-theme .owl-controls .owl-buttons div { color: var(--zam-gold); }
#port_slider .owl-prev, .port_gall .owl-prev, #otz_block .owl-prev, .proj_carus .owl-prev, .pag_left {
  background-image: var(--zam-icon-arr-left);
}
#port_slider .owl-next, .port_gall .owl-next, #otz_block .owl-next, .proj_carus .owl-next, .pag_right {
  background-image: var(--zam-icon-arr-right);
}
.pagi { background-color: var(--zam-surface); color: var(--zam-text); }
.pag_p.activ:after { background-color: var(--zam-gold); }
.proj_carus .owl-page span { border-color: var(--zam-gold); }
.proj_carus .owl-page.active span { background-color: var(--zam-gold); box-shadow: 0 0 9px rgba(var(--zam-accent-shadow-rgb), .5); }
.vid_lay { background-image: var(--zam-photo-overlay); }

/* 9. Existing decorative icons only; never apply a filter to photographs. */
.cont_tel { background-image: var(--zam-icon-tel); }
.cont_mail { background-image: var(--zam-icon-mail); }
.cont_adr { background-image: var(--zam-icon-adr); }
.foot_tel { background-image: var(--zam-icon-tel-w); }
.foot_mail { background-image: var(--zam-icon-mail-w); }
.foot_adr { background-image: var(--zam-icon-adr-w); }
.char_col, .char_col_vn { background-image: var(--zam-icon-arr-m); }
.soc_ico img, .close_wind img, .foot_logo img {
  filter: var(--zam-icon-filter);
}
.it-butik { background-color: var(--zam-footer); border-color: var(--zam-line); }
.it-butik p { color: var(--zam-muted); }
.it-butik .cls-1 { fill: var(--zam-text); }
.it-butik .cls-2 { fill: var(--zam-footer); }
.it-butik .cls-3 { stroke: var(--zam-gold); }


/* Project summary and case feature roles. */
.char_one, .char_sum, .proj_name, .proj_sum, .port_text { color:var(--zam-muted); }
.char_one span, .proj_val { color:var(--zam-text); }
