/*
Theme Name: Fomin Lawyer
Theme URI: https://fomin.su
Description: Персональный сайт юриста Фомина О.Ю.: анимированный заголовок, нотный стан со звуком, форма обращения с защитой от спама.
Author: Fomin
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: fomin
*/

:root{--bg:#f2f4f7;--surf:#fff;--ink:#14203a;--mut:#566075;--brass:#8f6c26;--line:#dde2ea;--hdr:rgba(242,244,247,.92);--navy:#0d1830;--navy2:#16264a;--gold:#d2ad66;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0b1326;--surf:#122042;--ink:#eef1f7;--mut:#a5afc4;--brass:#d2ad66;--line:#233357;--hdr:rgba(11,19,38,.92);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0b1326;--surf:#122042;--ink:#eef1f7;--mut:#a5afc4;--brass:#d2ad66;--line:#233357;--hdr:rgba(11,19,38,.92);color-scheme:dark}
html{scroll-padding-top:calc(72px + env(safe-area-inset-top,0px));scroll-behavior:smooth}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 Manrope,system-ui,sans-serif}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--hdr)}
h1,h2,h3{font-family:Spectral,Georgia,serif;font-weight:600;line-height:1.15;margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--hdr);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.logo{font:600 19px Spectral,Georgia,serif;text-decoration:none;white-space:nowrap}
nav{display:flex;gap:22px;font-size:15px;overflow-x:auto}
nav a{text-decoration:none;color:var(--mut);white-space:nowrap}nav a:hover{color:var(--ink)}
.btn{display:inline-block;background:var(--gold);color:#1a1405;font:700 16px Manrope,sans-serif;padding:14px 26px;border:0;border-radius:4px;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.hero{background:radial-gradient(900px 420px at 80% 0,var(--navy2),transparent 70%),var(--navy);color:#f3f1ea;position:relative;overflow:hidden}
.hero .wrap{padding-top:88px;padding-bottom:210px;position:relative;z-index:1}
.hero p.role{font:italic 400 clamp(20px,3vw,26px)/1.3 Spectral,Georgia,serif;color:var(--gold);margin:0 0 14px}
.hero h1{font-size:clamp(46px,9vw,96px);letter-spacing:-.01em}
.wd{white-space:nowrap}
.ch{display:inline-block;background:linear-gradient(105deg,var(--cb,#f3f1ea) 38%,var(--ch,#fff3cf) 46%,var(--cg,#d2ad66) 52%,var(--ch,#fff3cf) 58%,var(--cb,#f3f1ea) 66%) 100% 0/250% 100% no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 calc(var(--g,0)*16px) rgba(210,173,102,.85)) brightness(calc(1 + var(--g,0)*.3));transition:filter .25s;animation:rev .9s cubic-bezier(.2,.8,.2,1) backwards,sheen 6s linear infinite;animation-delay:calc(var(--i)*.07s),calc(1.5s + var(--i)*.11s)}
@keyframes rev{from{opacity:0;filter:blur(14px);transform:translateY(34px) scale(.9)}}
@keyframes sheen{0%{background-position:100% 0}45%,100%{background-position:0 0}}
h2 .ch{--cb:var(--ink);--ch:#f0cf85;--cg:var(--brass);animation-play-state:paused;animation-delay:calc(var(--i)*.035s),calc(.8s + var(--i)*.06s)}
h2.go .ch{animation-play-state:running}
.hero .lead{max-width:560px;font-size:19px;color:#c9cfdd;margin:26px 0 34px}
.stave{position:absolute;left:0;right:0;bottom:34px;width:100%;height:150px;opacity:.9}
.facts{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:40px;color:#c9cfdd;font-size:15px}
.facts b{display:block;font:600 34px Spectral,Georgia,serif;color:var(--gold)}
section{padding:84px 0}
h2{font-size:clamp(30px,5vw,44px);margin-bottom:14px}
.sub{color:var(--mut);max-width:620px;margin:0 0 40px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.card{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--brass);padding:26px}
.card h3{font-size:23px;margin-bottom:8px}.card p{margin:0;color:var(--mut)}
.about{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:48px;align-items:start}
.photo{aspect-ratio:4/5;background:linear-gradient(160deg,var(--navy2),var(--navy));display:grid;place-items:center;color:var(--gold);font:600 92px Spectral,Georgia,serif;position:relative}
.photo small{position:absolute;bottom:14px;left:0;right:0;text-align:center;font:400 13px Manrope,sans-serif;color:#9aa6c2}
.about p{margin:0 0 16px;max-width:66ch}
.quote{font:italic 400 clamp(22px,3vw,28px)/1.35 Spectral,Georgia,serif;border-left:3px solid var(--gold);padding-left:20px;margin:0 0 28px}
.alt{background:var(--surf);border-block:1px solid var(--line)}
.svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.fc{position:relative;height:230px;perspective:900px;cursor:pointer;opacity:0;transform:translateY(36px);transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.fc.in{opacity:1;transform:none}
.tilt,.fl{position:absolute;inset:0;transform-style:preserve-3d}
.tilt{transition:transform .15s ease-out}
.fl{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.fc.flip .fl{transform:rotateY(180deg)}
.fs{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--line);background:var(--surf);padding:24px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.fs::before{content:"";position:absolute;inset:0;background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%),rgba(210,173,102,.3),transparent 60%);opacity:0;transition:opacity .3s}
.fc:hover .fs::before{opacity:1}
.fs::after{content:"§";position:absolute;right:14px;top:-18px;font:600 120px Spectral,Georgia,serif;color:var(--brass);opacity:.14;transition:transform .6s,opacity .4s}
.fc:hover .fs::after{transform:translateY(10px) rotate(-8deg) scale(1.1);opacity:.3}
.fs h3{font-size:23px;position:relative;z-index:1}
.fs small{position:relative;z-index:1;margin-top:6px;font-size:14px;color:var(--mut)}
.fs i{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--gold);transition:width .5s}
.fc:hover .fs i,.fc:focus-visible .fs i{width:100%}
.bk{transform:rotateY(180deg);justify-content:flex-start;background:linear-gradient(150deg,var(--navy2),var(--navy));border-color:var(--gold);color:#f3f1ea}
.bk h3{font-size:19px;color:var(--gold);margin-bottom:10px}
.bk ul{margin:0;padding-left:18px;font-size:14.5px;line-height:1.5;color:#d8dcea;position:relative;z-index:1}
.bk li{opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .4s}
.fc.flip .bk li{opacity:1;transform:none;transition-delay:calc(.3s + var(--i)*.06s)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;counter-reset:s}
.step{counter-increment:s;padding-top:18px;border-top:2px solid var(--brass)}
.step::before{content:counter(s);font:600 40px Spectral,Georgia,serif;color:var(--brass)}
.step h3{font-size:21px;margin:4px 0 6px}.step p{margin:0;color:var(--mut);font-size:16px}
.news a{display:block;text-decoration:none;background:var(--surf);border:1px solid var(--line);padding:22px;height:100%}
.news a:hover{border-color:var(--brass)}
.news time{color:var(--brass);font-size:14px}.news h3{font-size:21px;margin:6px 0 8px}.news p{margin:0;color:var(--mut);font-size:15px}
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:48px}
.contact address{font-style:normal;margin-top:24px}
.contact address a{font:600 26px Spectral,Georgia,serif;text-decoration:none;color:var(--brass)}
form{background:var(--surf);border:1px solid var(--line);padding:28px;display:grid;gap:16px}
label{display:grid;gap:6px;font-size:15px;font-weight:500}
input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:12px 14px;width:100%}
textarea{min-height:120px;resize:vertical}
.chk{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:var(--mut);font-size:14px}.chk input{width:auto;margin-top:4px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.err{color:#c0392b;font-size:14px;min-height:1em}
.ok{background:rgba(210,173,102,.15);border:1px solid var(--gold);padding:16px;font-weight:500}
.lock{font-size:13px;color:var(--mut)}
footer{background:var(--navy);color:#9aa6c2;padding:30px 0;font-size:14px}
@media (max-width:760px){nav{display:none}.about,.contact{grid-template-columns:1fr;gap:30px}.photo{max-width:240px}section{padding:60px 0}.hero .wrap{padding-top:56px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ch{animation:none}*{transition:none!important}.fc{opacity:1;transform:none}.bk li{opacity:1;transform:none}}

.logo{display:flex;align-items:center;gap:10px}
.mk{width:36px;height:36px;flex:none;background:var(--brass);-webkit-mask:var(--emb) center/contain no-repeat;mask:var(--emb) center/contain no-repeat;transition:transform .5s,filter .4s}
.logo:hover .mk{transform:rotate(-6deg) scale(1.08);filter:drop-shadow(0 0 8px rgba(210,173,102,.8))}
.hero::after{content:"";position:absolute;right:max(2vw,calc(50% - 540px));top:50%;width:clamp(240px,38vw,470px);aspect-ratio:1;transform:translateY(-50%);background:linear-gradient(105deg,#f3f1ea 38%,#fff3cf 46%,#d2ad66 52%,#fff3cf 58%,#f3f1ea 66%) 100% 0/250% 100% no-repeat;-webkit-mask:var(--emb) center/contain no-repeat;mask:var(--emb) center/contain no-repeat;opacity:.2;animation:wm 7s ease-in-out infinite;pointer-events:none}
@keyframes wm{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.photo{isolation:isolate;background:var(--navy)}
.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block;opacity:0;transform:scale(1.06);transition:opacity 1.2s,transform 1.6s cubic-bezier(.2,.8,.2,1)}
.photo.in img{opacity:1;transform:none}
.photo::after{content:"";position:absolute;inset:16px -16px -16px 16px;border:1px solid var(--gold);z-index:-1;transition:inset .5s}
.photo:hover::after{inset:10px -10px -10px 10px}
.flogo{width:min(140px,45vw);aspect-ratio:720/568;margin-bottom:18px;background:#e9e4d6;-webkit-mask:var(--full) center/contain no-repeat;mask:var(--full) center/contain no-repeat}
@media (prefers-reduced-motion:reduce){.hero::after{animation:none}.photo img{opacity:1;transform:none}}
.rv{font:600 22px Spectral,Georgia,serif;color:var(--brass);background:none;border:1px dashed var(--brass);padding:10px 20px;cursor:pointer;transition:background .25s,transform .25s}
.rv:hover{background:rgba(210,173,102,.15);transform:translateY(-2px)}
.photo img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
.fgrid{display:flex;flex-wrap:wrap;gap:20px 70px;align-items:flex-start;margin-bottom:22px}
footer address{font-style:normal;font-size:16px;line-height:1.7;color:#c9cfdd}
footer .rv{display:inline-block;margin-top:14px;color:var(--gold);border-color:var(--gold)}

.sb{position:absolute;left:0;right:0;bottom:34px;height:150px;z-index:2;pointer-events:none}
.stv{position:absolute;inset:0;width:100%;height:100%}
.stv path{stroke:url(#sg);stroke-width:1.3;vector-effect:non-scaling-stroke;fill:none;transition:stroke-width .4s}
.sb.on .stv path{stroke-width:2.2}
.nt{position:absolute;width:40px;height:40px;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;outline:0;-webkit-tap-highlight-color:transparent}
.nt::before{content:"";position:absolute;left:50%;top:50%;width:25px;height:18px;margin:-9px 0 0 -12.5px;border-radius:50%;background:linear-gradient(105deg,#f3f1ea 38%,#fff3cf 46%,#d2ad66 52%,#fff3cf 58%,#f3f1ea 66%) 100% 0/250% 100%;transform:rotate(-22deg) scale(var(--s,1));transition:transform .35s cubic-bezier(.2,1.6,.4,1);animation:sheen 6s linear infinite,tw 3.4s ease-in-out infinite;animation-delay:calc(var(--k)*.7s),calc(var(--k)*.45s)}
.nt::after{content:"";position:absolute;width:2px;height:48px;background:linear-gradient(180deg,#f3f1ea 38%,#fff3cf 46%,#d2ad66 52%,#fff3cf 58%,#f3f1ea 66%) 0 0/100% 300%;animation:stem 4s linear infinite;animation-delay:calc(var(--k)*.5s)}
.nt.u::after{left:calc(50% + 10px);bottom:50%}
.nt.d::after{left:calc(50% - 12px);top:50%}
.nt.hit::before,.nt:focus-visible::before{--s:1.55;animation:sheen .9s linear infinite,ring .9s ease-out infinite;filter:drop-shadow(0 0 10px rgba(210,173,102,.85))}
.nt.hit::after,.nt:focus-visible::after{filter:drop-shadow(0 0 6px rgba(210,173,102,.85))}
@keyframes tw{0%,100%{filter:drop-shadow(0 0 2px rgba(210,173,102,.35))}50%{filter:drop-shadow(0 0 9px rgba(210,173,102,.85))}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(210,173,102,.7)}100%{box-shadow:0 0 0 22px rgba(210,173,102,0)}}
@keyframes stem{0%{background-position:0 0}100%{background-position:0 300%}}
.snd{position:absolute;left:max(22px,calc(50% - 540px));bottom:-28px;pointer-events:auto;font:500 13px Manrope,sans-serif;color:#c9cfdd;background:rgba(13,24,48,.6);border:1px solid rgba(210,173,102,.5);border-radius:999px;padding:6px 14px;cursor:pointer;transition:color .25s,border-color .25s}
.snd:hover{color:#fff3cf;border-color:var(--gold)}
@media (prefers-reduced-motion:reduce){.nt::before,.nt::after{animation:none!important}}
.pl{color:var(--brass);text-underline-offset:3px}
footer .pl{color:var(--gold);margin-left:14px}
.pol{padding:64px 0 90px}.pol .wrap{max-width:860px}
.pol h2{margin-bottom:30px}
.pol h3{font-size:24px;margin:34px 0 10px}
.pol p{margin:0 0 12px}
.pol ul{margin:0 0 12px;padding-left:22px}.pol li{margin-bottom:6px}
.pol .date{margin-top:36px;color:var(--mut);font-size:15px}
.back{display:inline-block;margin-bottom:22px;color:var(--brass);text-decoration:none;font-weight:600}
.back:hover{text-decoration:underline}
.ar .wrap{max-width:1080px}
.ar .news p{margin:0}
.ar .news h3{font-size:21px;margin:6px 0 8px}

.admin-bar header{top:calc(32px + env(safe-area-inset-top,0px))}
@media (max-width:782px){.admin-bar header{top:calc(46px + env(safe-area-inset-top,0px))}}
.pol img{max-width:100%;height:auto}
.pol .entry a{color:var(--brass)}
.pol .entry p,.pol .entry li{max-width:68ch}
.nav-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.nav-links a,.nav-links span{padding:8px 14px;border:1px solid var(--line);text-decoration:none}
.nav-links .current{border-color:var(--brass);color:var(--brass)}
.screen-reader-text{position:absolute;left:-9999px}
.fmsg{margin:0 0 16px}
