/* ---------- локальные шрифты (PT Sans, Roboto Slab) из /webfonts ---------- */
/* cyrillic-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-italic-400-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-italic-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-italic-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-italic-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-400-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-700-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/ptsans-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Roboto Slab';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../webfonts/robotoslab-normal-900-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

  :root{
    --navy:#2c3145;
    --red:#c93716;
    --darkred:#a41f2b;
    --orange:#fe7a0e;
    --orange2:#ffa430;
    --yellow:#feb353;
    --lime:#bace10;
    --green:#3f9b45;
    --gray:#7f807d;
    --light:#f2f2f2;
    --light2:#f5f5f5;
    --line:#d2d2d2;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    font-family:'PT Sans',sans-serif;
    color:var(--navy);
    background:#fff;
    font-size:1.06em;
    line-height:1.55;
    overflow-x:hidden;
  }
  h1,h2,h3,.slab{font-family:'Roboto Slab',serif;}
  a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line);}
  a:hover{color:var(--red);border-bottom-color:var(--red);}
  .wrap{max-width:1080px;margin:0 auto;padding:0 1.42em;}

  /* ---------- header ---------- */
  header{border-bottom:0;}
  .topline{display:flex;align-items:center;gap:1.65em;padding:0.83em 0;flex-wrap:wrap;}
  .logo{border:0;display:inline-flex;}
  .logo img{display:block;height:46px;width:auto;}
  .cta{
    display:inline-block;background:var(--red);color:#fff !important;
    font-family:'Roboto Slab',serif;font-weight:700;
    padding:.5em 1.2em;border:0 !important;letter-spacing:.05em;cursor:pointer;font-size:1em;
  }
  .cta:hover{background:var(--orange);color:#fff !important;}

  /* ---------- страница 1: заголовок, фото, вступление ---------- */
  /* горизонтальный паддинг — как у .wrap (иначе .hero перекрывает padding у .wrap и на узких экранах контент прижимается к краям) */
  .hero{padding:2.83em 1.42em 1.89em;}
  .title-row{display:grid;grid-template-columns:120px 1fr;gap:2.12em;align-items:center;margin-bottom:2.12em;}
  .title-row .logo img{height:84px;}
  .hero h1{font-size:2.3em;font-weight:900;margin:0;line-height:1.25;}
  .quote-block{display:grid;grid-template-columns:300px 1fr;gap:0.83em 2.36em;align-items:start;}
  .quote-row{
    grid-column:1/-1;
    display:grid;grid-template-columns:300px 1fr;gap:2.36em;align-items:start;
    background:var(--light);border-top:4px solid var(--lime);padding:1.06em;
    border-radius:0 0 34px 34px;
  }
  .photoblock{
    margin:0;
  }
  .photo{
    aspect-ratio:1/1;background:#dfe1e6;color:var(--gray);
    display:flex;align-items:center;justify-content:center;
    font-size:.85em;text-transform:uppercase;letter-spacing:.1em;
  }
  .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .photoblock .name{font-family:'Roboto Slab',serif;font-weight:700;margin-top:0.67em;font-size:1.05em;}
  .photoblock .role{color:var(--red);font-weight:700;font-size:.9em;}
  .quote-text p{max-width:780px;margin:.7em 0;}
  .quote-text p:first-child{margin-top:0;}
  .footnote{color:var(--gray);font-style:italic;font-size:.92em;grid-column:2;margin:0.24em 2em 0 1.06em;}

  /* ---------- секции ---------- */
  section{padding:2.83em 0;}
  section + section{margin:2em 0;}
  h2.sec{
    font-size:1.8em;font-weight:900;margin:0 0 0.66em;display:inline-block;
    border-bottom:3px dashed var(--red);padding-bottom:.15em;
  }
  h2.sec.plain{border-bottom:0;padding-bottom:0;margin-top:1.5em;}

  /* ---------- форматы: контент под кат, заголовок с зелёным пунктиром внутри ---------- */
  details.fmt{background:#fff;}
  details.fmt > summary{
    list-style:none;cursor:pointer;
    font-family:'Roboto Slab',serif;font-weight:900;font-size:1.5em;
    padding:0.82em 1.09em;color:var(--navy);
    margin:1em 0 0em;
  }
  details.fmt > summary::-webkit-details-marker{display:none;}
  details.fmt > summary:hover{color:var(--red);}
  /* em-подчёркивание давало разную толщину (шрифт summary разный) — в px фиксируем каждую */
  details.fmt > summary .fmt-ttl{border-bottom:2.2px dashed #bad000;}
  details.grave > summary .fmt-ttl{border-bottom:2.5px dashed #bad000;}
  .fmt-sub{
    display:block;font-family:'PT Sans',sans-serif;font-weight:700;
    font-size:.72em;color:var(--red);margin-top:.4em;letter-spacing:.02em;padding-left:1.5em;
  }
  details.fmt[open] .fmt-sub{display:none;}
  .fmt-body{padding:0.35em 1.42em 1.53em;}
  .fmt-body p{margin:.5em 0 .9em;max-width:780px;}
  ul.dots{list-style:none;margin:1em 0;padding:0;max-width:780px;}
  ul.dots li{padding:.5em 0 .5em 1.3em;position:relative;border-top:1px solid var(--light);}
  ul.dots li:first-child{border-top:0;}
  ul.dots li::before{content:"•";position:absolute;left:.2em;color:var(--red);}
  .price{color:var(--red);font-family:'Roboto Slab',serif;font-weight:700;}
  /* стоимость вынесена из списка: крупно Roboto Slab + примечание новой строкой */
  .price-line{font-family:'Roboto Slab',serif;font-weight:700;font-size:1.5em;color:var(--navy);margin:0.9em 0 0;max-width:1170px;padding-left:1.5ex;border-top:2px solid var(--navy);}
  .price-line .price-note{display:block;font-family:'PT Sans',sans-serif;font-weight:400;font-size:.67em;}
  /* пункт со звездочкой — серый, как сноска в верхнем блоке; звездочка «висячая» */
  .fmt-star{color:var(--gray);font-style:italic;font-size:.92em;max-width:718px;margin:0.6em 0 0;text-indent:-1ex;padding-left:2ex;}

  /* ---------- блок заказа ---------- */
  #order{background:var(--light);}
  form .row{margin-bottom:0.94em;}
  label{display:block;font-weight:700;font-size:.85em;text-transform:uppercase;letter-spacing:.1ex;margin-bottom:0.24em;}
  input,select,textarea{
    width:100%;font:inherit;color:var(--navy);background:#fff;
    border:1px solid var(--line);padding:.6em .7em;
  }
  input:focus,select:focus,textarea:focus{outline:0.12em solid var(--yellow);}
  .thanks{background:var(--lime);border:1px solid var(--lime);color:var(--navy);padding:1.60em;display:none;font-family:'Roboto Slab',serif;font-size:1.30em;text-align:center;}
  #order .sec{border-bottom:0;padding-bottom:0;}
  /* согласие на обработку ПД: чекбокс с текстом в одну строку; ссылка «Политика» вне label,
     поэтому клик по ней открывает PDF и не трогает чекбокс */
  .agree{display:flex;align-items:center;flex-wrap:wrap;gap:.30em .50em;}
  .agree label{display:inline-flex;align-items:center;gap:.60em;font-weight:400;text-transform:none;letter-spacing:normal;margin-bottom:0;line-height:1.45;cursor:pointer;}
  .agree input[type=checkbox]{width:auto;padding:0;border:0;background:transparent;accent-color:var(--red);transform:scale(1.25);flex:0 0 auto;}
  /* выбор формата: три плитки-радиокнопки в одну линию */
  .fmt-tiles{display:flex;gap:0.70em;}
  .fmt-tiles .tile{
    flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
    font-family:'Roboto Slab',serif;font-weight:700;text-transform:none;letter-spacing:0;
    font-size:1em;color:var(--navy);background:#fff;border-radius:17px;
    border:1px solid var(--line);padding:1.10em 0.70em;margin:0;cursor:pointer;
  }
  .fmt-tiles .tile input[type=radio]{position:absolute;opacity:0;width:0;height:0;}
  .fmt-tiles .tile:hover{border-color:var(--green);}
  .fmt-tiles .tile:has(input:checked){border-color:var(--green);color:var(--green);box-shadow:inset 0 0 0 0.06em var(--green);}
  .fmt-tiles .tile:has(input:focus-visible){outline:0.12em solid var(--yellow);}
  /* красная обводка незаполненных/некорректных обязательных полей:
     после нажатия «Отправить» (class was-validated) или после blur по полю (class touched) */
  input.touched:invalid,textarea.touched:invalid,
  .was-validated input:invalid,.was-validated textarea:invalid{
    border-color:var(--red);box-shadow:inset 0 0 0 0.06em var(--red);
  }
  .fmt-tiles.touched:has(input:invalid) .tile,
  .was-validated .fmt-tiles:has(input:invalid) .tile{
    border-color:var(--red);
  }

  /* ---------- немного обо мне ---------- */
  .about-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.89em;margin-top:0.47em;}
  h3.path{margin:0 0 0.54em;font-size:1.1em;color:var(--darkred);font-family:'Roboto Slab',serif;}
  #about .sec{border-bottom:0;padding-bottom:0;}
  .comp-head{font-family:'Roboto Slab',serif;font-weight:700;font-size:2em;margin:1.18em 0 0.2em;}
  .now{background:var(--light);border-top:4px solid #e2891a;border-radius:0 0 34px 34px;padding:1.18em 1.30em;margin:1.42em 0;}
  .now b{font-family:'Roboto Slab',serif;}
  .now ul{margin:.5em 0 0;}
  .compet{margin:1em 0 0;max-width:780px;}
  .compet li + li{margin-top:1.25em;}
  .compet li::marker{color:var(--red);}
  details.grave > summary{
    cursor:pointer;font-family:'Roboto Slab',serif;font-weight:900;font-size:1.8em;
    color:var(--navy);display:inline-block;
    padding-bottom:.15em;margin:3em 0 0.7em;
  }
  details.grave > summary::-webkit-details-marker{display:none;}

  /* ---------- цифры и факты: инфографика ---------- */
  .facts{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:0.83em;margin:1.40em 0;}
  .fact{
    background:#fafafa;border:1px solid transparent;border-top:6px solid var(--red);
    border-radius:0 0 32px 32px;
    padding:1.37em 1.37em 1.24em;font-size:.95em;margin:0;color:#333;
    display:flex;flex-direction:column;justify-content:flex-start;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .fact:hover{transform:translateY(-0.19em);}
  .fact .num{
    font-family:'Roboto Slab',serif;font-weight:900;
    display:inline-block;line-height:1.05;letter-spacing:-0.01em;
  }
  .fact .num.big{
    display:block;font-size:3em;line-height:1;letter-spacing:-0.02em;
    margin-bottom:.5em;
  }
  .fact.c-red{border-top-color:var(--red);}    .fact.c-red .num{color:var(--red);}
  .fact.c-orange{border-top-color:var(--orange);} .fact.c-orange .num{color:var(--orange);}
  .fact.c-amber{border-top-color:var(--orange2);} .fact.c-amber .num{color:#e2891a;}
  .fact.c-lime{border-top-color:var(--lime);}  .fact.c-lime .num{color:#7f9200;}
  .fact.c-darkred{border-top-color:var(--darkred);} .fact.c-darkred .num{color:var(--darkred);}
  .fact.limebg{background:#fafafa;border-top-color:var(--lime);}
  /* бывшая салатовая плитка — серый фон, зелёные цифры */
  .fact.limetile{
    background:#fafafa;border-color:transparent;
    border-top-color:#bad000;color:#333;
  }
  .fact.limetile .num{color:#bad000;}
  /* бывшая тёмная плитка — теперь светлая, без navy */
  .fact.navy{
    background:#fafafa;color:#333;border-color:transparent;
    border-top-color:var(--lime);
  }
  .fact.navy .num{color:#bad000;}
  .fact.navy.c-amber{border-top-color:var(--orange2);}
  .fact.navy.c-amber .num{color:#e2891a;}
  .fact.navy.c-orange{border-top-color:var(--orange2);}
  .fact.navy.c-orange .num{color:var(--orange);}
  /* hero-плитка: 1 колонка, 2 ряда */
  .fact.hero{
    grid-row:span 2;
    font-size:1.05em;line-height:1.5;justify-content:flex-start;
    padding:1.24em 1.24em 1.12em;border-radius:0 0 32px 32px;border-top-width:6px;
  }
  .fact.hero .num.big{font-size:3.4em;margin-bottom:.55em;}
  .fact.sp2{grid-column:span 2;}
  /* крупный обычный текст; padding и радиус скорректированы, чтобы визуально
     отступы и скругления были одинаковыми во всех плитках (em считаются от
     собственного шрифта блока) */
  .fact.bigtext{font-size:1.5em;padding:0.87em 0.87em 0.79em;border-radius:0 0 32px 32px;border-top-width:6px;}
  .fact.bigtext .num.big{font-size:1.90em;}
  .fact.bigtext2{font-size:2em;padding:0.65em 0.65em 0.59em;border-radius:0 0 32px 32px;border-top-width:6px;}
  .fact.bigtext2 .num.big{font-size:1.43em;}
  .fact.sp3{grid-column:span 3;}
  .fact.rt2{grid-row:span 2;}
  .fact.wide{grid-column:1/-1;}

  /* ---------- кастомный формат ---------- */
  .custom{
    background:linear-gradient(180deg,#e4eb7b 0%,#bec829 100%);color:var(--navy);
    padding:1.37em 0;margin-top:1.74em;margin-bottom:1.50em;
    font-size:.95em;
    width:100vw;max-width:none;margin-left:calc(50% - 50vw);
  }
  .custom .slab{color:var(--navy);font-weight:700;display:block;margin-bottom:.6em;}

  /* ---------- футер (перенесён с ruward.ru, div.footer, первёрстано) ---------- */
  footer{background:#fff;color:var(--gray);padding:0 0 2.50em;font-size:.85em;}
  /* wrap перенесён внутрь f-bottom — стандартный горизонтальный паддинг, как сверху */
  .f-bottom{padding-top:2.20em;}
  .f-bottom .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.90em 1.80em;align-items:center;}
  .f-copy{display:flex;flex-direction:column;gap:0.40em;line-height:1.9;}
  .f-copy a,.f-credits a{color:inherit;border-bottom:1px solid transparent;transition:all 0.7s ease-in-out;}
  .f-copy a:hover,.f-credits a:hover{color:#000;border-bottom-color:#cdc431;}
  .f-copy b{color:#000;font-weight:700;}
  .f-credits b{color:#000;font-weight:700;}
  .f-credits{text-align:right;}
  /* счётчик LiveInternet: на широких экранах — слева, в одну строку с копирайтами */
  .f-counter{flex:0 0 auto;width:31px;text-align:left;}
  .f-counter a{display:inline-block;line-height:0;}
  .f-counter img{border:0;}
  /* широкие экраны: оставшиеся колонки растягиваются, заполняя ширину */
  .f-copy,.f-credits{flex:1 1 auto;}

  @media (max-width:980px){
    /* на узком экране счётчик выносится на отдельную строку — и она первая */
    .f-counter{flex-basis:100%;margin-bottom:0.6em;}
    /* копирайт/авторство возвращаем к размеру контента (слева / справа) */
    .f-copy,.f-credits{flex:0 1 auto;}
    .facts{grid-template-columns:repeat(2,1fr);}
    /* выравниваем размер обычного текста во всех плитках (hero/bigtext/bigtext2 → базовые .95em) */
    .fact.hero,.fact.bigtext,.fact.bigtext2{font-size:.95em;}
    .fact.hero{grid-column:1/-1;grid-row:auto;}
    .fact.rt2{grid-row:auto;}
    /* компенсируем цифры: em считаются от нового .95em, возвращаем прежний абсолютный размер */
    .fact.hero .num.big{font-size:3.32em;}
    .fact.bigtext .num.big{font-size:3em;}
    .fact.bigtext2 .num.big{font-size:3em;}
  }
  @media (max-width:640px){
    .facts{grid-template-columns:1fr;}
    .fmt-tiles{flex-direction:column;}
    .fmt-sub{padding-left:0;}
    .fact.hero,.fact.sp2,.fact.sp3,.fact.rt2,.fact.wide{grid-column:auto;grid-row:auto;}
    .fact.hero .num.big{font-size:2.6em;}
  }
  @media (max-width:860px){
    .title-row{grid-template-columns:1fr;gap:1.06em;}
    .title-row .logo img{height:56px;}
    .quote-row{grid-template-columns:1fr;}
    .quote-block{grid-template-columns:1fr;}
    /* фото не растягиваем на всю ширину — держим 300px и центрируем, подпись тоже по центру */
    .quote-row .photoblock{width:min(300px,100%);margin:0 auto;text-align:center;}
    .footnote{grid-column:auto;}
    .hero h1{font-size:1.7em;}
    .about-cols{grid-template-columns:1fr;}
  }

  /* ---------- кладбище: фото слева, текст справа (по аналогии с quote-row, на белом) ---------- */
  .grave-body{display:grid;grid-template-columns:300px 1fr;gap:0 2.36em;align-items:start;margin-top:1.40em;}
  .grave-body .photo{border-radius:9px;overflow:hidden;}
  .grave-body .photo-caption{color:var(--gray);font-size:.85em;line-height:1.4;margin:.7em 0 0;}
  /* в 2 колонки — текст на уровне верхней кромки фото (сбрасываем браузерный margin у первого абзаца) */
  .grave-body .grave-text > p:first-child{margin-top:0;}
  @media (max-width:860px){
    .grave-body{grid-template-columns:1fr;}
    /* по аналогии с цитатой: фото не растягиваем, центрируем */
    .grave-body .photoblock{width:min(300px,100%);margin:0 auto;text-align:center;}
    /* в одну колонку — возвращаем отступ между фото и текстом */
    .grave-body .grave-text > p:first-child{margin-top:1em;}
  }
