/* free.diving.md: главная фридайвинга (js/free.js). Классы fr-* есть только на сайте free. */
.fr-hero{position:relative;overflow:hidden;min-height:min(100vh,860px);min-height:min(var(--V0,100vh),860px);color:#fff;
  background:linear-gradient(180deg,#1b7f9e 0%,#0f5d7a 22%,#083a52 55%,#04192a 100%);display:flex;align-items:center}
.fr-rays{position:absolute;inset:-20% -10% auto;height:80%;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(100deg,rgba(255,255,255,.0) 0 60px,rgba(255,255,255,.18) 60px 70px,rgba(255,255,255,0) 70px 150px);
  -webkit-mask:linear-gradient(180deg,#000,transparent);mask:linear-gradient(180deg,#000,transparent);animation:frRays 14s ease-in-out infinite alternate}
@keyframes frRays{from{transform:translateX(-3%) skewX(-4deg)}to{transform:translateX(3%) skewX(4deg)}}
.fr-bubbles i{position:absolute;bottom:-20px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;border:1px solid rgba(255,255,255,.45);
  animation:frBub var(--w) linear var(--d) infinite;opacity:0}
@keyframes frBub{0%{transform:translate(0,0);opacity:0}10%{opacity:.8}100%{transform:translate(20px,-105vh);opacity:0}}
.fr-in{position:relative;z-index:2;max-width:1120px;margin:0 auto;padding:140px 20px 260px;width:100%}
.fr-kicker{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:#bfe7f1;margin-bottom:14px}
.fr-hero h1{font-size:clamp(2.6rem,7vw,5.4rem);line-height:.98;margin:0 0 20px;max-width:12ch;color:#fff}
.fr-lead{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:36rem;color:#d7eef4;margin:0 0 28px}
.fr-cta{gap:12px;flex-wrap:wrap}
.fr-diver{position:absolute;z-index:1;right:3%;bottom:12%;width:min(56vw,760px);height:auto;transform-origin:60% 50%;
  animation:frGlide 9s ease-in-out infinite;filter:drop-shadow(0 30px 40px rgba(0,0,0,.35))}
@keyframes frGlide{0%,100%{transform:rotate(22deg) translate(0,0)}50%{transform:rotate(25deg) translate(-2%,3%)}}
.fr-fins{transform-origin:262px 140px;animation:frKick 2.6s ease-in-out infinite}
@keyframes frKick{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
.fr-fin1{transform-origin:262px 135px;animation:frFlex 2.6s ease-in-out infinite}
.fr-fin2{transform-origin:262px 146px;animation:frFlex 2.6s ease-in-out infinite reverse}
@keyframes frFlex{0%,100%{transform:skewY(0)}50%{transform:skewY(2.5deg)}}
.fr-dirs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.fr-dir{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);text-decoration:none;transition:transform .2s,border-color .2s}
.fr-dir:hover{transform:translateY(-3px);border-color:var(--lagoon)}
.fr-dir b{font-size:1.2rem}
.fr-dir span{color:var(--muted);line-height:1.45}
.fr-dir i{position:absolute;top:16px;right:16px;font-style:normal;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--signal);border:1px solid currentColor;border-radius:99px;padding:3px 8px}
@media (max-width:720px){.fr-in{padding:110px 16px 220px}.fr-diver{width:96vw;right:-6%;bottom:5%}}
@media (prefers-reduced-motion:reduce){.fr-rays,.fr-bubbles i,.fr-diver,.fr-fins,.fr-fin1,.fr-fin2{animation:none}}

/* тренировки (js/free-train.js) */
.tr-box{margin-bottom:20px}
.tr-prices{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:var(--muted)}
.tr-prices b{color:var(--ink);font-weight:600;margin-right:4px}
.tr-list{display:flex;flex-direction:column;gap:8px}
.tr-row{display:grid;grid-template-columns:150px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.tr-row.on{border-color:var(--lagoon);box-shadow:inset 3px 0 0 var(--lagoon)}
.tr-row.off{opacity:.6}
.tr-when b{display:block;font-size:1.05rem}
.tr-when span{color:var(--muted)}
.tr-chg{color:var(--signal)}
.tr-h{padding:4px 0;border-bottom:1px dashed var(--line)}
.tr-form .fld{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.tr-form .fld span{font-size:.85rem;color:var(--muted)}
@media (max-width:640px){.tr-row{grid-template-columns:1fr}.tr-act{justify-self:start}}

/* соревнования (js/free-comp.js) */
.cp-d{display:flex;align-items:center;gap:12px;margin:6px 0;flex-wrap:wrap}
.cc{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.06em;padding:2px 7px;border-radius:5px;border:1px solid var(--line)}
.cc.wht{background:#fff;color:#0c2a3b}
.cc.yel{background:#f2c230;color:#0c2a3b;border-color:#f2c230}
.cc.red{background:#e8604c;color:#fff;border-color:#e8604c}
.jd{margin-bottom:10px;padding:14px}
.jd-h{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin-bottom:8px}
.jd-f{display:grid;grid-template-columns:1fr 1fr 1fr 2fr auto;gap:8px;align-items:end}
.jd-f label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--muted)}
.jd-f input,.jd-f select{font-size:1.05rem}
@media (max-width:640px){.jd-f{grid-template-columns:1fr 1fr 1fr}.jd-f .jd-n{grid-column:1/-1}.jd-f .btn{grid-column:1/-1}}

/* календарь (js/free-cal.js) */
.cal-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cal-top h2{margin:0;min-width:200px;text-align:center}
.cal-f{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.cal-f a{padding:6px 12px;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.9rem}
.cal-f a.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.cal-w{padding:8px;font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cal-d{min-height:108px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0}
.cal-d.out{background:var(--bg);opacity:.55}
.cal-d.now .cal-n{background:var(--signal);color:#0c2a3b;border-radius:99px;padding:0 7px}
.cal-n{font-size:.82rem;font-weight:700;align-self:flex-start}
.cal-e{display:block;font-size:.76rem;line-height:1.25;padding:3px 6px;border-radius:6px;text-decoration:none;color:#0c2a3b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-e.off{text-decoration:line-through;opacity:.6}
.t-train.cal-e,.cal-f a.t-train.on{background:#bfe7f1;border-color:#bfe7f1;color:#0c2a3b}
.t-course.cal-e,.cal-f a.t-course.on{background:#cfe8d6;border-color:#cfe8d6;color:#0c2a3b}
.t-comp.cal-e,.cal-f a.t-comp.on{background:#f2c230;border-color:#f2c230;color:#0c2a3b}
.t-tour.cal-e,.cal-f a.t-tour.on{background:#f6c9c0;border-color:#f6c9c0;color:#0c2a3b}
.cal-list{display:none}
.cal-ag{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.cal-agd b{font-size:1.3rem;display:block}
.cal-ag .cal-e{white-space:normal;margin-bottom:4px;font-size:.9rem;padding:6px 8px}
@media (max-width:760px){.cal-g{display:none}.cal-list{display:block}.cal-top h2{min-width:0;flex:1}}
@media (max-width:520px){.fr-cal{display:none}}
