*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    :root {
      --coral:      #E07055;
      --coral-dark: #C05840;
      --coral-pale: #FBEEE9;
      --teal:       #2D6B5E;
      --teal-light: #3D8B7A;
      --teal-pale:  #EAF2F0;
      --cream:      #FBF8F4;
      --cream-dark: #F2EBE0;
      --sand:       #C9A87C;
      --text:       #221A16;
      --text-mid:   #6B5548;
      --text-soft:  #9B8278;
      --shadow:     0 4px 30px rgba(34,26,22,.09);
    }
    body { font-family: "Nunito Sans", sans-serif; background: var(--cream); color: var(--text); line-height: 1.6; overflow-x: hidden; }
    h1,h2,h3 { font-family: "Playfair Display", Georgia, serif; line-height: 1.15; }
    .container { max-width: 1120px; margin: 0 auto; padding: 0 28px; }
    .label { font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--coral); margin-bottom:.75rem; }

    @keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
    @keyframes blob { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(20px,-20px) scale(1.04)} 66%{transform:translate(-15px,15px) scale(.97)} }
    .reveal { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s ease; }
    .reveal.in { opacity:1; transform:none; }

    /* NAV */
    nav { position:fixed; top:0; left:0; right:0; z-index:300; display:flex; align-items:center; justify-content:space-between; padding:1.1rem 5vw; transition:background .35s,box-shadow .35s; }
    nav.stuck { background:rgba(251,248,244,.96); backdrop-filter:blur(16px); box-shadow:0 1px 20px rgba(0,0,0,.07); }
    .nav-brand { font-family:"Playfair Display",serif; font-style:italic; font-size:1.2rem; color:var(--teal); text-decoration:none; }
    .nav-links { display:flex; gap:2rem; list-style:none; }
    .nav-links a { font-size:.85rem; font-weight:500; color:var(--text-mid); text-decoration:none; transition:color .2s; }
    .nav-links a:hover { color:var(--coral); }
    .nav-btn { background:var(--coral); color:#fff; padding:.55rem 1.5rem; border-radius:50px; font-size:.85rem; font-weight:700; text-decoration:none; transition:background .2s,transform .2s; box-shadow:0 4px 16px rgba(224,112,85,.35); }
    .nav-btn:hover { background:var(--coral-dark); transform:translateY(-1px); }

    /* HERO */
    #hero { min-height:100vh; display:grid; grid-template-columns:1.1fr 0.9fr; align-items:center; gap:4rem; padding:8rem 5vw 5rem; position:relative; overflow:hidden; }
    .hero-glow { position:absolute; width:65vw; height:65vw; max-width:700px; right:-15vw; top:-15vw; background:radial-gradient(ellipse at 45% 45%,#F2C4B2 0%,#EDD9CD 40%,transparent 70%); border-radius:50%; animation:blob 12s ease-in-out infinite; z-index:0; }
    .hero-glow2 { position:absolute; width:40vw; height:40vw; max-width:440px; left:-10vw; bottom:-10vw; background:radial-gradient(ellipse,rgba(45,107,94,.10) 0%,transparent 65%); border-radius:50%; animation:blob 15s ease-in-out infinite reverse; z-index:0; }
    .hero-text { position:relative; z-index:2; }
    .hero-eyebrow { animation:fadeUp .6s ease forwards .15s; opacity:0; } 
    .hero-spec { font-size:1.18rem; font-weight:600; color:var(--teal); line-height:1.45; max-width:520px; margin:0 0 1.15rem; animation:fadeUp .65s ease forwards .25s; opacity:0; }
    .hero-h1 { font-size:clamp(2.8rem,4.5vw,4.2rem); margin-bottom:1.25rem; animation:fadeUp .7s ease forwards .35s; opacity:0; }
    .hero-h1 em { font-style:italic; color:var(--teal); }
    .hero-sub { font-size:1.05rem; font-weight:300; color:var(--text-mid); line-height:1.8; max-width:480px; margin-bottom:2.2rem; animation:fadeUp .7s ease forwards .55s; opacity:0; }
    .hero-cta { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; animation:fadeUp .7s ease forwards .75s; opacity:0; }
    .btn-main { background:var(--coral); color:#fff; padding:.9rem 2.2rem; border-radius:50px; font-size:.95rem; font-weight:700; text-decoration:none; box-shadow:0 8px 28px rgba(224,112,85,.42); transition:all .25s; display:inline-flex; align-items:center; gap:.5rem; }
    .btn-main:hover { background:var(--coral-dark); transform:translateY(-2px); box-shadow:0 12px 36px rgba(224,112,85,.5); }
    .btn-link { font-size:.9rem; font-weight:500; color:var(--text-mid); text-decoration:none; display:flex; align-items:center; gap:.35rem; transition:color .2s; }
    .btn-link:hover { color:var(--coral); }
    .hero-social-proof { display:flex; align-items:center; gap:.75rem; margin-top:2.2rem; padding:1rem 1.5rem; background:#fff; border-radius:16px; box-shadow:var(--shadow); width:fit-content; animation:fadeUp .7s ease forwards .95s; opacity:0; }
    .sp-avatars { display:flex; }
    .sp-avatars span { width:34px; height:34px; border-radius:50%; border:2px solid #fff; display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:700; color:#fff; margin-left:-8px; }
    .sp-avatars span:first-child { margin-left:0; }
    .sp-text { font-size:.8rem; }
    .sp-text strong { display:block; color:var(--text); }
    .sp-text span { color:var(--text-soft); }
    .hero-visual { position:relative; z-index:2; animation:fadeUp .8s ease forwards .4s; opacity:0; }
    .photo-blob { border-radius:44% 56% 62% 38% / 38% 44% 56% 62%; overflow:hidden; aspect-ratio:3/4; background:var(--cream-dark); box-shadow:0 16px 60px rgba(0,0,0,.12); }
    .photo-blob img { width:100%; height:100%; object-fit:cover; }
    .float-badge { position:absolute; bottom:1.5rem; right:-1.2rem; background:#fff; border-radius:14px; padding:.9rem 1.25rem; box-shadow:0 8px 32px rgba(0,0,0,.1); display:flex; align-items:center; gap:.6rem; }
    .badge-dot { width:9px; height:9px; border-radius:50%; background:#4CAF50; }
    .badge-txt { font-size:.78rem; font-weight:600; }
    .float-tag { position:absolute; top:1.2rem; left:-1.2rem; background:var(--teal); color:#fff; padding:.55rem 1rem; border-radius:10px; font-size:.75rem; font-weight:700; box-shadow:0 4px 16px rgba(45,107,94,.35); }

    /* ABOUT */
    #about { padding:7rem 5vw; background:var(--cream-dark); }
    .about-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:5rem; align-items:center; }
    .about-photo { border-radius:28px; overflow:hidden; aspect-ratio:4/5; box-shadow:var(--shadow); background:var(--cream); }
    .about-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; }
    .about-text h2 { font-size:clamp(2rem,3vw,2.8rem); margin-bottom:1.25rem; }
    .about-text h2 em { font-style:italic; color:var(--coral); }
    .about-text p { color:var(--text-mid); line-height:1.85; font-weight:300; margin-bottom:1rem; }
    .about-text p strong { font-weight:600; color:var(--text); }
    .about-highlight { background:var(--coral-pale); border-left:3px solid var(--coral); border-radius:0 12px 12px 0; padding:1rem 1.25rem; margin:1.25rem 0; font-size:.9rem; color:var(--text-mid); }
    .tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; }
    .tag { background:#fff; border:1.5px solid rgba(201,168,124,.4); color:var(--text-mid); padding:.4rem .95rem; border-radius:50px; font-size:.78rem; font-weight:500; }
    .about-result { margin:clamp(2.5rem,5vw,4rem) auto 0; max-width:760px; border-radius:clamp(16px,2vw,24px); overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(201,168,124,.25); background:#fff; }
    .about-result img { display:block; width:100%; height:auto; }

    /* APPROACH */
    #approach { padding:7rem 5vw; }
    .section-head { text-align:center; margin-bottom:4rem; }
    .section-head h2 { font-size:clamp(1.9rem,3vw,2.8rem); margin-bottom:.75rem; }
    .section-head p { color:var(--text-mid); font-size:1rem; max-width:500px; margin:0 auto; font-weight:300; }
    .approach-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
    .a-card { background:#fff; border-radius:24px; padding:2.5rem 2rem; box-shadow:var(--shadow); border-top:5px solid var(--coral); transition:transform .3s,box-shadow .3s; }
    .a-card.t { border-top-color:var(--teal); }
    .a-card.s { border-top-color:var(--sand); }
    .a-card:hover { transform:translateY(-6px); box-shadow:0 16px 50px rgba(0,0,0,.1); }
    .a-icon { font-size:2rem; margin-bottom:1.25rem; width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; }
    .a-card:not(.t):not(.s) .a-icon { background:var(--coral-pale); }
    .a-card.t .a-icon { background:var(--teal-pale); }
    .a-card.s .a-icon { background:#FBF3E9; }
    .a-card h3 { font-size:1.3rem; margin-bottom:.75rem; }
    .a-card p { color:var(--text-mid); font-size:.875rem; line-height:1.75; font-weight:300; }
    .bad-disclaimer-text { font-size:.68rem; color:var(--text-soft); font-style:italic; margin-top:.5rem; }

    /* PROGRAMS */
    #programs { padding:7rem 5vw; }

    /* RESULTS */
    #results { padding:7rem 5vw; background:var(--teal); position:relative; overflow:hidden; }
    #results::after { content:""; position:absolute; width:700px; height:700px; right:-250px; bottom:-250px; background:radial-gradient(circle,rgba(255,255,255,.06) 0%,transparent 65%); border-radius:50%; }
    #results .label { color:var(--sand); }
    #results h2 { font-size:clamp(2rem,3vw,2.8rem); color:#fff; margin-bottom:.75rem; }
    .results-intro { color:rgba(255,255,255,.65); font-size:1rem; max-width:520px; font-weight:300; margin-bottom:3.5rem; }
    .results-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
    .r-card { background:rgba(255,255,255,.1); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:2rem 1.5rem; transition:background .25s; }
    .r-card:hover { background:rgba(255,255,255,.16); }
    .r-icon { font-size:2rem; margin-bottom:1rem; }
    .r-card h3 { font-family:"Playfair Display",serif; font-size:1.1rem; color:#fff; margin-bottom:.5rem; }
    .r-card p { font-size:.83rem; color:rgba(255,255,255,.65); line-height:1.65; font-weight:300; }

    /* MARATHON */
    #marathon { padding:7rem 5vw; background:var(--cream-dark); }
    .marathon-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
    .marathon-text h2 { font-size:clamp(2rem,3vw,2.8rem); margin-bottom:1.25rem; }
    .marathon-text h2 em { font-style:italic; color:var(--teal); }
    .marathon-text p { color:var(--text-mid); line-height:1.85; font-weight:300; margin-bottom:1.5rem; }
    .steps { list-style:none; }
    .steps li { display:flex; align-items:flex-start; gap:1rem; padding:1rem 0; border-bottom:1px solid rgba(201,168,124,.25); }
    .step-n { min-width:30px; height:30px; border-radius:50%; background:var(--coral); color:#fff; font-size:.78rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .step-body strong { display:block; font-weight:600; font-size:.92rem; margin-bottom:.15rem; }
    .step-body span { font-size:.83rem; color:var(--text-mid); }
    .marathon-note { margin-top:1.25rem; background:var(--teal-pale); border-radius:12px; padding:.9rem 1.1rem; font-size:.83rem; color:var(--teal); border-left:3px solid var(--teal); }
    .pkg-card { background:#fff; border-radius:28px; padding:3rem 2.5rem; box-shadow:0 10px 50px rgba(0,0,0,.1); position:relative; overflow:hidden; text-align:center; }
    .pkg-card::before { content:""; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg,var(--coral),var(--teal)); }
    .pkg-badge { display:inline-block; background:var(--coral-pale); color:var(--coral); padding:.4rem 1.1rem; border-radius:50px; font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.5rem; }
    .pkg-card h3 { font-size:1.7rem; margin-bottom:.5rem; }
    .pkg-card > p { color:var(--text-mid); font-size:.9rem; margin-bottom:2rem; }
    .pkg-list { list-style:none; text-align:left; margin-bottom:2.5rem; }
    .pkg-list li { display:flex; align-items:center; gap:.75rem; padding:.65rem 0; border-bottom:1px solid var(--cream-dark); font-size:.875rem; color:var(--text-mid); }
    .check { color:var(--teal); font-size:.95rem; font-weight:700; }
    .pkg-group-note { background:var(--teal-pale); border-radius:10px; padding:.75rem 1rem; font-size:.8rem; color:var(--teal); margin-bottom:1.5rem; text-align:left; }
    .pkg-disclaimer { font-size:.65rem; color:var(--text-soft); margin-top:1rem; text-align:center; }

    /* TEAM */
    #team { padding:7rem 5vw; background:#fff; }
    .team-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
    .team-text h2 { font-size:clamp(2rem,3vw,2.8rem); margin-bottom:1.25rem; }
    .team-text h2 em { font-style:italic; color:var(--teal); }
    .team-text p { color:var(--text-mid); line-height:1.85; font-weight:300; margin-bottom:1rem; }
    .team-perks { list-style:none; margin:1.5rem 0; }
    .team-perks li { display:flex; align-items:flex-start; gap:.75rem; padding:.7rem 0; border-bottom:1px solid var(--cream-dark); font-size:.9rem; color:var(--text-mid); }
    .team-perks li span:first-child { font-size:1.1rem; flex-shrink:0; }
    .team-card { background:linear-gradient(145deg,var(--teal) 0%,var(--teal-light) 100%); border-radius:28px; padding:3rem 2.5rem; color:#fff; text-align:center; box-shadow:0 10px 50px rgba(45,107,94,.25); }
    .team-card .tc-icon { font-size:3rem; margin-bottom:1.25rem; }
    .team-card h3 { font-size:1.6rem; color:#fff; margin-bottom:.75rem; }
    .team-card p { font-size:.9rem; color:rgba(255,255,255,.75); line-height:1.75; margin-bottom:2rem; }
    .team-card .free-badge { display:inline-block; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); border-radius:50px; padding:.5rem 1.25rem; font-size:.8rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.5rem; }
    .btn-team { display:inline-block; background:#fff; color:var(--teal); padding:.9rem 2rem; border-radius:50px; font-size:.95rem; font-weight:700; text-decoration:none; transition:all .25s; box-shadow:0 6px 24px rgba(0,0,0,.12); }
    .btn-team:hover { transform:translateY(-2px); box-shadow:0 10px 32px rgba(0,0,0,.18); }

    /* TESTIMONIALS */
    .testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3.5rem; }
    .t-card { background:#fff; border-radius:22px; padding:2rem; box-shadow:var(--shadow); transition:transform .3s; display:flex; flex-direction:column; align-items:flex-start; }
    .t-card:hover { transform:translateY(-4px); }
    .t-card.highlight { border:2px solid var(--coral); }
    .stars { color:#F5A623; font-size:1rem; letter-spacing:.1em; margin-bottom:1rem; }
    .t-card .stars { display:flex; margin-bottom:.85rem; }
    .t-text { color:var(--text-mid); font-size:.875rem; line-height:1.8; font-weight:300; margin-bottom:1.5rem; flex:1 1 auto; }
    .t-result { display:inline-block; background:var(--teal-pale); color:var(--teal); padding:.3rem .8rem; border-radius:50px; font-size:.75rem; font-weight:700; margin-bottom:1rem; }
    .t-author { display:flex; align-items:center; gap:.75rem; margin-top:auto; }
    .ava { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,var(--coral-pale),var(--teal-pale)); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.95rem; color:var(--teal); flex-shrink:0; }
    .ava-name { font-size:.83rem; font-weight:700; }
    .ava-sub { font-size:.73rem; color:var(--text-soft); }

    /* CONTACT */
    #contact { padding:7rem 5vw; background:var(--cream); }
    .contact-wrap { max-width:580px; margin:0 auto; text-align:center; }
    .contact-wrap h2 { font-size:clamp(2rem,3vw,2.8rem); margin-bottom:1rem; }
    .contact-wrap .sub { color:var(--text-mid); font-weight:300; line-height:1.8; margin-bottom:2.5rem; }
    .form { display:flex; flex-direction:column; gap:1rem; text-align:left; }
    .form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
    .fgroup { display:flex; flex-direction:column; gap:.35rem; }
    .fgroup label { font-size:.75rem; font-weight:700; color:var(--text-mid); letter-spacing:.06em; text-transform:uppercase; }
    .fgroup input,.fgroup textarea,.fgroup select { background:#fff; border:1.5px solid rgba(201,168,124,.35); border-radius:12px; padding:.85rem 1rem; font-family:"Nunito Sans",sans-serif; font-size:.9rem; color:var(--text); outline:none; resize:none; transition:border-color .2s,box-shadow .2s; }
    .fgroup input:focus,.fgroup textarea:focus,.fgroup select:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(224,112,85,.14); }
    .consent-row { display:flex; align-items:flex-start; gap:.75rem; font-size:.78rem; color:var(--text-soft); line-height:1.5; }
    .consent-row input[type=checkbox] { margin-top:2px; accent-color:var(--coral); width:16px; height:16px; flex-shrink:0; }
    .consent-row a { color:var(--coral); }
    .btn-send { background:var(--coral); color:#fff; border:none; cursor:pointer; padding:1rem; border-radius:12px; font-family:"Nunito Sans",sans-serif; font-size:1rem; font-weight:700; transition:all .25s; box-shadow:0 6px 24px rgba(224,112,85,.38); }
    .btn-send:hover { background:var(--coral-dark); transform:translateY(-2px); }
    .btn-send:disabled { background:#ccc; cursor:not-allowed; transform:none; box-shadow:none; }
    .socials { display:flex; justify-content:center; gap:.75rem; margin-top:2rem; flex-wrap:wrap; }
    .soc-btn { display:flex; align-items:center; gap:.45rem; background:#fff; padding:.65rem 1.25rem; border-radius:50px; text-decoration:none; color:var(--text-mid); font-size:.83rem; font-weight:600; box-shadow:var(--shadow); transition:all .2s; }
    .soc-btn:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.1); }

    /* FOOTER */
    footer { background:var(--text); color:rgba(255,255,255,.4); text-align:center; padding:2rem 1rem; font-size:.78rem; line-height:1.8; }
    .footer-content { max-width:700px; margin:0 auto; }
    .footer-main { margin-bottom:1rem; }
    .footer-ip { font-size:.7rem; color:rgba(255,255,255,.3); margin-top:.25rem; }
    .footer-disclaimer { font-size:.65rem; color:rgba(255,255,255,.35); margin-top:.5rem; line-height:1.6; }
    .footer-links { margin-top:1rem; }
    .footer-links a { color:rgba(255,255,255,.5); text-decoration:none; margin:0 .3rem; }
    .footer-sep { color:rgba(255,255,255,.2); }
    footer a { color:var(--coral); text-decoration:none; }

    /* RESPONSIVE */
    @media(max-width:920px){
      #hero{grid-template-columns:1fr;padding-top:6.5rem;text-align:center;gap:2.5rem}
      .hero-sub,.hero-spec,.hero-bad-disclaimer,.hero-social-proof{margin-left:auto;margin-right:auto}
      .hero-cta{justify-content:center}
      .hero-visual{max-width:280px;margin:0 auto;order:-1}
      .about-grid,.marathon-grid,.team-inner{grid-template-columns:1fr;gap:2.5rem}
      .about-photo{max-width:380px;margin:0 auto}
      .approach-grid{grid-template-columns:1fr}
      .results-grid{grid-template-columns:1fr 1fr}
      .testi-grid{grid-template-columns:1fr}
      .form-row{grid-template-columns:1fr}
      .nav-links{display:none}
    }
    @media(max-width:540px){
      .results-grid{grid-template-columns:1fr}
      #hero{padding-left:1.25rem;padding-right:1.25rem}
      .float-badge,.float-tag{display:none}
    }
  
/* SVG icons (replaced emoji) */
.ic{display:inline-block;width:1em;height:1em;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.a-icon .ic{width:30px;height:30px;stroke-width:1.7}
.r-icon .ic{width:38px;height:38px;stroke-width:1.6;stroke:var(--coral)}
.tc-icon .ic{width:46px;height:46px;stroke-width:1.6;stroke:#fff}
.stars{display:inline-flex;gap:3px;align-items:center}
.stars .ic{width:18px;height:18px;fill:currentColor;stroke:none}
.check .ic{width:17px;height:17px;stroke-width:2.4}
.tag .ic{width:15px;height:15px;margin-right:5px;vertical-align:-2px;stroke:var(--coral)}
.pkg-badge .ic{width:14px;height:14px;margin-right:5px;vertical-align:-2px;stroke:var(--coral)}
.team-perks li span:first-child .ic{width:20px;height:20px;stroke:var(--coral)}
.about-highlight .ic{width:17px;height:17px;margin-right:6px;vertical-align:-3px;stroke:var(--coral)}
.marathon-note .ic,.pkg-group-note .ic{width:16px;height:16px;margin-right:5px;vertical-align:-3px;stroke:var(--teal)}
.free-badge .ic,.float-tag .ic{width:13px;height:13px;margin-right:5px;vertical-align:-1px;fill:currentColor;stroke:none}
.a-card .a-icon .ic{stroke:var(--coral)}
.a-card.t .a-icon .ic{stroke:var(--teal)}
.a-card.s .a-icon .ic{stroke:#B07A3F}

/* Consent block — tidy links */
.consent-block{margin:1.1rem 0 1.4rem}
.consent-label{display:flex;align-items:flex-start;gap:.6rem;font-size:.78rem;color:var(--text-soft);line-height:1.55;cursor:pointer}
.consent-label+.consent-label{margin-top:.6rem}
.consent-checkbox{margin-top:1px;accent-color:var(--coral);width:16px;height:16px;flex-shrink:0;cursor:pointer}
.consent-text a{color:var(--coral);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(224,112,85,.35);padding-bottom:1px;transition:color .2s,border-color .2s}
.consent-text a:hover{color:var(--coral-dark);border-bottom-color:var(--coral-dark)}


/* select — кросс-браузерный фикс нативного вида (Safari) + своя стрелка */
.fgroup select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;cursor:pointer;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B5548' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:14px}
.fgroup select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E07055' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}


/* ===== REVIEWS (объединённая секция) ===== */
#reviews { padding:7rem 5vw; }
#reviews .testi-grid { margin-top:0; }
.reviews-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; margin:1.5rem 0 0; }
.reviews-grid:empty { display:none; }
.review-card { background:#fff; border-radius:22px; padding:2rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.8rem; opacity:0; animation:cardIn .55s ease forwards; transition:transform .3s, box-shadow .3s; }
.review-card:hover { transform:translateY(-4px); box-shadow:0 12px 44px rgba(34,26,22,.12); }
@keyframes cardIn { from{opacity:0;-webkit-transform:translateY(22px);transform:translateY(22px)} to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)} }
.review-card .stars { color:var(--coral); }
.review-card .stars .ic.off { color:var(--cream-dark); }
.review-card blockquote { margin:0; font-size:.95rem; line-height:1.7; color:var(--text-mid); font-weight:300; }
.review-card figcaption { font-weight:700; color:var(--teal); display:flex; flex-direction:column; gap:.15rem; margin-top:auto; }
.review-card figcaption span { font-weight:400; font-size:.8rem; color:var(--text-soft); }

/* CTA «Оставить отзыв» */
.reviews-cta { text-align:center; margin-top:3.5rem; }
.reviews-cta-note { color:var(--text-mid); font-weight:300; margin-bottom:1.4rem; }
    .reviews-carousel { position:relative; margin-top:3.5rem; }
    .reviews-track { display:flex; gap:1.5rem; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:.6rem .25rem 1.4rem; scroll-padding-left:.25rem; scrollbar-width:thin; scrollbar-color:var(--cream-dark) transparent; }
    .reviews-track::-webkit-scrollbar { height:8px; }
    .reviews-track::-webkit-scrollbar-thumb { background:var(--cream-dark); border-radius:50px; }
    .reviews-track::-webkit-scrollbar-track { background:transparent; }
    #reviewsList { display:contents; }
    .reviews-track > .t-card, .reviews-track .review-card { flex:0 0 clamp(270px,78vw,340px); scroll-snap-align:start; margin:0; }
    .rv-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:46px; height:46px; border-radius:50%; border:1.5px solid var(--cream-dark); background:#fff; color:var(--teal); cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); transition:border-color .2s,color .2s,transform .2s; -webkit-appearance:none; appearance:none; }
    .rv-arrow:hover { border-color:var(--coral); color:var(--coral); transform:translateY(-50%) scale(1.07); }
    .rv-arrow svg { width:22px; height:22px; }
    .rv-prev { left:-12px; } .rv-next { right:-12px; }
    .rv-arrow[hidden] { display:none; }
    @media(max-width:680px){ .rv-arrow { display:none; } .reviews-track { scroll-snap-type:x proximity; gap:1rem; } }
.btn-review { border:none; cursor:pointer; font-family:inherit; -webkit-appearance:none; -moz-appearance:none; appearance:none; }
.btn-review .ic { width:18px; height:18px; }

/* ===== МОДАЛКА ОТЗЫВА ===== */
.rmodal { position:fixed; top:0; left:0; right:0; bottom:0; z-index:500; display:flex; align-items:center; justify-content:center; padding:1.25rem; }
.rmodal[hidden] { display:none; }
.rmodal-backdrop { position:absolute; top:0; left:0; right:0; bottom:0; background:rgba(34,26,22,.45); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); opacity:0; transition:opacity .3s ease; }
.rmodal-card { position:relative; z-index:1; width:100%; max-width:540px; max-height:calc(100vh - 2.5rem); overflow-y:auto; -webkit-overflow-scrolling:touch; background:#fff; border-radius:26px; padding:2.5rem 2.25rem 2.25rem; box-shadow:0 24px 80px rgba(34,26,22,.28); opacity:0; -webkit-transform:translateY(26px) scale(.97); transform:translateY(26px) scale(.97); transition:opacity .32s ease, -webkit-transform .38s cubic-bezier(.22,1.1,.35,1); transition:opacity .32s ease, transform .38s cubic-bezier(.22,1.1,.35,1); }
.rmodal.open .rmodal-backdrop { opacity:1; }
.rmodal.open .rmodal-card { opacity:1; -webkit-transform:translateY(0) scale(1); transform:translateY(0) scale(1); }
.rmodal-close { position:absolute; top:1.1rem; right:1.1rem; width:38px; height:38px; border-radius:50%; border:none; background:var(--cream); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, transform .25s; -webkit-appearance:none; appearance:none; }
.rmodal-close:hover { background:var(--coral-pale); -webkit-transform:rotate(90deg); transform:rotate(90deg); }
.rmodal-close svg { width:16px; height:16px; fill:none; stroke:var(--text-mid); stroke-width:2.2; stroke-linecap:round; }
.rmodal-title { font-size:1.5rem; color:var(--teal); margin:0 0 .4rem; }
.rmodal .muted-note { color:var(--text-soft); font-size:.85rem; margin:0 0 .4rem; }
.rm-label { display:block; font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-soft); margin:1.15rem 0 .45rem; }
#reviewForm input[type=text], #reviewForm textarea { width:100%; padding:.85rem 1.05rem; border:1.5px solid var(--cream-dark); border-radius:13px; font-family:inherit; font-size:1rem; color:var(--text); background-color:#fff; -webkit-appearance:none; -moz-appearance:none; appearance:none; box-sizing:border-box; transition:border-color .2s, box-shadow .2s; }
#reviewForm input[type=text]:focus, #reviewForm textarea:focus { outline:none; border-color:var(--coral); box-shadow:0 0 0 4px rgba(224,112,85,.12); }
#reviewForm textarea { min-height:130px; resize:vertical; }

/* интерактивные звёзды */
.rstars { display:flex; align-items:center; gap:.15rem; }
.rstar { background:none; border:none; padding:.2rem; cursor:pointer; color:var(--cream-dark); line-height:0; transition:color .15s, transform .18s; -webkit-appearance:none; appearance:none; }
.rstar .ic { width:30px; height:30px; fill:currentColor; stroke:none; }
.rstar.on { color:var(--coral); }
.rstar:hover { -webkit-transform:scale(1.18); transform:scale(1.18); }
.rstar:active { -webkit-transform:scale(.92); transform:scale(.92); }
.rstar:focus-visible { outline:2px solid var(--coral); outline-offset:2px; border-radius:6px; }
@keyframes starPop { 0%{-webkit-transform:scale(1);transform:scale(1)} 45%{-webkit-transform:scale(1.35);transform:scale(1.35)} 100%{-webkit-transform:scale(1);transform:scale(1)} }
.rstar.pop { animation:starPop .32s ease; }
.rstars-hint { margin-left:.65rem; font-size:.85rem; color:var(--text-soft); min-width:86px; }

.rf-actions { display:flex; align-items:center; gap:1rem; margin-top:1.5rem; flex-wrap:wrap; }
.rm-submit { background:var(--coral); color:#fff; border:none; padding:.9rem 2.2rem; border-radius:50px; font-family:inherit; font-size:.95rem; font-weight:700; cursor:pointer; box-shadow:0 8px 28px rgba(224,112,85,.42); transition:all .25s; -webkit-appearance:none; appearance:none; }
.rm-submit:hover { background:var(--coral-dark); -webkit-transform:translateY(-2px); transform:translateY(-2px); box-shadow:0 12px 36px rgba(224,112,85,.5); }
.rm-submit:disabled { opacity:.6; cursor:default; -webkit-transform:none; transform:none; }
.rf-msg { font-size:.88rem; }
.rf-msg.ok { color:var(--teal); }
.rf-msg.err { color:var(--coral-dark); }
@keyframes shake { 0%,100%{-webkit-transform:translateX(0);transform:translateX(0)} 25%{-webkit-transform:translateX(-7px);transform:translateX(-7px)} 60%{-webkit-transform:translateX(6px);transform:translateX(6px)} 85%{-webkit-transform:translateX(-3px);transform:translateX(-3px)} }
.rmodal-card.shake { animation:shake .4s ease; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; pointer-events:none; }

/* экран успеха */
.rmodal-success { text-align:center; padding:1rem 0 .4rem; }
.rmodal-success .muted-note { margin-bottom:1.6rem; }
.rm-check { width:84px; height:84px; margin:0 auto 1.3rem; display:block; }
.rm-check-circle { fill:var(--teal-pale); stroke:var(--teal); stroke-width:2.5; stroke-dasharray:183; stroke-dashoffset:183; animation:drawStroke .7s ease-out forwards .1s; }
.rm-check-mark { fill:none; stroke:var(--teal); stroke-width:4.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:36; stroke-dashoffset:36; animation:drawStroke .45s ease-out forwards .65s; }
@keyframes drawStroke { to{stroke-dashoffset:0} }
.rmodal-success .rmodal-title { animation:fadeUp .5s ease both .85s; }
.rmodal-success .muted-note { animation:fadeUp .5s ease both .95s; }
.rmodal-success .rm-submit { animation:fadeUp .5s ease both 1.05s; }

body.rmodal-open { overflow:hidden; }

@media (max-width:680px){
  #reviews { padding:5rem 5vw; }
  .reviews-cta { margin-top:2.5rem; }
  .rmodal { padding:.9rem; align-items:flex-end; }
  .rmodal-card { padding:2rem 1.4rem 1.6rem; border-radius:24px 24px 18px 18px; max-height:calc(100vh - 1.8rem); }
}
@media (prefers-reduced-motion: reduce){
  .rmodal-backdrop, .rmodal-card, .review-card, .rstar { transition:none; }
  .review-card, .rm-check-circle, .rm-check-mark, .rmodal-success .rmodal-title, .rmodal-success .muted-note, .rmodal-success .rm-submit, .rstar.pop, .rmodal-card.shake { animation-duration:.01s !important; animation-delay:0s !important; }
}

/* ===== AUDIENCE NOTE (программы) ===== */
.audience-note { display:flex; align-items:center; gap:1rem; max-width:720px; margin:0 auto 2.75rem; background:#fff; border-radius:18px; padding:1.05rem 1.45rem; box-shadow:var(--shadow); }
.audience-note .an-icon { width:44px; height:44px; border-radius:50%; background:var(--coral-pale); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.audience-note .an-icon .ic { width:20px; height:20px; stroke:var(--coral); }
.audience-note .an-text { font-size:.92rem; color:var(--text-mid); line-height:1.65; font-weight:400; }
@media (max-width:560px){ .audience-note { padding:1rem 1.1rem; gap:.8rem; } }

/* ===== ИНФО-БЛОКИ (из админки) ===== */
#infoblocks { padding:7rem 5vw; background:var(--cream-dark); }
.iblocks-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.5rem; max-width:1120px; margin:0 auto; }
.iblock { background:#fff; border-radius:22px; padding:2rem; box-shadow:var(--shadow); opacity:0; animation:cardIn .55s ease forwards; transition:transform .3s, box-shadow .3s; }
.iblock:hover { transform:translateY(-4px); box-shadow:0 12px 44px rgba(34,26,22,.12); }
.iblock .ib-icon { width:52px; height:52px; border-radius:16px; background:var(--teal-pale); display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
.iblock .ib-icon .ic { width:24px; height:24px; stroke:var(--teal); }
.iblock h3 { font-size:1.2rem; margin-bottom:.6rem; }
.iblock p { color:var(--text-mid); font-size:.9rem; line-height:1.75; font-weight:300; }
@media (max-width:680px){ #infoblocks { padding:5rem 5vw; } }


/* ===== Результаты людей (управляемая галерея фото) ===== */
#results-people{padding:7rem 5vw;background:transparent}
.rp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:1.4rem;padding:30px;overflow:hidden;transition:max-height .55s ease}
.rp-grid.scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.rp-card{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1/1;background:transparent;box-shadow:0 10px 30px rgba(34,26,22,.10);transition:transform .3s ease,box-shadow .3s ease}
.rp-card img{width:100%;height:100%;object-fit:cover;display:block}
.rp-card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(34,26,22,.16)}
.rp-more-wrap{text-align:center;margin-top:1rem}
.rp-more{cursor:pointer;border:none}
@media(max-width:900px){.rp-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){
  #results-people{padding:4rem 0;background:transparent}
  .rp-grid{display:flex;grid-template-columns:none;gap:.9rem;margin-top:1.2rem;max-height:none;padding:24px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-padding:24px;-webkit-overflow-scrolling:touch}
  .rp-grid::-webkit-scrollbar{height:0}
  .rp-card{flex:0 0 88%;aspect-ratio:1/1;scroll-snap-align:start;box-shadow:0 6px 18px rgba(34,26,22,.13)}
  .rp-card:hover{transform:none}
}


/* ===== Валидация формы заявки: всплывающая подсказка-пузырёк ===== */
/* плашка-пояснение «зачем галочки» */
.consent-why{font-size:.78rem;line-height:1.55;color:var(--text-mid);background:var(--teal-pale);border-left:3px solid var(--teal-light);border-radius:0 10px 10px 0;padding:.7rem .9rem;margin:.1rem 0 1.15rem}
/* воздух между галочками + контейнеры под пузырёк */
.fgroup{position:relative}
.consent-block .consent-label{position:relative}
.consent-label+.consent-label{margin-top:1rem}
/* подсветка незаполненного поля — без сдвига соседних блоков */
.fgroup.invalid input,.fgroup.invalid select,.fgroup.invalid textarea{border-color:var(--coral)!important;box-shadow:0 0 0 3px rgba(224,112,85,.16)}
.consent-label.invalid .consent-checkbox{outline:2px solid var(--coral);outline-offset:2px;border-radius:4px}
/* сам пузырёк: всплывает поверх, в потоке места не занимает */
.field-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:40;display:flex;align-items:flex-start;gap:.5rem;width:max-content;max-width:min(320px,calc(100vw - 56px));background:#fff;color:var(--text-mid);font-size:.8rem;font-weight:600;line-height:1.46;padding:.7rem .85rem;border:1px solid rgba(224,112,85,.22);border-radius:12px;box-shadow:0 12px 34px rgba(34,26,22,.18);pointer-events:none;animation:popIn .24s cubic-bezier(.34,1.56,.64,1) both}
.field-pop svg{flex-shrink:0;color:var(--coral);margin-top:1px}
.field-pop::before{content:"";position:absolute;top:-6px;left:18px;width:11px;height:11px;background:#fff;border-left:1px solid rgba(224,112,85,.22);border-top:1px solid rgba(224,112,85,.22);transform:rotate(45deg)}
@keyframes popIn{from{opacity:0;transform:translateY(-7px) scale(.95)}to{opacity:1;transform:none}}
.fgroup.shake,.consent-label.shake{animation:shake .4s ease}
@media (prefers-reduced-motion:reduce){.field-pop{animation:none}.fgroup.shake,.consent-label.shake{animation:none}}
