/* "Живая тетрадь": тёплая, собранная система для частного педагога. */
:root { --cream:#fffaf0; --paper:#f7f0e2; --ink:#16264d; --ink-soft:#3e4c6a; --muted:#68738b; --line:#d9d9d3; --coral:#ef624c; --coral-deep:#c94335; --sun:#ffd65a; --mint:#c7ead9; --sky:#dce9f6; --white:#fffefa; --max:1200px; --serif:"Newsreader","Iowan Old Style","Palatino Linotype",serif; --sans:"Source Sans 3","Source Sans Pro","Segoe UI",sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { min-width:320px; margin:0; overflow-x:hidden; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:1.0625rem; line-height:1.55; } img { display:block; max-width:100%; height:auto; } a { color:inherit; } button,input,select,textarea { font:inherit; color:inherit; } ::selection { color:var(--ink); background:var(--sun); }
.skip { position:absolute; z-index:100; left:-999px; top:.75rem; padding:.55rem .9rem; color:var(--white); background:var(--ink); }.skip:focus { left:.75rem; }.wrap { width:min(100% - 3rem,var(--max)); margin-inline:auto; }
/* Header */
.site-header { position:sticky; z-index:20; top:0; background:rgba(255,250,240,.94); border-bottom:1px solid rgba(22,38,77,.12); backdrop-filter:blur(12px); }.header-row { display:flex; min-height:5rem; align-items:center; justify-content:space-between; gap:1.5rem; }.brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; white-space:nowrap; }.brand::before { width:.75rem; height:.75rem; content:""; background:var(--coral); border-radius:50% 50% 50% 0; transform:rotate(-45deg); }.brand-mark { font-family:var(--serif); font-weight:500; font-size:1.45rem; letter-spacing:-.04em; }.brand-meta { padding-left:.7rem; border-left:1px solid var(--line); color:var(--muted); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.nav { display:flex; align-items:center; gap:1.5rem; }.nav a { position:relative; color:var(--ink-soft); font-size:.94rem; font-weight:600; text-decoration:none; }.nav > a:not(.nav-cta)::after { position:absolute; bottom:-.35rem; left:0; width:100%; height:2px; content:""; background:var(--coral); transform:scaleX(0); transform-origin:right; transition:transform .2s ease; }.nav > a:not(.nav-cta):hover::after,.nav > a:not(.nav-cta):focus-visible::after { transform:scaleX(1); transform-origin:left; }.nav-cta { padding:.62rem 1rem; color:var(--ink)!important; background:var(--sun); box-shadow:inset 0 0 0 1px rgba(22,38,77,.08); transition:transform .2s,background .2s; }.nav-cta:hover,.nav-cta:focus-visible { background:var(--coral); color:var(--white)!important; transform:translateY(-2px); }.burger { display:none; width:2.7rem; height:2.7rem; border:0; background:transparent; cursor:pointer; }.burger span,.burger span::before,.burger span::after { display:block; position:relative; width:1.35rem; height:2px; background:var(--ink); content:""; }.burger span::before { position:absolute; top:-.42rem; }.burger span::after { position:absolute; top:.42rem; }
/* Shared UI */
.btn { display:inline-flex; min-height:3.25rem; align-items:center; justify-content:center; gap:.5rem; padding:.65rem 1.18rem; border:1px solid var(--ink); background:var(--ink); color:var(--white); font-weight:600; line-height:1.1; text-decoration:none; cursor:pointer; transition:background .2s,border-color .2s,color .2s,transform .2s; }.btn::after { content:"→"; font-size:1.15em; transition:transform .2s; }.btn:hover,.btn:focus-visible { border-color:var(--coral); background:var(--coral); transform:translateY(-2px); }.btn:hover::after,.btn:focus-visible::after { transform:translateX(3px); }.btn-ghost { background:transparent; color:var(--ink); }.btn-ghost:hover,.btn-ghost:focus-visible { background:var(--sun); border-color:var(--sun); color:var(--ink); }.btn-row { display:flex; flex-wrap:wrap; gap:.8rem; }.kicker { display:flex; align-items:center; gap:.6rem; margin:0 0 1rem; color:var(--coral-deep); font-size:.75rem; font-weight:600; letter-spacing:.13em; line-height:1.3; text-transform:uppercase; }.kicker::before { width:1.8rem; height:2px; content:""; background:currentColor; }.section { padding:7.5rem 0; }.section-head { display:grid; grid-template-columns:minmax(250px,.76fr) minmax(280px,.7fr); justify-content:space-between; gap:2rem 4rem; margin-bottom:3.1rem; }.section-head h2,.block-title { max-width:13ch; margin:0; font-family:var(--serif); font-size:clamp(2.15rem,4vw,3.6rem); font-weight:500; letter-spacing:-.055em; line-height:1.03; }.section-head p { max-width:34rem; align-self:end; margin:0; color:var(--ink-soft); font-size:1.08rem; }
/* Hero */
.hero { position:relative; padding:3.4rem 0 5.7rem; overflow:hidden; }.hero::before { position:absolute; z-index:-1; top:3rem; right:max(0px,calc((100vw - var(--max))/2 - 6rem)); width:min(42vw,550px); height:28rem; content:""; background:var(--mint); border-radius:50% 50% 0 50%; transform:rotate(-13deg); }.hero-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(310px,.75fr); grid-template-areas:"copy photo" "actions photo"; gap:2rem 3.5rem; align-items:center; }.hero-copy { grid-area:copy; padding-top:1rem; }.hero-figure { grid-area:photo; position:relative; width:min(100%,430px); justify-self:end; margin:0; padding:0 1.4rem 1.4rem 0; }.hero-figure::after { position:absolute; z-index:-1; right:0; bottom:0; width:83%; height:83%; content:""; background:var(--sun); }.hero-figure img { width:100%; height:33rem; object-fit:cover; object-position:55% center; filter:saturate(.9) contrast(1.05); }.hero-caption { max-width:26rem; margin:.9rem 0 0; color:var(--ink-soft); font-size:.86rem; line-height:1.4; }.hero h1 { max-width:12ch; margin:0; font-family:var(--serif); font-size:clamp(3.2rem,5.5vw,5.2rem); font-weight:500; letter-spacing:-.065em; line-height:.97; }.hero h1 em { position:relative; color:var(--coral-deep); font-style:italic; font-weight:500; white-space:nowrap; }.hero h1 em::after { position:absolute; z-index:-1; right:.02em; bottom:-.04em; left:.04em; height:.13em; content:""; background:var(--sun); transform:rotate(-1deg); }.lead { max-width:38rem; margin:1.65rem 0 0; color:var(--ink-soft); font-size:1.18rem; line-height:1.52; }.hero-actions { grid-area:actions; }.stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; margin-top:2.25rem; padding-top:1.4rem; border-top:1px solid var(--ink); }.stat { min-width:0; }.stat b { display:block; color:var(--coral-deep); font-family:var(--serif); font-size:2.45rem; font-weight:500; letter-spacing:-.05em; line-height:.9; }.stat span { display:block; margin-top:.55rem; color:var(--ink-soft); font-size:.88rem; line-height:1.32; }
/* Parent pains */
#scenes { background:var(--ink); color:var(--white); } #scenes .section-head p,#scenes .scene p { color:#d8deea; } #scenes .section-head h2 { max-width:12ch; }.scenes { border-top:1px solid rgba(255,255,255,.4); }.scene { display:grid; grid-template-columns:5.4rem minmax(180px,.7fr) minmax(280px,1.2fr); gap:1.5rem; align-items:start; padding:1.8rem 0; border-bottom:1px solid rgba(255,255,255,.22); transition:padding .2s,background .2s; }.scene:hover { padding-inline:.7rem; background:rgba(255,255,255,.055); }.scene-index { color:var(--sun); font-family:var(--serif); font-size:2.4rem; font-style:italic; line-height:.9; }.scene h3 { margin:0; font-family:var(--serif); font-size:1.6rem; font-weight:500; letter-spacing:-.03em; line-height:1.05; }.scene p { margin:0; }
/* Method */
#method { background:var(--sky); }.process { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }.process article { position:relative; min-height:15.5rem; padding:1.35rem 1.35rem 1.6rem; background:var(--white); border-top:4px solid var(--ink); }.process article:nth-child(2) { border-color:var(--coral); }.process article:nth-child(3) { border-color:#3f8d70; }.process article:nth-child(4) { border-color:#d7a716; }.process .step { display:block; margin-bottom:2.2rem; color:var(--muted); font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.process h3 { margin:0 0 .55rem; font-family:var(--serif); font-size:1.55rem; font-weight:500; letter-spacing:-.03em; line-height:1.04; }.process p { margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.47; }
/* Direction selector */
#programs { background:var(--paper); }.programs { display:grid; grid-template-columns:minmax(180px,.34fr) minmax(0,1fr); gap:3.25rem; }.program-nav { align-self:start; display:flex; flex-direction:column; border-top:1px solid var(--ink); }.program-nav button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:1rem 0; border:0; border-bottom:1px solid rgba(22,38,77,.2); background:transparent; color:var(--ink-soft); font-family:var(--serif); font-size:1.42rem; text-align:left; cursor:pointer; transition:color .18s,padding-left .18s; }.program-nav button::after { content:"↗"; font-family:var(--sans); font-size:.8rem; opacity:0; transform:translateX(-.3rem); transition:opacity .18s,transform .18s; }.program-nav button:hover,.program-nav button[aria-selected="true"] { padding-left:.55rem; color:var(--coral-deep); }.program-nav button[aria-selected="true"]::after { opacity:1; transform:none; }.program-panel[hidden] { display:none; }.program-panel h3 { max-width:20ch; margin:-.35rem 0 1.35rem; font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.55rem); font-weight:500; letter-spacing:-.045em; line-height:1.04; }.topic-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--ink); }.topic-list li { display:grid; grid-template-columns:10.5rem minmax(0,1fr); gap:1.5rem; padding:1rem 0; border-bottom:1px solid rgba(22,38,77,.2); }.topic-list strong { color:var(--coral-deep); font-size:1.05rem; font-weight:600; }.topic-list span { color:var(--ink-soft); }
/* Teacher */
.letter { display:grid; grid-template-columns:minmax(280px,.75fr) minmax(0,1fr); gap:clamp(2.5rem,7vw,7rem); align-items:start; }.letter-photo { position:relative; margin:.8rem 0 0; padding:0 0 1.2rem 1.2rem; }.letter-photo::before { position:absolute; z-index:-1; top:-1.2rem; left:0; width:63%; height:58%; content:""; background:var(--coral); }.letter-photo img { width:100%; height:30rem; object-fit:cover; filter:saturate(.78) contrast(1.04); }.letter-photo figcaption { margin-top:.8rem; color:var(--muted); font-size:.82rem; line-height:1.38; }.letter-body .kicker { margin-top:.3rem; }.letter-body .block-title { max-width:14ch; }.letter-body > p:not(.kicker) { max-width:42rem; margin:1.25rem 0 0; color:var(--ink-soft); }.letter-facts { margin:1.75rem 0 0; padding:0; list-style:none; border-top:1px solid var(--ink); }.letter-facts li { position:relative; padding:.72rem 0 .72rem 1.3rem; border-bottom:1px solid var(--line); }.letter-facts li::before { position:absolute; top:1.28rem; left:.1rem; width:.45rem; height:.45rem; content:""; background:var(--sun); border-radius:50%; }
/* Testimonials */
#cases { padding-bottom:0; background:var(--ink); color:var(--white); } #cases .section-head p { color:#d8deea; }.cases { display:grid; grid-template-columns:1fr 1fr; gap:0; }.case { min-height:14.5rem; padding:2rem clamp(1.5rem,4vw,4rem) 2.1rem 0; border-top:1px solid rgba(255,255,255,.35); }.case:nth-child(even) { padding-right:0; padding-left:clamp(1.5rem,4vw,4rem); border-left:1px solid rgba(255,255,255,.22); }.case blockquote { margin:0; font-family:var(--serif); font-size:clamp(1.3rem,2vw,1.6rem); font-weight:400; letter-spacing:-.025em; line-height:1.3; }.case blockquote::before { display:block; height:.8rem; margin-bottom:.2rem; content:"“"; color:var(--sun); font-family:var(--serif); font-size:3.8rem; line-height:1; }.case footer { margin-top:1.2rem; color:#c8d0df; font-size:.86rem; line-height:1.35; }.mark { color:var(--sun); font-style:normal; }
/* Price and booking */
#price { background:var(--sun); }.prices { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }.price { min-height:16rem; padding:1.7rem 1.8rem 1.8rem 0; border-right:1px solid rgba(22,38,77,.35); }.price:not(:first-child) { padding-left:1.8rem; }.price:last-child { border:0; }.price small { display:block; color:var(--ink-soft); font-size:.73rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.price b { display:block; margin:1.1rem 0 .8rem; font-family:var(--serif); font-size:clamp(2.5rem,4vw,3.8rem); font-weight:500; letter-spacing:-.06em; line-height:.8; }.price b i { font-size:.43em; font-style:normal; }.price p { margin:0; color:var(--ink-soft); line-height:1.45; }.note { max-width:47rem; margin:1.3rem 0 0; color:var(--ink-soft); }
#book { position:relative; background:var(--mint); overflow:hidden; } #book::after { position:absolute; right:-9rem; bottom:-9rem; width:27rem; height:27rem; content:""; border:3.2rem solid rgba(255,255,255,.48); border-radius:50%; }.booking { position:relative; z-index:1; display:grid; grid-template-columns:minmax(260px,.73fr) minmax(380px,1fr); gap:4.5rem; }.booking .block-title { max-width:13ch; }.booking > div > p:not(.kicker) { max-width:31rem; margin:1.35rem 0; color:var(--ink-soft); }.contacts { margin-top:1.5rem; }.contacts p { margin:.25rem 0; }.contacts a { color:var(--ink); font-weight:600; text-decoration-color:var(--coral); text-decoration-thickness:2px; text-underline-offset:3px; }.hours { margin-top:1.1rem!important; color:var(--muted)!important; font-size:.92rem; }.form { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.3rem; padding:1.6rem; background:var(--white); box-shadow:10px 10px 0 rgba(22,38,77,.13); }.field { display:flex; flex-direction:column; gap:.3rem; }.field-wide { grid-column:1 / -1; }.field span { color:var(--ink-soft); font-size:.81rem; font-weight:600; }.field input,.field select,.field textarea { width:100%; min-height:2.6rem; padding:.48rem .15rem; border:0; border-bottom:1px solid var(--ink-soft); border-radius:0; background:transparent; outline:0; transition:border-color .15s,background .15s; }.field textarea { min-height:5.5rem; resize:vertical; }.field input:focus,.field select:focus,.field textarea:focus { border-bottom:2px solid var(--coral); background:#fff8df; }.form-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:.25rem; }.legal { flex:1 1 14rem; margin:0; color:var(--muted); font-size:.77rem; line-height:1.35; }.form-status { grid-column:1/-1; min-height:1.5rem; margin:0; color:var(--coral-deep); }.form-status.is-ok { color:#277453; }
.site-footer { padding:2rem 0; background:var(--ink); color:#dfe5ef; }.footer-row { display:flex; justify-content:space-between; gap:1rem; font-size:.88rem; }.reveal { opacity:0; transform:translateY(14px); animation:rise .65s cubic-bezier(.2,.75,.35,1) forwards; } @keyframes rise { to { opacity:1; transform:none; } } @media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
@media (max-width:1024px) { .wrap { width:min(100% - 2.5rem,var(--max)); }.nav { gap:1rem; }.hero-grid { gap:2rem; }.hero-figure img { height:28rem; }.process { grid-template-columns:1fr 1fr; }.process article { min-height:13rem; }.booking { gap:2.5rem; } }
@media (max-width:768px) { .wrap { width:min(100% - 2rem,var(--max)); }.site-header { backdrop-filter:none; }.header-row { min-height:4.5rem; }.brand-meta { display:none; }.nav { display:none; position:absolute; top:4.5rem; right:0; left:0; align-items:stretch; gap:0; padding:.7rem 1rem 1.25rem; background:var(--cream); border-bottom:1px solid var(--ink); }.nav.is-open { display:flex; }.nav a { padding:.65rem .15rem; }.nav-cta { margin-top:.55rem; text-align:center; }.burger { display:inline-flex; align-items:center; justify-content:center; }.section { padding:4.6rem 0; }.section-head { grid-template-columns:1fr; gap:1rem; margin-bottom:2.3rem; }.section-head h2,.block-title { max-width:15ch; }.hero { padding:2rem 0 4.5rem; }.hero::before { top:auto; right:-5rem; bottom:3rem; width:20rem; height:17rem; }.hero-grid { grid-template-columns:1fr; grid-template-areas:"copy" "actions" "photo"; gap:2rem; }.hero-copy { padding-top:0; }.hero h1 { max-width:11.6ch; font-size:clamp(3rem,12vw,4.4rem); }.hero h1 em { white-space:normal; }.lead { font-size:1.08rem; }.hero-figure { width:min(100% - 1rem,31rem); justify-self:start; }.hero-figure img { height:21rem; }.stats { gap:.9rem; margin-top:1.7rem; }.stat b { font-size:2rem; }.stat span { font-size:.77rem; }.scene { grid-template-columns:2.6rem 1fr; gap:.9rem; padding:1.3rem 0; }.scene:hover { padding-inline:0; background:transparent; }.scene-index { font-size:1.7rem; }.scene h3 { font-size:1.35rem; }.scene p { grid-column:2; font-size:.95rem; }.process { grid-template-columns:1fr; gap:.7rem; }.process article { min-height:auto; padding:1.15rem 1.2rem 1.4rem; }.process .step { margin-bottom:1.2rem; }.programs,.letter,.booking { grid-template-columns:1fr; gap:2.3rem; }.program-nav { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }.program-nav button { min-height:4rem; justify-content:center; padding:.5rem .25rem; border-right:1px solid rgba(22,38,77,.2); font-size:1.08rem; text-align:center; }.program-nav button:last-child { border-right:0; }.program-nav button::after { display:none; }.program-nav button:hover,.program-nav button[aria-selected="true"] { padding-left:.25rem; background:var(--sun); color:var(--ink); }.program-panel h3 { max-width:22ch; }.topic-list li { grid-template-columns:1fr; gap:.2rem; }.letter-photo { max-width:31rem; }.letter-photo img { height:22rem; }.cases,.prices { grid-template-columns:1fr; }.case,.case:nth-child(even) { min-height:auto; padding:1.5rem 0; border-left:0; }.price,.price:not(:first-child) { min-height:auto; padding:1.4rem 0; border-right:0; border-bottom:1px solid rgba(22,38,77,.35); }.price:last-child { border-bottom:0; }.price b { margin:.75rem 0 .65rem; }.form { grid-template-columns:1fr; padding:1.2rem; box-shadow:7px 7px 0 rgba(22,38,77,.13); } }
@media (max-width:420px) { .wrap { width:min(100% - 1.45rem,var(--max)); }.brand-mark { font-size:1.3rem; }.hero h1 { font-size:2.75rem; }.btn-row { display:grid; grid-template-columns:1fr; }.btn { width:100%; }.stats { grid-template-columns:1fr; gap:.85rem; }.stat { display:grid; grid-template-columns:4.35rem 1fr; align-items:center; gap:.35rem; }.stat span { margin:0; }.program-nav button { font-size:.94rem; }.form-actions { display:grid; }.footer-row { flex-direction:column; gap:.4rem; } }

/* Contemporary refresh: fewer editorial cues, clearer digital hierarchy. */
:root { --cream:#f7f9fc; --paper:#eef3f8; --ink:#112044; --ink-soft:#53617a; --muted:#778399; --line:#dce3ec; --coral:#315ff4; --coral-deep:#173cce; --sun:#d7f63d; --mint:#dff4e9; --sky:#e2f0fb; --white:#fff; --serif:"Manrope","Segoe UI",sans-serif; --sans:"Manrope","Segoe UI",sans-serif; }
.site-header { background:rgba(247,249,252,.92); border-bottom-color:var(--line); }
.brand::before { border-radius:50%; box-shadow:0 0 0 .28rem rgba(49,95,244,.12); transform:none; }
.brand-mark { font-size:1.15rem; font-weight:800; }.brand-meta { font-size:.68rem; font-weight:700; }.nav a { font-size:.85rem; font-weight:700; }.nav-cta,.btn { border-radius:.55rem; }.nav-cta { padding:.72rem 1rem; box-shadow:none; }.btn { font-size:.9rem; font-weight:800; }
.kicker { font-size:.71rem; font-weight:800; }.section-head h2,.block-title { max-width:14ch; font-size:clamp(2rem,3.4vw,3.15rem); font-weight:800; letter-spacing:-.065em; line-height:1.08; }.section-head p { font-size:1rem; }
.hero { padding:4.3rem 0 6.4rem; }.hero::before { top:4.8rem; right:max(0px,calc((100vw - var(--max))/2 - 2rem)); width:min(38vw,500px); height:31rem; border-radius:1.5rem; transform:none; }.hero-figure { padding:.75rem; background:var(--white); border-radius:1.3rem; box-shadow:0 1.25rem 3.5rem rgba(17,32,68,.13); }.hero-figure::after { right:-1.5rem; bottom:-1.5rem; width:38%; height:38%; border-radius:.9rem; }.hero-figure img { height:31.5rem; border-radius:.8rem; }.hero-caption { margin:.9rem .25rem 0; font-size:.78rem; }.hero h1 { font-size:clamp(3rem,5.1vw,4.8rem); font-weight:800; letter-spacing:-.075em; line-height:1.02; }.hero h1 em { font-style:normal; font-weight:800; white-space:normal; }.hero h1 em::after { display:none; }.lead { font-size:1.08rem; line-height:1.62; }.stat b { font-weight:800; }
#scenes .section-head h2,.scene h3,.case blockquote,.program-panel h3,.price b { font-weight:800; font-style:normal; }.scene-index { font-style:normal; font-weight:800; }
#method .process article { border:1px solid rgba(17,32,68,.08); border-radius:1rem; }.process article { border-top:1px solid rgba(17,32,68,.08); }.process article::before { display:block; width:2.2rem; height:.25rem; margin-bottom:2rem; content:""; background:var(--ink); border-radius:1rem; }.process article:nth-child(2)::before { background:var(--coral); }.process article:nth-child(3)::before { background:#2ca878; }.process article:nth-child(4)::before { background:#c8a000; }.process .step { margin-bottom:.7rem; font-size:.72rem; font-weight:800; }.process h3 { font-size:1.23rem; font-weight:800; line-height:1.15; }.process p { font-size:.91rem; line-height:1.55; }
.program-nav button { font-weight:800; }.program-panel h3 { font-weight:800; }.letter-photo { padding:.75rem; background:var(--white); border-radius:1rem; box-shadow:0 1rem 2.8rem rgba(17,32,68,.1); }.letter-photo::before { display:none; }.letter-photo img { border-radius:.65rem; }.letter-facts li::before { background:var(--coral); }.form { border-radius:1rem; box-shadow:0 1rem 2.8rem rgba(17,32,68,.12); }.field input,.field select,.field textarea { border:1px solid var(--line); border-radius:.45rem; padding:.6rem .7rem; background:#fbfcff; }.field input:focus,.field select:focus,.field textarea:focus { border:2px solid var(--coral); background:#fff; }
@media (max-width:768px) { .hero { padding:2.8rem 0 4.8rem; }.hero::before { top:auto; bottom:3rem; border-radius:1.25rem; }.hero-figure { padding:.55rem; border-radius:1rem; }.hero-figure img { height:21rem; }.process article::before { margin-bottom:1.2rem; } }
@media (max-width:768px) { .nav.is-open { display:flex; flex-direction:column; align-items:stretch; } }

/* Evidence gallery and credentials */
.evidence-gallery { background:#f0f5fa; }
.gallery-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:1.2rem; align-items:stretch; }
.gallery-grid figure { margin:0; }
.gallery-main { display:flex; flex-direction:column; min-height:100%; padding:.75rem; background:var(--white); border-radius:1.05rem; box-shadow:0 .8rem 2.2rem rgba(17,32,68,.08); }
.gallery-main img { width:100%; height:24rem; border-radius:.7rem; object-fit:cover; }
.gallery-grid figcaption { display:flex; gap:.7rem; align-items:flex-start; padding:.85rem .2rem .15rem; color:var(--ink-soft); font-size:.84rem; line-height:1.4; }
.gallery-grid figcaption span { flex:0 0 auto; color:var(--coral); font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.gallery-side { display:grid; grid-template-rows:auto 1fr; gap:1.2rem; }
.gallery-side figure { padding:.65rem; background:var(--white); border-radius:1.05rem; box-shadow:0 .8rem 2.2rem rgba(17,32,68,.08); }
.gallery-side img { width:100%; height:15rem; border-radius:.65rem; object-fit:cover; }
.micro-proof { display:grid; grid-template-columns:auto 1fr; align-content:center; gap:.25rem 1rem; padding:1.3rem; background:var(--ink); border-radius:1.05rem; color:var(--white); }
.micro-proof b { color:var(--sun); font-family:var(--serif); font-size:2rem; letter-spacing:-.06em; line-height:1; }
.micro-proof span { align-self:center; color:#d8deea; font-size:.84rem; line-height:1.3; }
.credentials { background:var(--white); }
.credentials-grid { display:grid; grid-template-columns:minmax(280px,.55fr) minmax(0,1fr); gap:clamp(2rem,7vw,7rem); align-items:center; }
.credentials-photo { margin:0; padding:.7rem; background:#f3f7fb; border:1px solid var(--line); border-radius:1.1rem; transform:rotate(-1deg); }
.credentials-photo img { width:100%; height:29rem; border-radius:.7rem; object-fit:cover; }
.credentials-photo figcaption { padding:.6rem .25rem .1rem; color:var(--muted); font-size:.77rem; line-height:1.35; }
.credentials-copy > p:not(.kicker) { max-width:40rem; margin:1.2rem 0 0; color:var(--ink-soft); }
.credential-list { margin-top:1.6rem; border-top:1px solid var(--ink); }
.credential-list details { border-bottom:1px solid var(--line); }
.credential-list summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; cursor:pointer; list-style:none; font-weight:800; }
.credential-list summary::-webkit-details-marker { display:none; }
.credential-list summary::after { content:"+"; color:var(--coral); font-size:1.3rem; font-weight:500; }
.credential-list details[open] summary::after { content:"–"; }
.credential-list details p { max-width:38rem; margin:0 0 1rem; color:var(--ink-soft); font-size:.94rem; }
.direction-hub { background:var(--white); }
.direction-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.direction-card { position:relative; display:grid; grid-template-columns:2.2rem 1fr auto; grid-template-rows:auto auto; column-gap:.8rem; padding:1.25rem 1.3rem; background:var(--paper); border:1px solid var(--line); border-radius:.9rem; text-decoration:none; transition:transform .2s,background .2s,border-color .2s; }
.direction-card:hover,.direction-card:focus-visible { background:var(--mint); border-color:var(--coral); transform:translateY(-3px); }
.direction-card--wide { background:var(--ink); color:var(--white); }.direction-card--wide:hover,.direction-card--wide:focus-visible { background:#1d3268; }
.direction-number { grid-row:1 / span 2; color:var(--coral); font-size:.72rem; font-weight:800; letter-spacing:.08em; }.direction-card--wide .direction-number { color:var(--sun); }
.direction-card strong { font-size:1.08rem; font-weight:800; }.direction-card span:not(.direction-number) { grid-column:2; margin-top:.25rem; color:var(--ink-soft); font-size:.82rem; line-height:1.35; }.direction-card--wide span:not(.direction-number) { color:#d8deea; }.direction-card i { grid-column:3; grid-row:1 / span 2; align-self:center; color:var(--coral); font-size:1.3rem; font-style:normal; }.direction-card--wide i { color:var(--sun); }
@media (max-width:768px) { .direction-grid { grid-template-columns:1fr; }.direction-card--wide { order:-1; } }
@media (max-width:768px) { .gallery-grid,.credentials-grid { grid-template-columns:1fr; gap:1rem; }.gallery-main img { height:16rem; }.gallery-side img { height:13rem; }.credentials-photo { max-width:30rem; transform:none; }.credentials-photo img { height:22rem; }.micro-proof { min-height:7rem; } }
.commercial-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem; padding-top:1.2rem; border-top:1px solid rgba(17,32,68,.25); }.commercial-strip div { display:flex; flex-direction:column; gap:.25rem; }.commercial-strip strong { font-size:.9rem; font-weight:800; }.commercial-strip span { color:var(--ink-soft); font-size:.78rem; line-height:1.3; }
@media (max-width:768px) { .commercial-strip { grid-template-columns:1fr 1fr; gap:1.2rem .8rem; } }
/* Compact vertical rhythm: keep sections readable without oversized gaps. */
.section { padding:4.6rem 0; }
.section-head { margin-bottom:2.2rem; }
.hero { padding-top:3rem; padding-bottom:4.6rem; }
@media (max-width:768px) { .section { padding:3.2rem 0; }.section-head { margin-bottom:1.7rem; }.hero { padding-top:1.8rem; padding-bottom:3.4rem; } }

/* Calm editorial palette: reduce saturation and keep one restrained accent. */
:root {
  --cream:#f5f4f0;
  --paper:#ebeae6;
  --ink:#202a37;
  --ink-soft:#526071;
  --muted:#7b8490;
  --line:#d7dce1;
  --coral:#b9685b;
  --coral-deep:#8f4f48;
  --sun:#d8c48a;
  --mint:#d7e2df;
  --sky:#e5ebf0;
  --white:#fffefa;
}
.hero-figure img { filter:saturate(.72) contrast(1.02); }
#method .process article:nth-child(3) { border-color:#718b82; }
#method .process article:nth-child(4) { border-color:#b19a58; }

/* Pricing: clear hierarchy, calmer card contrast and an obvious recommended format. */
#price { background:var(--paper); }
#price .section-head { align-items:end; }
.prices { gap:1rem; border:0; }
.price { min-height:18rem; padding:1.5rem; background:var(--white); border:1px solid var(--line); border-radius:1rem; box-shadow:0  .7rem 1.8rem rgba(32,42,55,.06); }
.price:not(:first-child) { padding-left:1.5rem; }
.price:last-child { border:1px solid var(--line); }
.price.is-featured { background:var(--ink); color:var(--white); border-color:var(--ink); transform:translateY(-.5rem); box-shadow:0 1rem 2.2rem rgba(32,42,55,.16); }
.price.is-featured small,.price.is-featured p { color:#d8dee7; }
.price.is-featured b { color:#f2dfad; }
.price small { letter-spacing:.08em; }
.price b { margin:1.5rem 0 .9rem; }
.price p { max-width:22rem; }
@media (max-width:768px) { .prices { gap:.75rem; }.price,.price:not(:first-child) { padding:1.25rem; }.price.is-featured { transform:none; } }
html { scroll-padding-top:6.5rem; }
.fit-check { background:var(--white); }
.fit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.fit-item { display:flex; flex-direction:column; gap:.45rem; padding:1.35rem 1.5rem; background:var(--cream); border:1px solid var(--line); border-radius:.8rem; }
.fit-item strong { font-family:var(--serif); font-size:1.35rem; font-weight:500; line-height:1.1; }
.fit-item span { color:var(--ink-soft); font-size:.94rem; line-height:1.45; }
@media (max-width:768px) { .fit-grid { grid-template-columns:1fr; } }
.progress { background:var(--sky); }
.progress-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.progress-grid article { padding:1.5rem; background:var(--white); border-radius:.8rem; }
.progress-grid b { color:var(--coral-deep); font-size:.8rem; letter-spacing:.1em; }
.progress-grid h3 { margin:.9rem 0 .5rem; font-family:var(--serif); font-size:1.45rem; line-height:1.1; }
.progress-grid p { margin:0; color:var(--ink-soft); font-size:.94rem; }
.format-guide { background:var(--paper); }
.format-box { display:flex; align-items:end; gap:1rem; max-width:54rem; padding:1.25rem; background:var(--white); border:1px solid var(--line); border-radius:.8rem; }
.format-box label { display:flex; flex:1; flex-direction:column; gap:.4rem; color:var(--ink-soft); font-size:.85rem; font-weight:600; }
.format-box select { min-height:3.1rem; padding:.6rem .8rem; border:1px solid var(--line); background:var(--cream); }
@media (max-width:768px) { .progress-grid { grid-template-columns:1fr; }.format-box { flex-direction:column; align-items:stretch; }.format-box .btn { width:100%; } }
.parent-faq { background:var(--white); }
.parent-faq-list { max-width:58rem; border-top:1px solid var(--line); }
.parent-faq-list details { padding:1rem 0; border-bottom:1px solid var(--line); }
.parent-faq-list summary { cursor:pointer; list-style:none; font-family:var(--serif); font-size:1.3rem; font-weight:500; }
.parent-faq-list summary::-webkit-details-marker { display:none; }
.parent-faq-list summary::after { float:right; content:'+'; color:var(--coral-deep); font-family:var(--sans); font-size:1.4rem; }
.parent-faq-list details[open] summary::after { content:'−'; }
.parent-faq-list details p { max-width:48rem; margin:.65rem 2rem 0 0; color:var(--ink-soft); }
.consent { display:flex; grid-column:1/-1; align-items:flex-start; gap:.6rem; color:var(--ink-soft); font-size:.8rem; line-height:1.45; }
.consent input { width:1rem; height:1rem; flex:0 0 auto; margin-top:.18rem; accent-color:var(--coral-deep); }
.consent a { color:var(--ink); text-underline-offset:.16em; }
.field-error { display:block; margin-top:.35rem; color:#9d3f3a; font-size:.78rem; line-height:1.35; }
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.consent input[aria-invalid="true"] { border-color:#9d3f3a; outline:2px solid rgba(157,63,58,.18); }
.nav-dropdown { position:relative; }.nav-dropdown summary { display:flex; align-items:center; gap:.45rem; color:var(--ink-soft); cursor:pointer; font-size:.94rem; font-weight:600; list-style:none; }.nav-dropdown summary::-webkit-details-marker { display:none; }.nav-dropdown summary::after { width:.42rem; height:.42rem; content:""; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s ease; }.nav-dropdown[open] summary::after { transform:rotate(225deg) translate(-2px,-1px); }.nav-dropdown-menu { position:absolute; top:calc(100% + .8rem); left:-1rem; display:grid; width:17rem; gap:.15rem; padding:.7rem; background:var(--white); border:1px solid var(--line); border-radius:.7rem; box-shadow:0 .8rem 2rem rgba(32,42,55,.12); }.nav-dropdown-menu a { padding:.55rem .65rem; border-radius:.35rem; text-decoration:none; }.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible { background:var(--paper); }
.quick-contact { padding:3rem 0; background:var(--ink); color:var(--white); }.quick-contact-inner { display:grid; grid-template-columns:.9fr 1.1fr; gap:2.5rem; align-items:center; }.quick-contact h2 { margin:.4rem 0 .6rem; font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); }.quick-contact p:not(.kicker) { max-width:34rem; margin:0; color:#d8dee7; }.quick-form { display:grid; grid-template-columns:1fr 1fr auto; gap:.75rem; align-items:end; }.quick-form label:not(.consent) { display:grid; gap:.3rem; color:#d8dee7; font-size:.8rem; }.quick-form input { min-height:3rem; padding:.55rem .7rem; border:1px solid #9da9ba; background:var(--white); }.quick-form .consent,.quick-form .form-status { grid-column:1/-1; color:#d8dee7; }.quick-form .btn { min-height:3rem; background:var(--sun); color:var(--ink); border-color:var(--sun); }
/* Компактный ритм: смысловые блоки считываются за один-два экрана, без пустых полотен. */
@media (min-width:769px) { .section { padding:3.7rem 0; }.section-head { margin-bottom:1.8rem; }.hero { padding-bottom:3.8rem; }.process article,.price { min-height:auto; }.case { min-height:0; padding-top:1.45rem; padding-bottom:1.55rem; } }
/* Кавычка — отдельная строка, поэтому не перекрывает начало отзыва. */
.case blockquote::before { height:auto; margin:0 0 .35rem; font-size:2.5rem; line-height:.7; }
.related-directions { background:var(--cream); }.related-directions .section-head { margin-bottom:1.35rem; }.related-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }.related-list .direction-card { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:.18rem .8rem; min-height:0; padding:1rem 1.1rem; background:var(--white); border-radius:.65rem; }.related-list .direction-card strong { grid-column:1; font-size:1rem; line-height:1.18; }.related-list .direction-card span { grid-column:1; margin:0; font-size:.78rem; }.related-list .direction-card i { grid-column:2; grid-row:1 / span 2; font-size:1.1rem; }.related-list .direction-card:hover,.related-list .direction-card:focus-visible { transform:translateY(-2px); background:var(--sky); }
@media (max-width:900px) { .related-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:768px) { .nav-dropdown-menu { position:static; width:auto; margin:.5rem 0; box-shadow:none; }.quick-contact-inner,.quick-form,.related-list { grid-template-columns:1fr; }.quick-contact { padding:2.5rem 0; }.quick-form .consent,.quick-form .form-status { grid-column:auto; } }
.footer-row { display:grid; grid-template-columns:1fr auto; gap:1.25rem 2rem; }
.footer-brand { display:flex; flex-direction:column; gap:.2rem; }
.footer-brand strong { color:var(--white); font-family:var(--serif); font-size:1.45rem; font-weight:500; }
.footer-brand span,.footer-note { color:#b9c3d1; }
.footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem 1.1rem; }
.footer-links a { color:#dfe5ef; text-underline-offset:.2em; }
.footer-note { grid-column:1/-1; max-width:58rem; margin:0; font-size:.78rem; line-height:1.45; }
@media (max-width:768px) { .footer-row { grid-template-columns:1fr; }.footer-links { justify-content:flex-start; }.footer-note { grid-column:auto; } }
