/* ritual-olimp.ru — Ритуал-Подмосковье · Sober Memorial Editorial
   Палитра: графит / тёплая бронза / слоновая кость. Префикс .ro-* */

@font-face { font-family:'PT Sans';  src:url('/assets/fonts/ptsans-regular.woff2')  format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'PT Sans';  src:url('/assets/fonts/ptsans-bold.woff2')     format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'PT Serif'; src:url('/assets/fonts/ptserif-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'PT Serif'; src:url('/assets/fonts/ptserif-bold.woff2')    format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'PT Serif'; src:url('/assets/fonts/ptserif-bold-italic.woff2') format('woff2'); font-weight:700; font-style:italic; font-display:swap; }

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }

:root{
    --ro-graphite:  #1b1e25;
    --ro-graphite2: #262a33;
    --ro-graphite3: #32363f;
    --ro-bronze:    #b3905a;
    --ro-bronze-l:  #c8aa78;
    --ro-bronze-d:  #8d6f3f;
    --ro-ivory:     #f5f2ea;
    --ro-ivory2:    #efeadf;
    --ro-paper:     #ffffff;
    --ro-ink:       #24272f;
    --ro-muted:     #6c707b;
    --ro-line:      #e4ddcd;
    --ro-line2:     rgba(179,144,90,.30);
    --ro-shadow-s:  0 1px 2px rgba(27,30,37,.05);
    --ro-shadow-m:  0 12px 30px -12px rgba(27,30,37,.22);
    --ro-shadow-l:  0 30px 60px -24px rgba(27,30,37,.35);
    --ro-r:         3px;
    --ro-r-l:       6px;
    --ro-ease:      cubic-bezier(.22,.61,.36,1);
    --ro-maxw:      1200px;
}

html{ scroll-behavior:smooth; }
body{
    font-family:'PT Sans',Arial,sans-serif;
    font-size:17px;
    line-height:1.72;
    color:var(--ro-ink);
    background:var(--ro-ivory);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
}
a{ color:var(--ro-bronze-d); text-decoration:none; transition:color .2s; }
a:hover{ color:var(--ro-graphite); }
img{ max-width:100%; display:block; }
::selection{ background:var(--ro-bronze); color:#fff; }

/* грейн-текстура поверх тёмных слоёв */
.ro-grain::after{
    content:''; position:absolute; inset:0; pointer-events:none; opacity:.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* === КОНТЕЙНЕР / СЕКЦИИ === */
.ro-container{ max-width:var(--ro-maxw); margin:0 auto; padding:0 28px; }
.ro-section{ padding:96px 0; position:relative; }
.ro-section--paper{ background:var(--ro-paper); }
.ro-section--dark{ background:var(--ro-graphite); color:#fff; }
.ro-eyebrow{
    font-size:12.5px; font-weight:700; letter-spacing:2.6px; text-transform:uppercase;
    color:var(--ro-bronze-d); display:inline-flex; align-items:center; gap:12px; margin-bottom:18px;
}
.ro-eyebrow::before{ content:''; width:30px; height:1px; background:var(--ro-bronze); display:inline-block; }
.ro-section--dark .ro-eyebrow{ color:var(--ro-bronze-l); }
.ro-h2{
    font-family:'PT Serif',Georgia,serif; font-weight:700;
    font-size:clamp(28px,3.6vw,42px); line-height:1.16; letter-spacing:-.4px; color:var(--ro-graphite);
}
.ro-section--dark .ro-h2{ color:#fff; }
.ro-lead{ color:var(--ro-muted); font-size:18px; max-width:560px; margin-top:14px; }
.ro-section--dark .ro-lead{ color:rgba(255,255,255,.66); }
.ro-head{ margin-bottom:52px; max-width:620px; }
.ro-head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.ro-head--center .ro-eyebrow{ justify-content:center; }

/* === ШАПКА === */
.ro-header{
    position:fixed; top:0; left:0; right:0; z-index:90;
    transition:background .3s var(--ro-ease), box-shadow .3s, padding .3s var(--ro-ease);
}
.ro-header-inner{
    max-width:var(--ro-maxw); margin:0 auto; padding:0 28px;
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    height:84px; transition:height .3s var(--ro-ease);
}
.ro-header.ro-scrolled{ background:rgba(27,30,37,.96); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(179,144,90,.25),0 14px 30px -20px rgba(0,0,0,.6); }
.ro-header.ro-scrolled .ro-header-inner{ height:64px; }
.ro-logo{ display:flex; align-items:center; gap:14px; }
.ro-logo-mark{
    width:42px; height:42px; flex-shrink:0; color:var(--ro-bronze);
    border:1px solid var(--ro-line2); border-radius:50%; display:flex; align-items:center; justify-content:center;
    transition:border-color .3s,transform .3s var(--ro-ease);
}
.ro-logo-mark svg{ width:20px; height:20px; }
.ro-header.ro-scrolled .ro-logo-mark{ border-color:rgba(200,170,120,.5); }
.ro-logo:hover .ro-logo-mark{ transform:rotate(-4deg); }
.ro-logo-text{ display:flex; flex-direction:column; line-height:1.15; }
.ro-logo-name{ font-family:'PT Serif',Georgia,serif; font-size:19px; font-weight:700; color:#fff; letter-spacing:.3px; }
.ro-logo-tag{ font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--ro-bronze-l); margin-top:2px; }
.ro-nav{ display:flex; align-items:center; gap:2px; margin-left:auto; }
.ro-nav a{
    color:rgba(255,255,255,.82); font-size:14.5px; padding:9px 15px; border-radius:var(--ro-r);
    position:relative; transition:color .2s;
}
.ro-nav a::after{
    content:''; position:absolute; left:15px; right:15px; bottom:4px; height:1px;
    background:var(--ro-bronze); transform:scaleX(0); transform-origin:left; transition:transform .28s var(--ro-ease);
}
.ro-nav a:hover, .ro-nav a.ro-active{ color:#fff; }
.ro-nav a:hover::after, .ro-nav a.ro-active::after{ transform:scaleX(1); }
.ro-header-cta{
    display:inline-flex; align-items:center; gap:9px; margin-left:18px;
    color:var(--ro-bronze-l); font-weight:700; font-size:15px; white-space:nowrap;
    padding:9px 18px; border:1px solid var(--ro-line2); border-radius:40px; transition:all .25s var(--ro-ease);
}
.ro-header-cta svg{ width:15px; height:15px; }
.ro-header-cta:hover{ background:var(--ro-bronze); color:var(--ro-graphite); border-color:var(--ro-bronze); }
.ro-burger{ display:none; width:44px; height:44px; border:1px solid var(--ro-line2); border-radius:var(--ro-r); background:transparent; cursor:pointer; position:relative; }
.ro-burger span{ position:absolute; left:11px; right:11px; height:1.6px; background:var(--ro-bronze-l); transition:.3s var(--ro-ease); }
.ro-burger span:nth-child(1){ top:15px; } .ro-burger span:nth-child(2){ top:21px; } .ro-burger span:nth-child(3){ top:27px; }
body.ro-menu-open .ro-burger span:nth-child(1){ top:21px; transform:rotate(45deg); }
body.ro-menu-open .ro-burger span:nth-child(2){ opacity:0; }
body.ro-menu-open .ro-burger span:nth-child(3){ top:21px; transform:rotate(-45deg); }

/* === HERO === */
.ro-hero{
    position:relative; min-height:92vh; display:flex; align-items:flex-end;
    color:#fff; overflow:hidden; padding:140px 0 76px;
}
.ro-hero-bg{ position:absolute; inset:0; z-index:0; }
.ro-hero-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:roKenburns 18s ease-out forwards; }
@keyframes roKenburns{ to{ transform:scale(1); } }
.ro-hero-bg::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,22,28,.40) 0%, rgba(20,22,28,.30) 38%, rgba(20,22,28,.78) 100%),
              linear-gradient(90deg, rgba(20,22,28,.62) 0%, rgba(20,22,28,.12) 55%, transparent 100%);
}
.ro-hero-inner{ position:relative; z-index:2; max-width:var(--ro-maxw); margin:0 auto; padding:0 28px; width:100%; }
.ro-hero-content{ max-width:680px; }
.ro-hero-eyebrow{
    font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--ro-bronze-l);
    display:inline-flex; align-items:center; gap:14px; margin-bottom:26px;
    opacity:0; animation:roUp .9s var(--ro-ease) .15s forwards;
}
.ro-hero-eyebrow::before{ content:''; width:42px; height:1px; background:var(--ro-bronze); }
.ro-hero h1{
    font-family:'PT Serif',Georgia,serif; font-weight:700; letter-spacing:-.5px;
    font-size:clamp(36px,6vw,68px); line-height:1.08; margin-bottom:24px;
    text-shadow:0 2px 30px rgba(0,0,0,.4);
    opacity:0; animation:roUp 1s var(--ro-ease) .3s forwards;
}
.ro-hero h1 em{ font-style:italic; color:var(--ro-bronze-l); }
.ro-hero-sub{
    font-size:19px; line-height:1.7; color:rgba(255,255,255,.82); max-width:540px; margin-bottom:38px;
    opacity:0; animation:roUp 1s var(--ro-ease) .45s forwards;
}
.ro-hero-actions{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; opacity:0; animation:roUp 1s var(--ro-ease) .6s forwards; }
@keyframes roUp{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:translateY(0); } }
.ro-btn{
    display:inline-flex; align-items:center; gap:10px; font-weight:700; font-size:16px;
    padding:16px 32px; border-radius:40px; transition:all .28s var(--ro-ease); cursor:pointer; border:1px solid transparent;
}
.ro-btn svg{ width:18px; height:18px; }
.ro-btn--gold{ background:var(--ro-bronze); color:var(--ro-graphite); box-shadow:0 14px 30px -12px rgba(179,144,90,.7); }
.ro-btn--gold:hover{ background:var(--ro-bronze-l); color:var(--ro-graphite); transform:translateY(-2px); box-shadow:0 20px 40px -12px rgba(179,144,90,.85); }
.ro-btn--ghost{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.34); backdrop-filter:blur(4px); }
.ro-btn--ghost:hover{ background:rgba(255,255,255,.14); border-color:#fff; color:#fff; }
.ro-hero-scroll{
    position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2;
    width:26px; height:42px; border:1.5px solid rgba(255,255,255,.4); border-radius:14px;
    opacity:0; animation:roFade 1s ease 1.2s forwards;
}
.ro-hero-scroll::before{ content:''; position:absolute; left:50%; top:8px; width:3px; height:8px; background:var(--ro-bronze-l); border-radius:2px; transform:translateX(-50%); animation:roScroll 1.8s ease-in-out infinite; }
@keyframes roScroll{ 0%,100%{ opacity:0; transform:translate(-50%,0); } 50%{ opacity:1; transform:translate(-50%,10px); } }
@keyframes roFade{ to{ opacity:1; } }

/* === TRUST STRIP === */
.ro-trust{ background:var(--ro-graphite2); color:#fff; position:relative; }
.ro-trust-inner{
    max-width:var(--ro-maxw); margin:0 auto; padding:0 28px;
    display:grid; grid-template-columns:repeat(4,1fr);
}
.ro-trust-item{ padding:30px 26px; display:flex; align-items:center; gap:16px; border-left:1px solid rgba(255,255,255,.08); }
.ro-trust-item:first-child{ border-left:none; }
.ro-trust-ico{ width:34px; height:34px; color:var(--ro-bronze-l); flex-shrink:0; }
.ro-trust-num{ font-family:'PT Serif',serif; font-size:21px; font-weight:700; color:#fff; line-height:1.1; }
.ro-trust-txt{ font-size:13.5px; color:rgba(255,255,255,.6); }

/* === УСЛУГИ === */
.ro-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ro-service{
    position:relative; background:var(--ro-paper); border:1px solid var(--ro-line); border-radius:var(--ro-r-l);
    padding:40px 34px 36px; overflow:hidden; transition:transform .35s var(--ro-ease), box-shadow .35s var(--ro-ease), border-color .35s;
}
.ro-service::before{ content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--ro-bronze),transparent); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ro-ease); }
.ro-service:hover{ transform:translateY(-6px); box-shadow:var(--ro-shadow-m); border-color:var(--ro-line2); }
.ro-service:hover::before{ transform:scaleX(1); }
.ro-service-ico{
    width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--ro-ivory2); color:var(--ro-bronze-d); margin-bottom:24px; transition:all .35s var(--ro-ease);
}
.ro-service-ico svg{ width:30px; height:30px; }
.ro-service:hover .ro-service-ico{ background:var(--ro-graphite); color:var(--ro-bronze-l); }
.ro-service-title{ font-family:'PT Serif',serif; font-size:21px; font-weight:700; color:var(--ro-graphite); margin-bottom:11px; }
.ro-service-desc{ font-size:15px; color:var(--ro-muted); line-height:1.7; }
.ro-service-idx{ position:absolute; top:28px; right:30px; font-family:'PT Serif',serif; font-size:34px; color:var(--ro-line); font-weight:700; line-height:1; }

/* === ШАГИ (на тёмном) === */
.ro-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; margin-top:14px; }
.ro-step{ padding:0 26px; position:relative; }
.ro-step:not(:last-child)::after{ content:''; position:absolute; top:26px; right:0; width:100%; height:1px; background:linear-gradient(90deg,rgba(179,144,90,.5),rgba(179,144,90,.12)); transform:translateX(50%); }
.ro-step-num{
    width:54px; height:54px; border-radius:50%; border:1px solid var(--ro-bronze);
    color:var(--ro-bronze-l); font-family:'PT Serif',serif; font-size:22px; font-weight:700;
    display:flex; align-items:center; justify-content:center; margin-bottom:24px; background:var(--ro-graphite); position:relative; z-index:1;
}
.ro-step-title{ font-family:'PT Serif',serif; font-size:19px; font-weight:700; color:#fff; margin-bottom:10px; }
.ro-step-desc{ font-size:14.5px; color:rgba(255,255,255,.6); line-height:1.65; }

/* === КЛАДБИЩА === */
.ro-cems{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.ro-cem{
    background:var(--ro-paper); border:1px solid var(--ro-line); border-radius:var(--ro-r-l); padding:24px 26px;
    display:flex; gap:16px; align-items:flex-start; transition:transform .3s var(--ro-ease),box-shadow .3s,border-color .3s;
}
.ro-cem:hover{ transform:translateY(-4px); box-shadow:var(--ro-shadow-m); border-color:var(--ro-line2); }
.ro-cem-pin{ width:24px; height:24px; color:var(--ro-bronze); flex-shrink:0; margin-top:3px; }
.ro-cem-name{ font-weight:700; font-size:16px; color:var(--ro-graphite); margin-bottom:3px; }
.ro-cem-addr{ font-size:14px; color:var(--ro-muted); margin-bottom:9px; }
.ro-cem-type{ font-size:11px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--ro-bronze-d); background:var(--ro-ivory2); padding:3px 10px; border-radius:20px; }

/* === ПАМЯТНИКИ split === */
.ro-split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.ro-split-media{ position:relative; border-radius:var(--ro-r-l); overflow:hidden; box-shadow:var(--ro-shadow-l); aspect-ratio:4/3; }
.ro-split-media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ro-ease); }
.ro-split-media:hover img{ transform:scale(1.05); }
.ro-split-badge{
    position:absolute; left:24px; bottom:24px; background:rgba(27,30,37,.9); backdrop-filter:blur(6px);
    color:#fff; padding:16px 22px; border-radius:var(--ro-r-l); border:1px solid rgba(179,144,90,.4);
}
.ro-split-badge b{ font-family:'PT Serif',serif; font-size:24px; color:var(--ro-bronze-l); display:block; }
.ro-split-badge span{ font-size:13px; color:rgba(255,255,255,.7); }
.ro-mat-list{ list-style:none; margin:24px 0 30px; }
.ro-mat-list li{ display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--ro-line); }
.ro-mat-list li:last-child{ border-bottom:none; }
.ro-mat-list svg{ width:20px; height:20px; color:var(--ro-bronze); flex-shrink:0; margin-top:3px; }
.ro-mat-list b{ color:var(--ro-graphite); display:block; font-size:16px; }
.ro-mat-list span{ font-size:14.5px; color:var(--ro-muted); }

/* === CTA BAND === */
.ro-cta{ position:relative; overflow:hidden; background:var(--ro-graphite); color:#fff; padding:88px 0; text-align:center; }
.ro-cta-bg{ position:absolute; inset:0; z-index:0; opacity:.18; }
.ro-cta-bg img{ width:100%; height:100%; object-fit:cover; }
.ro-cta::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 40%, rgba(179,144,90,.16), transparent 60%); z-index:1; }
.ro-cta-inner{ position:relative; z-index:2; max-width:680px; margin:0 auto; padding:0 28px; }
.ro-cta h2{ font-family:'PT Serif',serif; font-size:clamp(26px,4vw,40px); line-height:1.18; margin-bottom:16px; }
.ro-cta h2 em{ font-style:italic; color:var(--ro-bronze-l); }
.ro-cta p{ font-size:18px; color:rgba(255,255,255,.7); margin-bottom:36px; }
.ro-cta-phone{ display:block; font-family:'PT Serif',serif; font-size:clamp(30px,5vw,46px); font-weight:700; color:var(--ro-bronze-l); margin-bottom:28px; letter-spacing:.5px; }
.ro-cta-phone:hover{ color:#fff; }

/* === ПОДВАЛ === */
.ro-footer{ background:#15171d; color:rgba(255,255,255,.56); padding:72px 0 28px; position:relative; }
.ro-footer::before{ content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--ro-bronze),transparent); opacity:.4; }
.ro-footer-inner{ max-width:var(--ro-maxw); margin:0 auto; padding:0 28px; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.ro-footer-brand .ro-logo-name{ font-size:22px; }
.ro-footer-about{ font-size:14.5px; line-height:1.7; max-width:280px; margin-top:18px; }
.ro-footer-col-title{ color:#fff; font-family:'PT Serif',serif; font-size:16px; font-weight:700; margin-bottom:18px; }
.ro-footer-links{ list-style:none; }
.ro-footer-links li{ margin-bottom:11px; }
.ro-footer-links a{ color:rgba(255,255,255,.56); font-size:14.5px; }
.ro-footer-links a:hover{ color:var(--ro-bronze-l); padding-left:4px; }
.ro-footer-contact{ font-size:14.5px; line-height:1.9; }
.ro-footer-contact a{ color:var(--ro-bronze-l); }
.ro-footer-bottom{ max-width:var(--ro-maxw); margin:0 auto; padding:24px 28px 0; border-top:1px solid rgba(255,255,255,.08); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.4); }

/* === SCROLL REVEAL === */
.ro-reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ro-ease), transform .8s var(--ro-ease); }
.ro-reveal.ro-in{ opacity:1; transform:none; }
.ro-reveal[data-d="1"]{ transition-delay:.08s; } .ro-reveal[data-d="2"]{ transition-delay:.16s; } .ro-reveal[data-d="3"]{ transition-delay:.24s; } .ro-reveal[data-d="4"]{ transition-delay:.32s; } .ro-reveal[data-d="5"]{ transition-delay:.4s; }

/* === МОБ. CALL BAR === */
.ro-callbar{ position:fixed; left:0; right:0; bottom:0; z-index:80; display:none; background:rgba(27,30,37,.97); backdrop-filter:blur(10px); border-top:1px solid var(--ro-line2); padding:10px 16px; gap:10px; }
.ro-callbar a{ flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:13px; border-radius:var(--ro-r); font-weight:700; font-size:15px; }
.ro-callbar svg{ width:17px; height:17px; }
.ro-callbar-call{ background:var(--ro-bronze); color:var(--ro-graphite); }
.ro-callbar-page{ background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); }

/* === ВНУТРЕННИЕ СТРАНИЦЫ === */
.ro-pagehero{ position:relative; background:var(--ro-graphite); color:#fff; padding:148px 0 60px; overflow:hidden; }
.ro-pagehero::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 0%, rgba(179,144,90,.14), transparent 55%); }
.ro-pagehero-inner{ position:relative; max-width:var(--ro-maxw); margin:0 auto; padding:0 28px; }
.ro-pagehero h1{ font-family:'PT Serif',serif; font-size:clamp(28px,4.4vw,46px); line-height:1.14; max-width:840px; letter-spacing:-.4px; }
.ro-pagehero h1 em{ font-style:italic; color:var(--ro-bronze-l); }
.ro-pagehero p{ color:rgba(255,255,255,.74); margin-top:16px; max-width:640px; font-size:18px; }
.ro-bread{ display:flex; gap:9px; align-items:center; font-size:13px; color:var(--ro-bronze-l); margin-bottom:22px; letter-spacing:.3px; }
.ro-bread a{ color:rgba(255,255,255,.6); } .ro-bread a:hover{ color:#fff; }
.ro-bread span{ opacity:.5; }

.ro-article{ max-width:880px; margin:0 auto; padding:72px 28px; }
.ro-article h2{ font-family:'PT Serif',serif; font-size:28px; color:var(--ro-graphite); margin:40px 0 16px; letter-spacing:-.3px; }
.ro-article h3{ font-family:'PT Serif',serif; font-size:21px; color:var(--ro-graphite); margin:28px 0 12px; }
.ro-article p{ margin-bottom:18px; }
.ro-article ul,.ro-article ol{ padding-left:22px; margin-bottom:18px; }
.ro-article li{ margin-bottom:10px; }
.ro-article strong{ color:var(--ro-graphite); }
.ro-article blockquote{ border-left:3px solid var(--ro-bronze); padding:6px 24px; margin:24px 0; font-family:'PT Serif',serif; font-style:italic; font-size:20px; color:var(--ro-graphite); background:var(--ro-ivory2); border-radius:0 var(--ro-r-l) var(--ro-r-l) 0; }
.ro-infocards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; margin:30px 0; }
.ro-infocard{ background:var(--ro-paper); border:1px solid var(--ro-line); border-radius:var(--ro-r-l); padding:26px; transition:transform .3s var(--ro-ease),box-shadow .3s; }
.ro-infocard:hover{ transform:translateY(-4px); box-shadow:var(--ro-shadow-m); }
.ro-infocard-title{ font-family:'PT Serif',serif; font-weight:700; font-size:17px; color:var(--ro-graphite); margin-bottom:8px; }
.ro-infocard p{ font-size:14.5px; color:var(--ro-muted); margin:0; }

/* === АДАПТИВ === */
@media (max-width:1000px){
    .ro-services{ grid-template-columns:repeat(2,1fr); }
    .ro-steps{ grid-template-columns:repeat(2,1fr); gap:40px 0; }
    .ro-step:not(:last-child)::after{ display:none; }
    .ro-cems{ grid-template-columns:repeat(2,1fr); }
    .ro-footer-inner{ grid-template-columns:1fr 1fr; gap:36px; }
    .ro-split{ grid-template-columns:1fr; gap:36px; }
    .ro-split-media{ order:-1; }
}
@media (max-width:820px){
    .ro-nav, .ro-header-cta{ display:none; }
    .ro-burger{ display:block; }
    .ro-nav.ro-nav-open{
        display:flex; flex-direction:column; position:fixed; top:0; right:0; bottom:0; width:min(82vw,340px);
        background:var(--ro-graphite); padding:96px 28px 28px; gap:6px; z-index:95; box-shadow:-20px 0 60px rgba(0,0,0,.5);
        transform:translateX(0); margin-left:0;
    }
    .ro-nav.ro-nav-open a{ font-size:18px; padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.07); }
    .ro-trust-inner{ grid-template-columns:1fr 1fr; }
    .ro-trust-item:nth-child(-n+2){ border-bottom:1px solid rgba(255,255,255,.08); }
    .ro-trust-item:nth-child(odd){ border-left:none; }
    .ro-callbar{ display:flex; }
    body{ padding-bottom:66px; }
    .ro-section{ padding:72px 0; }
    .ro-hero{ min-height:86vh; }
}
@media (max-width:560px){
    .ro-container,.ro-hero-inner,.ro-footer-inner,.ro-footer-bottom,.ro-pagehero-inner{ padding-left:20px; padding-right:20px; }
    .ro-services,.ro-cems,.ro-steps{ grid-template-columns:1fr; }
    .ro-footer-inner{ grid-template-columns:1fr; }
    .ro-hero-actions{ flex-direction:column; align-items:stretch; }
    .ro-btn{ justify-content:center; }
    .ro-trust-inner{ grid-template-columns:1fr; }
    .ro-trust-item{ border-left:none !important; border-bottom:1px solid rgba(255,255,255,.08); }
}
@media (prefers-reduced-motion:reduce){
    *{ animation:none !important; transition:none !important; }
    .ro-reveal{ opacity:1; transform:none; }
    .ro-hero-bg img{ transform:none; }
}

/* === COMPAT: старые классы внутренних страниц → новый стиль === */
.ro-page-hero{
    position:relative; background:var(--ro-graphite); color:#fff; padding:148px 0 60px; overflow:hidden;
}
.ro-page-hero::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 0%, rgba(179,144,90,.14), transparent 55%); }
.ro-page-hero > *{ position:relative; max-width:var(--ro-maxw); margin-left:auto; margin-right:auto; padding-left:28px; padding-right:28px; }
.ro-page-hero h1{ font-family:'PT Serif',Georgia,serif; font-size:clamp(28px,4.4vw,46px); line-height:1.14; max-width:840px; letter-spacing:-.4px; }
.ro-page-hero p{ color:rgba(255,255,255,.74); margin-top:16px; max-width:660px; font-size:18px; }
.ro-page-hero .ro-bread{ display:flex; gap:9px; align-items:center; font-size:13px; color:var(--ro-bronze-l); margin-bottom:22px; }
.ro-page-hero .ro-bread a{ color:rgba(255,255,255,.6); } .ro-page-hero .ro-bread a:hover{ color:#fff; }

.ro-content-wrap{ max-width:880px; margin:0 auto; padding:64px 28px; }
.ro-content-wrap h2{ font-family:'PT Serif',serif; font-size:28px; color:var(--ro-graphite); margin:38px 0 16px; letter-spacing:-.3px; }
.ro-content-wrap h3{ font-family:'PT Serif',serif; font-size:21px; color:var(--ro-graphite); margin:26px 0 12px; }
.ro-content-wrap p{ margin-bottom:18px; }
.ro-content-wrap ul,.ro-content-wrap ol{ padding-left:22px; margin-bottom:18px; }
.ro-content-wrap li{ margin-bottom:10px; }
.ro-content-wrap strong{ color:var(--ro-graphite); }
.ro-content-wrap a{ border-bottom:1px solid var(--ro-line2); }
.ro-content-wrap a:hover{ border-color:var(--ro-bronze); }

.ro-info-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; margin:30px 0; }
.ro-info-card{ background:var(--ro-paper); border:1px solid var(--ro-line); border-radius:var(--ro-r-l); padding:26px; transition:transform .3s var(--ro-ease),box-shadow .3s,border-color .3s; }
.ro-info-card:hover{ transform:translateY(-4px); box-shadow:var(--ro-shadow-m); border-color:var(--ro-line2); }
.ro-info-card-title{ font-family:'PT Serif',serif; font-weight:700; font-size:17px; color:var(--ro-graphite); margin-bottom:8px; }
.ro-info-card p{ font-size:14.5px; color:var(--ro-muted); margin:0; }

.ro-cta-band{ position:relative; overflow:hidden; background:var(--ro-graphite); color:#fff; padding:72px 0; text-align:center; }
.ro-cta-band::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 30%, rgba(179,144,90,.16), transparent 60%); }
.ro-cta-band > *{ position:relative; max-width:680px; margin-left:auto; margin-right:auto; padding-left:28px; padding-right:28px; }
.ro-cta-band h2{ font-family:'PT Serif',serif; font-size:clamp(24px,4vw,38px); margin-bottom:14px; }
.ro-cta-band p{ font-size:17px; color:rgba(255,255,255,.7); margin-bottom:28px; }
.ro-cta-band .ro-cta-btn{ display:inline-block; background:var(--ro-bronze); color:var(--ro-graphite); font-weight:700; padding:15px 34px; border-radius:40px; transition:all .25s var(--ro-ease); }
.ro-cta-band .ro-cta-btn:hover{ background:var(--ro-bronze-l); transform:translateY(-2px); color:var(--ro-graphite); }
