/* Shared paper layout; keep the existing logo, imagery and brand red. */
body.pf-site { --pf-gutter:32px; --pf-gap:28px; color:#292826; font-family:'Open Sans',Arial,sans-serif; line-height:1.65; }
.pf-site h1,.pf-site h2,.pf-site h3,.pf-site h4 { font-family:inherit; }
.pf-site *, .pf-site *::before, .pf-site *::after { box-sizing:border-box; }
.pf-site .main-wrapper { min-height:0; background:none; }
.pf-site .main-wrapper::after,.pf-site .search-main::after { display:none; }
.pf-site .wrapper,.pf-site .wrapper_search { width:calc(100% - 32px); max-width:990px; min-height:0; margin-inline:auto; background:#fff; }
.pf-site .header { padding:24px 0; }
.pf-site .header__wrapper { width:calc(100% - 32px); max-width:990px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding-inline:24px; text-align:left; line-height:1.5; }
.pf-site .header__wrapper::after { display:none; }
.pf-site .header .header__wrapper .logo_position { display:block; width:240px; flex:0 1 240px; margin:0; }
.pf-site .logo img { display:block; max-width:100%; height:auto; }
.pf-site .header .header__wrapper .info { display:block; width:auto; margin:0; background-position:left center; padding-left:35px; white-space:nowrap; }
.pf-site .info br { display:none; }
.pf-site .pf-header-phone { color:inherit; text-decoration:none; }
.pf-site .call { font-size:29px; line-height:1.25; letter-spacing:0; margin:0; }
.pf-site .call::before { font-size:20px; }
.pf-site .phone { margin:5px 0 0; font-size:11px; line-height:1.5; letter-spacing:.5px; }
.pf-site .header .header__wrapper .socSearch { display:flex; flex-direction:column; width:190px; margin:0; align-items:flex-end; gap:8px; }
.pf-site .socSearchForm { margin:0; width:100%; min-width:0; }
.pf-site .socSearchForm__search { position:relative; width:100%; margin:0; }
.pf-site .socSearchForm__search input { width:100%; height:34px; padding:7px 32px 7px 10px; font-size:13px; }
.pf-site .socSearch__soc { height:auto; width:auto; min-width:0; }
.pf-site .socSearch__soc .write__us { float:none; display:block; margin:0; }
.pf-site .nav-wrapper { background:#ed1231; }
.pf-site .nav { display:flex; width:calc(100% - 32px); max-width:990px; height:auto; min-height:52px; margin:auto; border:0; }
.pf-site .nav > .menu-item { flex:1 1 auto; display:block; border:0; border-right:1px solid rgba(255,255,255,.18); vertical-align:initial; }
.pf-site .nav > .menu-item > a { display:flex; align-items:center; justify-content:center; min-height:52px; height:100%; padding:14px 12px; font-size:12px; line-height:1.5; white-space:nowrap; }
.pf-site .nav .menu-depth-1 { top:100%; height:auto; min-height:0; padding:22px 16px; box-shadow:0 10px 20px rgba(0,0,0,.08); }
.pf-site .nav .menu-item:focus-within > .menu-depth-1 { display:table; opacity:1; }
.pf-site .nav .menu-depth-1 > li { padding:0 12px; background:none; }
.pf-site .nav .menu-depth-1 > li > a { font-size:13px; line-height:1.5; padding:0 4px 12px; }
.pf-site .nav .menu-depth-2 li { width:auto; display:block; }
.pf-site .nav .menu-depth-2 li a { font-size:13px; line-height:1.5; padding:6px 4px; }
.pf-site .pf-menu-toggle,.pf-site .pf-submenu-toggle { display:none; }
.pf-site .kama_breadcrumbs { width:calc(100% - 32px); max-width:990px; margin:0 auto; padding:16px var(--pf-gutter); background:transparent; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.pf-site .wrapper > .title-page,.pf-site .wrapper > .main-news { background:#fff; text-align:left; font-size:32px; font-weight:700; line-height:1.25; padding:28px var(--pf-gutter) 20px; margin:0; }
.pf-site .wrapper > .content-block:not(.content-block_main) { padding:12px var(--pf-gutter) 32px; font-size:15px; }
.pf-site .content-inside,.pf-site .content-print { padding:0; color:#292826; font-size:15px; line-height:1.75; }
.pf-site .content-inside p,.pf-site .content-print p { font-family:inherit; font-size:15px; line-height:1.75; margin:0 0 16px; padding:0; }
.pf-site .content-inside h2,.pf-site .content-print h2 { font-size:23px; line-height:1.35; margin:28px 0 14px; }
.pf-site .content-inside h3,.pf-site .content-print h3 { font-size:19px; line-height:1.4; margin:24px 0 12px; }
.pf-site .content-inside img,.pf-site .content-print img,.pf-site .wrapper > .content-block > img { max-width:100%; height:auto; }
.pf-site .content-inside .title { padding:0; }
.pf-site .content-inside ul:not([class]),.pf-site .content-inside ol:not([class]) { margin:12px 0 20px; padding-left:24px; list-style:revert; }
.pf-site .content-inside li { line-height:1.65; }
.pf-site .single-news { width:auto; max-width:100%; }
.pf-site .write-news { margin:12px 0 28px; }
.pf-site .menu_subsections_wrap { display:flex; flex-wrap:wrap; gap:16px 24px; margin:0 0 24px; padding:16px; background:#f7f6f2; }
.pf-site .menu_subsections { float:none; flex:1 1 140px; width:auto; margin:0; padding:0; border:0; }
.pf-site .menu_subsections._add { padding-top:0; }
.pf-site .menu_subsections p { min-height:0; margin:0 0 8px; }
.pf-site .menu_subsections p:empty { display:none; }
.pf-site .menu_subsections ul { margin:0; padding:0; list-style:none; }
.pf-site .menu_subsections li a { padding:8px 10px; line-height:1.5; }
.pf-site .picture { max-width:100%; height:auto; }
.pf-site .price table { width:100%; margin:0 0 24px; }
.pf-site .price th,.pf-site .price td { padding:13px 16px; height:auto; font-size:14px; line-height:1.5; }
.pf-site .pf-table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; margin:0 0 24px; }
.pf-site .pf-table-scroll table { max-width:100%; }
.pf-site .button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; height:auto; padding:10px 20px; margin:12px 0 20px; line-height:1.4; }
.pf-site .content-inside .remark { width:auto; max-width:570px; margin:0 20px 20px 0; }
.pf-site .contacts { padding:0; }
.pf-site .contacts__left,.pf-site .contacts__right { max-width:100%; }
.pf-site .contacts p { font-size:15px; line-height:1.75; margin-bottom:14px; }
.pf-site .search-main { background:none; }
.pf-site .search-wrapper { padding:28px var(--pf-gutter); }
.pf-site .search-title { font-size:28px; line-height:1.35; text-transform:none; margin:0 0 28px; }
.pf-site .posts__search { padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid #e5e2dc; }
.pf-site .posts__search h2 { font-size:20px; line-height:1.4; margin-bottom:10px; }
.pf-site .page-404 { font-size:80px; line-height:1.2; margin:32px 0 0; }
.pf-site .page-404-description { font-size:21px; line-height:1.5; margin:20px 0; }
/* The contact intro, form and aside share a common inset and vertical rhythm. */
.pf-site .wrapper.pf-contact-page { padding:32px; width:calc(100% - 32px); max-width:990px; }
.pf-site .pf-contact-page__intro { margin:0 0 28px; }
.pf-site .pf-contact-page__intro h1 { font-size:32px; line-height:1.25; margin:0 0 12px; }
.pf-site .pf-contact-page__intro p { max-width:660px; font-size:15px; line-height:1.7; }
.pf-site .pf-contact-page__layout { grid-template-columns:minmax(0,1fr) 280px; gap:28px; }
.pf-site .pf-contact-page__form { padding:26px; border-color:#e2ded7; border-top-color:#d51232; }
.pf-site .pf-contact-page__aside { padding:26px 22px; background:#f7f6f2; border:1px solid #e7e3dc; }
.pf-site .pf-contact-page__aside h2 { font-size:17px; line-height:1.4; margin:0 0 18px; }
.pf-site .pf-contact-page__phone { font-size:21px; line-height:1.4; letter-spacing:-.4px; white-space:normal; }
.pf-site .pf-contact-page__email { font-size:13px; line-height:1.7; margin-top:6px; overflow-wrap:anywhere; }
.pf-site .pf-contact-page__address { margin:24px 0; padding-left:14px; }
.pf-site .pf-contact-page__address p { font-size:13px; line-height:1.7; margin-bottom:5px; }
.pf-site .pf-contact-page__directions { display:inline-flex; align-items:center; gap:16px; font-size:13px; line-height:1.6; padding-bottom:4px; }
.pf-site .pf-contact-page__directions span { margin:0; }
.pf-site .pf-form__grid { gap:20px; }
.pf-site .pf-form input[type=text],.pf-site .pf-form input[type=email],.pf-site .pf-form input[type=tel],.pf-site .pf-form textarea,.pf-site .pf-form select { height:44px; padding:11px 12px; }
.pf-site .pf-form textarea { height:130px; }
.pf-site .pf-form__captcha { margin-top:24px; }
.pf-site .pf-form__legal { margin-top:20px; line-height:1.65; }
.pf-site .pf-form__legal .wpcf7-form-control-wrap { margin-top:0; }
.pf-site .pf-form__documents { margin-top:10px!important; }
.pf-site .pf-form .pf-form__submit { margin-top:24px; }
.pf-site .popup .pf-form textarea { height:100px; }
.pf-site .popup .form-wrapper:has(.pf-form) { padding:30px; }
.pf-site .pf-legal-page { padding:0 0 32px; }
.pf-site .pf-legal-page article { padding:30px 32px; }
.pf-site .pf-legal-page h2 { font-size:20px; }
.pf-site .pf-footer__inner { padding-inline:32px; }
.pf-site .pf-footer__bottom { align-items:flex-start; gap:18px; }
.pf-site .pf-footer__utility { gap:8px 16px; justify-content:flex-end; }
.pf-site a:focus-visible,.pf-site button:focus-visible,.pf-site .pf-table-scroll:focus-visible { outline:2px solid #b00d29; outline-offset:4px; }
/* Portfolio items use the same container as the rest of the site. */
.pf-site .pf-case-page { padding:32px; }
.pf-site .pf-case__eyebrow { font-size:11px; color:#6d6861; letter-spacing:.06em; text-transform:uppercase; margin:0 0 10px; }
.pf-site .pf-case h1 { font-size:31px; line-height:1.3; font-weight:700; margin:0 0 28px; }
.pf-site .pf-case__layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr); gap:32px; align-items:start; }
.pf-site .pf-case__image { background:#f6f5f1; padding:24px; text-align:center; }
.pf-site .pf-case__image img { display:block; max-width:100%; height:auto; margin:auto; }
.pf-site .pf-case__copy { font-size:15px; line-height:1.75; min-width:0; }
.pf-site .pf-case__copy p { margin:0 0 18px; }
.pf-site .pf-case__copy img { max-width:100%; height:auto; }
.pf-site .pf-case__category { color:#6d6861; font-size:13px; }
.pf-site .pf-case__actions { display:flex; align-items:flex-start; flex-direction:column; gap:18px; margin-top:24px; }
.pf-site .pf-case__cta { display:inline-block; padding:12px 18px; color:#fff; background:#d51232; font-size:14px; line-height:1.5; text-decoration:none; }
.pf-site .pf-case__pagination { display:flex; justify-content:space-between; gap:28px; border-top:1px solid #e3dfd8; margin-top:32px; padding-top:24px; font-size:13px; }
.pf-site .pf-case__pagination a { max-width:48%; overflow-wrap:anywhere; color:#8f1025; }
.pf-site .pf-case__layout--image-only { grid-template-columns:minmax(0,1fr); gap:24px; }
.pf-site .pf-case__layout--image-only .pf-case__image { width:100%; max-width:620px; margin:auto; }
.pf-site .pf-case__layout--image-only .pf-case__actions { margin:0; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:center; gap:18px 28px; }
/* Home tiles retain their imagery and links, with a grid that can reflow. */
.pf-site .content-block_main { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-flow:dense; gap:8px; padding:8px; }
.pf-site .content-block_main::after { display:none; }
.pf-site .content-block_main > .home-block { display:block; min-width:0; min-height:0; max-width:none; width:100%; margin:0; height:auto; aspect-ratio:1; overflow:hidden; }
.pf-site .content-block_main > .home-block_long,.pf-site .content-block_main > .pf-tile-wide { grid-column:span 2; aspect-ratio:2; }
.pf-site .content-block_main > #container { grid-column:span 2; width:100%; min-width:0; margin:0; aspect-ratio:2; overflow:hidden; }
.pf-site #container > .home-block_slider { display:block; width:100%; max-width:none; min-width:0; min-height:0; height:100%; margin:0; }
.pf-site .home-block > .overlay { height:100%; width:100%; }
.pf-site .home-block > .overlay > img { display:block; width:100%; height:100%; object-fit:cover; }
.pf-site .home-block_no-border { display:grid!important; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; }
.pf-site .home-block_no-border .wrap-overlay { grid-column:1 / -1; width:auto; height:auto; }
.pf-site .home-block_no-border .wrap-letter,.pf-site .home-block_no-border .wrap-shipping { width:auto; height:auto; margin:0; float:none; }
.pf-site .home-block__download,.pf-site .home-block__letter,.pf-site .home-block__shipping { width:100%; height:100%; margin:0; float:none; }
.pf-site .home-block__letter,.pf-site .home-block__shipping { padding:70px 4px 8px; background-position:center 20px; }
.pf-site .home-block__signature { padding:8px 12px; }
.pf-site .home-block__title { font-size:16px; line-height:1.35; }
.pf-site #slides { width:100%; height:100%; }
.pf-site #slides .slidesContainer,.pf-site #slides .slidesControl { width:100%!important; height:100%!important; }
.pf-site #slides .slide { width:100%; height:100%; padding:24px 20px; background-size:cover; background-position:center; }
.pf-site #slides .slide-content { width:100%; margin:0; float:none; }
.pf-site #slides .slide-title { font-size:clamp(24px,3.1vw,44px); line-height:1.1; }
.pf-site #slides .slide-title_small { font-size:clamp(19px,2.4vw,30px); }
.pf-site #slides .slide-text { font-size:clamp(11px,1.1vw,15px); line-height:1.5; }
@media(max-width:1000px) {
 .pf-site .header__wrapper { padding-inline:12px; gap:18px; }.pf-site .header .header__wrapper .logo_position { flex-basis:210px; }.pf-site .call { font-size:25px; }.pf-site .call::before { font-size:17px; }
 .pf-site .content-inside .left-content,.pf-site .content-inside .right-content { width:calc(50% - 16px); margin:0 16px 24px 0; text-align:left; }
 .pf-site .home-block__title { font-size:14px; }.pf-site .home-block__content { padding:24px 8px 0 75px; }.pf-site .home-block__download { background-position:20px 22px; }.pf-site .home-block__text { font-size:12px; }
}
@media(max-width:760px) {
 body.pf-site { --pf-gutter:22px; --pf-gap:22px; }
 .pf-site .header { padding:18px 0; }.pf-site .header__wrapper { flex-wrap:wrap; gap:18px 12px; padding-inline:8px; }
 .pf-site .header .header__wrapper .logo_position { width:170px; flex:0 1 43%; }.pf-site .header .header__wrapper .info { padding:0; background:none; flex:0 1 52%; text-align:right; }
 .pf-site .call { font-size:22px; }.pf-site .call::before { display:block; padding:0; font-size:13px; }.pf-site .phone { font-size:9px; letter-spacing:0; }
 .pf-site .header .header__wrapper .socSearch { width:100%; flex-direction:row; align-items:center; gap:14px; }.pf-site .socSearch__soc { flex:none; }.pf-site .socSearchForm { flex:1; }.pf-site .socSearchForm__search input { height:40px; font-size:16px; }
 .pf-site .nav { width:100%; display:block; min-height:0; }.pf-site .pf-nav-ready .nav:not(.is-open) { display:none; }
 .pf-site .pf-nav-ready .pf-menu-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; border:0; padding:14px 24px; color:#fff; background:transparent; font-family:inherit; font-size:15px; font-weight:600; line-height:1.5; text-align:left; }
 .pf-site .nav > .menu-item { position:relative; border:0; border-top:1px solid rgba(255,255,255,.2); }.pf-site .nav > .menu-item > a { justify-content:flex-start; min-height:48px; padding:12px 58px 12px 24px; font-size:13px; }
 .pf-site .pf-submenu-toggle { display:block; position:absolute; right:12px; top:3px; width:44px; height:44px; border:0; color:#fff; background:transparent; font-size:24px; }
 .pf-site .nav .menu-depth-1,.pf-site .nav .menu-item:hover > .menu-depth-1,.pf-site .nav .menu-item:focus-within > .menu-depth-1 { display:none; position:static; padding:18px 20px; opacity:1; box-shadow:none; }
 .pf-site .nav .pf-submenu-open > .menu-depth-1 { display:block!important; }
 .pf-site .nav .menu-depth-1 > li { display:block; width:100%!important; padding:0 0 16px; }.pf-site .nav .menu-depth-1 > li:last-child { padding-bottom:0; }
 .pf-site .nav .menu-depth-2 { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }.pf-site .nav .menu-depth-2 li { width:100%!important; }.pf-site .nav .menu-depth-2 li a { padding:8px 4px; font-size:14px; }
 .pf-site .wrapper > .title-page,.pf-site .wrapper > .main-news { font-size:28px; padding-top:24px; }
 .pf-site .content-inside .left-content,.pf-site .content-inside .right-content,.pf-site .contacts__left,.pf-site .contacts__right,.pf-site .print-block__left,.pf-site .print-block__right { float:none; width:100%; margin:0 0 22px; }
 .pf-site .content-inside .wrap-col { display:block; }.pf-site .content-inside .remark { float:none; margin:16px 0; text-align:left; }
 .pf-site .content-inside .notice,.pf-site .content-inside .notice_orange { height:auto; min-height:53px; padding-top:10px; padding-bottom:10px; }
 .pf-site .wrapper.pf-contact-page { padding:26px 22px; }.pf-site .pf-contact-page__intro h1 { font-size:28px; }.pf-site .pf-contact-page__layout { grid-template-columns:minmax(0,1fr); gap:24px; }
 .pf-site .pf-contact-page__form { padding:22px; }.pf-site .pf-contact-page__aside { padding:24px; }.pf-site .pf-contact-page__phone { font-size:24px; }
 .pf-site .pf-legal-page article { padding:26px 22px; }.pf-site .pf-footer__inner { padding-inline:22px; }.pf-site .pf-footer__grid { gap:26px; }.pf-site .pf-footer__bottom { flex-direction:column; gap:16px; }.pf-site .pf-footer__utility { justify-content:flex-start; }
 .pf-site .pf-case-page { padding:26px 22px; }.pf-site .pf-case h1 { font-size:27px; }.pf-site .pf-case__layout { grid-template-columns:minmax(0,1fr); gap:22px; }.pf-site .pf-case__image { padding:18px; }.pf-site .pf-case__pagination { flex-direction:column; gap:18px; }.pf-site .pf-case__pagination a { max-width:100%; }
 .pf-site .content-block_main { grid-template-columns:repeat(2,minmax(0,1fr)); }.pf-site .home-block__title { font-size:15px; }.pf-site .home-block__content { padding:25px 10px 0 85px; }
 .pf-site .ep_portfolio { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.pf-site .ep_portfolio li { float:none!important; width:100%!important; height:auto; margin:0!important; }.pf-site .ep_portfolio li img { height:auto!important; }
}
@media(max-width:480px) {
 body.pf-site { --pf-gutter:20px; }.pf-site .wrapper,.pf-site .wrapper_search,.pf-site .kama_breadcrumbs { width:calc(100% - 24px); }.pf-site .kama_breadcrumbs { padding-block:12px; }
 .pf-site .wrapper.pf-contact-page { width:calc(100% - 24px); padding:24px 20px; }.pf-site .pf-contact-page__intro { margin-bottom:24px; }.pf-site .pf-contact-page__intro h1 { font-size:27px; }.pf-site .pf-contact-page__intro p { font-size:14px; }
 .pf-site .pf-contact-page__form { padding:20px 16px; }.pf-site .pf-form__grid { grid-template-columns:minmax(0,1fr); gap:18px; }.pf-site .pf-form input[type=text],.pf-site .pf-form input[type=email],.pf-site .pf-form input[type=tel],.pf-site .pf-form textarea,.pf-site .pf-form select { font-size:16px; }
 .pf-site .popup.reg_form:has(.pf-form) { width:calc(100vw - 24px); top:12px; max-height:calc(100dvh - 24px); }.pf-site .popup .form-wrapper:has(.pf-form) { padding:26px 20px; }
 .pf-site .pf-form__documents { margin-left:0!important; }.pf-site .pf-form__legal { font-size:12px; }
 .pf-site .content-inside h2 { font-size:21px; }.pf-site .content-inside h3 { font-size:18px; }.pf-site .content-inside .title-banner_red { width:auto; padding-left:50px; }
 .pf-site .price th,.pf-site .price td { padding:10px; font-size:13px; }.pf-site .price table { min-width:480px; }.pf-site .pf-table-scroll table { max-width:none; }
 .pf-site .home-block__title { font-size:13px; }.pf-site .home-block__signature { padding:8px; }.pf-site .home-block__download { background-size:25px auto; background-position:12px 19px; }.pf-site .home-block__content { padding:16px 7px 0 46px; }.pf-site .home-block__price { font-size:11px; }.pf-site .home-block__letter,.pf-site .home-block__shipping { background-size:30px auto; background-position:center 10px; padding:44px 3px 4px; font-size:9px; line-height:1.4; }
 .pf-site .ep_portfolio { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .pf-site .menu-depth-1,.pf-site .home-block { transition:none; } }

/* Page-level semantic headings. */
.pf-site .wrapper > .pf-home-title { margin:0; padding:24px 0 20px; color:#292826; font-size:28px; font-weight:700; line-height:1.25; }
.pf-site .content-inside h1.pf-isbn-title { font-size:23px; font-weight:700; line-height:1.35; margin:28px 0 14px; padding:0; }
@media (max-width:600px) { .pf-site .wrapper > .pf-home-title { padding:20px 8px 18px; font-size:25px; } .pf-site .content-inside h1.pf-isbn-title { font-size:23px; } }
