/* zamena-fona-podrobno-guide.css — FAITHFUL from ГОТОВЫЙ-HTML-С-ФОТО */
/* 2026-09-08.04: .zf-page; bg studio=1row; city under studio */

/* =========================================================
   ZERKALO PROART
   BACKGROUND REPLACEMENT DETAIL

   HEADER / MENU / FOOTER intentionally NOT included.
   Max width: 1440px
   Mobile: 360px+
   ========================================================= */

.zf-page{

  --zf-white:#ffffff;

  --zf-bg:#ffffff;
  --zf-soft:#f8f6fa;
  --zf-soft-purple:#f2edf7;
  --zf-soft-warm:#faf8f4;
  --zf-soft-blue:#f1f5f7;

  --zf-text:#211a24;
  --zf-heading:#291630;
  --zf-muted:#5d5561;
  --zf-muted-2:#746d78;

  --zf-purple:#57287e;
  --zf-purple-hover:#431e62;
  --zf-dark:#321940;
  --zf-deep:#24122e;

  --zf-green:#315f49;
  --zf-green-soft:#e3efe8;

  --zf-border:#ded7e2;
  --zf-border-strong:#c7bad0;

  --zf-shadow:
    0 17px 46px rgba(47,28,56,.08);

  --zf-shadow-big:
    0 28px 70px rgba(47,28,56,.14);

  --zf-wrap:1440px;

  color:var(--zf-text);
  background:var(--zf-bg);

  font-family:
    Manrope,
    Nunito,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    sans-serif;

  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}


.zf-page *,
.zf-page *::before,
.zf-page *::after{
  box-sizing:border-box;
}


.zf-page img{
  max-width:100%;
}


.zf-page a{
  color:inherit;
}


.zf-page section[id],
.zf-page div[id]{
  scroll-margin-top:120px;
}


.zf-wrap{
  width:min(
    var(--zf-wrap),
    calc(100% - 64px)
  );

  margin-inline:auto;
}


.zf-section{
  padding:84px 0;
}


.zf-section--soft{
  background:var(--zf-soft);
}


.zf-section--purple{
  background:
    radial-gradient(
      760px 380px at 100% 0%,
      rgba(106,64,144,.09),
      transparent 66%
    ),
    var(--zf-soft-purple);
}


.zf-section--warm{
  background:
    radial-gradient(
      700px 360px at 0 100%,
      rgba(156,113,71,.07),
      transparent 65%
    ),
    var(--zf-soft-warm);
}


.zf-section--blue{
  background:var(--zf-soft-blue);
}


/* =========================================================
   TYPE
   ========================================================= */

.zf-kicker{
  display:block;

  margin:0 0 10px;

  color:#6a4a78;

  font-size:14px;
  line-height:1.3;
  font-weight:800;
}


.zf-h2{
  max-width:960px;

  margin:0 0 16px;

  color:var(--zf-heading);

  font-size:clamp(32px,3.3vw,48px);
  line-height:1.08;
  letter-spacing:-.045em;
}


.zf-lead{
  max-width:860px;

  margin:0;

  color:var(--zf-muted);

  font-size:17px;
  line-height:1.7;
}


.zf-copy{
  max-width:850px;

  color:var(--zf-muted);

  font-size:16px;
  line-height:1.72;
}


.zf-copy p{
  margin:0 0 15px;
}


.zf-copy strong{
  color:#37243d;
}


.zf-note{
  margin:20px 0 0;

  color:#4f4753;

  font-size:15px;
  line-height:1.62;
}


.zf-text-link{
  color:var(--zf-purple);

  font-size:14px;
  font-weight:800;

  text-decoration:none;
}


.zf-text-link:hover{
  text-decoration:underline;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.zf-actions{
  display:flex;
  flex-wrap:wrap;

  gap:12px;

  margin-top:29px;
}


.zf-btn{
  min-height:52px;
  padding:0 23px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border:1.5px solid transparent;
  border-radius:14px;

  font-size:16px;
  line-height:1.2;
  font-weight:800;

  text-decoration:none;

  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease;
}


.zf-btn:hover{
  transform:translateY(-1px);
  text-decoration:none;
}


.zf-btn--primary{
  color:#fff;
  background:var(--zf-purple);

  box-shadow:
    0 12px 27px rgba(87,40,126,.18);
}


.zf-btn--primary:hover{
  color:#fff;
  background:var(--zf-purple-hover);
}


.zf-btn--secondary{
  color:#432151;
  background:#fff;

  border-color:#b8a6c1;
}


.zf-btn--secondary:hover{
  background:#f2edf5;
}


/* =========================================================
   BREADCRUMBS
   ========================================================= */

.zf-breadcrumbs{
  display:flex;
  flex-wrap:wrap;

  gap:8px;

  margin:0 0 29px;

  color:#716974;

  font-size:14px;
}


.zf-breadcrumbs a{
  color:#514a55;
  text-decoration:none;
}


/* =========================================================
   HERO
   ========================================================= */

.zf-hero{
  padding:48px 0 68px;

  background:
    radial-gradient(
      920px 480px at 100% -8%,
      rgba(111,65,150,.14),
      transparent 65%
    ),
    linear-gradient(
      180deg,
      #faf8fb,
      #fff
    );
}


.zf-hero__grid{
  display:grid;

  grid-template-columns:
    minmax(0,1.04fr)
    minmax(450px,.96fr);

  gap:68px;
  align-items:center;
}


.zf-hero__label{
  display:block;

  margin:0 0 12px;

  color:#684775;

  font-size:14px;
  font-weight:800;
}


.zf-hero h1{
  max-width:960px;

  margin:0;

  color:var(--zf-heading);

  font-size:clamp(40px,4.5vw,63px);
  line-height:1.035;
  letter-spacing:-.055em;
}


.zf-hero__lead{
  max-width:850px;

  margin:23px 0 0;

  color:#4f4752;

  font-size:18px;
  line-height:1.66;
}


.zf-hero__hint{
  max-width:760px;

  margin-top:21px;
  padding:16px 18px;

  border:1px solid #ddcfe4;
  border-radius:14px;

  background:#f0eaf4;

  color:#403344;

  font-size:15px;
  line-height:1.58;
}


.zf-hero__hint strong{
  color:#302037;
}


.zf-hero__micro{
  margin:14px 0 0;

  color:#685f6c;

  font-size:13px;
  line-height:1.5;
}


/* =========================================================
   HERO VISUAL
   Schematic, not presented as real customer case.
   ========================================================= */

.zf-visual{
  position:relative;

  min-height:570px;

  overflow:hidden;

  border-radius:30px;

  background:
    linear-gradient(
      150deg,
      #d6cabf,
      #c2b4c9 48%,
      #786382
    );

  box-shadow:var(--zf-shadow-big);
}


.zf-visual__old{
  position:absolute;

  inset:0 50% 0 0;

  background:
    linear-gradient(
      180deg,
      #d8ccc0 0 66%,
      #aa8b70 66% 100%
    );
}


.zf-visual__new{
  position:absolute;

  inset:0 0 0 50%;

  background:
    radial-gradient(
      circle at 72% 20%,
      rgba(255,255,255,.78),
      transparent 20%
    ),
    linear-gradient(
      180deg,
      #e5e0df 0 68%,
      #b7a291 68% 100%
    );
}


.zf-visual__person{
  position:absolute;
  z-index:4;

  left:50%;
  top:21%;

  width:36%;
  height:62%;

  transform:translateX(-50%);

  border-radius:
    44% 44% 18% 18% /
    25% 25% 12% 12%;

  background:
    radial-gradient(
      ellipse at 50% 17%,
      #d1a98c 0 16%,
      transparent 17%
    ),
    radial-gradient(
      ellipse at 50% 25%,
      #5d453c 0 18%,
      transparent 19%
    ),
    linear-gradient(
      180deg,
      transparent 0 31%,
      #65516d 32% 100%
    );

  filter:
    drop-shadow(
      0 18px 20px rgba(45,32,46,.18)
    );
}


.zf-visual__shadow{
  position:absolute;
  z-index:3;

  left:50%;
  bottom:11%;

  width:34%;
  height:6%;

  transform:translateX(-50%);

  border-radius:50%;

  background:rgba(56,44,53,.20);

  filter:blur(11px);
}


.zf-visual__line{
  position:absolute;
  z-index:5;

  top:0;
  bottom:0;
  left:50%;

  width:2px;

  background:#fff;
}


.zf-visual__handle{
  position:absolute;
  z-index:6;

  top:50%;
  left:50%;

  width:52px;
  height:52px;

  display:grid;
  place-items:center;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:#fff;
  color:#4f305e;

  box-shadow:
    0 8px 24px rgba(39,25,43,.22);

  font-size:20px;
  font-weight:900;
}


.zf-visual__labels{
  position:absolute;
  z-index:7;

  left:16px;
  right:16px;
  bottom:16px;

  display:flex;
  justify-content:space-between;
}


.zf-visual__labels span{
  padding:8px 11px;

  border-radius:9px;

  background:#291c2e;
  color:#fff;

  font-size:12px;
  font-weight:850;
}


/* =========================================================
   TRUST
   ========================================================= */

.zf-trust{
  border-top:1px solid var(--zf-border);
  border-bottom:1px solid var(--zf-border);

  background:#fff;
}


.zf-trust__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}


.zf-trust__item{
  min-height:82px;

  display:flex;
  align-items:center;

  padding:18px 24px;

  border-right:1px solid var(--zf-border);

  color:#443c47;

  font-size:14px;
  line-height:1.45;
  font-weight:750;
}


.zf-trust__item:last-child{
  border-right:0;
}


.zf-trust__check{
  width:23px;
  height:23px;

  display:grid;
  place-items:center;

  flex:0 0 23px;

  margin-right:11px;

  border-radius:50%;

  color:var(--zf-green);
  background:var(--zf-green-soft);

  font-size:11px;
  font-weight:900;
}


/* =========================================================
   NAV
   ========================================================= */

.zf-nav{
  border-bottom:1px solid var(--zf-border);

  background:#fff;
}


.zf-nav__inner{
  min-height:60px;

  display:flex;
  align-items:center;

  gap:29px;

  overflow-x:auto;
  scrollbar-width:none;
}


.zf-nav__inner::-webkit-scrollbar{
  display:none;
}


.zf-nav a{
  flex:0 0 auto;

  padding:18px 0;

  color:#493f4c;

  font-size:14px;
  font-weight:800;

  text-decoration:none;
}


/* =========================================================
   REALISM
   ========================================================= */

.zf-realism{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:14px;

  margin-top:34px;
}


.zf-realism__item{
  padding:23px;

  border:1px solid var(--zf-border);
  border-radius:18px;

  background:#fff;
}


.zf-realism__icon{
  width:41px;
  height:41px;

  display:grid;
  place-items:center;

  margin-bottom:15px;

  border-radius:13px;

  background:#f1ebf4;
  color:#59366d;

  font-size:13px;
  font-weight:900;
}


.zf-realism__item h3{
  margin:0 0 7px;

  color:#322039;

  font-size:17px;
}


.zf-realism__item p{
  margin:0;

  color:var(--zf-muted);

  font-size:14px;
  line-height:1.57;
}


/* =========================================================
   BACKGROUND SELECTOR
   ========================================================= */

.zf-bg-grid{
  display:grid;

  grid-template-columns:
    1.2fr .8fr .8fr;

  grid-auto-rows:minmax(210px,auto);

  gap:15px;

  margin-top:34px;
}


.zf-bg-card{
  position:relative;

  overflow:hidden;

  padding:27px;

  border:1px solid var(--zf-border);
  border-radius:22px;

  background:#fff;
}


.zf-bg-card--large{
  grid-row:auto;
}

/* городской под студийным, вровень с 2-м рядом */
main.zf-page .zf-bg-card--city{
  grid-column:1;
  grid-row:2;
}


.zf-bg-card--studio{
  background:
    linear-gradient(
      145deg,
      #e8e4e8,
      #cfc5d4
    );
}


.zf-bg-card--white{
  background:
    linear-gradient(
      145deg,
      #fff,
      #f2f1f3
    );
}


.zf-bg-card--interior{
  background:
    linear-gradient(
      180deg,
      #e8dfd7 0 66%,
      #ad927c 66%
    );
}


.zf-bg-card--nature{
  background:
    linear-gradient(
      180deg,
      #b8d7e4 0 45%,
      #8cae7d 45% 100%
    );
}


.zf-bg-card--city{
  color:#fff;

  border-color:#34203f;

  background:
    radial-gradient(
      circle at 75% 20%,
      rgba(255,194,101,.24),
      transparent 16%
    ),
    linear-gradient(
      145deg,
      #4b4160,
      #202c3c
    );
}


.zf-bg-card__tag{
  display:inline-flex;

  margin-bottom:15px;
  padding:7px 10px;

  border-radius:999px;

  background:rgba(255,255,255,.78);
  color:#4d3a54;

  font-size:12px;
  font-weight:850;
}


.zf-bg-card--city .zf-bg-card__tag{
  background:rgba(255,255,255,.12);
  color:#fff;
}


.zf-bg-card h3{
  max-width:430px;

  margin:0 0 9px;

  color:#322039;

  font-size:21px;
  line-height:1.2;
}


.zf-bg-card--city h3{
  color:#fff;
}


.zf-bg-card p{
  max-width:510px;

  margin:0;

  color:#5d5561;

  font-size:14px;
  line-height:1.62;
}


.zf-bg-card--city p{
  color:#ebe5ef;
}


/* =========================================================
   EVENTS / SEASONS
   ========================================================= */

.zf-season-row{
  display:grid;
  grid-template-columns:repeat(5,1fr);

  gap:13px;

  margin-top:33px;
}


.zf-season{
  position:relative;

  min-height:245px;

  overflow:hidden;

  padding:21px;

  border-radius:19px;

  color:#fff;
}


.zf-season:nth-child(1){
  background:
    radial-gradient(
      circle at 72% 25%,
      rgba(255,225,136,.68),
      transparent 15%
    ),
    linear-gradient(
      150deg,
      #385145,
      #8f3141
    );
}


.zf-season:nth-child(2){
  background:
    linear-gradient(
      150deg,
      #cbdde8,
      #758fa6
    );
}


.zf-season:nth-child(3){
  background:
    linear-gradient(
      150deg,
      #d59454,
      #87533f
    );
}


.zf-season:nth-child(4){
  background:
    linear-gradient(
      150deg,
      #a7cf9b,
      #e5b2bf
    );
}


.zf-season:nth-child(5){
  background:
    linear-gradient(
      150deg,
      #e2bc70,
      #b26677
    );
}


.zf-season__tag{
  display:block;

  margin-bottom:13px;

  color:rgba(255,255,255,.78);

  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}


.zf-season h3{
  margin:0 0 8px;

  color:#fff;

  font-size:18px;
}


.zf-season p{
  margin:0;

  color:rgba(255,255,255,.90);

  font-size:13px;
  line-height:1.55;
}


/* =========================================================
   EVENT GRID
   ========================================================= */

.zf-events{
  display:grid;
  grid-template-columns:repeat(4,1fr);

  gap:13px;

  margin-top:24px;
}


.zf-event{
  padding:20px;

  border:1px solid var(--zf-border);
  border-radius:17px;

  background:#fff;
}


.zf-event strong{
  display:block;

  margin-bottom:5px;

  color:#35243d;

  font-size:15px;
}


.zf-event span{
  color:var(--zf-muted);

  font-size:13px;
  line-height:1.5;
}


/* =========================================================
   PEOPLE SCENARIOS
   ========================================================= */

.zf-people{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:15px;

  margin-top:32px;
}


.zf-person{
  padding:25px;

  border:1px solid var(--zf-border);
  border-radius:20px;

  background:#fff;
}


.zf-person:nth-child(2){
  background:#faf5ef;
}


.zf-person:nth-child(5){
  background:#f1ecf5;
}


.zf-person h3{
  margin:0 0 8px;

  color:#322039;

  font-size:19px;
}


.zf-person p{
  margin:0;

  color:var(--zf-muted);

  font-size:14px;
  line-height:1.61;
}


.zf-person .zf-text-link{
  display:inline-block;

  margin-top:15px;
}


/* =========================================================
   BUSINESS
   ========================================================= */

.zf-business{
  display:grid;

  grid-template-columns:
    minmax(0,.9fr)
    minmax(430px,1.1fr);

  gap:58px;
  align-items:center;
}


.zf-business__visual{
  min-height:620px;

  display:grid;
  grid-template-columns:1fr 1fr;

  gap:14px;
}


.zf-business__card{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;

  min-height:300px;

  padding:22px;

  border-radius:20px;

  color:#fff;

  background:
    linear-gradient(
      160deg,
      #756083,
      #342342
    );

  box-shadow:var(--zf-shadow);
}


.zf-business__card:nth-child(2){
  background:
    linear-gradient(
      160deg,
      #e9e7e4,
      #c2b7b2
    );

  color:#342a37;
}


.zf-business__card:nth-child(3){
  background:
    linear-gradient(
      160deg,
      #8c9ca3,
      #465b63
    );
}


.zf-business__card:nth-child(4){
  background:
    linear-gradient(
      160deg,
      #d8bc98,
      #9c6c51
    );
}


.zf-business__card strong{
  display:block;

  margin-bottom:5px;

  font-size:16px;
}


.zf-business__card span{
  font-size:12px;
  line-height:1.45;
  opacity:.88;
}


/* =========================================================
   PRODUCT / OBJECT
   ========================================================= */

.zf-product-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:15px;

  margin-top:31px;
}


.zf-product{
  padding:25px;

  border:1px solid var(--zf-border);
  border-radius:20px;

  background:#fff;
}


.zf-product__visual{
  height:230px;

  display:grid;
  place-items:center;

  margin-bottom:18px;

  border-radius:15px;

  background:#f2eef4;
}


.zf-product__visual::before{
  content:"";

  width:80px;
  height:100px;

  border-radius:15px;

  background:
    linear-gradient(
      145deg,
      #8d6c99,
      #4d365b
    );

  box-shadow:
    0 14px 22px rgba(56,35,63,.15);
}


.zf-product:nth-child(2) .zf-product__visual{
  background:#fff;
}


.zf-product:nth-child(3) .zf-product__visual{
  background:
    linear-gradient(
      180deg,
      #d6e0e6,
      #b0a38f
    );
}


.zf-product h3{
  margin:0 0 8px;

  color:#322039;

  font-size:18px;
}


.zf-product p{
  margin:0;

  color:var(--zf-muted);

  font-size:14px;
  line-height:1.59;
}


/* =========================================================
   SPECIAL INTENTS
   ========================================================= */

.zf-special{
  display:grid;
  grid-template-columns:repeat(4,1fr);

  gap:14px;

  margin-top:31px;
}


.zf-special__card{
  padding:23px;

  border:1px solid var(--zf-border);
  border-radius:19px;

  background:#fff;
}


.zf-special__tag{
  display:inline-flex;

  margin-bottom:13px;
  padding:7px 10px;

  border-radius:999px;

  background:#f1ebf4;
  color:#51365c;

  font-size:12px;
  font-weight:850;
}


.zf-special__card h3{
  margin:0 0 8px;

  color:#322039;

  font-size:17px;
}


.zf-special__card p{
  margin:0;

  color:var(--zf-muted);

  font-size:13px;
  line-height:1.55;
}


.zf-special__card a{
  display:inline-block;

  margin-top:14px;
}


/* =========================================================
   TECH / HAIR
   ========================================================= */

.zf-tech{
  padding:82px 0;

  color:#fff;

  background:
    radial-gradient(
      720px 400px at 100% 0%,
      rgba(194,145,218,.20),
      transparent 65%
    ),
    #321940;
}


.zf-tech .zf-kicker{
  color:#decfe7;
}


.zf-tech .zf-h2{
  color:#fff;
}


.zf-tech .zf-lead,
.zf-tech p{
  color:#eee6f0;
}


.zf-tech strong{
  color:#fff;
}


.zf-tech__grid{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(390px,.70fr);

  gap:58px;
  align-items:center;
}


.zf-tech__points{
  display:grid;

  gap:10px;
}


.zf-tech__point{
  padding:15px 17px;

  border:1px solid rgba(255,255,255,.16);
  border-radius:14px;

  background:rgba(255,255,255,.08);

  color:#f4eef6;

  font-size:14px;
  line-height:1.5;
}


.zf-tech__point strong{
  display:block;

  margin-bottom:3px;
}


/* =========================================================
   DIFFICULT SOURCE
   ========================================================= */

.zf-difficult{
  display:grid;
  grid-template-columns:repeat(4,1fr);

  gap:13px;

  margin-top:31px;
}


.zf-difficult__item{
  padding:20px;

  border:1px solid var(--zf-border);
  border-radius:17px;

  background:#fff;
}


.zf-difficult__item h3{
  margin:0 0 7px;

  color:#322039;

  font-size:16px;
}


.zf-difficult__item p{
  margin:0;

  color:var(--zf-muted);

  font-size:13px;
  line-height:1.55;
}


/* =========================================================
   SOURCE
   ========================================================= */

.zf-source{
  display:grid;

  grid-template-columns:
    minmax(0,.92fr)
    minmax(390px,.70fr);

  gap:58px;
  align-items:center;
}


.zf-source__list{
  display:grid;
  grid-template-columns:1fr 1fr;

  gap:11px;

  margin-top:25px;
}


.zf-source__item{
  padding:16px;

  border:1px solid var(--zf-border);
  border-radius:15px;

  background:#fff;
}


.zf-source__item strong{
  display:block;

  margin-bottom:4px;

  color:#35243d;

  font-size:14px;
}


.zf-source__item span{
  color:var(--zf-muted);

  font-size:13px;
  line-height:1.45;
}


.zf-source__aside{
  padding:31px;

  border-radius:23px;

  background:#321940;

  box-shadow:var(--zf-shadow);
}


.zf-source__aside small{
  display:block;

  margin-bottom:14px;

  color:#d8c9df;

  font-size:12px;
  font-weight:850;
}


.zf-source__aside strong{
  display:block;

  color:#fff;

  font-size:27px;
  line-height:1.2;
}


.zf-source__aside p{
  margin:13px 0 0;

  color:#eee6f0;

  font-size:14px;
  line-height:1.61;
}


/* =========================================================
   PICK FOR CLIENT
   ========================================================= */

.zf-pick{
  display:grid;

  grid-template-columns:
    1fr auto;

  gap:30px;
  align-items:center;

  padding:31px;

  border:1px solid #d9cce0;
  border-radius:23px;

  background:#f2edf5;
}


.zf-pick h3{
  margin:0 0 8px;

  color:#38253f;

  font-size:22px;
}


.zf-pick p{
  max-width:780px;

  margin:0;

  color:#5a515e;

  font-size:15px;
  line-height:1.63;
}


/* =========================================================
   PROCESS
   ========================================================= */

.zf-process{
  display:grid;
  grid-template-columns:repeat(4,1fr);

  gap:13px;

  margin-top:32px;
}


.zf-process__item{
  padding:22px;

  border:1px solid var(--zf-border);
  border-radius:17px;

  background:#fff;
}


.zf-process__step{
  display:block;

  margin-bottom:15px;

  color:#765983;

  font-size:12px;
  font-weight:900;
}


.zf-process__item h3{
  margin:0 0 7px;

  color:#322039;

  font-size:16px;
}


.zf-process__item p{
  margin:0;

  color:var(--zf-muted);

  font-size:13px;
  line-height:1.55;
}


/* =========================================================
   OUTPUT / PRICE
   ========================================================= */

.zf-info-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:16px;

  margin-top:31px;
}


.zf-info{
  padding:28px;

  border:1px solid var(--zf-border);
  border-radius:21px;

  background:#fff;
}


.zf-info h3{
  margin:0 0 9px;

  color:#322039;

  font-size:21px;
}


.zf-info p{
  margin:0;

  color:var(--zf-muted);

  font-size:15px;
  line-height:1.64;
}


/* =========================================================
   WHY NOT STICKER
   ========================================================= */

.zf-quality-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);

  gap:12px;

  margin-top:31px;
}


.zf-quality{
  padding:20px;

  border:1px solid var(--zf-border);
  border-radius:17px;

  background:#fff;
}


.zf-quality__check{
  width:25px;
  height:25px;

  display:grid;
  place-items:center;

  margin-bottom:13px;

  border-radius:50%;

  background:var(--zf-green-soft);
  color:var(--zf-green);

  font-size:11px;
  font-weight:900;
}


.zf-quality h3{
  margin:0 0 7px;

  color:#33203b;

  font-size:15px;
}


.zf-quality p{
  margin:0;

  color:var(--zf-muted);

  font-size:12px;
  line-height:1.5;
}


/* =========================================================
   REAL CASES
   Hidden until valid files exist.
   ========================================================= */

.zf-cases{
  padding:84px 0;

  background:#fff;
}


.zf-case-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:18px;

  margin-top:32px;
}


.zf-case{
  overflow:hidden;

  margin:0;

  border:1px solid var(--zf-border);
  border-radius:20px;

  background:#fff;

  box-shadow:var(--zf-shadow);
}


.zf-case__visual{
  display:grid;
  grid-template-columns:1fr 1fr;
}


.zf-case__image{
  position:relative;

  min-height:290px;

  overflow:hidden;

  background:#eee9ef;
}


.zf-case__image img{
  display:block;

  width:100%;
  height:290px;

  object-fit:cover;
}


.zf-case__badge{
  position:absolute;

  left:10px;
  bottom:10px;

  padding:7px 9px;

  border-radius:8px;

  background:#291c2e;
  color:#fff;

  font-size:11px;
  font-weight:850;
}


.zf-case figcaption{
  padding:18px;

  color:#4c434f;

  font-size:14px;
  line-height:1.5;
  font-weight:750;
}


/* =========================================================
   FAQ
   ========================================================= */

.zf-faq{
  max-width:1030px;

  margin-top:30px;

  border-top:1px solid var(--zf-border);
}


.zf-faq details{
  border-bottom:1px solid var(--zf-border);
}


.zf-faq summary{
  position:relative;

  padding:22px 50px 22px 0;

  cursor:pointer;
  list-style:none;

  color:#322039;

  font-size:17px;
  line-height:1.4;
  font-weight:800;
}


.zf-faq summary::-webkit-details-marker{
  display:none;
}


.zf-faq summary::after{
  content:"+";

  position:absolute;

  right:5px;
  top:50%;

  transform:translateY(-50%);

  color:#755d82;

  font-size:28px;
}


.zf-faq details[open] summary::after{
  content:"−";
}


.zf-faq__answer{
  max-width:890px;

  padding:0 0 22px;

  color:#59515d;

  font-size:16px;
  line-height:1.68;
}


/* =========================================================
   FINAL
   ========================================================= */

.zf-final{
  padding:76px 0 86px;
}


.zf-final__box{
  padding:56px;

  overflow:hidden;

  border-radius:30px;

  background:
    radial-gradient(
      520px 270px at 95% 0%,
      rgba(194,146,218,.20),
      transparent 65%
    ),
    #321940;

  box-shadow:
    0 22px 60px rgba(42,19,51,.16);
}


.zf-final__box .zf-kicker{
  color:#decfe7;
}


.zf-final__box h2{
  max-width:870px;

  margin:0;

  color:#fff;

  font-size:clamp(34px,4vw,50px);
  line-height:1.07;
  letter-spacing:-.045em;
}


.zf-final__box p{
  max-width:790px;

  margin:15px 0 0;

  color:#f0e9f2;

  font-size:16px;
  line-height:1.65;
}


.zf-final__box strong{
  color:#fff;
}


.zf-final__box .zf-btn--primary{
  color:#321940;
  background:#fff;

  box-shadow:none;
}


.zf-final__box .zf-btn--secondary{
  color:#fff;
  background:#513260;

  border-color:#a58caf;
}


.zf-final__micro{
  color:#dacdde !important;

  font-size:13px !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1100px){

  .zf-wrap{
    width:calc(100% - 40px);
  }


  .zf-hero__grid,
  .zf-business,
  .zf-tech__grid,
  .zf-source{
    grid-template-columns:1fr;
  }


  .zf-visual{
    min-height:500px;
  }


  .zf-realism,
  .zf-people,
  .zf-product-grid,
  .zf-info-grid,
  .zf-case-grid{
    grid-template-columns:1fr 1fr;
  }


  .zf-bg-grid{
    grid-template-columns:1fr 1fr;
  }


  .zf-bg-card--large{
    grid-row:auto;
  }

  main.zf-page .zf-bg-card--city{
    grid-column:auto;
    grid-row:auto;
  }


  .zf-season-row{
    grid-template-columns:repeat(3,1fr);
  }


  .zf-events,
  .zf-special,
  .zf-difficult{
    grid-template-columns:1fr 1fr;
  }


  .zf-process{
    grid-template-columns:1fr 1fr;
  }


  .zf-quality-grid{
    grid-template-columns:1fr 1fr;
  }


  .zf-trust__grid{
    grid-template-columns:1fr 1fr;
  }


  .zf-trust__item:nth-child(2){
    border-right:0;
  }


  .zf-trust__item:nth-child(-n+2){
    border-bottom:1px solid var(--zf-border);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:760px){

  .zf-wrap{
    width:calc(100% - 32px);
  }


  .zf-section{
    padding:54px 0;
  }


  .zf-hero{
    padding:28px 0 48px;
  }


  .zf-breadcrumbs{
    margin-bottom:21px;

    font-size:13px;
  }


  .zf-hero h1{
    font-size:36px;
    line-height:1.06;
  }


  .zf-hero__lead{
    font-size:16px;
  }


  .zf-visual{
    min-height:410px;

    border-radius:22px;
  }


  .zf-realism,
  .zf-bg-grid,
  .zf-people,
  .zf-product-grid,
  .zf-special,
  .zf-difficult,
  .zf-process,
  .zf-info-grid,
  .zf-quality-grid,
  .zf-case-grid{
    grid-template-columns:1fr;
  }


  /*
    На телефоне сезоны и события —
    горизонтальные визуальные ленты.
  */

  .zf-season-row{
    display:flex;

    gap:12px;

    overflow-x:auto;
    scroll-snap-type:x mandatory;

    margin-inline:-16px;

    padding:
      0 16px 10px;

    scrollbar-width:none;
  }


  .zf-season-row::-webkit-scrollbar{
    display:none;
  }


  .zf-season{
    min-width:min(78vw,285px);

    scroll-snap-align:start;
  }


  .zf-events{
    display:flex;

    gap:10px;

    overflow-x:auto;
    scroll-snap-type:x mandatory;

    margin-inline:-16px;

    padding:
      0 16px 9px;

    scrollbar-width:none;
  }


  .zf-events::-webkit-scrollbar{
    display:none;
  }


  .zf-event{
    min-width:230px;

    scroll-snap-align:start;
  }


  .zf-business__visual{
    min-height:auto;

    grid-template-columns:1fr 1fr;
  }


  .zf-tech{
    padding:56px 0;
  }


  .zf-source__list{
    grid-template-columns:1fr;
  }


  .zf-pick{
    grid-template-columns:1fr;
  }


  .zf-trust__grid{
    grid-template-columns:1fr;
  }


  .zf-trust__item{
    min-height:62px;

    border-right:0;
    border-bottom:1px solid var(--zf-border);
  }


  .zf-trust__item:last-child{
    border-bottom:0;
  }


  .zf-final{
    padding:50px 0 60px;
  }


  .zf-final__box{
    padding:35px 24px;
  }

}


/* =========================================================
   360px+
   ========================================================= */

@media(max-width:480px){

  .zf-wrap{
    width:calc(100% - 32px);
  }


  .zf-section{
    padding:46px 0;
  }


  .zf-h2{
    font-size:29px;
    line-height:1.12;
  }


  .zf-lead{
    font-size:16px;
  }


  .zf-hero h1{
    font-size:33px;
  }


  .zf-actions{
    flex-direction:column;
  }


  .zf-btn{
    width:100%;
    min-height:52px;
  }


  .zf-visual{
    min-height:350px;
  }


  .zf-visual__person{
    width:42%;
  }


  .zf-business__visual{
    grid-template-columns:1fr;
  }


  .zf-final__box h2{
    font-size:30px;
  }

}



/* ===== GENERATED PHOTO VISUALS ===== */
.zf-visual__old{background-image:url("/images/zerkalo-proart/zamena-fona/01-замена-фона-на-фото-женщины-до.webp?v=2026-09-08.03") !important;background-size:cover !important;background-position:center top !important;}
.zf-visual__new{background-image:url("/images/zerkalo-proart/zamena-fona/02-замена-фона-на-фото-женщины-после.webp?v=2026-09-08.03") !important;background-size:cover !important;background-position:center top !important;}
.zf-visual__person,.zf-visual__shadow{display:none !important;}
.zf-business__card{background-size:cover !important;background-position:center !important;position:relative;overflow:hidden;}
.zf-business__card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(20,15,24,.55));}
.zf-business__card strong,.zf-business__card span{position:relative;z-index:2;}
.zf-business__card:nth-child(1){background-image:url("/images/zerkalo-proart/zamena-fona/03-деловой-портрет-темная-студия.webp?v=2026-09-08.03") !important;}
.zf-business__card:nth-child(2){background-image:url("/images/zerkalo-proart/zamena-fona/04-деловой-портрет-светлый-фон.webp?v=2026-09-08.03") !important;color:#fff !important;}
.zf-business__card:nth-child(3){background-image:url("/images/zerkalo-proart/zamena-fona/05-деловой-портрет-в-офисе.webp?v=2026-09-08.03") !important;}
.zf-business__card:nth-child(4){background-image:url("/images/zerkalo-proart/zamena-fona/06-портрет-для-личного-бренда-теплый-интерьер.webp?v=2026-09-08.03") !important;}
.zf-product-grid:first-of-type .zf-product:nth-child(1) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/07-замена-фона-товара-на-нейтральный.webp?v=2026-09-08.03") !important;}
.zf-product-grid:first-of-type .zf-product:nth-child(2) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/08-белый-фон-для-товара-сумка.webp?v=2026-09-08.03") !important;}
.zf-product-grid:first-of-type .zf-product:nth-child(3) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/09-товар-в-интерьере-декор-ваза.webp?v=2026-09-08.03") !important;}
.zf-product-grid + .zf-product-grid .zf-product:nth-child(1) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/23-автомобиль-замена-фона-городской.webp?v=2026-09-08.03") !important;}
.zf-product-grid + .zf-product-grid .zf-product:nth-child(2) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/24-замена-неба-на-фото.webp?v=2026-09-08.03") !important;}
.zf-product-grid + .zf-product-grid .zf-product:nth-child(3) .zf-product__visual{background-image:url("/images/zerkalo-proart/zamena-fona/25-недвижимость-вид-из-окна.webp?v=2026-09-08.03") !important;}
.zf-product__visual{background-size:cover !important;background-position:center !important;}
.zf-product__visual::before{display:none !important;}
main.zf-page .zf-business__card{
  min-height:300px !important;
  background-position:center 20% !important;
}
main.zf-page .zf-business__visual{
  min-height:620px !important;
}
main.zf-page .zf-product__visual{
  height:230px !important;
}

/* site collisions / pack images */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
main.zf-page {
  overflow-x: clip;
  width: 100%;
  max-width: 100%;
}
main.zf-page .zf-hero {
  padding-top: 20px;
}
main.zf-page .zf-btn[data-zp-contacts-open] {
  cursor: pointer;
}
main.zf-page a.zf-btn--primary,
main.zf-page .zf-btn--primary {
  color: #fff !important;
}
main.zf-page a.zf-btn--primary:hover,
main.zf-page .zf-btn--primary:hover {
  color: #fff !important;
}
main.zf-page .zf-final a.zf-btn--primary,
main.zf-page .zf-final .zf-btn--primary,
main.zf-page .zf-final__box a.zf-btn--primary,
main.zf-page .zf-final__box .zf-btn--primary {
  color: #321940 !important;
  background: #fff !important;
}
main.zf-page .zf-visual__old,
main.zf-page .zf-visual__new {
  position: absolute !important;
}
main.zf-page .zf-case__image img,
main.zf-page .zf-cases img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
main.zf-page .zf-case__image {
  overflow: hidden;
  position: relative;
}

/* hero BA: ДО слева, ПОСЛЕ справа */
main.zf-page .zf-visual__old {
  inset: 0 50% 0 0 !important;
}
main.zf-page .zf-visual__new {
  inset: 0 0 0 50% !important;
}

